(command.CommandList children: [ (C {<Id.Lit_Other ':'>} { (braced_var_sub token: <Id.VSub_Name DIR> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonEquals arg_word: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<dirname>} { (DQ (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {<Id.Lit_Digits 0>} ) ) ) ) } ) ] ) ) ) } ) (C {<pwd>}) ] ) ] ) ) } ) ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<source>} {(${ Id.VSub_Name DIR) </testenv.sh>}) (command.BraceGroup children: [ (command.Sentence child: (command.Simple words: [{<echo>} {(DQ <'testenv.sh not found!'>)}] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] ) ] ) (C {<Id.Lit_Other ':'>} { (braced_var_sub token: <Id.VSub_Name COMMAND_ALIASES> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonEquals arg_word:{<bazel>}) ) } ) (C {<Id.Lit_Other ':'>} { (braced_var_sub token: <Id.VSub_Name COMPLETION> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonEquals arg_word: {(DQ ($ Id.VSub_DollarName '$TEST_SRCDIR') </io_bazel/scripts/bazel-complete.bash>)} ) ) } ) (C {<Id.Lit_Other ':'>} { (braced_var_sub token: <Id.VSub_Name PACKAGE_PATH_PREFIX> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonEquals arg_word:{}) ) } ) (command.ShFunction name: array_join body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'joiner='> (DQ ($ Id.VSub_Number '$1'))}) (C {<shift>}) (C {<echo>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))}) (C {<shift>}) (command.ForEach iter_name: i iter_words: [{(DQ ($ Id.VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [(C {<echo>} {<-n>} {(DQ (${ Id.VSub_Name joiner) (${ Id.VSub_Name i))})] ) ) ] ) ) (command.ShFunction name: expand body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'input='> (DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_VarLike 'flags='> (DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_VarLike 'stderr_file='> (DQ ($ Id.VSub_Number '$3'))} ) (command.Pipeline children: [ (command.BraceGroup children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$flags'))}) (C {<echo>} {(DQ <'source '> ($ Id.VSub_DollarName '$COMPLETION'))}) (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: <Id.VSub_Name COMMAND_ALIASES> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {<echo>} { (DQ <'alias '> ($ Id.VSub_DollarName '$i') <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <'echo '> ($ Id.VSub_DollarName '$i') <"'"> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) ] ) ) (C {<echo>} {<-en>} {(DQ ($ Id.VSub_DollarName '$input') <"'">)}) ] ) (command.Simple words: [{<bash>} {<--norc>} {<-i>}] redirects: [ (redir.Redir op: <Id.Redir_Great '2>'> fd: 2 arg_word: {(DQ ($ Id.VSub_DollarName '$stderr_file'))} ) ] ) (C {<sed>} {<-e>} {(SQ <'s/^\\('>) (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<array_join>} {(DQ <Id.Lit_Other '\\'> <'|'>)} { (braced_var_sub token: <Id.VSub_Name COMMAND_ALIASES> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ] ) ) ) (SQ <'\\) /\\1 /'>) } ) ] negated: F ) ] ) ) (command.ShFunction name: assert_expansion body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'prefix='> ($ Id.VSub_Number '$1')} {<Id.Lit_VarLike 'expected='> ($ Id.VSub_Number '$2')} {<Id.Lit_VarLike 'flags='> (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: <Id.VSub_Name COMMAND_ALIASES> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {<local>} {<Id.Lit_VarLike 'nprefix='> (DQ ($ Id.VSub_DollarName '$i') <' '> ($ Id.VSub_DollarName '$prefix')) } ) (C {<local>} {<Id.Lit_VarLike 'nexpected='> (DQ ($ Id.VSub_DollarName '$i') <' '> ($ Id.VSub_DollarName '$expected')) } ) (C {<assert_equals>} {(DQ ($ Id.VSub_DollarName '$nexpected'))} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<expand>} {(DQ ($ Id.VSub_DollarName '$nprefix') <Id.Lit_Other '\\'> <t>)} {(DQ ($ Id.VSub_DollarName '$flags'))} {(DQ </dev/null>)} ) ] ) ) ) } ) ] ) ) ] ) ) (command.ShFunction name: assert_expansion_error_not_contains body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'prefix='> ($ Id.VSub_Number '$1')} {<Id.Lit_VarLike 'not_expected='> ($ Id.VSub_Number '$2')} {<Id.Lit_VarLike 'flags='> (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) (C {<local>} {<Id.Lit_VarLike 'temp_file='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<mktemp>} {(DQ (${ Id.VSub_Name TEST_TMPDIR) </tmp.stderr.XXXXXX>)}) ] ) ) ) } ) (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: <Id.VSub_Name COMMAND_ALIASES> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {<local>} {<Id.Lit_VarLike 'nprefix='> (DQ ($ Id.VSub_DollarName '$i') <' '>)}) (command.Simple words: [ {<expand>} {(DQ ($ Id.VSub_DollarName '$nprefix') <Id.Lit_Other '\\'> <t>)} {(DQ ($ Id.VSub_DollarName '$flags'))} {(DQ ($ Id.VSub_DollarName '$temp_file'))} ] redirects: [(redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>})] ) (C {<assert_not_contains>} {(DQ ($ Id.VSub_DollarName '$not_expected'))} {(DQ ($ Id.VSub_DollarName '$temp_file'))} ) ] ) ) ] ) ) (command.ShFunction name: make_empty_packages body: (command.BraceGroup children: [ (C {<touch>} {<video/streamer2/testing/BUILD>}) (C {<touch>} { (braced_var_sub token: <Id.VSub_Name PACKAGE_PATH_PREFIX> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) <video/streamer2/stuff/BUILD> } ) (C {<touch>} {<video/streamer2/names/BUILD>}) ] ) ) (command.ShFunction name: make_packages body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {<video/streamer2/testing>}) (C {<fail>} {(DQ <'mkdir failed'>)}) ] ) (command.Simple words: [{<cat>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<video/streamer2/BUILD>} ) (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {<EOF>} here_end_span_id: 739 stdin_parts: [ <"cc_library(name='task_lib', ...)\n"> <"cc_library(name='token_bucket', ...)\n"> <"cc_library(name='with_special+_,=-.@~chars', ...)\n"> <"#cc_library(name='comment_build_target_1old', ...)\n"> <"#cc_library(name='comment_build_target_2old', ...)\n"> <"cc_library(name='comment_build_target_2new', ...)\n"> <"#cc_test(name='token_bucket_t_1old', ...)\n"> <"#cc_test(name='token_bucket_t_2old', ...)\n"> <"cc_test(name='token_bucket_test', ...)\n"> <"cc_binary(name='token_bucket_binary', ...)\n"> <"java_binary ( name = 'JavaBinary', ...)\n"> <'java_binary (\n'> <" name = 'AnotherJavaBinary'\n"> <' ...\n'> <')\n'> <"cc_binary(other='thing', name='pybin', ...)\n"> <"genrule(name='checks/thingy', ...)\n"> <"#cc_binary(name='comment_run_target_1old', ...)\n"> <"#cc_binary(name='comment_run_target_2old', ...)\n"> <"cc_binary(name='comment_run_target_2new', ...)\n"> ] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} { (braced_var_sub token: <Id.VSub_Name PACKAGE_PATH_PREFIX> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) <video/streamer2/stuff> } ) (C {<fail>} {(DQ <'mkdir failed'>)}) ] ) (command.Simple words: [{<cat>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: { (braced_var_sub token: <Id.VSub_Name PACKAGE_PATH_PREFIX> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) <video/streamer2/stuff/BUILD> } ) (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {<EOF>} here_end_span_id: 775 stdin_parts: [<"cc_library(name='stuff', ...)\n">] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {<video/streamer2/names>}) (C {<fail>} {(DQ <'mkdir failed'>)}) ] ) (command.Simple words: [{<cat>}] redirects: [ (redir.Redir op: <Id.Redir_Great '>'> fd: -1 arg_word: {<video/streamer2/names/BUILD>} ) (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {<EOF>} here_end_span_id: 806 stdin_parts: [<'genrule(\n'> <" name = 'foo',\n"> <" cmd = ('name=foo'),\n"> <')\n'>] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {<-p>} {<dash>}) (C {<fail>} {(DQ <'mkdir failed'>)})] ) (command.Simple words: [{<cat>}] redirects: [ (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{<dash/BUILD>}) (redir.HereDoc op: <Id.Redir_DLess '<<'> fd: -1 here_begin: {<EOF>} here_end_span_id: 840 stdin_parts: [ <'cc_library(\n'> <' name = '> <Id.Right_DoubleQuote '"'> <mia-bid-multiplier-mixer-module> <Id.Right_DoubleQuote '"'> <',\n'> <')\n'> ] ) ] ) (C {<mkdir>} {<-p>} {<video/notapackage>}) ] ) ) (C {<source>} {(${ Id.VSub_Name COMPLETION)}) (command.ShFunction name: assert_expansion_function body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'ws='> (${ Id.VSub_Name PWD)}) (C {<local>} {<Id.Lit_VarLike 'function='> (DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_VarLike 'displacement='> (DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_VarLike 'type='> (DQ ($ Id.VSub_Number '$3'))} {<Id.Lit_VarLike 'expected='> (DQ ($ Id.VSub_Number '$4'))} {<Id.Lit_VarLike 'current='> (DQ ($ Id.VSub_Number '$5'))} ) (C {<disable_errexit>}) (C {<local>} {<Id.Lit_VarLike 'actual_result='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<eval>} { (DQ <_bazel__> (${ Id.VSub_Name function) <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name ws) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name displacement) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name current) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) (${ Id.VSub_Name type) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) ] ) ) } ) (C {<enable_errexit>}) (C {<assert_equals>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<echo>} {<-ne>} {(DQ (${ Id.VSub_Name expected))})] ) ) ) } {(DQ (${ Id.VSub_Name actual_result))} ) ] ) ) (command.ShFunction name: test_expand_rules_in_package body: (command.BraceGroup children: [ (C {<make_packages>}) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label>} {(DQ <'stuff '>)} {(DQ <'//video/streamer2/stuff:'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label>} {(SQ <'task_lib '>)} {(SQ <'video/streamer2:ta'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label>} {(SQ <'with_special+_,=-.@~chars '>)} {(SQ <'video/streamer2:with_s'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ <video/>)} {<label>} {(SQ <'task_lib '>)} {(SQ <'streamer2:ta'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ <video/>)} {<label>} {(SQ )} {(SQ <'video/streamer2:ta'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ <video/>)} {<label>} {(SQ <'with_special+_,=-.@~chars '>)} {(SQ <'streamer2:with_s'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label>} {(SQ <'token_bucket_test \\ntoken_bucket_binary '>)} {(SQ <'video/streamer2:token_bucket_'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label>} {(SQ <'stuff '>)} {(SQ <'video/streamer2/stuff:s'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label>} {(SQ )} {(SQ <'video/streamer2:comment_build_target_1o'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label>} {(SQ <'comment_build_target_2new '>)} {(SQ <'video/streamer2:comment_build_target_2'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-test>} {(SQ <'token_bucket_test '>)} {(SQ <'video/streamer2:to'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-test>} {(SQ )} {(SQ <'video/streamer2:token_bucket_t_1o'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-test>} {(SQ <'token_bucket_test '>)} {(SQ <'video/streamer2:token_bucket_t'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-test>} {(SQ <'token_bucket_test '>)} {(SQ <'video/streamer2:'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-test>} {(SQ <'all '>)} {(SQ <'video/streamer2:a'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-bin>} {(SQ <'token_bucket_binary '>)} {(SQ <'video/streamer2:to'>)} ) (command.Simple words: [ {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-bin>} {(SQ <'token_bucket_test \\ntoken_bucket_binary '>)} {(SQ <'video/streamer2:to'>)} ] more_env: [ (env_pair name: BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN val: {<true>} spids: [1400] ) ] ) (command.Simple words: [ {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-bin>} {(SQ <'token_bucket_test '>)} {(SQ <'video/streamer2:token_bucket_t'>)} ] more_env: [(env_pair name:BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN val:{<1>} spids:[1436])] ) (command.Simple words: [ {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-bin>} {(SQ <'token_bucket_binary '>)} {(SQ <'video/streamer2:to'>)} ] more_env: [ (env_pair name: BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN val: {<false>} spids: [1472] ) ] ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-bin>} {(SQ )} {(SQ <'video/streamer2:comment_run_target_1o'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-bin>} {(SQ <'comment_run_target_2new '>)} {(SQ <'video/streamer2:comment_run_target_2'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-bin>} {(SQ <'JavaBinary '>)} {(SQ <'video/streamer2:J'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-bin>} {(SQ <'pybin '>)} {(SQ <'video/streamer2:py'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label-bin>} {(SQ <'AnotherJavaBinary '>)} {(SQ <'video/streamer2:A'>)} ) (C {<assert_expansion_function>} {(DQ <expand_rules_in_package>)} {(DQ )} {<label>} {(SQ <'foo '>)} {(SQ <'video/streamer2/names:'>)} ) ] ) ) (command.ShFunction name: test_expand_package_name body: (command.BraceGroup children: [ (C {<make_packages>}) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ )} {(DQ )} {(DQ <//video/streamer2/stuff/> <Id.Lit_Other '\\'> <'n//video/streamer2/stuff:'>)} {(DQ <//video/streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ )} {(DQ )} {(DQ <//video/notapackage/>)} {(DQ <//video/nota>)} ) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ )} {(DQ )} {(DQ <video/streamer2/stuff/> <Id.Lit_Other '\\'> <'nvideo/streamer2/stuff:'>)} {(DQ <video/streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ )} {(DQ )} {(DQ <video/notapackage/>)} {(DQ <video/nota>)} ) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ <video/>)} {(DQ )} {(DQ )} {(DQ <video/streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ <video/>)} {(DQ )} {(DQ )} {(DQ <video/nota>)} ) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ <video/>)} {(DQ )} {(DQ <streamer2/stuff/> <Id.Lit_Other '\\'> <'nstreamer2/stuff:'>)} {(DQ <streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ <video/>)} {(DQ )} {(DQ <notapackage/>)} {(DQ <nota>)} ) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ )} {(DQ <label-package>)} {(DQ <//video/streamer2/stuff/> <Id.Lit_Other '\\'> <'n//video/streamer2/stuff '>)} {(DQ <//video/streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <expand_package_name>)} {(DQ )} {(DQ <label-package>)} {(DQ <//video/notapackage/>)} {(DQ <//video/nota>)} ) ] ) ) (command.ShFunction name: test_expand_target_pattern body: (command.BraceGroup children: [ (C {<make_packages>}) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ )} {<label>} {(DQ <'stuff '>)} {(DQ <'//video/streamer2/stuff:'>)} ) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ )} {<label>} {(DQ <//video/streamer2/stuff/> <Id.Lit_Other '\\'> <'n//video/streamer2/stuff:'>)} {(DQ <//video/streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ )} {<label>} {(DQ <'stuff '>)} {(DQ <'video/streamer2/stuff:'>)} ) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ )} {<label>} {(DQ <video/streamer2/stuff/> <Id.Lit_Other '\\'> <'nvideo/streamer2/stuff:'>)} {(DQ <video/streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ <video/>)} {<label>} {(DQ <'stuff '>)} {(DQ <'streamer2/stuff:'>)} ) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ <video/>)} {<label>} {(DQ <streamer2/stuff/> <Id.Lit_Other '\\'> <'nstreamer2/stuff:'>)} {(DQ <streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ <video/>)} {<label>} {(DQ <'stuff '>)} {(DQ <'//video/streamer2/stuff:'>)} ) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ <video/>)} {<label>} {(DQ <//video/streamer2/stuff/> <Id.Lit_Other '\\'> <'n//video/streamer2/stuff:'>)} {(DQ <//video/streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ <video/>)} {<label>} {(DQ )} {(DQ <'video/streamer2/stuff:'>)} ) (C {<assert_expansion_function>} {(DQ <expand_target_pattern>)} {(DQ <video/>)} {<label>} {(DQ )} {(DQ <video/streamer2/stu>)} ) ] ) ) (command.ShFunction name: test_complete_pattern body: (command.BraceGroup children: [ (C {<make_packages>}) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {<label>} {(DQ <'stuff '>)} {(DQ <'//video/streamer2/stuff:'>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {<label>} {(DQ <//video/streamer2/stuff/> <Id.Lit_Other '\\'> <'n//video/streamer2/stuff:'>)} {(DQ <//video/streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {<label-package>} {(DQ <//video/streamer2/stuff/> <Id.Lit_Other '\\'> <'n//video/streamer2/stuff '>)} {(DQ <//video/streamer2/stu>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {<command>} {(DQ <'clean '>)} {(DQ <clea>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {<info-key>} {(DQ <'install_base '>)} {(DQ <install_b>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {(SQ <'{clean,add}'>)} {(DQ <'clean '>)} {(DQ <clea>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {(SQ <'command|{abc,def}'>)} {(DQ <'abc '>)} {(DQ <ab>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {(SQ <'command|{abc,def}'>)} {(DQ <'clean '>)} {(DQ <clea>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {<label>} {(DQ <'stuff '>)} {(DQ <'//video/streamer2/stuff:'>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {<label>} {(SQ <'task_lib '>)} {(SQ <'video/streamer2:ta'>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ )} {<label>} {(SQ <'with_special+_,=-.@~chars '>)} {(SQ <'video/streamer2:with_s'>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ <video/>)} {<label>} {(DQ <'stuff '>)} {(DQ <'//video/streamer2/stuff:'>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ <video/>)} {<label>} {(SQ <'task_lib '>)} {(SQ <'streamer2:ta'>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ <video/>)} {<label>} {(SQ )} {(SQ <'video/streamer2:ta'>)} ) (C {<assert_expansion_function>} {(DQ <complete_pattern>)} {(DQ <video/>)} {<label>} {(SQ <'with_special+_,=-.@~chars '>)} {(SQ <'streamer2:with_s'>)} ) ] ) ) (command.ShFunction name: test_basic_subcommand_expansion body: (command.BraceGroup children: [ (C {<assert_expansion>} {(SQ <bui>)} {(SQ <'build '>)}) (C {<assert_expansion>} {(SQ <hel>)} {(SQ <'help '>)}) (C {<assert_expansion>} {(SQ <shut>)} {(SQ <'shutdown '>)}) ] ) ) (command.ShFunction name: test_common_options body: (command.BraceGroup children: [ (C {<assert_expansion>} {(SQ <--h>)} {(SQ <--host_jvm_>)}) (C {<assert_expansion>} {(SQ <--host_jvm_a>)} {(SQ <'--host_jvm_args='>)}) ] ) ) (command.ShFunction name: test_build_options body: (command.BraceGroup children: [ (C {<assert_expansion>} {(SQ <'build --keep_g'>)} {(SQ <'build --keep_going '>)}) (C {<assert_expansion>} {(SQ <'build --expe'>)} {(SQ <'build --experimental_'>)}) (C {<assert_expansion>} {(SQ <'help --cros'>)} {(SQ <'help --cros'>)}) (C {<assert_expansion>} {(SQ <'build --test_stra'>)} {(SQ <'build --test_strategy='>)}) ] ) ) (command.ShFunction name: test_query_options body: (command.BraceGroup children: [ (C {<assert_expansion>} {(SQ <'query --out'>)} {(SQ <'query --output='>)}) (C {<make_packages>}) (C {<assert_expansion>} {(SQ <'query video/streamer2:ta'>)} {(SQ <'query video/streamer2:task_lib '>)} ) (C {<assert_expansion>} {(SQ <'query //video/streamer2:ta'>)} {(SQ <'query //video/streamer2:task_lib '>)} ) ] ) ) (command.ShFunction name: test_run_options body: (command.BraceGroup children: [ (C {<assert_expansion>} {(SQ <'run --keep_g'>)} {(SQ <'run --keep_going '>)}) (C {<assert_expansion>} {(SQ <'run --expe'>)} {(SQ <'run --experimental_'>)}) ] ) ) (command.ShFunction name: test_tristate_option body: (command.BraceGroup children: [ (C {<assert_expansion>} {(SQ <'build --nocache_test_result'>)} {(SQ <'build --nocache_test_results '>)} ) ] ) ) (command.ShFunction name: make_dirs body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {<video/streamer2/testing>}) (C {<fail>} {(DQ <'mkdir failed'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} { (braced_var_sub token: <Id.VSub_Name PACKAGE_PATH_PREFIX> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) <video/streamer2/stuff> } ) (C {<fail>} {(DQ <'mkdir failed'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-p>} {<video/streamer2/names>}) (C {<fail>} {(DQ <'mkdir failed'>)}) ] ) ] ) ) (command.ShFunction name: test_directory_expansion body: (command.BraceGroup children: [ (C {<make_dirs>}) (C {<assert_expansion>} {(SQ <'build vide'>)} {(SQ <'build video/'>)}) (C {<assert_expansion>} {(SQ <'build video/'>)} {(SQ <'build video/streamer2/'>)}) (C {<assert_expansion>} {(SQ <'build video/streamer2/t'>)} {(SQ <'build video/streamer2/testing/'>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2/s'>)} {(SQ <'build video/streamer2/stuff/'>)} ) (C {<make_empty_packages>}) (C {<assert_expansion>} {(SQ <'build video/streamer2/t'>)} {(SQ <'build video/streamer2/testing'>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2/s'>)} {(SQ <'build video/streamer2/stuff'>)} ) (C {<assert_expansion>} {(SQ <'build //vide'>)} {(SQ <'build //video/'>)}) (C {<assert_expansion>} {(SQ <'build //video/'>)} {(SQ <'build //video/streamer2/'>)}) (C {<assert_expansion>} {(SQ <'build //video/streamer2/t'>)} {(SQ <'build //video/streamer2/testing'>)} ) (C {<assert_expansion>} {(SQ <'build //video/streamer2/s'>)} {(SQ <'build //video/streamer2/stuff'>)} ) ] ) ) (command.ShFunction name: test_directory_expansion_in_subdir body: (command.BraceGroup children: [ (C {<make_dirs>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<cd>} {<video>}] redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] ) (C {<assert_expansion>} {(SQ <'build vide'>)} {(SQ <'build vide'>)}) (C {<assert_expansion>} {(SQ <'build video/'>)} {(SQ <'build video/'>)}) (C {<assert_expansion>} {(SQ <'build video/streamer2/t'>)} {(SQ <'build video/streamer2/t'>)}) (C {<assert_expansion>} {(SQ <'build video/streamer2/s'>)} {(SQ <'build video/streamer2/s'>)}) (C {<assert_expansion>} {(SQ <'build //vide'>)} {(SQ <'build //video/'>)}) (C {<assert_expansion>} {(SQ <'build //video/'>)} {(SQ <'build //video/streamer2/'>)}) (C {<assert_expansion>} {(SQ <'build //video/streamer2/t'>)} {(SQ <'build //video/streamer2/testing/'>)} ) (C {<assert_expansion>} {(SQ <'build //video/streamer2/s'>)} {(SQ <'build //video/streamer2/stuff/'>)} ) (C {<assert_expansion>} {(SQ <'build streamer2/t'>)} {(SQ <'build streamer2/testing/'>)}) (C {<assert_expansion>} {(SQ <'build streamer2/s'>)} {(SQ <'build streamer2/stuff/'>)}) ] ) ) (command.ShFunction name: test_target_expansion body: (command.BraceGroup children: [ (C {<make_packages>}) (C {<assert_expansion>} {(SQ <'build video/streamer2:ta'>)} {(SQ <'build video/streamer2:task_lib '>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2:with_s'>)} {(SQ <'build video/streamer2:with_special+_,=-.@~chars '>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2:to'>)} {(SQ <'build video/streamer2:token_bucket'>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2/s'>)} {(SQ <'build video/streamer2/stuff'>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2/stuff:s'>)} {(SQ <'build video/streamer2/stuff:stuff '>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2:comment_build_target_1o'>)} {(SQ <'build video/streamer2:comment_build_target_1o'>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2:comment_build_target_2'>)} {(SQ <'build video/streamer2:comment_build_target_2new '>)} ) (C {<assert_expansion>} {(SQ <'test video/streamer2:to'>)} {(SQ <'test video/streamer2:token_bucket_test '>)} ) (C {<assert_expansion>} {(SQ <'test video/streamer2:token_bucket_t_1o'>)} {(SQ <'test video/streamer2:token_bucket_t_1o'>)} ) (C {<assert_expansion>} {(SQ <'test video/streamer2:token_bucket_t'>)} {(SQ <'test video/streamer2:token_bucket_test '>)} ) (C {<assert_expansion_error_not_contains>} {(SQ <'test video/streamer2:match'>)} {(SQ <'syntax error'>)} ) (C {<assert_expansion>} {(SQ <'test video/streamer2:'>)} {(SQ <'test video/streamer2:token_bucket_test '>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2:a'>)} {(SQ <'build video/streamer2:all '>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:to'>)} {(SQ <'run video/streamer2:token_bucket_binary '>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:to'>)} {(SQ <'run video/streamer2:token_bucket_'>)} {(SQ <'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=true'>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:token_bucket_t'>)} {(SQ <'run video/streamer2:token_bucket_test '>)} {(SQ <'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=1'>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:to'>)} {(SQ <'run video/streamer2:token_bucket_binary '>)} {(SQ <'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=false'>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:to'>)} {(SQ <'run video/streamer2:token_bucket_binary '>)} {(SQ <'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=0'>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:to'>)} {(SQ <'run video/streamer2:token_bucket_binary '>)} {(SQ <'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=junk'>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:to'>)} {(SQ <'run video/streamer2:token_bucket_binary '>)} {(SQ <'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN='>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:comment_run_target_1o'>)} {(SQ <'run video/streamer2:comment_run_target_1o'>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:comment_run_target_2'>)} {(SQ <'run video/streamer2:comment_run_target_2new '>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:J'>)} {(SQ <'run video/streamer2:JavaBinary '>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:py'>)} {(SQ <'run video/streamer2:pybin '>)} ) (C {<assert_expansion>} {(SQ <'run video/streamer2:A'>)} {(SQ <'run video/streamer2:AnotherJavaBinary '>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2/names:'>)} {(SQ <'build video/streamer2/names:foo '>)} ) (command.Simple words: [ {<assert_expansion>} {(SQ <'build dash:m'>)} {(SQ <'build dash:mia-bid-multiplier-mixer-module '>)} ] more_env: [(env_pair name:LC_ALL val:{<en_US.UTF-8>} spids:[3814])] ) ] ) ) (command.ShFunction name: test_target_expansion_in_subdir body: (command.BraceGroup children: [ (C {<make_packages>}) (command.Simple words: [{<cd>} {<video>}] redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})] ) (C {<assert_expansion>} {(SQ <'build streamer2:ta'>)} {(SQ <'build streamer2:task_lib '>)}) (C {<assert_expansion>} {(SQ <'build streamer2:to'>)} {(SQ <'build streamer2:token_bucket'>)}) (C {<assert_expansion>} {(SQ <'build streamer2/s'>)} {(SQ <'build streamer2/stuff'>)}) (C {<assert_expansion>} {(SQ <'build streamer2/stuff:s'>)} {(SQ <'build streamer2/stuff:stuff '>)} ) (C {<assert_expansion>} {(SQ <'build video/streamer2:ta'>)} {(SQ <'build video/streamer2:ta'>)} ) (C {<assert_expansion>} {(SQ <'build //video/streamer2:ta'>)} {(SQ <'build //video/streamer2:task_lib '>)} ) ] ) ) (command.ShFunction name: test_target_expansion_in_package body: (command.BraceGroup children: [ (C {<make_packages>}) (command.Simple words: [{<cd>} {<video/streamer2>}] redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})] ) (C {<assert_expansion>} {(SQ <'build :ta'>)} {(SQ <'build :task_lib '>)}) (C {<assert_expansion>} {(SQ <'build :to'>)} {(SQ <'build :token_bucket'>)}) (C {<assert_expansion>} {(SQ <'build :checks/th'>)} {(SQ <'build :checks/thingy '>)}) (C {<assert_expansion>} {(SQ <'build s'>)} {(SQ <'build stuff'>)}) (C {<assert_expansion>} {(SQ <'build :s'>)} {(SQ <'build :s'>)}) ] ) ) (command.ShFunction name: test_help body: (command.BraceGroup children: [ (C {<assert_expansion>} {(SQ <'help qu'>)} {(SQ <'help query '>)}) (C {<assert_expansion>} {(SQ <'help bui'>)} {(SQ <'help build '>)}) (C {<assert_expansion>} {(SQ <'help shut'>)} {(SQ <'help shutdown '>)}) (C {<assert_expansion>} {(SQ <'help start'>)} {(SQ <'help startup_options '>)}) ] ) ) (command.ShFunction name: test_info body: (command.BraceGroup children: [ (C {<assert_expansion>} {(SQ <'info commi'>)} {(SQ <'info committed-heap-size '>)}) (C {<assert_expansion>} {(SQ <'info i'>)} {(SQ <'info install_base '>)}) (C {<assert_expansion>} {(SQ <'info --show_m'>)} {(SQ <'info --show_make_env '>)}) ] ) ) (C {<run_suite>} {(DQ <"Tests of bash completion of 'blaze' command.">)}) ] )