From 42d0ee8302c361a0e3bde7bc59858eda94bc13a4 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 6 May 2006 00:15:54 -0700 Subject: [PATCH] binary diff and apply: testsuite. Signed-off-by: Junio C Hamano --- t/t4012-diff-binary.sh | 85 +++++++++++++++++++++++++++++++++++++++++ t/test4012.png | Bin 0 -> 5660 bytes 2 files changed, 85 insertions(+) create mode 100755 t/t4012-diff-binary.sh create mode 100644 t/test4012.png diff --git a/t/t4012-diff-binary.sh b/t/t4012-diff-binary.sh new file mode 100755 index 0000000000..bdd95c0d3d --- /dev/null +++ b/t/t4012-diff-binary.sh @@ -0,0 +1,85 @@ +#!/bin/sh +# +# Copyright (c) 2006 Junio C Hamano +# + +test_description='Binary diff and apply +' + +. ./test-lib.sh + +test_expect_success 'prepare repository' \ + 'echo AIT >a && echo BIT >b && echo CIT >c && echo DIT >d && + git-update-index --add a b c d && + echo git >a && + cat ../test4012.png >b && + echo git >c && + cat b b >d' + +test_expect_success 'diff without --binary' \ + 'git-diff | git-apply --stat --summary >current && + cmp current - <<\EOF + a | 2 +- + b | Bin + c | 2 +- + d | Bin + 4 files changed, 2 insertions(+), 2 deletions(-) +EOF' + +test_expect_success 'diff with --binary' \ + 'git-diff --binary | git-apply --stat --summary >current && + cmp current - <<\EOF + a | 2 +- + b | Bin + c | 2 +- + d | Bin + 4 files changed, 2 insertions(+), 2 deletions(-) +EOF' + +# apply needs to be able to skip the binary material correctly +# in order to report the line number of a corrupt patch. +test_expect_success 'apply detecting corrupt patch correctly' \ + 'git-diff | sed -e 's/-CIT/xCIT/' >broken && + if git-apply --stat --summary broken 2>detected + then + echo unhappy - should have detected an error + (exit 1) + else + echo happy + fi && + detected=`cat detected` && + detected=`expr "$detected" : "fatal.*at line \\([0-9]*\\)\$"` && + detected=`sed -ne "${detected}p" broken` && + test "$detected" = xCIT' + +test_expect_success 'apply detecting corrupt patch correctly' \ + 'git-diff --binary | sed -e 's/-CIT/xCIT/' >broken && + if git-apply --stat --summary broken 2>detected + then + echo unhappy - should have detected an error + (exit 1) + else + echo happy + fi && + detected=`cat detected` && + detected=`expr "$detected" : "fatal.*at line \\([0-9]*\\)\$"` && + detected=`sed -ne "${detected}p" broken` && + test "$detected" = xCIT' + +test_expect_success 'initial commit' 'git-commit -a -m initial' + +# Try removal (b), modification (d), and creation (e). +test_expect_success 'diff-index with --binary' \ + 'echo AIT >a && mv b e && echo CIT >c && cat e >d && + git-update-index --add --remove a b c d e && + tree0=`git-write-tree` && + git-diff --cached --binary >current && + git-apply --stat --summary current' + +test_expect_success 'apply binary patch' \ + 'git-reset --hard && + git-apply --binary --index sqc34tLUx=XqS5RmRtNT#adw*x2I9+WOA_7_h002OwrmCoqmhk@u9uE2`GlnCC7C6=# zDvE$&03+ax@KXu}T7&PQYT^X|JZJfDVEBKL^+hXjz16goaObeGK-d!bT|z-<6`i+| zvA2S|tE-)xH$cJD&dS@)meJ4A+kx?wgB_!anwIXVEt?wvKoO>7>Bb1@wA( z;IT7g@ymCuJiLhbPfJr|i5H4;)mjji#JOK|U)hzPX8i5ho0BF*QXf6}{V_RmjX^h8 zBX9QX=3g&vi&AGE{oEKtLP%V(w6-2<2(l+h-nm!Hmw@v)rNU2(v7(ZQ1OQ+h$~Qc!!FTf57o zu@)h>i~DEs@uRKF6UyxAS&3G<*BiMjfLv_bQk;T##&v(4!pgG<+=YYE3cc(axf8D9 zEEhtoFt%jRU1M;}oLSBkd3UE+Bp6q6dcVEAvKKT8h56DsbkcsuTR<;ULeL+`fsARWL=kI0d{qqjDcA8beq&VqMECGM`@nbtHGW~M zVgSM};mmy>`nnA#(QCN?Baj(X%|*?D80!1maWLA8wjEi;G#0;OVGMoH)_Pcp$ery0 zjs>Q-gtJ$l@)T}w%&Z^$)Y2wNbTYowJmp2ztd9e|I_BXcEKR<=vvYxUi1R{eofw4( zMn>91(?+TULadq}xsDau-@@Y(1<-!VbRi6SK0dN5AE40;n;cI&kg4VgwFoy&V_kkw zMpno-g;(Q79&+8Y7g|7Mw8fTt*t^$t#3+Cmsj7Wxt-F|Tn&i!&)O9T_bFYg7{O{1~ zI_7r$E{te8LodhD-=41?TV6m!a2rR2BpX4tl@qt)kKy`LSmzZhS@=3dqH<2LSlS7G zqexi>4h67BIPL)zq|QpF%1Wk*b481+X8bG9OE<0Rs)8KvheMithBa8p@KJ! zGDzAwDsJz>&;~0Po|7fsG|CN~p2KI)lJFfeqeau#ui)mq*Mu1LEyUtt@jB~KexY3_c>~fyvfggniw}& zdnxRc9x^A~u&L>fk9SNr2W_yq%?ouL9vWra=|z6#ETbznso0QZ}oTY6UA({ zEKp{AT0f&U=JusDJ>4v2y3=YUWi8TF4+O--;H0HrapHBQb&xgm47GmLa9oPLK<}STSm3r&wP;{e>M5Rw?8m00o*DjrM^O}oz3{S)!bHrKzY z0mX3mj9w>xMA&MlpZ#5kr6mJqc$k~!{q)+=p8+H^IsKyP_yxT@-(3;)n>-V`S0HRb zlR^=$1Z8p$2-DBTEZtLK+Jcm4#FA*l=?r-&tiFI|%@DPtQGcF%BhI9jCYh~7Y8_3e zz*{EaCZ757z09w~MrgKXoqIprKzuDd2A%jVh2yU%YJ1XdAO@X5Aic;6&cdcQBDAw( zfwp;ITKp@*0Ecfb{qSjx^=2m9s`3^QxP7=J8L3(4Hy1k~8fi-nL|CpGHiJUNgWVX* z33>WWc7$DpSM{FI7{}rh2UR@~lR6n@Nu(SjKo3Oc3Rco%9Pw;4_y_MDEUA!kY4RT= zMD*$LpKv0(5ME{59VMJ8tZ{FW?Q+63(tz)d-MK#sR+wAGSV{53?*fq}R*dn?nEF#g zpQUJd=w!*_7A&r}2#~y$XuH`Pn?59m6Cf%ML**0R0b6KxHeF&gk$#f$jWerg-j#r` ziX4!S$h)0_asLcO!h;#k&=zOlbC|5s^-l!7<-}OZZ9^aA! zhrGGI8ooJ)Pz8peMO>osg~`oBb5J0xBb4@h=y1l7U9%b^2SYar^9#-f|;- z^CdSO22=U$bMhUi#i^@|=HK{U4Y!X#^Ho~>4Ji>#n_MG9hstW!va&0K!Xr81VzkRS zmq4hLdgQr}-WH1j&Z&Kt44MY>I($WF#~kF8Qh#N%dx+2~v62bG8HLfs`Q@Wb!GQ<; zKoi*a=U^a0MiOqfc%DDx^<)XT*j|VHm_-T1z%Tear)ig;#fs;m^VAFM&?!VPWbdOW zDy8emY;zOMaX!No3-%XYAIk#M#nQ{;e)_@V`R6m}+^`pP|9G$>og=}k^lFBzgtP7a6BF605y6thdiZ7al`>^Wwe%VkXs z9h>Dz^hXo%U@C=7Q-gQlAI4NwiN@p!H?}-w>kDLU4M@3EPj!-WYT6D;&>!G5?z9DI(4ac#n<6Bdi6IDKX&u9K7hKy>Bzf;OZ1syrvwr`4W(X`5`PL3IV zOeAwoaR^-2SRMcY8X6u|)m>be$Hhm!cj-H9=d7D`?HLc17`z=(EsXf;F$g!tej_uq zKDf1R433)i7*V^VZGE}6>D)Diu*{FKV{+&i2H#7)(d738 zVcEP2dTA6M`i<7>!d6;_B(A8TaLfw zcVQh*4VYp$-qMp#gxC)qhkL~cIz=(KB?WH1ghU@ol|x>TaFC*~MpqPwVst29%e?Dw zMF4~o`0fl9=w|Zl$VcyH#E_9!AwP}RjgBRkhiQ@~GbkSEjB`l$%|0EUe}Jx}G23xM z5(1j~;T+mlPbv+GBo=14t>@4@t9`20!)uI#DHmUcfQF3pzlM6e!-sO{g8D=Plw5Y~v zJ^5zy8&(4ae>PW6JWOVY&+d>7P|?VM9t!5ZOrmHOWH(GYk4->OkC@(92NG>4)4`oW zXXm_(wv(k4??xN^=WJ;6JKV2cj7dl+$TbB@aB%o(2b^dMp7l*QpoEXi^Qii|mc#w{ z{5lkx4p-W+v^Ir>sQ;}h;^lj@9?CRCI!gDj6{{J%{Qth-|Jnl#E#{rbi-Nx_uuXtE z<(}1UjeMj!<{$~~;Dv$Wc@Hr9hWzj4o*wE^Ac85csjmgY+>EsE$81!#Wma<9u(Xp2 z8KC%afHePiY^mR)0FHK&=eHNvQ5ljNm-V&^)R#^dl~<}AHz%s#g0T-0*H^LEVZ`fC zzc-5i;B@BvoXJe1ud^)By(ARd^JGqMTZk*aNrWWSy+~dlU9++p_7pu0N1Ix~?btlW zl>U3}4O&&jCr=BYSf%d!z@Ve@a|`=7hWWWa#@9!a$hR1Fe5!L4ym-YoMM{~)VnnF? zF9F8q<04MjWPUaN_PGaVy&&YqGt3HCrU}i)34{3-5L2+icbeiX1Zi1zj%|=8;yAJX zUT(r9S7nhfjfLBpQv@7HjT1N&Ent$no&E6winqTR&sYOU1J8El27`=%Cm4YnP6VQ= z<0E)}(P4#_Dr-60T^~IL2)!#LQvt~#DLl0+^YXg1+lc2%T(RsGi2jgR3+Ika~0*%RSSu<27&D`xup+6VyAzu7p0`gFH1UP8J%l>bfon-ap>^t z%{%oRXW{Sc?^oEnXv-~sc3o~s{17l%qU7M>(uYMN9k$qHzjgQTQX=@TK#SXId^(4Y zQ=kbTx3I3Mi9G1fG0nBGl3p=qd}UC`VP(0lzJ5e)?emWxKYo7jy$NxstgnBH_O61t zIb9UEz1pB$8}{`pHw9(21%j3#^iD87KAs)%=Ww>lxYL*K&*{4Rkn?b3e#C^spu7oj zTJ73@yB_shd58Pwc(D{;7yzQ6fHgN$w64FGqDlII=kUyX9|@be&J%Z6mZ%PG>4Q5? z*9Tleg}@jmT4=|XciU?@)|j=Y5vs@q87L?yRG!+8=MSL@X@sFE8+U}>etzP^!^66U zhGOHTJ3pGC6NNPgHCLZA4jBL8?T6g{fwi_$ArOeasA(OqL(`Egew~nS&hyX9uIsy# zw)KjqW9$&G`DHDRhB%5eL)NFJB8+**#)eh3X)}S8-|u{Qi5LVDUm)dYJ^S@FH9h^G(R+U5`nP8G(@!SW0+0AUWo4Cq z{tO%&8>?NHssSx+Z=n6~0ga`6nIKA|TC<*}i5CfeYXP`CMzxwXp!W~|_Vy1Bth#?^ zS-y`Gb)Nf$I+*ULOJ`N{igJIr`{&^5`ZMHuwfy$M=V+ufj}UQ zKdQ^8%XLaiOIdi3b=^1I#Prg!TLZ~9{{Gas#NhAYSh$V8oBjR$E7wRF8JUGnKmJ+^ z1cb|N=Gh!{G&@{{Aq4b<>N)DJS*WtHk!(HqlBmUXIXW|wGGEG1`_gA;XUBgdit21i zga5#yuC|t#A@~gA{l6V51J`#We60er=Kn#Wv=plj@rTy;ctNmoi62|%{fpn-w{FrX zq=Ip)8=YI{iP(I23nH_$s|zf9k4mr1-dP@~eLXa6wvuHZ~B#l~_tU;$;ppZ1$Mta*j@@`1pu^t*R0YEn1W3=H`|rhoJNR$<@_WMP1#s zQiZ(~GKPeqzdPjCdQnVB&BtABt;>AXmD_F^tqa}^2A7UKJA>9 zIXOA$nh1L>|PFfM4D!`PCYp zX3A~CK=0EBtH$R;?`Ss0pCYk1RL+-4FQ!=cP|K+jXcAq*5&?LNk)&m)B@J=9M~A<- zzQPM!;zThn))lr`<=+POSrlXZs^a_57MO|t?AH70n6rDyTAEe>8}%y+X#MC#Q9AE< zmC|QfI-ed)WT7g71*Z)J2VK&d6!n=8taU*pX6gw=0Qq;@kcWHj04FlpiMvyyy3K8l zc`eIc&wu+vI<;HKB_5DLI`6<}%$!97P?)NC_H4_N#Io!dcj!~#QuKLU41XT6@YK)X z7P_ik-m%^^BCF9V7|{-E$h|LX()h0YbH-&H_*XPzQr152yXy%4^lDe{C>6l^BvIS1 zZ?ZFV0ZCANBv;P!3M@CYDLvXH8mp@Y__qOQJ_hLp3xvZSfDd;8pnKVRqp<*5^i?L; wB)iFf!5~HcZ%ohvO_R*UYX6BwgGUmE)3jjAGZHKGr7b{BNn5e@<=cq=0b0Y+i2wiq literal 0 HcmV?d00001