Patchwork [stable] discovery: test coverage for issue4438 / 86c35b7ae300 / 73cfaa348650

login
register
mail settings
Submitter Mads Kiilerich
Date Nov. 6, 2014, 1:37 a.m.
Message ID <0d2b5ab58d270d62e4c2.1415237823@localhost.localdomain>
Download mbox | patch
Permalink /patch/6595/
State Accepted
Headers show

Comments

Mads Kiilerich - Nov. 6, 2014, 1:37 a.m.
# HG changeset patch
# User Mads Kiilerich <madski@unity3d.com>
# Date 1415234909 -3600
#      Thu Nov 06 01:48:29 2014 +0100
# Branch stable
# Node ID 0d2b5ab58d270d62e4c227289c95cdf6cdee83a9
# Parent  c35ffa4249cab47a1e089a30bc16fc65a0727f48
discovery: test coverage for issue4438 / 86c35b7ae300 / 73cfaa348650

The randomness in the discovery protocol made this problem hard to reproduce.
The test mocks random.sample to make sure we hit the problem every time. The
set iteration also order made the output unstable ... but with the issue fixed,
it is stable.
Pierre-Yves David - Nov. 6, 2014, 11:42 p.m.
On 11/06/2014 01:37 AM, Mads Kiilerich wrote:
> # HG changeset patch
> # User Mads Kiilerich <madski@unity3d.com>
> # Date 1415234909 -3600
> #      Thu Nov 06 01:48:29 2014 +0100
> # Branch stable
> # Node ID 0d2b5ab58d270d62e4c227289c95cdf6cdee83a9
> # Parent  c35ffa4249cab47a1e089a30bc16fc65a0727f48
> discovery: test coverage for issue4438 / 86c35b7ae300 / 73cfaa348650

Perfect!

pushed to the clowncopter.

(on default)

Patch

diff --git a/tests/bundles/issue4438-r1.hg b/tests/bundles/issue4438-r1.hg
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1a4ff9cdc645b534b25f909544295ecdd0c28c31
GIT binary patch
literal 4151
zc$|e-X*3&(@{hHIsMcDvMeSS~LeWx`*pezD6~w+oLKRhFX>slQ8f)!>*jly5zO}?I
zwJ+7$T06De(%Zh?^FF-u{vY1|cjnBT`OVBZGau&689iO_Z7mCo3Rn{*W{R?6C{Y2>
z9KHPY|6zqKbx%F0M*~n#6Ab7E{2Thgw6*{-!2f_C!1Xo&mUXQFAeIS$7umaJ0{|GT
z-EBZ7eb<M<EqkR<Tfkt!KbdhH%tWRWRtO-IRwTK|5i;KAe+!27&w)m7Ij1@?8gZVe
z$;Yc10r5tcNLjobf)JXp@jj{sz!5`*gII-9;gD{541|vtra=?M7?LVRi%5<*E~kp=
z!wUhfTL3x@It>tnPP4E8!V3)sK^TKUjKMSo5Sn7m<N`j-IEXRZ9hL?0j|cDp#-q<u
zB-e<+|1}BYzg^IO7%oIIzc!|Cq8J)dGT6WhqSK(Y&E$Yzt4Nhx8!>gd2Q&RJoGs=!
zFi!&(Pi~O6jW-g@%#3s8g&RScE53B!2z3pHS42&OV(%D_hDHk2Ds1l7(F2_tgD+K%
zjdsbnXk2oV{K#(L`5?cqz5*WddU>nLrrmYb$3gn!AZbV)RZ11!(VGJZGc3iM0%le@
z6}B$7K$J~`dwg?gK5;T2%to1^x4=8husdb_qxSe;+<5^y1%FFUdEB`ndr%;1D;NUg
z)Hz&>3zWFbNXtaet{<$$9;|aH8eM9A{<KETA}}`Kp%Cy6v<Pd^oE~V9OLkbxisObv
zQD#DM3M%zt8Eq>R7uYKePccnl?;*DQ!BVBTBbvr?XoZQkHppwnt{R?akBT)(D{}JF
zVPte~c0jgt`+th_6r^PbveE-I*lB5)1iCcn83TFa?9H$K{g61p{fh~j8)hzK9g1Ax
zch)UXUmd}}kK`*Vwn(VlBVX)ESL09gm}zR-lxx(dyM+@pu!*YYmD>z7^w-1p!{YZt
znLdYeIdmWF0R&bKnE>9ocMk=<b3e_VQKr6RZF+W@EjWcV`*5%T$LEXDoMCjT^|kuP
z^MBGa2^t?I$MGc`qMJgeq)8lv4dPN-55IY0;(n{a)!A0!Aj7AYXGoXxAn9|%Ck4ct
z-a|Td6~yjqy-%ppN9X-=v2=V?$S9wRp^?lJRUfpKYzBX+(${C?2a#+7%1=KnaWf6{
zrRa<NPZ76`BQ||myeZWF;EO8E3t#O=sasjSf2V7q*ttR`2F{*_o_F-pnbE&Bi)?u1
zkqWy2j7#Vfd|c74$f!#}Eq+z80*gfjA@nSK2mNINQw&7&*)(cncPG!<z6$HNsQjm>
zJLpVYdjEuRd9Sv%c{0UIGunEN+ttk&U6S%{xVV^9Yxm>M*C`!Co&H4|VM?#s`;Eg-
zeRpe(wF;ajs)QqY8}>mSP-sA+<}%7W+|>-R$aUW&d`rgNkUqyZM<;yJn7<Uyov2L)
z;RvS)amsN{J&uA+dq#3ccw0T2FB$?HOqL|!@+m!3<tGl>gJ7v*YABPSrktF7^glK_
zXejg`)o!8xkBz1gOZ(oo(qv__JlsIY#Xa9}+vUT%If*4XRvFGOdN;4KPYDSUv^0u@
zGy(BiutFwfjExB=yFxAcm(A{y&zv?%HZJ0`icw**&ywQ$rUFQMC&(!4RM^_IXh!s=
zbl{}KNUKD=4FcLyh)9p=G|RMG@MX?&D4bz!mFQ52zetKf%{GSjo2NSmiC({uj6S=v
zce_%d$BTQTu++=kEGs}yPmfHwP>l#>Vz)(1y<-2`M*r=mB#;M8breW?pVv~wL!~rz
zonpW9Wb}W}z!)S(=uH|1HKYkX^%!Rp41UVgM{iFHrr`~a(|`&xMTa}^_Bk|b?~7;M
z^9sH7vD|UYb|}k~&o**nuV%!zscmVWCw8nyU9~n|B)i=|iCshG9X(lG-PB!Cp<T|m
z(bYN6b%zQsnG%W+FME6Y5?O;sWJ6<fxMk_aKtIrRX999+#$4i$Sx&WRuo4J@A||4W
z=HkcCK<pI+tVB^PWOBr8-yfEZ-;35&-W%-->tfZpH-#HgjOBPZVq6lvGd%lwrA71-
z=h(GnF6<eDK`yJn6;Zi2im?zB@zsZF3*NPOdF-(AU=kZy5LDH2n*l{kN7nu>SAaaN
zPt>o23M?`WYQBTiyx7RJ9TsZ2YN~zQ0GWX8j0K3^5<7=Y)Ll*Z5OwLU?(IIPMw2St
zRZQd%HUNuhaCdi`lqe32R&b_tZO6t0zvw@B&s)r7AJ6<6;@)a~YFg>Wu1U*s)Gmau
zd(2IP$EBO8)CVSVFb0R$+0Hn6=l$H~usz6&y)mK|@y+u_2t89&R2cmoGr}{%Gy|t5
zJ*#P5Q>(ir_uGb1skK7(+kE}{kyuMJn&a|OI)mzlheJ<~{{HKjNl;rGnYI2M_T+<V
z=gzt$eD#MSQ==x;oHJZ4=7G&xQq%rKitXcuLN|PTPjfezIo<QeeS)G5es9&DDCKi6
zlut*Q)D&%oo^C39Z2YF>J^s<tWrwi`kteOg-;_>LNI6vFsXGTBCDQcGzRtRtlUXS`
zKanN4ZakK3SAorWt}k2**`g~yLn07~c36z{d{75e?(1{UZ=y@ksT<MW=?r}FHx?z0
zCZ;`a2H59nD}$)be{nI4xEt0F3!`v`iYx}Nn`=f)BPvVNo>%+;C$vsk%s)OjPnn!;
z>R6Q-d*$k25;Z{C3jJX$6R-j&-mH8+dza0@zPVBss1-YAIbAlNX_HF~xgc_t8f*Gp
zqnC)J(ZlA7UZEhYCnNHMDqGFV+r?9kIi7^VKi~IB7pbn7m5MvdKTPt&^4sP*%uI#o
zAf>OLzTx25C6fXUES85tV`D#x&5I}wK1cFpT=>gKXD><ATk#8==2wp5W$k5U)dsZt
zhPvt51$V{P!O;>+M|zJq|GB*Rz<)Gt%zre!l%mD|<^C%!aQ!gO;R@jc&M&%McRBFU
zZ%%En+N<FA_M-SU6S}Ilhib~j_?mi1yLMWyJWP!|J{qa<pdOaN>$VJEobb=6RN1|P
zR*d0~^%Y+|HWwf);W1pB41bkcK-riCLl`Pz4JD7=IovjHS<{w8UhaD7gog|j6_x*y
zg6}Y&_UV6Tk_%D%zF_<K*@Iq}Jp1unBT0Qp8IF4qg(8dnCr&{-7oQBv(0A$+Et5*b
z1%G$-#29>kXcV*Ll#asAE7~Cql=R>%Y3Espu!!njH_i>Gmo}D&3*oGwM6ibQoNq_6
z<I3+U%j-_U$=^tc>HF$yt1lXAD5RZ}pYKLsue_`ShF|9JmzPP8OuF{k-8fpzGVG-9
z74EEx!~Im;QRq47BoFLJ13x#OnY$G9D!KEgZOSmGH)z4ZYzzD5mW}vMw|Qub`3ny;
z<5Ib{;9TKdiAMpzS4Kwx(yf`BWvCguI%qd79>~O=RDc;zx{7(EiPYkd&<34z@*E2h
zUY2#OHtcNY?YvDRJIc`hwOP*c=flK_ip$I#8w!%^I$JfBt9;Y#ieTpVkCvwGep)K&
z-|GMagYM_<f~8ye%KOpzQ@>Iq#ZP?a#ileoQB!94AiYva@*|Et3O_fo!zJ&CK+tJ?
z!SZ(8Z2HXgSk&qHutH2qV9fRpdF<zsbKXnk^RfvFXO{fVCwe750+CnRoRLJ(Vdv3K
z!}yo#&jk$<Ur$a3&<MqebSo-+t6)||zs#x4lV|;pw|-yN2jgu%=v>M6MXy&&OXpb3
z)n8c6)WsO+<k_OdzM>sC%hIZ9Dq_^r+x^CvcjaU+%<C0F4+zu}90oN#qI7VDL=l<_
z`a>8MX*{PWpCz%?ai?frNfzjXfxh0k1xfd{3g4B;cOxK*Ngq^5XxWrj>DZ$m#Z_OL
zn;V(6;I(kd=bk1Ki%d_kg9{aB`qS1<t5e3KTJ_B><LX|&HeKrsdeZnu1rJeySog;>
zqZuwl4wlLJkE$MXA|!bhe{h+J8DmJN+uEb%k)vgTFEZRD=W3!oFISdXOo6CngU_OV
zQQkME9`I1MmUQlMTKK0M^_@tSYu6synmLc0t3Q90<aHe(0$G^$CWQU@`3Z`VrVTUg
z+gEB*YVHymhrTivUg44d9qxGbiNB_$C+~XDw|hKXad;N$U|{82?k+HBh?@eA%T@%X
zqX^<f1VZ+6W3aqlRD7%Ta4qm#QA6d|@RI_EOyX{v16SCP--1H5mS@5<%je%ECG~K5
z7rC{~`_<8o`8~@Ust;p<#kC3ZDLd+A@I&==9S6kql8bvwg(@*a&@+_SA5P{O8Evsn
z+?(m2O{k=8_C946;7YCV^t8$<B#|Z&CM!4hC(=T(!qXhd!;D4RkX?V&*RD5P+Z3}k
z$<=5jl#`7>R~H*4%b2$z*zJMpWA+b_w>9tH%7$(&mOs0DE-Xy$6SjZ(oC}E`nhy$m
zsjI1jOMdfaXWnP8`0*xw%t*mVbEPT<t9qBdr9z5|ovN#fCDcgayc^5vjgpOh9wSUU
zc4a`+QR}snU2mx@95U=8s!D>bb<%Q4Dg19P?fS6oF<0~%%E)iuXNv?|CA_X2DL!)G
zeb4nMaCj?j_%-mnAk}O7U5LHaB4hY~GtXKpRrfAQUL^%RC3;2s@khGs6SGrr;FD_%
z>umv~lYkja&R^NU=>n2&)C@$D>txJ<>z(m}VKD;p-C$YrT>!j@@}=WFe9n2{>@<L-
zhy%7n@@QZ1MQ)y2r5eoFm*3r{V;`%=dW~k-eAHTLYTlCfG&Zar=~;PGUBe+f*}2t<
z9&dMH-X?$T+gjZ1m`R#`D;3T&;9xo$)3`3oujHz2g0W%gHM0_JS-lO~mN`t*K3|-C
z9n(5wYlA!VPS-`%S!WO@zO~kd_*M6W+do2=Ne&xZURqg^d)Qk)ro3bDb4YnNAS@Mi
zT@2l1ohn=0SlP0Zcey+&Dk*3mou}P`i?1wS?^GPgcbT_7OaA@U=(|`IV{ol$U1cb)
za1Hyk6SX>Lv+#=mAU88XPY(O-QC$hgaLn?Kw7wDz(V5%%+B^)xS_H2SxO~n2*`%R8
zdfF@9rMat^a2nEWN9Hb(h@l=?W)cr|4pnO^zq>3iyeRBMtiC>-h)=y}o2EIIsx8ca
zks!^zRsl5FXsPg2BP7oSxywsQ>wOkUWAp@#zif*6RYP&t)f2sGN!v@>dVBIhwz#fS
ze&{?E)-5Z=KMN~b>a#+_kDJ|dR?U|UWM#9dbziv~-s7xO)S^ApBf4v!&xnH?^aiG<
z(qQmpFV9)U=tA5T&p=&KOJ^=fYTOBz=wO3?Y>ZRf)0^3zex5vp!CE|4`YL7e3rn4e
zxEq;l)GZJb(=R1$m`hfvP(la5ln0$k7aeD2N~kZM7COvrz!P!YGn)5GJ05#xdm+=K
RfAudWKjakQp>bu?_!oo5x5@wj

diff --git a/tests/bundles/issue4438-r2.hg b/tests/bundles/issue4438-r2.hg
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f89d1acab0cf8450460493a452bffaf60a448305
GIT binary patch
literal 3864
zc$|e-X*d)N*B&BcpRtrsk%=+3nX&hzBHLufHU^C)WXQf`PqHg}jBQZHG8p^5mB*eX
z*@lrNMY5A6l+^q5yg$F|`@Z`+*L~mDIp@ducV9<W2Lac>KTt)e-xbH+JqGV50~iK=
z|G)Ui`EV{N=_x=lG?XD6kO%k&jA#HafB_Ep-@)*QMzzOn{;?Da`X3ck0E`0v5uj6O
zJa{!L8O_weXsgh{2p8ARf{()m0m9G1gl>r$U=$u?j=NzLI$mf;+(y$TbjT&q;8Xx>
zXeIyvPDP8Ribe{EOo)LlT;R|K4n#VIf;s?aOCpr1(aeerd1ph<CIA3uX#XB@HuN9j
zRQRtwGj0#~*G^1cK^T#d2(qC40XiNWic#np7UNXNDm(y?Y#0RMnL6Udnfg02F#_m#
zF%X<l(1vxDHI+fZ&Q`(Z7OWJckQonD5a&o0=Ln?@P?+o$oFa5zu%<Hg^w<kwwZY_2
z$y$f!VaUubfh@QP0wL(6M6y*Fdx}t^P$rz+Fc>0-9~aY;soQqW%8hRYZa#ea5-M8W
z@Z^KH&3eZf_EO<leavCV-@Awg5`TxrRK5B=Ht-VaFj8LbM?Wx|+6Hk2NIj77wyeJY
z3}zdqagP{njP*FGywCC%jHyEQvb}lkHIDip`eR}C#cQd^%AqSpDJkfzbmp)21BzU}
zOWFs7!nF`zpaw6rkgQh(5HJaAPK4JCb)&tx)FD01Ds;%Lly05p%e;o-3;>-97!eD(
z6{n#mdS!W<J{*p;H53ELUu2YSF%pr_J12Zz+D4s`03XW>?+oP<hTC-hU>FBw$;(|$
zIZw%wm-Ky1+~1*p7d$=v3-F6UorAmMfV<<yevHHmqg=iRqg^MtOtMDM7qJXSH`zyY
z^e;bK0cl6QiyB+h5WC4CSMs$BymXT%=(_2Kv4aCT<-1|3II0z@D<VQy;&!A3>6e96
zHL<R=zrcUk-@~4DbM=20F{~}3&S>^7-8s{~uJMT;kJ^A4&E*R5(4_UAm2Q%S)dqy3
z%st@fFq`&Wu2EY$i5#dISk6A9^VQ5hxL0B<wd`vw_%`L-Ir1gqPwj;M7`|10AgEg8
zRu~`!1^K@#lel#zhPyo)oL|3wd_5ncli*p(+8n;35R3ao8jxIdj(hze1*M}UyJN0X
zIjXFWKYmyIzPEIKq76ZJo0>u`6@Wy-9IXU0KE_38ZcY<UPgS|}R6eTiAT;-9(gNk>
z1!K6nlCddhSl9zyC~f;%&!D7FYuS(qFR*{e*z1YIOVWZ6XRKyylJ(dQLosg3M>orl
z|2H<CvA#^+Ai;2qY&TIM)E=l`W?J2X5+7E1nyPi<sQiSF&G`8<H)GjPMY!p2gd-K{
zpz?mW6k~O&bFRaDo`<D_@2yVp>3R^zyxdIF7zl(Lq&>vazo~TwbIO}`+?XWi_`_IC
zxh6+kXVVFWuBouAV}apCtY_{-F$royFUImPrSJeno@-cxl5c$!bsJ4aR$YDlfEFtO
zHq%VgQIVB*=!d=}eVxC)QZj$zT*GmGhX3Lrzj#BdVUhKodXVnx=s+{GjkzyIPd!p&
z?tbYEBxJwg7u+(Z1Rj(R&MKv+pVE%_vjc{%x%F6(l%jfVrhI<r>*F-5>wv2ukcp}9
zx9??ateJ)_+{4Q%4yDZxa$B<(9PRLmL384*+2^?+mOie*Mp`n6Lvl(6uLwE}$<+T}
z89t}Q!~||(0S|fb^!M!v%?HcuulZ)O@Z|E44N7R@4$jEuVwPkLlpGI(6mXZh2aMrW
zF9d^`_cmp_WtxCk@8$6llN5k(UM9FRv}2J2zRfAH6q8pygsC3VbuFQ?HyDPWo{aKb
z0(Wuc8bz6CbAP=(nMFu9cgp{S!)dUwbLg^kLL$xIKJD1N&PDh9wznbO#*8c|LP;2k
zMtTM_sy7^vyAwd3OLn<A&|Sh5fnwoac}dl;pq}r1Bt+R3P7Fn}*@UZ+2X~Tp*EghF
zWarZOHMmx-qBNnG0m*UPF{66Sy;8}gQFz<hSvRFloN*-7Ft7`l$Q_P_XQH4cmE`H!
zXCi&^0>7E0Pt#{2pUBBw=8;8SQ-bIo|K7SI;xpBViMFS?Na@Zt?5H*P^^1u7E$s*E
z25p-&oy=mWn1VUepHQHMa^w!*o7g(V?cSy4&DoL1KiBP;K%(6-3?qbv*trfdph(z+
z1ufxzuaR04?HLpMH=~$GGHpv(LEpg5R+sif6eAGyiGE=vWL|9JUXQR(+pZm{Q0H^5
zZOYIRDAAe%YJC?W(q6?i=4x$0Tzs{D?X8_xl&=M|x>?yMgeD~wKrKs*s$ugI70r3#
zoE`bn7Cbgve0Y%gMaJyD@nBoYcVna?Ve&+YTNb&V7RbspzS$#PWwog+hk(^60-IJ3
z(j#4~HXBOrW~hyO5Q}!JT_-9Zx~6KW#^#%vV)T9Z3`%=ltw};(f(?D~I3sVrfvMaG
z)AU}a5`5ZGKud$cYimDAztW#I2^wK;L8X&|4ftOsvV!BYGS0COJsz3kE7{^%+I813
z6SE=P7IXgWXF`cZTNhiWe_)3ul1HHv13fbc^L-GxY3=FFiB*&;TOBglNJXlESf&(@
z9SLz(evq!OrZYu>THDoEzwV1#uF`|Ow%#Cjm#D<Yt$1XKM|t|+nK1sA*~mE<%r<Ch
z#@JU=R{0tS%Zuo+RM?-Uy-jtZbxq22rA)bDpj>~V5_aZKf&x50{$XL2Kg^wVedT{N
zS^nK-=>B(*oP5ZO#CRE~Ra@w6ew*_Ffw0(N=g(6W>~+6jWn$CLLR>>1qS!7Cw*^S=
zP#3Q|ZkEzc&)zi%u99r?CiPty4%)T=UqxnHU=w@$+=Z{Qz5Sl|S)63baVz}8F0R+q
zLVLBviEqZ~;zgydYIGM8DO2kuG+8v?-k|tvjH(M~uN7=Opwmk}6cGa0y|35~+)Iz)
z%rl#tB0!o%jaM~+H)tkicO#vw`1WgE1hoi7t}n_yyMGARH#lu%%?O!k<p|&WC<kq{
zT`LZj!+psM4X2%^jL+In*pVM&*hA_m^W9hXDSnmmT?Qr6BV$-|vlZ5l_3U<Es%oXg
zM0O_L-v4BSBfY!W6tceP>u6Yw#xfn@B`yw{(+Mqi?g`+o^dH})57JvJ@U3}D!$=|P
z#6h_89lhk&MX<lM2JdOSk*%dko+WhMMuLWr(I{QAI<pthfDBT8YG^$gjmh%4XMrD5
zbyhNUC}2B2e(xwF&|L3?;UR72tg8&oj(Mf(|JCnd!j{6jsZ(1eS?8HUSbG*CyG*mo
z&{j1ewNxAYOhezGTQzB^xH&&=)0V7ye(uyt(QA>4iR*rtrPHxgnRLO@pR2%|I_dcp
zZ@lAlt@b#+@EpHYQve%FeTzyWX=YA&;926s<R7zBwyr)iZ+_`E4d&C*9&OBS1xZmq
z4_2auFT+acEz-Ql?hE+i;`%aD<{b1ABMLIyTJ@v1uI%AoEb3coeO7Q{kbA4|=OVhV
z&-RpsZ0@Vavb_<$Gs{K4a?*<=tu+p^mGh~E{5{I3V@jq^!3cKk8;g47ee3<u8R@mN
z7s4HITJH^fgswi<Tvd&AQ@ZPAMo(LYz6git#w`*D+UV^~aLgitXk(02lOWZ%OU*&e
zi2FY4<pX?i0WB33E<rPG_2G>fZoFI6_TK3!<)FrENt1u0#fj|RYQ@;xi0cb-6~xx_
zoUbh=i*YWPLoiC4KiIEA+7<7#Tb>|D5FCX|vkPvgJb%@PfVV=X=wJH^mQI*Y?>(vt
zEHu1nc0q99dWIz0U10g!9u!Y}^|wt|889yH4(;ZCejZxYCA{ND4s${^M&+&DV}E~_
zeb8Kubaw9(4sX>J=?$rz?Cg$`F(czu&m)<KuvQ7n$x=IWIwdgCZb2+ycXIjDEB6bO
z+?V%X7I=T4;v}OhG`^_Y<L9)uo&{F6y?wkbzZZat3He1lLhatvE<K=b+$k?~e96e0
zk`q*MM!dHTN4_zdug2UPP)QTwfBw`?s5f`6yd*B7-yb7by*E$#+$ptPJF}hc$lzv{
ztIbSzvhte@3@N{Up3V>ZnO3OueyiCaE6M2`|4ipw9SE<pMB-43OG?_Eub@xwYM>=m
z%Q2?YI>9S#D>6H;3nQZtBu|s#W8a)&&J2w7zy+bb#dI?Z9ivsGyM~vk#YG%y8|EIg
z81Kys(@NNt+j=w;BvoL!CA=~oYlMh<sPT%rKI};IU7+UgWgR6`<z3i1jx3|EcA^_L
z$1#ECyt1&-k#aqkpwVUzRZF{ZeQM^hHU1+NVl3I0b%dzm^l`tWSMUBl{)eBx@R)?!
zar-2XqPbK8+xE#capOvkPT^;&5{KAvkj$ex?`%5a<kjIW^*)_Xf_luW&r4Z{bKU=B
zeU4eI@`Y_yLkku^k+e4>%UuB-p(ajxy3Kdj`)!{Y^0j1+?OiJo?2GC&QjndedE)!-
zPNS^Mr&TKNo17TVid$WwjF;URTJal-^E)`tqUzx!K=At5%-wPf8=0)JqWcXr7%Ore
zC9v`BA+%47F+<S{mFri9em0}Au-^&P=lTZ7;o9|G;YqPt?*%0mQVbX75D8PjCNH(P
z&%d<C>!t8xt~Xhf>My^!CnS+slRxc?GIn`yX8&@&E9x=fQZ3Hk+`6vrPJ5rahYyZ<
zjY2Su25Z+TNayEG*2+2u$__&FmZakMHB<bC&xCY&SLhmUa<_N{xQ%C6>{`<AuF1#$
zklCt9`buq-p4flPaXY%GaK6^`GD>4j?WiOnf$YiC--r|bTt9T;clw^M)(AOQ?NmRp
z>75ac3e=m}alxx4`6uRIyLLF!mfliqZZ!@;rK6y<23B$AQPU4?CcjMI@Q<Jd=vFB(
z*wjLmo{-9fSV2=IPiud>PxqIA*n*}<NnlUQ>6rd6@`=0cE`mjqkWSII$hYr$y+XLj
zkc5QOG@ZF-RW_Fs^92nzM`Og=;nn<~WR2ad7~(D|-RbxSrABu@$L#lcZ!HzW<Ue2V
Fe*mD{D#`!=

diff --git a/tests/test-setdiscovery.t b/tests/test-setdiscovery.t
--- a/tests/test-setdiscovery.t
+++ b/tests/test-setdiscovery.t
@@ -357,3 +357,52 @@  Test actual protocol when pulling one ne
   $ cat errors.log
 
   $ cd ..
+
+
+Issue 4438 - test coverage for 3ef893520a85 issues.
+
+  $ mkdir issue4438
+  $ cd issue4438
+#if false
+generate new bundles:
+  $ hg init r1
+  $ for i in `seq 101`; do hg -R r1 up -qr null && hg -R r1 branch -q b$i && hg -R r1 ci -qmb$i; done
+  $ hg clone -q r1 r2
+  $ for i in `seq 10`; do hg -R r1 up -qr null && hg -R r1 branch -q c$i && hg -R r1 ci -qmc$i; done
+  $ hg -R r2 branch -q r2change && hg -R r2 ci -qmr2change
+  $ hg -R r1 bundle -qa $TESTDIR/bundles/issue4438-r1.hg
+  $ hg -R r2 bundle -qa $TESTDIR/bundles/issue4438-r2.hg
+#else
+use existing bundles:
+  $ hg clone -q $TESTDIR/bundles/issue4438-r1.hg r1
+  $ hg clone -q $TESTDIR/bundles/issue4438-r2.hg r2
+#endif
+
+Set iteration order could cause wrong and unstable results - fixed in 73cfaa348650:
+
+  $ hg -R r1 outgoing r2 -T'{rev} '
+  comparing with r2
+  searching for changes
+  101 102 103 104 105 106 107 108 109 110  (no-eol)
+
+The case where all the 'initialsamplesize' samples already were common would
+give 'all remote heads known locally' without checking the remaining heads -
+fixed in 86c35b7ae300:
+
+  $ cat >> $TESTTMP/unrandomsample.py << EOF
+  > import random
+  > def sample(population, k):
+  >     return sorted(population)[:k]
+  > random.sample = sample
+  > EOF
+
+  $ cat >> r1/.hg/hgrc << EOF
+  > [extensions]
+  > unrandomsample = $TESTTMP/unrandomsample.py
+  > EOF
+
+  $ hg -R r1 outgoing r2 -T'{rev} '
+  comparing with r2
+  searching for changes
+  101 102 103 104 105 106 107 108 109 110  (no-eol)
+  $ cd ..