(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."))})
  ]
)