(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'fetching via git:// using core.gitproxy'>)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ <'setup remote repo'>)} 
      {
        (SQ <'\n'> <'\tgit init remote &&\n'> <'\t(cd remote &&\n'> <'\t echo content >file &&\n'> 
          <'\t git add file &&\n'> <'\t git commit -m one\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'setup proxy script'>)} 
      {
        (SQ <'\n'> <'\twrite_script proxy-get-cmd "$PERL_PATH" <<-\\EOF &&\n'> 
          <'\tread(STDIN, $buf, 4);\n'> <'\tmy $n = hex($buf) - 4;\n'> <'\tread(STDIN, $buf, $n);\n'> 
          <'\tmy ($cmd, $other) = split /\\0/, $buf;\n'> <'\t# drop absolute-path on repo name\n'> <'\t$cmd =~ s{ /}{ };\n'> <'\tprint $cmd;\n'> <'\tEOF\n'> 
          <'\n'> <'\twrite_script proxy <<-\\EOF\n'> <'\techo >&2 "proxying for $*"\n'> <'\tcmd=$(./proxy-get-cmd)\n'> 
          <'\techo >&2 "Running $cmd"\n'> <'\texec $cmd\n'> <'\tEOF\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'setup local repo'>)} 
      {
        (SQ <'\n'> <'\tgit remote add fake git://example.com/remote &&\n'> 
          <'\tgit config core.gitproxy ./proxy\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'fetch through proxy works'>)} 
      {
        (SQ <'\n'> <'\tgit fetch fake &&\n'> <'\techo one >expect &&\n'> 
          <'\tgit log -1 --format=%s FETCH_HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)