(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:help span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShFunction
      name: configure_help
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
              children: [
                (C {(test_config)} {(help.format)} {(html)})
                (C {(test_config)} {(help.htmlpath)} {(test) (Id.Lit_Other ':') (//html)})
                (C {(test_config)} {(browser.test.cmd)} {(./test-browser)})
                (C {(test_config)} {(help.browser)} {(test)})
              ]
            )
          ]
        )
    )
    (C {(test_expect_success)} {(DQ (setup))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:90) 
          (Token
            id: Id.Lit_Chars
            val: '\t# Just write out which page gets requested\n'
            span_id: 91
          ) (Token id:Id.Lit_Chars val:'\twrite_script test-browser <<-\\EOF\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'\techo "$*" >test-browser.log\n' span_id:93) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:94)
        )
      }
    )
    (C {(test_expect_success)} {(DQ ('works for commands and guides by default'))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:105) 
          (Token id:Id.Lit_Chars val:'\tconfigure_help &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\tgit help status &&\n' span_id:107) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "test://html/git-status.html" >expect &&\n'
            span_id: 108
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect test-browser.log &&\n' span_id:109) 
          (Token id:Id.Lit_Chars val:'\tgit help revisions &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\techo "test://html/gitrevisions.html" >expect &&\n' span_id:111) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect test-browser.log\n' span_id:112)
        )
      }
    )
    (C {(test_expect_success)} {(DQ ('--exclude-guides does not work for guides'))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:123) 
          (Token id:Id.Lit_Chars val:'\t>test-browser.log &&\n' span_id:124) (Token id:Id.Lit_Chars val:'\ttest_must_fail git help --exclude-guides revisions &&\n' span_id:125) 
          (Token id:Id.Lit_Chars val:'\ttest_must_be_empty test-browser.log\n' span_id:126)
        )
      }
    )
    (C {(test_expect_success)} {(DQ ('--help does not work for guides'))} 
      {
        (DQ ('\n') ('\tcat <<-EOF >expect &&\n') 
          ("\t\tgit: 'revisions' is not a git command. See 'git --help'.\n") ('\tEOF\n') ('\ttest_must_fail git revisions --help 2>actual &&\n') ('\ttest_i18ncmp expect actual\n')
        )
      }
    )
    (C {(test_done)})
  ]
)