(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:'git p4 retrieve job info' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./lib-git-p4.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'start p4d' span_id:18))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) 
          (Token id:Id.Lit_Chars val:'\tstart_p4d\n' span_id:23)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add p4 jobs' 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\tp4_add_job TESTJOB-A &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\t\tp4_add_job TESTJOB-B\n' span_id:37) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:38)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add p4 files' span_id:45))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:49) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 50
          ) (Token id:Id.Lit_Chars val:'\t(\n' span_id:51) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:52) (Token id:Id.Lit_Chars val:'\t\t>file1 &&\n' span_id:53) 
          (Token id:Id.Lit_Chars val:'\t\tp4 add file1 &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\t\tp4 submit -d "Add file 1"\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:56)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check log message of changelist with no jobs' span_id:63))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:67) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 68
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:69) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:70) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:71) 
          (Token id:Id.Lit_Chars val:'\t\tgit init . &&\n' span_id:72) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 clone --use-client-spec --destination="$git" //depot@all &&\n'
            span_id: 73
          ) (Token id:Id.Lit_Chars val:'\t\tcat >expect <<-\\EOF &&\n' span_id:74) 
          (Token id:Id.Lit_Chars val:'\t\tAdd file 1\n' span_id:75) (Token id:Id.Lit_Chars val:'\t\t[git-p4: depot-paths = "//depot/": change = 1]\n' span_id:76) 
          (Token id:Id.Lit_Chars val:'\n' span_id:77) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:78) 
          (Token id:Id.Lit_Chars val:'\t\tgit log --format=%B >actual &&\n' span_id:79) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:80) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:81)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add TESTJOB-A to change 1' span_id:88))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:92) (Token id:Id.Lit_Chars val:'\t(\n' span_id:93) 
          (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:94) (Token id:Id.Lit_Chars val:'\t\tp4 fix -c 1 TESTJOB-A\n' span_id:95) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:96)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check log message of changelist with one job' span_id:103))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:107) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 108
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:109) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:110) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:111) 
          (Token id:Id.Lit_Chars val:'\t\tgit init . &&\n' span_id:112) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 clone --use-client-spec --destination="$git" //depot@all &&\n'
            span_id: 113
          ) (Token id:Id.Lit_Chars val:'\t\tcat >expect <<-\\EOF &&\n' span_id:114) 
          (Token id:Id.Lit_Chars val:'\t\tAdd file 1\n' span_id:115) (Token id:Id.Lit_Chars val:'\t\tJobs: TESTJOB-A\n' span_id:116) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t[git-p4: depot-paths = "//depot/": change = 1]\n'
            span_id: 117
          ) (Token id:Id.Lit_Chars val:'\n' span_id:118) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:119) 
          (Token id:Id.Lit_Chars val:'\t\tgit log --format=%B >actual &&\n' span_id:120) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:121) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:122)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'add TESTJOB-B to change 1' span_id:129))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:133) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:134) (Token id:Id.Lit_Chars val:'\t\tcd "$cli" &&\n' span_id:135) 
          (Token id:Id.Lit_Chars val:'\t\tp4 fix -c 1 TESTJOB-B\n' span_id:136) (Token id:Id.Lit_Chars val:'\t)\n' span_id:137)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'check log message of changelist with more jobs' span_id:144))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:148) 
          (Token
            id: Id.Lit_Chars
            val: '\tclient_view "//depot/... //client/..." &&\n'
            span_id: 149
          ) (Token id:Id.Lit_Chars val:'\ttest_when_finished cleanup_git &&\n' span_id:150) 
          (Token id:Id.Lit_Chars val:'\t(\n' span_id:151) (Token id:Id.Lit_Chars val:'\t\tcd "$git" &&\n' span_id:152) 
          (Token id:Id.Lit_Chars val:'\t\tgit init . &&\n' span_id:153) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tgit p4 clone --use-client-spec --destination="$git" //depot@all &&\n'
            span_id: 154
          ) (Token id:Id.Lit_Chars val:'\t\tcat >expect <<-\\EOF &&\n' span_id:155) 
          (Token id:Id.Lit_Chars val:'\t\tAdd file 1\n' span_id:156) (Token id:Id.Lit_Chars val:'\t\tJobs: TESTJOB-A TESTJOB-B\n' span_id:157) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t[git-p4: depot-paths = "//depot/": change = 1]\n'
            span_id: 158
          ) (Token id:Id.Lit_Chars val:'\n' span_id:159) (Token id:Id.Lit_Chars val:'\t\tEOF\n' span_id:160) 
          (Token id:Id.Lit_Chars val:'\t\tgit log --format=%B >actual &&\n' span_id:161) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect actual\n' span_id:162) 
          (Token id:Id.Lit_Chars val:'\t)\n' span_id:163)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'kill p4d' span_id:170))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:174) 
          (Token id:Id.Lit_Chars val:'\tkill_p4d\n' span_id:175)
        )
      }
    )
    (C {(test_done)})
  ]
)