Nguyễn Thái Ngọc Duy  <pclo...@gmail.com> writes:

> start_httpd is supposed to be at the beginning of the test file, not
> the middle of it. The "test_seq" line in "no shallow lines.." test is
> updated to compensate missing refs that are there in t5537, but not in
> the new t5539.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>
> ---
>  On Thu, Feb 13, 2014 at 8:22 AM, Duy Nguyen <pclo...@gmail.com> wrote:
>  > On Thu, Feb 13, 2014 at 5:12 AM, Jeff King <p...@peff.net> wrote:
>  >> lib-httpd was never designed to be included from anywhere except the
>  >> beginning of the file. But that wouldn't be right for t5537, because it
>  >> wants to run some of the tests, even if apache setup fails. The right
>  >> way to do it is probably to have lib-httpd do all of its work in a lazy
>  >> prereq. I don't know how clunky that will end up, though; it might be
>  >> simpler to just move the shallow http test into one of the http-fetch
>  >> scripts.
>  >
>  > I'll move it out later.
>  
>  Here it is, on top of nd/http-fetch-shallow-fix because the new test
>  in t5537 is picky and a simple merge resolution wouldn't do it.

Will queue; thanks.

>
>  t/t5537-fetch-shallow.sh               | 57 -----------------------
>  t/t5539-fetch-http-shallow.sh (new +x) | 82 
> ++++++++++++++++++++++++++++++++++
>  2 files changed, 82 insertions(+), 57 deletions(-)
>
> diff --git a/t/t5537-fetch-shallow.sh b/t/t5537-fetch-shallow.sh
> index 098f220..3ae9092 100755
> --- a/t/t5537-fetch-shallow.sh
> +++ b/t/t5537-fetch-shallow.sh
> @@ -173,61 +173,4 @@ EOF
>       )
>  '
>  
> -if test -n "$NO_CURL" -o -z "$GIT_TEST_HTTPD"; then
> -     say 'skipping remaining tests, git built without http support'
> -     test_done
> -fi
> -
> -. "$TEST_DIRECTORY"/lib-httpd.sh
> -start_httpd
> -
> -test_expect_success 'clone http repository' '
> -     git clone --bare --no-local shallow 
> "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
> -     git clone $HTTPD_URL/smart/repo.git clone &&
> -     (
> -     cd clone &&
> -     git fsck &&
> -     git log --format=%s origin/master >actual &&
> -     cat <<EOF >expect &&
> -7
> -6
> -5
> -4
> -3
> -EOF
> -     test_cmp expect actual
> -     )
> -'
> -
> -# This test is tricky. We need large enough "have"s that fetch-pack
> -# will put pkt-flush in between. Then we need a "have" the server
> -# does not have, it'll send "ACK %s ready"
> -test_expect_success 'no shallow lines after receiving ACK ready' '
> -     (
> -             cd shallow &&
> -             for i in $(test_seq 10)
> -             do
> -                     git checkout --orphan unrelated$i &&
> -                     test_commit unrelated$i &&
> -                     git push -q "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" \
> -                             refs/heads/unrelated$i:refs/heads/unrelated$i &&
> -                     git push -q ../clone/.git \
> -                             refs/heads/unrelated$i:refs/heads/unrelated$i ||
> -                     exit 1
> -             done &&
> -             git checkout master &&
> -             test_commit new &&
> -             git push  "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" master
> -     ) &&
> -     (
> -             cd clone &&
> -             git checkout --orphan newnew &&
> -             test_commit new-too &&
> -             GIT_TRACE_PACKET="$TRASH_DIRECTORY/trace" git fetch --depth=2 &&
> -             grep "fetch-pack< ACK .* ready" ../trace &&
> -             ! grep "fetch-pack> done" ../trace
> -     )
> -'
> -
> -stop_httpd
>  test_done
> diff --git a/t/t5539-fetch-http-shallow.sh b/t/t5539-fetch-http-shallow.sh
> new file mode 100755
> index 0000000..94553e1
> --- /dev/null
> +++ b/t/t5539-fetch-http-shallow.sh
> @@ -0,0 +1,82 @@
> +#!/bin/sh
> +
> +test_description='fetch/clone from a shallow clone over http'
> +
> +. ./test-lib.sh
> +
> +if test -n "$NO_CURL"; then
> +     skip_all='skipping test, git built without http support'
> +     test_done
> +fi
> +
> +. "$TEST_DIRECTORY"/lib-httpd.sh
> +start_httpd
> +
> +commit() {
> +     echo "$1" >tracked &&
> +     git add tracked &&
> +     git commit -m "$1"
> +}
> +
> +test_expect_success 'setup shallow clone' '
> +     commit 1 &&
> +     commit 2 &&
> +     commit 3 &&
> +     commit 4 &&
> +     commit 5 &&
> +     commit 6 &&
> +     commit 7 &&
> +     git clone --no-local --depth=5 .git shallow &&
> +     git config --global transfer.fsckObjects true
> +'
> +
> +test_expect_success 'clone http repository' '
> +     git clone --bare --no-local shallow 
> "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
> +     git clone $HTTPD_URL/smart/repo.git clone &&
> +     (
> +     cd clone &&
> +     git fsck &&
> +     git log --format=%s origin/master >actual &&
> +     cat <<EOF >expect &&
> +7
> +6
> +5
> +4
> +3
> +EOF
> +     test_cmp expect actual
> +     )
> +'
> +
> +# This test is tricky. We need large enough "have"s that fetch-pack
> +# will put pkt-flush in between. Then we need a "have" the server
> +# does not have, it'll send "ACK %s ready"
> +test_expect_success 'no shallow lines after receiving ACK ready' '
> +     (
> +             cd shallow &&
> +             for i in $(test_seq 15)
> +             do
> +                     git checkout --orphan unrelated$i &&
> +                     test_commit unrelated$i &&
> +                     git push -q "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" \
> +                             refs/heads/unrelated$i:refs/heads/unrelated$i &&
> +                     git push -q ../clone/.git \
> +                             refs/heads/unrelated$i:refs/heads/unrelated$i ||
> +                     exit 1
> +             done &&
> +             git checkout master &&
> +             test_commit new &&
> +             git push  "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" master
> +     ) &&
> +     (
> +             cd clone &&
> +             git checkout --orphan newnew &&
> +             test_commit new-too &&
> +             GIT_TRACE_PACKET="$TRASH_DIRECTORY/trace" git fetch --depth=2 &&
> +             grep "fetch-pack< ACK .* ready" ../trace &&
> +             ! grep "fetch-pack> done" ../trace
> +     )
> +'
> +
> +stop_httpd
> +test_done
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to