(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ (Token id:Id.Lit_Chars val:'index file specific tests' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\techo 1 >a\n' span_id:23)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'bogus GIT_INDEX_VERSION issues warning' span_id:30))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:34) (Token id:Id.Lit_Chars val:'\t(\n' span_id:35) 
          (Token id:Id.Lit_Chars val:'\t\trm -f .git/index &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t\tGIT_INDEX_VERSION=2bogus &&\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\t\texport GIT_INDEX_VERSION &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t\tgit add a 2>&1 | sed "s/[0-9]//" >actual.err &&\n' span_id:39) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsed -e "s/ Z$/ /" <<-\\EOF >expect.err &&\n'
            span_id: 40
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\twarning: GIT_INDEX_VERSION set, but the value is invalid.\n'
            span_id: 41
          ) (Token id:Id.Lit_Chars val:'\t\t\tUsing version Z\n' span_id:42) 
          (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:43) (Token id:Id.Lit_Chars val:'\t\ttest_i18ncmp expect.err actual.err\n' span_id:44) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:45)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'out of bounds GIT_INDEX_VERSION issues warning' span_id:52))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:56) (Token id:Id.Lit_Chars val:'\t(\n' span_id:57) 
          (Token id:Id.Lit_Chars val:'\t\trm -f .git/index &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\t\tGIT_INDEX_VERSION=1 &&\n' span_id:59) 
          (Token id:Id.Lit_Chars val:'\t\texport GIT_INDEX_VERSION &&\n' span_id:60) (Token id:Id.Lit_Chars val:'\t\tgit add a 2>&1 | sed "s/[0-9]//" >actual.err &&\n' span_id:61) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsed -e "s/ Z$/ /" <<-\\EOF >expect.err &&\n'
            span_id: 62
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\twarning: GIT_INDEX_VERSION set, but the value is invalid.\n'
            span_id: 63
          ) (Token id:Id.Lit_Chars val:'\t\t\tUsing version Z\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:65) (Token id:Id.Lit_Chars val:'\t\ttest_i18ncmp expect.err actual.err\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:67)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'no warning with bogus GIT_INDEX_VERSION and existing index'
            span_id: 74
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:78) (Token id:Id.Lit_Chars val:'\t(\n' span_id:79) 
          (Token id:Id.Lit_Chars val:'\t\tGIT_INDEX_VERSION=1 &&\n' span_id:80) (Token id:Id.Lit_Chars val:'\t\texport GIT_INDEX_VERSION &&\n' span_id:81) 
          (Token id:Id.Lit_Chars val:'\t\tgit add a 2>actual.err &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\t\t>expect.err &&\n' span_id:83) 
          (Token id:Id.Lit_Chars val:'\t\ttest_i18ncmp expect.err actual.err\n' span_id:84) (Token id:Id.Lit_Chars val:'\t)\n' span_id:85)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'out of bounds index.version issues warning' span_id:92))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:96) (Token id:Id.Lit_Chars val:'\t(\n' span_id:97) 
          (Token id:Id.Lit_Chars val:'\t\tsane_unset GIT_INDEX_VERSION &&\n' span_id:98) (Token id:Id.Lit_Chars val:'\t\trm -f .git/index &&\n' span_id:99) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config --add index.version 1 &&\n'
            span_id: 100
          ) (Token id:Id.Lit_Chars val:'\t\tgit add a 2>&1 | sed "s/[0-9]//" >actual.err &&\n' span_id:101) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsed -e "s/ Z$/ /" <<-\\EOF >expect.err &&\n'
            span_id: 102
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t\twarning: index.version set, but the value is invalid.\n'
            span_id: 103
          ) (Token id:Id.Lit_Chars val:'\t\t\tUsing version Z\n' span_id:104) 
          (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:105) (Token id:Id.Lit_Chars val:'\t\ttest_i18ncmp expect.err actual.err\n' span_id:106) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:107)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'GIT_INDEX_VERSION takes precedence over config' span_id:114))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:118) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:119) (Token id:Id.Lit_Chars val:'\t\trm -f .git/index &&\n' span_id:120) 
          (Token id:Id.Lit_Chars val:'\t\tGIT_INDEX_VERSION=4 &&\n' span_id:121) (Token id:Id.Lit_Chars val:'\t\texport GIT_INDEX_VERSION &&\n' span_id:122) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit config --add index.version 2 &&\n'
            span_id: 123
          ) (Token id:Id.Lit_Chars val:'\t\tgit add a 2>&1 &&\n' span_id:124) 
          (Token id:Id.Lit_Chars val:'\t\techo 4 >expect &&\n' span_id:125) (Token id:Id.Lit_Chars val:'\t\ttest-index-version <.git/index >actual &&\n' span_id:126) 
          (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:127) (Token id:Id.Lit_Chars val:'\t)\n' span_id:128)
        )
      }
    )
    (C {(test_done)})
  ]
)