(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'Test run command'>)}
          spids: [13]
        )
      ]
      spids: [13]
    )
    (C {(.)} {(./test-lib.sh)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(hello-script)} spids:[26])
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: {(DQ ('#!') ($ VSub_Name '$SHELL_PATH') ('\n') ('cat hello-script\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: T
          spids: [29]
        )
      ]
    )
    (SimpleCommand
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(empty)} spids:[37])]
    )
    (C {(test_expect_success)} {(SQ <'start_command reports ENOENT'>)} 
      {(SQ <'\n'> <'\ttest-run-command start-command-ENOENT ./does-not-exist\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'run_command can run a command'>)} 
      {
        (SQ <'\n'> <'\tcat hello-script >hello.sh &&\n'> <'\tchmod +x hello.sh &&\n'> 
          <'\ttest-run-command run-command ./hello.sh >actual 2>err &&\n'> <'\n'> <'\ttest_cmp hello-script actual &&\n'> <'\ttest_cmp empty err\n'>
        )
      }
    )
    (C {(test_expect_success)} {(POSIXPERM)} {(SQ <'run_command reports EACCES'>)} 
      {
        (SQ <'\n'> <'\tcat hello-script >hello.sh &&\n'> <'\tchmod -x hello.sh &&\n'> 
          <'\ttest_must_fail test-run-command run-command ./hello.sh 2>err &&\n'> <'\n'> <'\tgrep "fatal: cannot exec.*hello.sh" err\n'>
        )
      }
    )
    (C {(test_expect_success)} {(POSIXPERM) (Lit_Comma ',') (SANITY)} 
      {(SQ <'unreadable directory in PATH'>)} 
      {
        (SQ <'\n'> <'\tmkdir local-command &&\n'> 
          <'\ttest_when_finished "chmod u+rwx local-command && rm -fr local-command" &&\n'> <'\tgit config alias.nitfol "!echo frotz" &&\n'> <'\tchmod a-rx local-command &&\n'> <'\t(\n'> 
          <'\t\tPATH=./local-command:$PATH &&\n'> <'\t\tgit nitfol >actual\n'> <'\t) &&\n'> <'\techo frotz >expect &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[115])
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {
              (DQ ('preloaded output of a child\n') ('Hello\n') ('World\n') 
                ('preloaded output of a child\n') ('Hello\n') ('World\n') ('preloaded output of a child\n') ('Hello\n') ('World\n') 
                ('preloaded output of a child\n') ('Hello\n') ('World\n')
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: T
          spids: [118]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ <'run_command runs in parallel with more jobs available than tasks'>)} 
      {
        (SQ <'\n'> 
          <
'\ttest-run-command run-command-parallel 5 sh -c "printf \\"%s\\n%s\\n\\" Hello World" 2>actual &&\n'
          > <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'run_command runs in parallel with as many jobs as tasks'>)} 
      {
        (SQ <'\n'> 
          <
'\ttest-run-command run-command-parallel 4 sh -c "printf \\"%s\\n%s\\n\\" Hello World" 2>actual &&\n'
          > <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ <'run_command runs in parallel with more tasks than jobs available'>)} 
      {
        (SQ <'\n'> 
          <
'\ttest-run-command run-command-parallel 3 sh -c "printf \\"%s\\n%s\\n\\" Hello World" 2>actual &&\n'
          > <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[176])
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: 
            {
              (DQ ('preloaded output of a child\n') ('asking for a quick stop\n') 
                ('preloaded output of a child\n') ('asking for a quick stop\n') ('preloaded output of a child\n') ('asking for a quick stop\n')
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: T
          spids: [179]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'run_command is asked to abort gracefully'>)} 
      {
        (SQ <'\n'> <'\ttest-run-command run-command-abort 3 false 2>actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[205])
        (HereDoc
          op_id: Redir_DLessDash
          fd: 16777215
          body: {(DQ ('no further jobs available\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: T
          spids: [208]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'run_command outputs '>)} 
      {
        (SQ <'\n'> 
          <
'\ttest-run-command run-command-no-jobs 3 sh -c "printf \\"%s\\n%s\\n\\" Hello World" 2>actual &&\n'
          > <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)