[PATCH 5 of 8] bundle2: lazily iterate over bundle part in test

Olle olle.lundberg at gmail.com
Sat Apr 12 17:21:14 CDT 2014


On Sun, Apr 13, 2014 at 12:08 AM, <pierre-yves.david at ens-lyon.org> wrote:

> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david at fb.com>
> # Date 1397242946 14400
> #      Fri Apr 11 15:02:26 2014 -0400
> # Node ID 279e77ed97be1e2b7ed7af7ed71bfd17f43c365a
> # Parent  372163682f8801aaf1986c819da6a5bb03bdec76
> bundle2: lazily iterate over bundle part in test
>
> We use to create a list to know the number of part in the bundle. This
> prevent
> any lazy reading as planned for real usage.
>
> The list creation is dropped. Some test output changed as debug output is
> interleaved with command output.
>
> diff --git a/tests/test-bundle2.t b/tests/test-bundle2.t
> --- a/tests/test-bundle2.t
> +++ b/tests/test-bundle2.t
> @@ -144,17 +144,18 @@ Create an extension to test bundle2 API
>    >     for key in sorted(params):
>    >         ui.write('- %s\n' % key)
>    >         value = params[key]
>    >         if value is not None:
>    >             ui.write('    %s\n' % value)
> -  >     parts = list(unbundler)
> -  >     ui.write('parts count:   %i\n' % len(parts))
> -  >     for p in parts:
> +  >     count = 0
> +  >     for p in unbundler:
> +  >         count += 1
>
for count, p in enumerate(unbundler):

>    >         ui.write('  :%s:\n' % p.type)
>    >         ui.write('    mandatory: %i\n' % len(p.mandatoryparams))
>    >         ui.write('    advisory: %i\n' % len(p.advisoryparams))
>    >         ui.write('    payload: %i bytes\n' % len(p.data))
> +  >     ui.write('parts count:   %i\n' % count)
>    > EOF
>    $ cat >> $HGRCPATH << EOF
>    > [extensions]
>    > bundle2=$TESTTMP/bundle2.py
>    > [server]
> @@ -344,11 +345,10 @@ Test part
>    Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko
> Ko.\x00\x00\x00\x00\x00+
> test:math\x00\x00\x00\x03\x02\x01\x02\x04\x01\x04\x07\x03pi3.14e2.72cookingraw\x00\x00\x00\x0242\x00\x00\x00\x00\x00\x10
>        test:ping\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol)
> (esc)
>
>
>    $ hg statbundle2 < ../parts.hg2
>    options count: 0
> -  parts count:   5
>      :test:empty:
>        mandatory: 0
>        advisory: 0
>        payload: 0 bytes
>      :test:empty:
> @@ -365,10 +365,11 @@ Test part
>        payload: 2 bytes
>      :test:ping:
>        mandatory: 0
>        advisory: 0
>        payload: 0 bytes
> +  parts count:   5
>
>    $ hg statbundle2 --debug < ../parts.hg2
>    start processing of HG20 stream
>    reading bundle2 stream parameters
>    options count: 0
> @@ -376,55 +377,55 @@ Test part
>    part header size: 17
>    part type: "test:empty"
>    part id: "0"
>    part parameters: 0
>    payload chunk size: 0
> +    :test:empty:
> +      mandatory: 0
> +      advisory: 0
> +      payload: 0 bytes
>    part header size: 17
>    part type: "test:empty"
>    part id: "1"
>    part parameters: 0
>    payload chunk size: 0
> +    :test:empty:
> +      mandatory: 0
> +      advisory: 0
> +      payload: 0 bytes
>    part header size: 16
>    part type: "test:song"
>    part id: "2"
>    part parameters: 0
>    payload chunk size: 178
>    payload chunk size: 0
> +    :test:song:
> +      mandatory: 0
> +      advisory: 0
> +      payload: 178 bytes
>    part header size: 43
>    part type: "test:math"
>    part id: "3"
>    part parameters: 3
>    payload chunk size: 2
>    payload chunk size: 0
> +    :test:math:
> +      mandatory: 2
> +      advisory: 1
> +      payload: 2 bytes
>    part header size: 16
>    part type: "test:ping"
>    part id: "4"
>    part parameters: 0
>    payload chunk size: 0
> -  part header size: 0
> -  end of bundle2 stream
> -  parts count:   5
> -    :test:empty:
> -      mandatory: 0
> -      advisory: 0
> -      payload: 0 bytes
> -    :test:empty:
> -      mandatory: 0
> -      advisory: 0
> -      payload: 0 bytes
> -    :test:song:
> -      mandatory: 0
> -      advisory: 0
> -      payload: 178 bytes
> -    :test:math:
> -      mandatory: 2
> -      advisory: 1
> -      payload: 2 bytes
>      :test:ping:
>        mandatory: 0
>        advisory: 0
>        payload: 0 bytes
> +  part header size: 0
> +  end of bundle2 stream
> +  parts count:   5
>
>  Test actual unbundling of test part
>  =======================================
>
>  Process the bundle
> @@ -507,15 +508,15 @@ The reply is a bundle
>
>  The reply is valid
>
>    $ hg statbundle2 < ../reply.hg2
>    options count: 0
> -  parts count:   1
>      :test:pong:
>        mandatory: 1
>        advisory: 0
>        payload: 0 bytes
> +  parts count:   1
>
>  Support for changegroup
>  ===================================
>
>    $ hg unbundle $TESTDIR/bundles/rebase.hg
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>



-- 
Olle
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20140413/4fb04a36/attachment.html>


More information about the Mercurial-devel mailing list