(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: 'test disabling of git-over-http in clone/fetch'
                  span_id: 6
                )
              )
            }
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY') (/lib-proto-disable.sh))})
    (C {(.)} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY') (/lib-httpd.sh))})
    (C {(start_httpd)})
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'create git-accessible repo' span_id:33))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:37) 
          (Token
            id: Id.Lit_Chars
            val: '\tbare="$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&\n'
            span_id: 38
          ) (Token id:Id.Lit_Chars val:'\ttest_commit one &&\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\tgit --bare init "$bare" &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\tgit push "$bare" HEAD &&\n' span_id:41) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -C "$bare" config http.receivepack true\n'
            span_id: 42
          )
        )
      }
    )
    (C {(test_proto)} {(DQ ('smart http'))} {(http)} 
      {(DQ ($ Id.VSub_DollarName '$HTTPD_URL') (/smart/repo.git))}
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'curl redirects respect whitelist' span_id:63))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:67) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail env GIT_ALLOW_PROTOCOL=http:https \\\n'
            span_id: 68
          ) (Token id:Id.Lit_Chars val:'\t\tgit clone "$HTTPD_URL/ftp-redir/repo.git" 2>stderr &&\n' span_id:69) 
          (Token id:Id.Lit_Chars val:'\t{\n' span_id:70) (Token id:Id.Lit_Chars val:'\t\ttest_i18ngrep "ftp.*disabled" stderr ||\n' span_id:71) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_i18ngrep "your curl version is too old"\n'
            span_id: 72
          ) (Token id:Id.Lit_Chars val:'\t}\n' span_id:73)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'curl limits redirects' span_id:80))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:84) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git clone "$HTTPD_URL/loop-redir/smart/repo.git"\n'
            span_id: 85
          )
        )
      }
    )
    (C {(stop_httpd)})
    (C {(test_done)})
  ]
)