(command.CommandList children: [ (C {(Id.Lit_Other ':')} { (braced_var_sub token: (Token id:Id.VSub_Name val:DIR span_id:55) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonEquals arg_word: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:57) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(cd)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:61) command_list: (command.CommandList children: [ (C {(dirname)} { (DQ (braced_var_sub token: (Token id: Id.VSub_Name val: BASH_SOURCE span_id: 66 ) 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: (Token id:Id.Redir_GreatAnd val:'>&' span_id:98) fd: -1 arg_word: {(2)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:100) ) (command.Sentence child: (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:102) arg_word: {(1)} ) terminator: (Token id:Id.Op_Semi val:';' span_id:105) ) ] ) ] ) (C {(Id.Lit_Other ':')} { (braced_var_sub token: (Token id:Id.VSub_Name val:COMMAND_ALIASES span_id:116) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonEquals arg_word:{(bazel)}) ) } ) (C {(Id.Lit_Other ':')} { (braced_var_sub token: (Token id:Id.VSub_Name val:COMPLETION span_id:128) 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: (Token id:Id.VSub_Name val:PACKAGE_PATH_PREFIX span_id:143) 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: (Token id:Id.VSub_Name val:COMMAND_ALIASES span_id:343) 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: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:359) ) ('echo ') ($ Id.VSub_DollarName '$i') ("'") (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:363) ) ) } ) ] ) ) (C {(echo)} {(-en)} {(DQ ($ Id.VSub_DollarName '$input') ("'"))}) ] ) (command.Simple words: [{(bash)} {(--norc)} {(-i)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:390) fd: 2 arg_word: {(DQ ($ Id.VSub_DollarName '$stderr_file'))} ) ] ) (C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s/^\\(' span_id:403)) (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:406) command_list: (command.CommandList children: [ (C {(array_join)} {(DQ (Id.Lit_Other '\\') ('|'))} { (braced_var_sub token: (Token id:Id.VSub_Name val:COMMAND_ALIASES span_id:415) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ] ) ) ) (SQ (Token id:Id.Lit_Chars val:'\\) /\\1 /' span_id:423)) } ) ] 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: (Token id:Id.VSub_Number val:3 span_id:458) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) (command.ForEach iter_name: i iter_words: [ { (braced_var_sub token: (Token id:Id.VSub_Name val:COMMAND_ALIASES span_id:470) 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: (Token id:Id.Left_DollarParen val:'$(' span_id:507) 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: (Token id:Id.VSub_Number val:3 span_id:571) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) } ) (C {(local)} {(Id.Lit_VarLike 'temp_file=') (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:580) 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: (Token id:Id.VSub_Name val:COMMAND_ALIASES span_id:600) 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: (Token id:Id.Redir_Great val:'>' span_id:635) 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: (Token id:Id.VSub_Name val:PACKAGE_PATH_PREFIX span_id:675) 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: (Token id:Id.Redir_Great val:'>' span_id:712) fd: -1 arg_word: {(video/streamer2/BUILD)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:715) 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: (Token id:Id.VSub_Name val:PACKAGE_PATH_PREFIX span_id:747) 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: (Token id:Id.Redir_Great val:'>' span_id:763) fd: -1 arg_word: { (braced_var_sub token: (Token id:Id.VSub_Name val:PACKAGE_PATH_PREFIX span_id:765) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{}) ) (video/streamer2/stuff/BUILD) } ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:770) 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: (Token id:Id.Redir_Great val:'>' span_id:795) fd: -1 arg_word: {(video/streamer2/names/BUILD)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:798) 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: (Token id:Id.Redir_Great val:'>' span_id:826) fd: -1 arg_word: {(dash/BUILD)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:829) 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: (Token id:Id.Left_DollarParen val:'$(' span_id:912) command_list: (command.CommandList children: [ (C {(eval)} { (DQ (_bazel__) (${ Id.VSub_Name function) (' ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:921) ) (${ Id.VSub_Name ws) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:925) ) (' ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:927)) (${ Id.VSub_Name displacement) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:931)) (' ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:933) ) (${ Id.VSub_Name current) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:937) ) (' ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:939)) (${ Id.VSub_Name type) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:943)) ) } ) ] ) ) } ) (C {(enable_errexit)}) (C {(assert_equals)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:954) 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 (Token id:Id.Lit_Chars val:'task_lib ' span_id:1023))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:ta' span_id:1027))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label)} {(SQ (Token id:Id.Lit_Chars val:'with_special+_,=-.@~chars ' span_id:1045))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:with_s' span_id:1049))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ (video/))} {(label)} {(SQ (Token id:Id.Lit_Chars val:'task_lib ' span_id:1073))} {(SQ (Token id:Id.Lit_Chars val:'streamer2:ta' span_id:1077))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ (video/))} {(label)} {(SQ )} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:ta' span_id:1099))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ (video/))} {(label)} {(SQ (Token id:Id.Lit_Chars val:'with_special+_,=-.@~chars ' span_id:1118))} {(SQ (Token id:Id.Lit_Chars val:'streamer2:with_s' span_id:1122))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label)} { (SQ (Token id: Id.Lit_Chars val: 'token_bucket_test \\ntoken_bucket_binary ' span_id: 1145 ) ) } {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:token_bucket_' span_id:1151))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label)} {(SQ (Token id:Id.Lit_Chars val:'stuff ' span_id:1169))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2/stuff:s' span_id:1173))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label)} {(SQ )} { (SQ (Token id: Id.Lit_Chars val: 'video/streamer2:comment_build_target_1o' span_id: 1198 ) ) } ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label)} {(SQ (Token id:Id.Lit_Chars val:'comment_build_target_2new ' span_id:1216))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:comment_build_target_2' span_id:1220))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-test)} {(SQ (Token id:Id.Lit_Chars val:'token_bucket_test ' span_id:1243))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:to' span_id:1247))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-test)} {(SQ )} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:token_bucket_t_1o' span_id:1273))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-test)} {(SQ (Token id:Id.Lit_Chars val:'token_bucket_test ' span_id:1291))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:token_bucket_t' span_id:1295))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-test)} {(SQ (Token id:Id.Lit_Chars val:'token_bucket_test ' span_id:1330))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:' span_id:1334))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-test)} {(SQ (Token id:Id.Lit_Chars val:'all ' span_id:1356))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:a' span_id:1360))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-bin)} {(SQ (Token id:Id.Lit_Chars val:'token_bucket_binary ' span_id:1383))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:to' span_id:1387))} ) (command.Simple words: [ {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-bin)} { (SQ (Token id: Id.Lit_Chars val: 'token_bucket_test \\ntoken_bucket_binary ' span_id: 1419 ) ) } {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:to' span_id:1423))} ] 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 id:Id.Lit_Chars val:'token_bucket_test ' span_id:1455))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:token_bucket_t' span_id:1459))} ] 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 id:Id.Lit_Chars val:'token_bucket_binary ' span_id:1491))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:to' span_id:1495))} ] 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 (Token id:Id.Lit_Chars val:'video/streamer2:comment_run_target_1o' span_id:1521))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-bin)} {(SQ (Token id:Id.Lit_Chars val:'comment_run_target_2new ' span_id:1539))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:comment_run_target_2' span_id:1543))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-bin)} {(SQ (Token id:Id.Lit_Chars val:'JavaBinary ' span_id:1566))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:J' span_id:1570))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-bin)} {(SQ (Token id:Id.Lit_Chars val:'pybin ' span_id:1593))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:py' span_id:1597))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label-bin)} {(SQ (Token id:Id.Lit_Chars val:'AnotherJavaBinary ' span_id:1620))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:A' span_id:1624))} ) (C {(assert_expansion_function)} {(DQ (expand_rules_in_package))} {(DQ )} {(label)} {(SQ (Token id:Id.Lit_Chars val:'foo ' span_id:1647))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2/names:' span_id:1651))} ) ] ) ) (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 (Token id:Id.Lit_Chars val:'{clean,add}' span_id:2346))} {(DQ ('clean '))} {(DQ (clea))} ) (C {(assert_expansion_function)} {(DQ (complete_pattern))} {(DQ )} {(SQ (Token id:Id.Lit_Chars val:'command|{abc,def}' span_id:2371))} {(DQ ('abc '))} {(DQ (ab))} ) (C {(assert_expansion_function)} {(DQ (complete_pattern))} {(DQ )} {(SQ (Token id:Id.Lit_Chars val:'command|{abc,def}' span_id:2396))} {(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 (Token id:Id.Lit_Chars val:'task_lib ' span_id:2451))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:ta' span_id:2455))} ) (C {(assert_expansion_function)} {(DQ (complete_pattern))} {(DQ )} {(label)} {(SQ (Token id:Id.Lit_Chars val:'with_special+_,=-.@~chars ' span_id:2473))} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:with_s' span_id:2477))} ) (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 (Token id:Id.Lit_Chars val:'task_lib ' span_id:2524))} {(SQ (Token id:Id.Lit_Chars val:'streamer2:ta' span_id:2528))} ) (C {(assert_expansion_function)} {(DQ (complete_pattern))} {(DQ (video/))} {(label)} {(SQ )} {(SQ (Token id:Id.Lit_Chars val:'video/streamer2:ta' span_id:2550))} ) (C {(assert_expansion_function)} {(DQ (complete_pattern))} {(DQ (video/))} {(label)} {(SQ (Token id:Id.Lit_Chars val:'with_special+_,=-.@~chars ' span_id:2569))} {(SQ (Token id:Id.Lit_Chars val:'streamer2:with_s' span_id:2573))} ) ] ) ) (command.ShFunction name: test_basic_subcommand_expansion body: (command.BraceGroup children: [ (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:bui span_id:2597))} {(SQ (Token id:Id.Lit_Chars val:'build ' span_id:2603))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:hel span_id:2610))} {(SQ (Token id:Id.Lit_Chars val:'help ' span_id:2616))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:shut span_id:2623))} {(SQ (Token id:Id.Lit_Chars val:'shutdown ' span_id:2629))} ) ] ) ) (command.ShFunction name: test_common_options body: (command.BraceGroup children: [ (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:--h span_id:2649))} {(SQ (Token id:Id.Lit_Chars val:--host_jvm_ span_id:2655))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:--host_jvm_a span_id:2662))} {(SQ (Token id:Id.Lit_Chars val:'--host_jvm_args=' span_id:2668))} ) ] ) ) (command.ShFunction name: test_build_options body: (command.BraceGroup children: [ (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build --keep_g' span_id:2688))} {(SQ (Token id:Id.Lit_Chars val:'build --keep_going ' span_id:2694))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build --expe' span_id:2701))} {(SQ (Token id:Id.Lit_Chars val:'build --experimental_' span_id:2707))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'help --cros' span_id:2718))} {(SQ (Token id:Id.Lit_Chars val:'help --cros' span_id:2724))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build --test_stra' span_id:2731))} {(SQ (Token id:Id.Lit_Chars val:'build --test_strategy=' span_id:2737))} ) ] ) ) (command.ShFunction name: test_query_options body: (command.BraceGroup children: [ (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'query --out' span_id:2753))} {(SQ (Token id:Id.Lit_Chars val:'query --output=' span_id:2759))} ) (C {(make_packages)}) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'query video/streamer2:ta' span_id:2774))} {(SQ (Token id:Id.Lit_Chars val:'query video/streamer2:task_lib ' span_id:2780))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'query //video/streamer2:ta' span_id:2787))} {(SQ (Token id:Id.Lit_Chars val:'query //video/streamer2:task_lib ' span_id:2792))} ) ] ) ) (command.ShFunction name: test_run_options body: (command.BraceGroup children: [ (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run --keep_g' span_id:2816))} {(SQ (Token id:Id.Lit_Chars val:'run --keep_going ' span_id:2822))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run --expe' span_id:2829))} {(SQ (Token id:Id.Lit_Chars val:'run --experimental_' span_id:2835))} ) ] ) ) (command.ShFunction name: test_tristate_option body: (command.BraceGroup children: [ (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build --nocache_test_result' span_id:2855))} {(SQ (Token id:Id.Lit_Chars val:'build --nocache_test_results ' span_id:2861))} ) ] ) ) (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: (Token id:Id.VSub_Name val:PACKAGE_PATH_PREFIX span_id:2894) 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 (Token id:Id.Lit_Chars val:'build vide' span_id:2945))} {(SQ (Token id:Id.Lit_Chars val:'build video/' span_id:2951))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/' span_id:2958))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/' span_id:2964))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/t' span_id:2971))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/testing/' span_id:2977))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/s' span_id:2984))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/stuff/' span_id:2990))} ) (C {(make_empty_packages)}) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/t' span_id:3006))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/testing' span_id:3012))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/s' span_id:3019))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/stuff' span_id:3025))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build //vide' span_id:3037))} {(SQ (Token id:Id.Lit_Chars val:'build //video/' span_id:3043))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build //video/' span_id:3050))} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/' span_id:3056))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/t' span_id:3063))} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/testing' span_id:3069))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/s' span_id:3076))} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/stuff' span_id:3082))} ) ] ) ) (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: (Token id:Id.Redir_Great val:'2>' span_id:3107) fd: 2 arg_word: {(/dev/null)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:3112) ) ] ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build vide' span_id:3123))} {(SQ (Token id:Id.Lit_Chars val:'build vide' span_id:3129))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/' span_id:3136))} {(SQ (Token id:Id.Lit_Chars val:'build video/' span_id:3142))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/t' span_id:3149))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/t' span_id:3155))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/s' span_id:3162))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/s' span_id:3168))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build //vide' span_id:3180))} {(SQ (Token id:Id.Lit_Chars val:'build //video/' span_id:3186))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build //video/' span_id:3193))} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/' span_id:3199))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/t' span_id:3206))} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/testing/' span_id:3212))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/s' span_id:3219))} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2/stuff/' span_id:3225))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build streamer2/t' span_id:3237))} {(SQ (Token id:Id.Lit_Chars val:'build streamer2/testing/' span_id:3243))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build streamer2/s' span_id:3250))} {(SQ (Token id:Id.Lit_Chars val:'build streamer2/stuff/' span_id:3256))} ) ] ) ) (command.ShFunction name: test_target_expansion body: (command.BraceGroup children: [ (C {(make_packages)}) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:ta' span_id:3298))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:task_lib ' span_id:3304))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:with_s' span_id:3316))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:with_special+_,=-.@~chars ' span_id:3322))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:to' span_id:3338))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:token_bucket' span_id:3344))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/s' span_id:3352))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/stuff' span_id:3358))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/stuff:s' span_id:3366))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/stuff:stuff ' span_id:3372))} ) (C {(assert_expansion)} { (SQ (Token id: Id.Lit_Chars val: 'build video/streamer2:comment_build_target_1o' span_id: 3384 ) ) } {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:comment_build_target_1o' span_id:3390))} ) (C {(assert_expansion)} { (SQ (Token id: Id.Lit_Chars val: 'build video/streamer2:comment_build_target_2' span_id: 3398 ) ) } {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:comment_build_target_2new ' span_id:3404))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'test video/streamer2:to' span_id:3416))} {(SQ (Token id:Id.Lit_Chars val:'test video/streamer2:token_bucket_test ' span_id:3422))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'test video/streamer2:token_bucket_t_1o' span_id:3434))} {(SQ (Token id:Id.Lit_Chars val:'test video/streamer2:token_bucket_t_1o' span_id:3440))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'test video/streamer2:token_bucket_t' span_id:3448))} {(SQ (Token id:Id.Lit_Chars val:'test video/streamer2:token_bucket_test ' span_id:3454))} ) (C {(assert_expansion_error_not_contains)} {(SQ (Token id:Id.Lit_Chars val:'test video/streamer2:match' span_id:3462))} {(SQ (Token id:Id.Lit_Chars val:'syntax error' span_id:3468))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'test video/streamer2:' span_id:3492))} {(SQ (Token id:Id.Lit_Chars val:'test video/streamer2:token_bucket_test ' span_id:3498))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:a' span_id:3509))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:all ' span_id:3515))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:to' span_id:3527))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:token_bucket_binary ' span_id:3533))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:to' span_id:3549))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:token_bucket_' span_id:3555))} { (SQ (Token id: Id.Lit_Chars val: 'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=true' span_id: 3561 ) ) } ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:token_bucket_t' span_id:3577))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:token_bucket_test ' span_id:3583))} {(SQ (Token id:Id.Lit_Chars val:'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=1' span_id:3589))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:to' span_id:3605))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:token_bucket_binary ' span_id:3611))} { (SQ (Token id: Id.Lit_Chars val: 'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=false' span_id: 3617 ) ) } ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:to' span_id:3633))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:token_bucket_binary ' span_id:3639))} {(SQ (Token id:Id.Lit_Chars val:'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=0' span_id:3645))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:to' span_id:3661))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:token_bucket_binary ' span_id:3667))} { (SQ (Token id: Id.Lit_Chars val: 'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=junk' span_id: 3673 ) ) } ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:to' span_id:3689))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:token_bucket_binary ' span_id:3695))} {(SQ (Token id:Id.Lit_Chars val:'BAZEL_COMPLETION_ALLOW_TESTS_FOR_RUN=' span_id:3701))} ) (C {(assert_expansion)} { (SQ (Token id: Id.Lit_Chars val: 'run video/streamer2:comment_run_target_1o' span_id: 3713 ) ) } {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:comment_run_target_1o' span_id:3719))} ) (C {(assert_expansion)} { (SQ (Token id: Id.Lit_Chars val: 'run video/streamer2:comment_run_target_2' span_id: 3727 ) ) } {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:comment_run_target_2new ' span_id:3733))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:J' span_id:3745))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:JavaBinary ' span_id:3751))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:py' span_id:3763))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:pybin ' span_id:3769))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:A' span_id:3781))} {(SQ (Token id:Id.Lit_Chars val:'run video/streamer2:AnotherJavaBinary ' span_id:3787))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/names:' span_id:3799))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2/names:foo ' span_id:3805))} ) (command.Simple words: [ {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build dash:m' span_id:3822))} { (SQ (Token id: Id.Lit_Chars val: 'build dash:mia-bid-multiplier-mixer-module ' span_id: 3828 ) ) } ] 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: (Token id:Id.Redir_Great val:'2>' span_id:3853) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build streamer2:ta' span_id:3865))} {(SQ (Token id:Id.Lit_Chars val:'build streamer2:task_lib ' span_id:3871))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build streamer2:to' span_id:3879))} {(SQ (Token id:Id.Lit_Chars val:'build streamer2:token_bucket' span_id:3885))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build streamer2/s' span_id:3893))} {(SQ (Token id:Id.Lit_Chars val:'build streamer2/stuff' span_id:3899))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build streamer2/stuff:s' span_id:3907))} {(SQ (Token id:Id.Lit_Chars val:'build streamer2/stuff:stuff ' span_id:3913))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:ta' span_id:3925))} {(SQ (Token id:Id.Lit_Chars val:'build video/streamer2:ta' span_id:3931))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2:ta' span_id:3943))} {(SQ (Token id:Id.Lit_Chars val:'build //video/streamer2:task_lib ' span_id:3949))} ) ] ) ) (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: (Token id:Id.Redir_Great val:'2>' span_id:3974) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build :ta' span_id:3982))} {(SQ (Token id:Id.Lit_Chars val:'build :task_lib ' span_id:3988))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build :to' span_id:3996))} {(SQ (Token id:Id.Lit_Chars val:'build :token_bucket' span_id:4002))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build :checks/th' span_id:4014))} {(SQ (Token id:Id.Lit_Chars val:'build :checks/thingy ' span_id:4020))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build s' span_id:4028))} {(SQ (Token id:Id.Lit_Chars val:'build stuff' span_id:4034))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'build :s' span_id:4046))} {(SQ (Token id:Id.Lit_Chars val:'build :s' span_id:4052))} ) ] ) ) (command.ShFunction name: test_help body: (command.BraceGroup children: [ (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'help qu' span_id:4072))} {(SQ (Token id:Id.Lit_Chars val:'help query ' span_id:4078))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'help bui' span_id:4085))} {(SQ (Token id:Id.Lit_Chars val:'help build ' span_id:4091))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'help shut' span_id:4098))} {(SQ (Token id:Id.Lit_Chars val:'help shutdown ' span_id:4104))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'help start' span_id:4111))} {(SQ (Token id:Id.Lit_Chars val:'help startup_options ' span_id:4117))} ) ] ) ) (command.ShFunction name: test_info body: (command.BraceGroup children: [ (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'info commi' span_id:4137))} {(SQ (Token id:Id.Lit_Chars val:'info committed-heap-size ' span_id:4143))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'info i' span_id:4150))} {(SQ (Token id:Id.Lit_Chars val:'info install_base ' span_id:4156))} ) (C {(assert_expansion)} {(SQ (Token id:Id.Lit_Chars val:'info --show_m' span_id:4163))} {(SQ (Token id:Id.Lit_Chars val:'info --show_make_env ' span_id:4169))} ) ] ) ) (C {(run_suite)} {(DQ ("Tests of bash completion of 'blaze' command."))}) ] )