From 76f17ecebb7bcfe4f28da52be11299591e126128 Mon Sep 17 00:00:00 2001 From: Tobias Frost Date: Wed, 10 Feb 2021 12:09:37 +0100 Subject: [PATCH] Add basic testsuite (using GTest) (The test suite will only be created if googletest is availavble) --- CMakeLists.txt | 5 + test/CMakeLists.txt | 51 +++++++ test/resources/README | 11 ++ test/resources/dir/file1_random | Bin 0 -> 16384 bytes test/resources/dir/file2_random | Bin 0 -> 16384 bytes test/resources/dir/file3_zeros | Bin 0 -> 16384 bytes test/resources/file1_random | Bin 0 -> 16384 bytes test/resources/file2_random | Bin 0 -> 16384 bytes test/resources/file3_zeros | Bin 0 -> 16384 bytes test/resources/test1.tar.gz | Bin 0 -> 33089 bytes test/resources/test2.tar.gz | Bin 0 -> 33222 bytes test/test.cpp | 231 ++++++++++++++++++++++++++++++++ 12 files changed, 298 insertions(+) create mode 100644 test/CMakeLists.txt create mode 100644 test/resources/README create mode 100644 test/resources/dir/file1_random create mode 100644 test/resources/dir/file2_random create mode 100644 test/resources/dir/file3_zeros create mode 100644 test/resources/file1_random create mode 100644 test/resources/file2_random create mode 100644 test/resources/file3_zeros create mode 100644 test/resources/test1.tar.gz create mode 100644 test/resources/test2.tar.gz create mode 100644 test/test.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index a473005..e710cdb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,8 @@ cmake_minimum_required( VERSION 3.5 ) project(archive_cpp_wrapper) +include(CTest) + set(CMAKE_CXX_STANDARD 11) find_package(LibArchive) @@ -88,3 +90,6 @@ install( # alias target add_library(LibArchive::archive_cpp_wrapper ALIAS ${PROJECT_NAME}) + +add_subdirectory(test) + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..38a71e1 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,51 @@ +#BSD 2-Clause license +# +#Copyright (c) 2014, Domen Vrankar +#Copyright (c) 2021, Tobias Frost +#All rights reserved. +# +#Redistribution and use in source and binary forms, with or without modification, +#are permitted provided that the following conditions are met: +# +#1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +#2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +#DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +#ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +#(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +#ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +find_package(GTest) + +if(GTEST_FOUND) + add_executable(libarchive_cpp_wrapper_test) + + target_sources(libarchive_cpp_wrapper_test + PRIVATE + test.cpp + ) + + target_link_libraries(libarchive_cpp_wrapper_test + PRIVATE + LibArchive::archive_cpp_wrapper + GTest::gtest_main + ) + + add_test(NAME libarchive_cpp_wrapper_test COMMAND libarchive_cpp_wrapper_test) + + # this avoids that the test fails if it is not built.(cmake will say "not run", not "failed") + set_tests_properties(libarchive_cpp_wrapper_test PROPERTIES REQUIRED_FILES "$") + + set_tests_properties(libarchive_cpp_wrapper_test + PROPERTIES ENVIRONMENT "TEST_RESOURCES=${CMAKE_CURRENT_SOURCE_DIR}/resources/") +endif() diff --git a/test/resources/README b/test/resources/README new file mode 100644 index 0000000..018a320 --- /dev/null +++ b/test/resources/README @@ -0,0 +1,11 @@ +The resources in this directory are generated with : + +# test1.tar.gz + +dd if=/dev/urandom of=file1_random bs=1 count=16k +dd if=/dev/urandom of=file1_random bs=1 count=16k +dd if=/dev/zero of=file3_zero bs=1 count=16k + +tar czf test1.tar.gz file* + + diff --git a/test/resources/dir/file1_random b/test/resources/dir/file1_random new file mode 100644 index 0000000000000000000000000000000000000000..0a872de9ae27fa7c73ad1126646eec7c7d16ca83 GIT binary patch literal 16384 zcmV+bK>xpx8q#~uwgHECd58Px@+-OzZr!p}`?!;^!{l;g5EC`FZHoD}0X7Hz8XZ)& z()b7EdYdmObz^j8K`c3xcwCh$-Do~jVKx&LeSWz=Z#+plh=u+^a3y|h^+Xirx zniVvoz;iFM?a>7gy(a`G*je;<6B!xe9!102ZISWG^ttKg_}|eo>`1fVO#bCoe_$G= zjBu4U&onSHt*G_6S+5kSFkwAs~mFq|`H8dK{|-a~i=q>JJZ) zzo(^p9|&gfwl{s6D7kOP>Mg?v;|!-bm-6bUN4)Awc@dnZ>?%V2LZTFwUF;b?Kj~;? z)4|X^hrTA7wr>XYU$Hj@G@aONWXmE5yOwcI#pfBu#}96t@_q8pDG$ggg{Xo({m8U; z-M}OcIqnu;s0SopCHd$I)t)w~Uj3q27DRuS#rJ(VKDI!IN~Rzbx-NY9tK3G{f3i-ZjII;# z46xdDDh$_UPH zG{fjE;41{wkNyGj2ba=~ir*cAq*>s6Sd_3&=!Rpf4pS0Mf!Gi9Sw1qv6QU=8tGTNT zanY1zb>%`Kb+R!@z25PrS0$je6V4tB0W809!U8NiX>M3PPK?k_Os|{8{?^&<#~VY+ zrbol{RSp>!b@(cy^%z5xWHnVuNyf6Ri};0F>=yMP~{I=K=YDhyoEE z6o60Y3*0yDk8~*kd4mq0>kocr9>dG2|3fW^^n1(*BBP*n$OHo-3Q5dV-I=DJ<&^%o zLDV44;l4Zu|0yIWAGfH<{7vxy{)hu4{!U3in1J*D?*oPCR5-FKe-!5u zK55F*fu@z1W2>Qii1?C)S|*1yna9#lYfHU-IEzo?lPMohm8j-2K0n{{2bQa|06pR_ z0;-HxiaATluojA?5TCMcSLD1V{EWvcMmbh}hKLj4v@{Aw$el~&0Kc+QZRKQ^-u&eY zk$bOPlDxNb5>kuR%7A(oFXmqCxebaUO7YNDF)8)%0SPJFpI`VwRt@3lLC)Aw6Z86z zWV&~!b}kUhkPTCwNff?f0RC6opn!`SbHob;YRt9b&>ow)iU8C3*|jOqU?$jY|L=_g z@(v@DvDbaOfhHp!u1+)X?qlg0U+xFBVnKne8Y4h*PR56UkJ_*EOZ?YD@U!RTiZ>&RT4?LU8MP2Xvrcb*(wP#4p*axzyjZ&%v zbd-neQNWmaP1XtwSWgVW`+Q4l@ok8}?cmmB#oYO?1J>e6Kq6P$(2~mnV_c>`I`xok z71>${9Os|INA0STl!+Beb{beVuT_%9pRA$T5t48JgeMsZ553b0g z5pGSVgTF83BcSB**r%#s#QCdtPHRn~Yl7Z1{#e`d=n;PlKp!?9Py)f!9er)XQ;V(? zhqP^oQ@aWi!Mmo#4!L(ENX-PwFzbW}aN2+V*HAVHz2rv+$tN?yJQA<;!a5NXnS_3_ z8?XDeE@38OZvP+($ntLH*%Q4V{p)7S2x%NP%Y5gn4>#&<$h-_mc z8|`8l1!++B#)#(l?RDz_%xs+(a9y=yBEo3OMMuH&4>!|PT-OZ?z_Y8@-&J25A9np+ zX}YONw+$T37N(xS!iC42CR3i~s8B9I*t8H|?fcZ;v;3#i-;0a@>LL{ig6j~+qm`yZ z{9nu8HW5L}BS=>jbXNvS4cAZoJk# zlYUYA>e2^tp)M}y%qFUF>3ls`+RgG{P~<=b*Zv`A(N}{k$x5r7-HdEgS^rMAOE-Qx za9%HAT^$vwe$mb!Mo8_*wy887~ioo$#5DMsEmrwPTJyD zRonQY&o!bn%2pR*61!k9CG2sl+y&Ng?CZADC|Yo>>p_vHE9#ZPC2Obt=rbp9=f&5Y)uaoCd`>jJquG?fIu znhn}CUU`;iI2fRhuqwP0$r$74b=`%uGSDvIve7cK<2lTk!VC;`CG)FR!@d5+TP&-+ zcM_L-QJqOUu4mMv9(L^|Z6SYyOOsCgK_FGV#Cgn49?Wr7A#3SunF7zS%mnbRiB@Bw%>C?v3)8Cl-<9A)Iyce;5!2WQ)WZnNeQTLU z2X<4m&M)WsA~MyWKQqm)p*Lj7z`sFlJrR#mcAb?DaG4OfSMr%bmGjTdML@XDwDdoH z-)Vc~b5(1rQDi_qoDS?OaDUnAao95u<*TMOY`$d~nNlcOs8(vIBtiO%O2AA&fHmqK zt+f=l(h~_i&d;JWZ|wYxwvfWroF7`fA{MocQP-Oo^8VHX2m4``JlO@y$*+ zd%AcXLsPV#57LY5TZ@JAERtmQ8kh5r((G!D7_`N)kd8#??AYH6P7<2`XklBMhMqK> zv6F)|cp{`^dL`|nS$HOX{lvh3egbJgxknfDt^-RFQ(^X`wy9s7xhp1R)P_ciGPv^4 zPX1XQmtaamtVD}0i;1-Ys!p~YX{U==t8|)*A++1Bv9xB( zA(*%)+7rBCNfpAkZv5s??OpitGn3Fw@db{nn_XLYFy#vPn1fr1fn`T2QPesepy@;A zQhd|*;;_sje~g2MPDr&7Pa5e;9_s2!(kNdPcxTN%#YzQo4? zVFt3LboZ#XJY}$BJI1Ma z_S9du28gRS_diQ4-hD6;z#2FF5pv40IHXlIRFMGF0p6xz5v?(P3Xc@QqL;BwR!1j1 z3Q_8MC1DRzMDW#zbF$eE8$c5nYzaWQO<1@eFQXghuFe;(zTT*jdp_bJe8g~{A@vno z>`;B7O^aD$B=hP;^7^&Kdj8VjHvbM_w1s1TASgzk14GBE74vOO82ZzxAyT*=cZI!E z2A*}+&g+l4^U=E8O;_Dc`-{XeeM zY0GZTw3&7BlAEFGnfwo0=<{SDu=kF&&6yiWe1Y6g)3rgyAmR#L<(|}TlRP@1on@hK&DM>GGod_zAoe9;JimYAe zH}aQfkOX^&+UR$?tjt4xft$~)!vu;O*+5xp^kXofc^g+9xDj_otp~r81V9?u-wq1i z+T|s+p&{}4KjTI(E}am_*;)PjL*v8(k`g>A7SsB6!?LT!&njmF7A%TtK<7W%*$UYR zcQ2*E<<2afEkwKt{8<_8-#ws>`KZgQ2iZcoD{@CfD~ z)5=JU@H%uwhXP=n{BMoLbUTHj9M{Ls=kXXb!(VZ9godimJfnKIw2JOs9HCnXTC^Np zY@QwBFARq+@N3N9>~4#U-*rUl^_1$aI+79xPTPQ!<3mNrpMl4^OJxTgf?)Wo^>spn>7 z^ANg#vlq74TosRAh1`&=K|f65HgT@5Gb6s3*55rgwcS*!VEv)mB2w_Wp+Wl9v`dEJsDO#=Ve+bpW|&*-henTQz?-FQn0~^D1nUH{hWo|i z-Vru3`0RAS{>V}lWlMrUS5GOxD2))c11$>rQtXr0a^4EGo-an~&7CqCCYRd{Gwxbq zfFlfli-o+i{BWE+gvqEAa1KFqX@wxQio*{II}c%0aM2GC>C*A9WT}P7Ihp2=pnKs% zDEkiv4L6jVK*Be-x3_02o2D(jy+6%dSHWp}SwpWX)u2R7bNV$eJz-Tw*OFvkn0+R_ zmb!mF?Sc|3YHiQnj=X3@)?znEK=8b|+A$K@8?V$2UFzis3E73w`@tPa-f@HJ6VcF$ z{0{@_Km3Sd5(A@05)(8cfNb`83>nFaNRw~1vGW;+C=NldTt&KdS{;!TU$CdO z34D@L$17`m$+ffM2+)UACa-EAfAVAOGN!OeVMo!)l2`fXE}rX|B)oH1CBwso=0gBM zPx0_6D-f^pSX`4W-X4foE{LGi#3Kco#}tS1pxsTH6!`Z!DHcLM$)DHT_G(fl_L_g7 zofmC;2ATrE6|0x$aU{LeAP=!BJ6L{CdJ6Xns;?}A{q?UzDF5&=dX{dq)c-%UI9xH* zCQ^KQf+8YzhF?=(X0>BAmRhiuECE{!KQVp(nHS)Ce`i?25l>u_!cm$3My}SgcdfAK z$$!h0^-N0i+?_e~9G1{{CY2m%+ht+uPDF!XhruRS&p5B@JqOA!rN&UyJ4Z#3v_diU zIJBlcR*t1y^ftFqpy1TfsncLOQh9_6GdtdhY(a*iM#0quwdA z=uvf>66>3*1-5D2x&;9hWPzuB6m9V}vM$pq{c|g&ZY!3*mvtcZ)Vf2&%F=`HKp$f~tF$8JQ7xeKL3ebUUfEB9^^9D~@R4D8$C zU*p}kn-bHd<3$X@8nAwx#tKy^`GtF}q}z1Ib)$Q`2vCZ^98Kk>WY|K|6jAk47GViE z^T`{=5Ri?NTK_9=y5V6a$Is`ygZ<4dCg>&SG#h+)uB_s?>1*$WdL_+U!9qj`P_1Dg zQ>kR*&1fF8$%9%_(2xu%oIx{D&3%yiXN=5aSnYISmVIHpH9GveP+48Q^s*?`>2LKP zpEtNbf&*z^ZZ#*`voQmsGZkcmWY}!y66@O~6;;HVMIX^XRKr3Zlr^Yi2 zKE@ZF^)1uUI_yJ0?4}G2g0B~sSfK8IdjD08F$tnEcsdTFh!b)fJ9{Su(X_G2OplO3 z?(Nyy=g zr+bV83-tqhSPn*yL+!Jw;ZrZzviX$@7!iCs(pmMUuW3iervEC-IbqG&0%8-A1tcn6 zUINui<)B}|SjI~6buvCaM3jiG;#1s5YByL$YMb|GzczkrrCEzhO}MW0P6sv#TRrR$ zRT&r8u`Ru}ZB<14vfG*FAW;pUU2WPW5Sdn8G+NXE9-*B*Y%nAoTc0p*|<}yCPv%lxH@96jb<_i5Ovm1$cy?z!R zYOegqRN23vwc^V;{R_8~s9kA|eMNo!jdsFbeylu~2ta%}boJ2$XA|G|%d?yR>wiC| zQ4|U3SAc&~?%2#@VTa5k?G3`&9{V|i+0t4cuH-wzjX45LfSZ`*r*F>hR+-6%9ljig zm4&cA&Hj)k1xodr!gn9r+WHuFVy4WmmAc9f8*70SxHe@h9W_u(QnZB+>Ri7c%t zv1eOZ7MwfRWnVnQE$a&lANhE!I0Z`(Yo(Ke6Lqok`QC>#ILX?572 zJLkt`^yDf0{3P0`+h@hgwsK0&DLo|((}#XD*}CJ<%N%d4i?p~W1YkLckINq6yU*mcb2svgN3AxQ^qji zV%HFuhPM$D&V=-f94U>+4uW!|+V_rTfRngX{41cg{cHQOW2&5zTu)2m4m+Yj!B-`r zvLBF2q&DNBNeGcsP8oMP!b*QEAXc!QF<2LQ{?bZe}? z9!z0eCS8k0Wu4$8PGkP>VRX7a3~q0vDu>12I>>S&Qgi5c&WYg@zvtfM4Wf#`H~lWC zvQ3YD7P*{dii0%{76ubgf|h zuA8p@ibFw)OF!L=j^aXj#=uK-#D8t*47mT0rTUFnF8?6Q5Gy53kv=YpNG6sL3f%z< znyh*!aGX^a2`G1Tm`?iW^73h+O`Ae3ozSpgR8Sn6&1!pSFF5wTut;3krj3aTBntGXYzOnJZpI*B!h@MTqICc zV8Dw;Ux}|}y{0i(81jNwDzlU7f}~b+jRo#)py=@ht=&X6TV3S}*SNHN|M9n1OFhsz zB>aM9V&787eNhvWfrxrO3qzKE(h45uEdzmiX;~#k$9QKdRGS3U>qE_aTxo)z2UgbN zuFNBcyxu-fq0eH)+z1Ynz2%gYxmVmb4pv?Hn~H>g|7aSU6&Qc_*sxFiW(c)$D(`;B zGC3lsB)-gsR(uHGbMR-e>6B+sG8uvT%l zehX+YlKxYByp;A!wRC8~ZNS}VvQFiKwhWM1fB$;d;-Y;RP#FPZbSt9#EPfP*VU;y~ z;-854Z@d+4FIN@E(dB#G2=ox{mbN1f^6X@k`tVPl+K?YbYc}m<{q(e$`4y6p2pm<6 zN9b9erh|&aq&@&9G&HM?9i4KBTWTwGxdc@}w(-ua3xmZ~Ccxm?!+R3twMRPYDo8{< zf)-ZQaCYaJ)DbTX zIPAJwb?g}+Ga8-gSZ}{USI?XC%GG3;6)FAK&f%P!t$k{Y_5*SOJi*%ynK_DfRo2pQU6h_oLS=41Wh`qmL51JOKN7nV1+~Lm5f#^&-RS3 zj2`VtA1~U6PB)*@omkaIuVfg)DSl{s8_Mn2rHxn>W8Z|Yv@x64zPPiSRWffX2wk$yM$p@EI!eIB!eb6gir~taF5Y{-TX{?a7BU7A9?&%qlic}S?ked?Z~%YZ2VWEgc^jjGdU(9{maFaUccNO`ZX`_Xv=$jx=}Vm$Qcnyb)# z5#sK((=5kc;$A3xY->py@ya|GrTzKKZ+BmkyscNpe~*B5 zf<_6GC`yQeu7jQX5FmdfL$H!QSqAR|bw`|M>NPk8ZLxnl&}?9C-`s?TXW&TpU&L4 z!bTQfO&?z$P?+%Fic;xAtYb!A3#f#S%pYpUdZ>kvcyjn`ZfW`33N&6Ocma~kX2w*k zj^U6Iq%wJG29Me(2^VcIxf2em?gBm-?xeGz@vuL5sm<#J8K1T~;doc%YGE#Dx|*UT zZSa|Sh35U@omJUI#D*bNucTQ>7JY&+2;bc^LfKhRm#z45etoA)H~8HT$Cz{THiM-D z8@$j^OWL1Byr5|Rf_Tgs(0orL-^rUiKsTYwaETvd?xI0Q+)8)q=FCBN_umbFL1Lb{ zZHRXEZ{(31m#5*d;cKRk7x33jtY7Spfkw+%-6Lbf%|OM(9S`NE&a-p{h5Py`1HwWe zB6<~KXh~f2UeDId@G~WA*8~xLK%sO~n**+98nh0LUa5;s;8F>mnwity7nJH4ZhVo% z;4gzxWsKATxk2X5SDak3S>)5goCx1SM-Zqw&yGto?_ZUHc;xft4?pfE`<-Dk&6d+o zi>PtISMP3qq(OO@;0*t`|0#>n(jPloEVr*WSY^+Xmt~ZINvmzLGy*AsF|D{-ZEvV| zG-^^rp}i*ebsNYO=Er^ntUj?BzJDX7c$Nb6*$_>>hVrGrn{q|((9kT28F-fBm_`nz zPJZ|&_{}>BuukG7`pg_hJ^oq0u03S|dgp8qI*Bh3SE)*_7LLF1oH;O8)4{eF11<8n zq@QTm{J1U%+)~>p0vwF{Lv#LT{Xcpt#PVw`01-`^KBS_l0@q0kA#UI3QwwKA(S@mo zw^7sD3~0*Ltfod1LhBUnB(A#lA@1HJ-yN&&blktRNq>)p5*&@K1B`pYlHvd&Fh2rd z*G}&ZBCXOP5I}R9ibNK_0@>TXOH|d1V56bDHBFB6NE*c6s~-H)O`_?nW_c|*eXqp% zt|d3Tg|PCz#G|J_7CUtouG1s)075*TV>_WHuVvZ#MM#c1BWNK*g$4xX^3PqfQzu^o z$vT>YnEG*i!rlu*Fj%J7zG+sYYWO7>ke*g-stNsY>F?x8Y*f7bn2I|s;P6pVmb&lGfzmAtQv@R#O zzswZ=q_qMSi^{jeoFR&JL*et1jpY7GXyLF8?i^_{^Q5Z**}3o)#S%4v17PZPeE$lr z4-~Fk`gLHm6A!#Q?YOE9<@F6cdF)cA1ty2%QAD4C$4hHcpIg1@HcbbGHcnW zFUHBBq)&@6BdXHGn4G;^yFxOiA#76TOhEmF&NY23D z%>`U0u8mO?4ObB@KLaY3u8e*=B*EU0PN=EFZ(}=@{Y%*gAqR;^7=x&o(hs9U(9xzo zd)K~Ool&q}i&2o+MVIBFXD|8r{M8xzZX$(Un1Y?Mc-E-{HihIda#tkcf0f8VeePR= zRE8gn&+rzSEBgw z+jd|G9Rlophd#V1rr{JZcaduVCgJVssVkE$b~8b z;_Da~U;K?3@*f>#FWeG7h<+RKcw9rt9iGttScLXz>~F6rDQFO<@7khNXHCpc4>r?g zZwV5_x$sOe#o+~PP*57t4CH-WknbSn*s4ZB5E>W!2g=nYF>nodBtVTgoAX2=5_qzR z?VUbA@f_^(ie=#GpdWr(x^sV4fFx9iKw@_+kA|piTGv1dKPVLzEz!yn zDvd{VX-w07mVL!an_c7)S32lPg+dO`GNE{g@xg$|)TNYy!zT?Z^}5QN^zW>1^Cfg5NPA-i7^Gv#T-vXNJEl#&R&VaJ$2=xGYc>SxAzLfrz4Q}bG zld&9j2HeAW`&9sVki~4<=6iyRUJ-6}i#cysr-r84AJAC)yBgJWlr=5>YF3+_GBV2x zoo_bR+ldYc0;zAuanAWw6O(Kx^|n4V4(rMy)CY5Vi)jUf$zW69QOjrLMQ0hb#QYlk zo`ucZy~v?ehnYEf|BcuZ7|iv3Y1gm4ZsF(XDFLwAJy2Nxo(=6HpW3#-P~OMlQN{T7 zz6+c^1I9SwN&8inJbmpM7wfdZ&-p9fL)#I}o%5Rj40o=NYGO!!OanL!68zDwQXH8M zDzTw3O-{s3R077puGPPBqzBBRPw@j*X~xnyCrs@}$n&yjT9+CE${7oF&XS#G4Nk1( zTZGdRBU)zEEPin%LLDQ92-p=JV11R24`u$MCLLVa7gY8Oa8}E+$o@6-4$YcdZM;rp z1?go1iQf{As=h*g%>9~>H4H}b#rqg+flOkP~r4 ziF;nJN{TfTeq@jMQhe>mW8rL>AyCw>I=nU@*p>GZ9$8Nt>9GOlnR=IKGIuhGvqs(d+&+)mJQRh zq;DEoXVdiUl;Di+-0QNdhi9rmQ7-Hw8HQ8Ey*00i&(VuZb}#+(|$mRuUJxm{{ff9bU?cN}?{DObROO>&P0#(IOl=ej@w z&&QxU=8MB=3i&wje(wW;P}p?M1X6{v-9{aXT1xsOjw33tBAj5i|Ag-AN7thr}dw5Pn5h12$P9vlto9}EqMfd zhDaH)!eg=T#w$hH>(=B%4OcrcMwg zxY!G;CZ_s96f5kRf zQAfBfcH|rmI@S-anQXH)dQHjs^SgH~CH3$q?wXUC&L`gxj-3Ly09u^Gr{Hr55~}>E z6v3`5d1-w*kEq?Oha~|vUgN;OpXS3$LcI9~Jg-v*$pI2-cYrNm)gz9=9Av+Dqg#Tz zOy#&NBT@2po8>7>9XY^mfe9Iz*oD%jto$a=7OPHT^TjHm6Xsg39wbLmtU>_$Oh=BeGGjEsZIzW#fobYeRgt{?W0Q4Kd`A*~727PRwSX+JM^>5( z-S+b#von9WgNaQL6Nda32wiI4kkDQY#N^|X15SP(MS6Pk(H)eJm#we@a*z>IymidJx9}{(eTA*jgV-8&&|yV|A`0Od-lHIJYy~-c<2PjGW&_Wh^(^K$TUI;`Ear zAq_Rr=l_ZZLm3o!*=F0e1#KhpT5h!&3XS)UcLHf)5ZS*_aiifNd06!YN~H8LF6{>X zXUItd%T#aOoa@6J&q+{}<10* zJyoAm`QVcUuPXLqKun{11_Yh(jy>Z5mN+=KP?Ur&6al#a)a^0ZyyD|b3PtJ`Vv-X*^W|PQ$Y@&a@$dsQeu3y~1HB3V*6%#48Yl9tF$|P%n zk+mCXGaXCaOhkG&vj(`+!R7Ozi0*g<$$HkqUN)Vx1>+E?>J|igyIF#_41MW-@h>Pb zo2dP9br$pb)YY?Qajh8JBF#XKvQPpX)_v za;YUAq2^mKj&<1JtXKR}=@aJh@ttp*C$6do-(&eaH-*7EOAj+5t~w7BFBST*UCLk$ z_5dg{4K_&w@X2Q^1=dNSJF{W|*4j1kn`@8e^XeadUd$4rA{dKrar$ejt=PAr#c8hl z$*i?SAi!DVvSSG40A34HmPE2uK`!$#m!GqCBgd7HEEshrPzNR9b&BDCpW?lhDEt2INy&^QWmJvnD8<5Ub?6 zgp3dv=ND)?5pErMb>>gkO4}SuF~l z&|$NEoK*2#3Yykbi=HuvlgQm;Dfi@?2rgmU|GCIpvj{MQ6I)#)hZCwb9$27lvhTLJ za24qT6NjN8i!P~MJd|5Gk7=hf?@OQL1A^>N1ChDQ`DdM~0SAUjc||j-{6}FegV99Z z9&f6r;*!Fn_fPZdP!vlpoZ$AkuN05-PG>`5edCL~l1J-HU>qAVv2p{=N=KY)#?fT+B4bmKp%AMhQ#ynnLiVn_Dg_`cgv z%ga!mCB?lscNgit*7g0kp#6^@8nU!vOmyG%QL2WHew2JHO$*e5$Xz=dI6jqR$;aR> zNIxmARNZ!ajdn{1DRGsMzj}_%Hpk;Ei^>pMXoT_9g57O}M;-0=Tf%7h5?rgi?XNCqZW`k~jCOnUHThYZ_D1LbTn7h0{E1N>u zZx|;~Ru!04|NZ8lz3rtwpBtmG?@TAooDyvtb0syqpWuaH|Ktv9!ko)ELttI}cXhaiYnQ!s3*28a52BWul z#o?7*i{XtIg}1Q8?WPa#q%Os@qVyp5dK8 zuZnaDsA?^y>2V4r_cDQ~?fW2?BeJ2|%uUngepLfp&b>TbCw}+ODQ9Wd^b{`JL!69w z@=MmcS(GZ8S;mYFk;>6QE{&%ddtm#Ov*#t3Y0>=`m8a&hk5%fbW9f2p-$ahF)0H79 z7bc>oOp6pX5fYvx&hYVF76TA?&q98RdBOvoO^@bkSpP#nex+ZwVHyb+XGUlbYcb6h z0?|TYLqhTv{oT~gI3nCu)0Ydu^?9vlsylN*A6&PwGlX=uR~Bhfjb8Cl3mj!5qG%pf z;C>h$*>V$WtDe0!5CaUvK*G$7UW&G?pcTRh;mp~244duqSQAR!F+Hm^Ouc61`pV%_ zT766-h5jCag;DS@0X>VfKN-id1%8&M9&?5I=v8d}TkT(HQ-6!;7P3BO27!D{h~3~K z!vu#moji3MF@G$u>QKU9Mlf$Sso_JsB1u43Y_O=6xFd`KjnK-1j0fc^5yA3&!8Xi< z17xrZeEHAUvc|R4FvJPu`Mn*IYfo&d5SDS&YIvM!&3u;^zTJQao$-Ou2}P85zD~L$ z^6;!I*ojv4)Mi4}mbgEz#1+dRiM9OCsR04@a*vEtPWwuFZeW)EAUJ6pFXu6K?fXpG zY@n~%&g8Yw6&?!?Ri8u=LFH0Tg+@AeF~ztamG&cjloQR6F{TxS_u}| z^Pe!MQ@pSn{`T2TUkC}ptF8xzOl{c-zX@K8DSuIS5>EFAP6A%U`UYva3&QJ6G&roA z8M6TSOxAae%qo~uz}XW|?wE~~w3<0_r|O@^hfiL;7T&?H4|k)@TyHvX1ZnMkJ`8o= zSx$KkUvatGFRaAge})n!g#7d@~etU%_|QT#NcV zcrxus1*a+bl!lyJ2^{3b@nT`xR<8l58QSsf^4g~*6youT-!nX%nVfG9@}euAP~oPO zU;>BK&%=k3tFZA5#6qFE6MR@AVHfy=MLT3Ja%SWKR0N`(W$YQ9o4?hi_F*o8f7G+G_qAa}`b20Fjh#=ZLmPw| z!Z?G@(BTS>CWTJmN?)_`jNBHM11xXUl$iBL0G{c>{(BL`e$$-BdT`DaP~2f>R2y{Z z9$@bQR?94N4?}3B4+TT#$l9Yr6d+!*^=vh*8O~a)L+jv^ALshb9a41pS1-dLZ~40H z@6z#OL^M;~?JO5)0827vKah*l1YN61rg$`{LuJ4-m;;cpk2yr}JK5F>>OP0PLc&E2->wF)sV6odnTB^ByNT!wMk9NlvH?-YOyMncjQ(OJA zu;NXspWqcw9-d|$D}a^p$`fbSd$Apqf7vyZ&OvOeQ z4TdObl5vY5IO#jfcWs^W)mRk4cC-#lwvr@dD!E_M9V9R)uy=xXWT=T60tUbyWvmuU zl}o_t0@;bAIiKM|o}W=&v=4E%3sbc%Q89WfE?DkGcT zmGQq1hq@V+lf%`+X4PbVv8gn7o&RJH<@EDi3Yh4}PPv&zTYIYSaW;n)_eYW&v0PQ~C=XaX*aO3i@G-(eO4a7KVTf6vD(1XoTo?1{ z1x`3t9%f?B8~mdh;K$sfLir%26zLmG1^TZkl@l-gjxd}t2l9oaCFh;5Dt=)OK8xYE zr?XC%Lf!H06#J8hSmfkEYLZoVDa&_g*1~O_DodYl*w&Y1W zj_fqrBMzDP%?G!M$uC6w#I`nV5293D^pxZu0Z`_@%Bd4#YmDPf71u(;`fOQQ0;@AJ z0}f4R(-hLs8J?RUKa1!^b~vcPM%t|btZ9enC5Hx9X6XH#)E=Ej?(I0@FIfz%2Xd)n zAILt#P~gN`UA5A9a|HKNfJ?akVnob+fhW7CX8?F?E$sA;j8VBng@qtpHx|SM zQ`L%sh<_XA`v9oJ6wl3nvQK*~*ZrW@l|ebk6V$tsPmA4hB`{>RfEL(+Xv=Wq$S-nM z95{=S?`%~17dRL#FoyorG(J~iP13L(Nmj28rH&GEvHihn~q*~8(Gl;Shy<1lfj7Hk6J!`WIPUv^;_4f5}ZE0 zPxa4cM)Ok8x*w-}IWWwQ1iLzU7@T)eJa;R*2XYsE{jNQW4Qh2wFB)1#558t7+7v2R zEXC%D@b>fC?Ya%qL!W85v!-e1m;dboZf|PZvQ>X1z>r)ZaC%qjLn07xGg2#!{m$LL z*p+{J8*^>0-Cjq~pa_2PHNbV?<N&*ZGLY?AOL4>R>-=bQ^$<;NTP8G4kV2Kj@mL zkuq3%J5@I&*pz`$YK>Ap2jcO>zo7sRO`#SQf*5v@ek$y^w}>jQ`-t@^I4{xgr(uLNPOl-0+cNDd`53qk~{nLgMX z7Y!U2O*w`1lqQ?(!%@%+!)s!}B(?imT?IjK>>RK?Srxr#hboltTjS4oIA2=ZJV*Gf zO_+0wuHeTo^UzMmfVqh$$c(YoZhG5>sQC)|{czR&aO!9@ul}*sl=k&qV72G%977!q zt?Ps-rY+kSEs~;1_nIy-kopFCPPxM;Kt49+pW!Y&XO zw;=mQQ5G+%`0qWR)6h;Q?EEOkG*ED)Yab{`sTjE=x$6_)P|FL;X$7v1Fz61sj3NJ; zLUubwC6!KHelL1;58D22*3kI36cgH#!V>=DCxF*U#={XIYNMBm!%7v!OaE6nX_0T6Si}3@i#mUelby0@g2gQp<0>v55+o2}1k)=FF@g!I}|3eS;ycbrRg zf0XX_iXI4%2Y^FlzJxFSE~YkedW3bZj$GXV?edTZ=qHuVcu6Rq*@z7HY|*EBoO}xJ zU%~xfOZIskz;6FQ3lL{EOO+4Xi8mbBA6`&21pnGmMR@yRRU+0fe8s(y+n|@Y<_%L% z++;+6Xm(a*E0|r|5Udq8=lz4Zx7uo*8N^oeCK%Rse)B818&Vf2zTWVCaEq^?$6JxpzQ@mSO7MygLR!q&h><77I0Yc!C`E;j3jD}{&ys;B(DVGfxh$VB)IcV{Nd=%49XqBML10Q=-v zxvd-*T9@MhzyvIIsSRAl|Do;5*FFO8(tY;{(<*AIx&7-h-amkhR`XgIVrJ0Xi^uio zHt6^oRX90WC~imen+f{JDwg(lbO#d$c6X$I?OkUod*cA?0$$Ki^cxV&I6{uq287Il zYZ?5m;)AkYhm&+Wp(&f&h{+Q_f^A`4Xa;S7DS6(u9Q(*wqv|TK0Z+1BafXNAIL&G8_3!sc6bSJ~XohG7|u<`g0Re zS~a3B$JM&1S`ZPPwlOe{u?jCLzt@yvKO2W*#t)r-HbavrZL>aNnlkqpBJY$|Nd;RS z@Z_?1wFcIATiKWSkvJlxwA2yJoO&ht?Vr`fj3*ugEP1_4mNhU3?LeoOp+0Ye$XQIuIF?JBZ%QmVPr|2FVkcDD zQgjwXL$YM;GvNk4>cyASaHLp>#f-~%Ovjj(gIV)0?wj_5^bS=Z)P=9wxqm@X~B zjb)ylTNMv^pDeOu7J1hP%ax*g#i=~i0`INkmp78CXI#;L1MeZSK1l*tyqblYU7uPN z`%ceJnA<1B*R~*?BN~||tPa(T{6}%b54@$c-DxB2{1auJV!qy|#AD2A4VBoL~Z3nlBU$l zWX|qyKCbbe4x-U!my+%Z!Z#w&J_RKxln&nFY?mqgc|+Y?Yh?3BohmWtwYMKxG0uI@ zLOX&upCz|=5N-O+Y`jRw3+jfZy_5#hj=kTwc!^Y@kCUEEBobBI{POqQSK@SB?tnF- z>fV(_$qPy?aSaROS>--FGa|9A0qF3)fA5zNH${-;6tag?GrJDgAxQyT?(!+52q=F@WLcQi&}j@h^KTz=L#?cD8V5AQNPf#8 z!(dV`93+sp6Gme`9hCnuUDeMinD-Q+Q_t@oQRJ?lLoentZ-UUHr6 zegUp>`Tzg8w0BzII! z&cxS!g81qI)S2i0tkDXFTtpZCrbsE8JkK;QV(1f9IEKslLP07(|J`Nooc+HsJ5Swi zix$()Lf;Ntp1|K=<_#2%d;7H-e)?(@J*#StzT+ZXrEZ!TooOI4(^Ogv&?(qxYWt~=`G5I_)$rC2EX+{J)1}x?1eRd`` zY7KpeB)P9l^w$^xgz5qt}Z3`!*MU#5dQ1{l0?pef~vHiD!xy=rvkik$Nr+JN9Rce9K_g7+r z$(zI`xDRnZ1OxMTZLcLlK8}P{8N0?Tc|Ydr@pK|M9*3GMWMI=aQyQCPs(YyS=E+yf$IvC5 zJ1Z*RO(Cj+9Kc~Mf;-oA|M~KqX}l@o`yU%7PTGCa|J?=YDuGVj8Ztx!tF3C=Cek7< zk)XNG_k<9zj9|oCCfVDa2+D+X3&I>a>V-ntjpG@>Q;2um^Uithqtcteq;vy@P|8b> zYcxKF;Jk?CU%Jkc@74uKhl{-h%Qz+E;sD>EC8FZ!HqvcBddalar4Fap9KgFm)N4GD z$~~c;C?jempDE?6Gl2>>LrURbUhLr``*p{<-WrSsEnH=7X{e_h<(@PyfOs>*aq>!$ z&m)9Z@VupTnY^wK?A2oTdqqa{DzXy`_qMdeE8oqJSp(mXZA;YMg_odU^e)#@*Jvp(n z>lIb$0SZTU5T~rrhwSL&%5{Ya2Hh(Z{zR!2FfwB5>cb;W$DRTIwqET2IDrnVTj z^+p!PW~@MDSeCDz)e+W8p9_C&>wJ0qx_QsKLHl$R>bfe*?|fn*1b#MK7s-gL|H5%@ zx|&ArbZwpm9digD-KAQS2Ry`wtP-<_pH?W?CjRCAc*twW*E-Y@_*!~#XSsRx7}C(0 z_%3?TzVt&k%nIwqww^wBU`sKyQkdZyJUqHk4i&KqbU3Ab^wm#iFEg^)^3o1mk zc#*B@$0jye;;H*cB^arIF2)sKA{?vhuQ;eB5AV(!9yBi&?|s~X=Gs_u(kzm|6zY`q znpy-?fb_h%V@zmxBW5bI*Cm-O`YKdVOC=?Lh++yq_&2R{rEHdU)!{fKXa&*xbH-g^ zkfvL~LY`D|a(;9CLtagkgodPA%12j*@{>Mr9fvF}E6ON6QV@IoYTaFJkgx#~`rUH4 z$y53VZ~09lSv!p$>?I+a(aR(jPl?62l$QIhh`bu*H39QhW&rF*L>`KlbWmj>gjwwr zxYBUOmv==I=$hpF+}l5(D^=o=jyo7usdqSDqG7uvT19kdj~xsPaII0bpQsIzd8d)e z?c&Xhl)Dj6H(~KIbNZZcBMq`DD~T0Wsiy6`IuXmY-1eV5FxzSDZ8VZ7+j*j}&djjG zX6d-ruIdcF#E%sC1rJVipH~FF*-_N35qr9gZ5pBXsEFNGbsRJ9M>hY|9n58LNO@S@ax#b!?MPb{;Dq%qn; zXaj`L*ml#GVorZv-QI3jzfzU}Gj84P&g&-(y|ON30Kjy~b(NwoW&4K2a1t_s>Goik zEmcF`3e3YyD(n-jd^TdK1|x0^IxkeUTBwC1Q0>t4h=q+G&m7vrmBplwy{_STYJ+w> z^~*u3j0#IQQl&jq7c!sY2KKZ%V`Mlin7{!BRkB>oP#q03SkwxK?lJqbg!JHmSPp8o zrJ>7AGv!^dgW71UAy7$!x4dCyCB_==z=DtY-be9%R=RfocSz>Hd^Ue0bwe+9*Ys#3 z)+JwG0tIs+Ecci2aBI|D6D+L3)|q#i=x~#O%mYf<*1oTs;2NMI3N<-5UhqPb1NeWZ zc|db4H+}kU2Z~@!yA{I>K&&H+*HSgY%ATBlTSe_IYV+_|k`)YRFQFsI+2q?VG6SSa zX;c^dwKuM@{2{-T-b$3w0a_2M3U@*rm?0Ev=4`zk3+H*D1`7Kp1S6wrb8B~@KzcPSAL(!y z;v)W^HnNf`H`*hN;t4(1BjPzunZp86vBA0lx9&e>3@kNHxA)G`22zqNvx!68c9#!f zKo=gIT~9>BA-=k^vHUglqZIkZe;PtuTtCgcDp8h4MISM@~J&N z6fR&rOBwY*PCx>t4kgoc)x`Bt&Z_Ef8^ue8G5SOzYXGo)qBdRlG;%hW**}d=28ztQ z!!-A-Ik*2=x7_eSfbT9>sFLVlXT=)VnlKY}ox)?0vnp*;KiUmK`K!2sms znx8`fPnE?Zlk8@RQNchdq~biTt)f-iAWSN6e`}LpiGA&`sEn`O1c&50Mf3I5i`<4u zO&o|dA6baltS#YHhAZ;`0bT^9KxSFU0zNIDs@jny1TB)Pl0G=LrX6rsQ_|J3uG#v_ zV_T%-DKi>tp}tN#l-%@Z;tCLh_x8bGbT>4+3zGdOD$!`WGhMKxnHHt6BY;3ch$4}H zaR}7O=i~|Ct*}*)d2x$#KLEFFmy8c>L2jM8f$Js(D=U3h{E?SJGvsY@@j?B%F0|Qe z$pUAnOir(+3M7C-k|45NC`e!oV(l{qjCu{i4MMCOto{z+vG42wkl3#$0%}9V_U;f$ac3%fi?>#4xd#;A3K^J5_JnNE*)&kUg< z#yD==L^d$Sf@P>yqN1u9`<8C5|FYpYJiVY+HiqB-#AzB+v&19}U4QdBTn1{4jy4?% zq!!zPBBb-0X%7acgzFX{r4RBI4CJ<1)1e1f_>VmB@=)viPrDfWa_9Df(;|(prwS&x zRxc5Nj4n`FS~Fq$jl`URWC3DgcYimioIvW_eUX}q2OXJHrx!l8i_Y9*9_Og_Bb?eS zc@tr{Rst3Oid`NTv8r~yJ#wsG|AcwTPEA*3skFQJpGbFu43<`}zOneYEmB*1ncMvq zGT;@PvK%LuJdYtqo7=O-A8M%0pl=zAyD5|Oh5Decp#>neZYrZ-l&!l45?*NKF`j{t z4)4Y^%yf<_#J&ZTX4a6ozl9$#5h#l~CAdDs{g%0i?fy3F6Evgje7P~36)WF%tS3?C z%I6bTW&!CUE!ZiTJ6Re;?xXpQ2JlrlDP|I}ND=Y{us%ger&vALFYhK0rWaj4R65(r zk|pwxU93>%W2Boxr?@-Kuh^Vh54S!}PJF%NT3}S$Up$ykeg^JUJC#O`Hq9yOc1hsx zHzCuh=iHdct-hym@P0Nv^kBb)}M^KXT6V)Rcxv&iq_>|HDS zWF<5zo8yANALppjjsw*!xmfF9!p{TN#3Fh}VKvsASBm%om8Nv}SiT`0YP{dflpxM4 z4nR*Tn4QqeT#Wz$VCay-EoN zGeNiwAFM`m9uX9~;}8+p6#v(0{m%Jx3Abv@5UGF(-T80q|F}r4+fi2(ujh`UZq2KZ z_&oR;GJKG}C!S7&ZEH<;m zDLnzg(if@Ub%J3u#dahzP;2itrX0%ieCf4b-s~R4J$XRtkXLEFHLFaMO%F;e342m6$305MI#XEln+b|i6 zjM%wI$6pUphgGS;IJ})?rq90?R7y;p2(IlO`Pc|+n$w+M<5kPj1t}*cMwq*YXZ87U zrb!f(^fZwVf{9fse-rCoLp9F$dus!bO^khXQ+fc%T8iIg)X3{bvxJR4yPVuzF(c*@ z_TTEyN%gJk0CVst4Z1NqYkjS%H?x0nKVk=8j~>PL(+%Rr6z;hBj~eR=l-a-QD+||+ zZXrcg*eg50g?>S6=?hh8-YZVZ3JW#qlJg&^GdWQ@hvIk;Y(ngn80!5lhGRd5$psrp zsx9i`ZMidrp1|XJ4{T5nfzWrQAkXnEJjJ4jm~#R&RyW!_>y-63<@AzBk|~dIdv;N- z3XfqQvgjuWYiWSx(}nFcYi4%~W+UlUq~3U>fb&Aso`cGtqB^#+1$h zl-e4xO2iSAb^{E(PPyW`WpSqWv9@K?^+IKy={Y?Q^%!Wvm~~aAV39;`kRfkDAyB&w zHMr8~cQN>qm5dpiow~)P-FMEF3gMz%G@}GQ=&wth&qOp5LU3a)%9nxkxa_o`nRrKb zUP2Na+u-fgt;+>L(GeU{7M>6)P@+im@$`=pAh5L&yZ8YPpfro9#Ird`?iTgt$BpHV zxTZ=GA$iv+qYC5QdO*){s2)~$%b@Bl8T z<6!YG({I{C1ty4P3nS}d{~~=1*2$*i|E=->E8^CcU(AObc;mQlMG~5qbqB#Y~?Tt@>)lD+QVW6)RodIT5a$$G_2*ZJV2M!7rbOg%w9&Y zuLBhKM;$NyU7me;)C`#G7?SBsg{!6SqFDRB$LrF`f)K*Pr02EWwdVN4es>ACSs6T> zFzvs+lWZ>yKbNFE)?L2X1x|z{oyrmITYFC}I+86t2O7b;T?l(v8zgM3g4;@{vDXVjH%{fal`KHf3O|{XEuecE!;P<~%h`;w5;I zz5<2ItE;dryPLQ^vdfaFrC`-kloMM_d@^knj=R9QvGYRvI@{JXV*@;Z{zx2XK2-FD z43pOdC zx?_?4d{%|#az)QjP5d8XgRjdTko$m@Bz5-ns!is~psJro>4&cyHs|bX%|XTl_0Vp# zHW%RvLD9dt1k*o(=rCAGzu)V2E=@%Y0iIit>IA;qNY#$Fyo-BNncinJB&Z|4jHv#c zf)2nTt>rIpVn3%-$3Rs)7vsM^pZ#B?6VSYO9O6IDRA7*RKuggugr1unN2l>qWkP@Xk*ER9oycpV| zeJ5vZ*lpl$gl2`N!0u7S;s9btN64?2!ChBi&k2~Fb>n(L%oT$n&Ub;eTfE%yLs!F~&@@yy^ybLtFgXcLVYfr38bF9NU64t%j$5VQ=1n zFzjBY&-kp7k0=iif8EpM>I#LpueeA^w!3F3I|YI6*ZrMTxVlV@<&r#x+RJb@ zF>gAo3=|EO*Y9R(B5!(jKoY!P<7Dr#c-^L|uD&Kv`lc|z#{5R1r}%N(8azv+k$j?{ z7kHgYvucsmzPqR}eUToWxYyjgQIWeV3y^iHgxVvy6}tp^l54sZFq^Vd%RraRYN^`o zI7IM<2_FM%TWz}ADv+tRH!Kggi+c|RP~Pog_R`464R@c&bAM_?2RM7J3E`0@Jv4@jFF zgh7@Ubib5vCbNk*<_;2Dcj5#B9@gl(ZN25h&-S;X>8%{2YY-%HujgWMsfbC;=bb=| z?$&dHCOFFI!Gfvrpz8PpJg^+KS|ou+`cLrrG7T!OqE}Leiwkq3kTOiZr9b<-8uKKF zXVA_FX*CM8+?e#x&XwKMJrTOKya^}7bP_BsE&_-URv!_?6>&DK_Gz**9KZklmd4-8 zi-EMggIR)@8(R>*kvn}p?kIe;i(Zh8x;^`PWwS5kF!pD?=1vflO!=oO;g zZsfB>7DC)>E_i5Y>~DX&^88tVv$J&@BILL#l2wajZgR6OBa4H1wOnBv9bRA3Oe0yo zR;&oyz0L3dWm%S3e>v-!q%RRAll=c5^?ZgyPH8R@Q-$m-9oRv)U=iNO+lfXC|Lv(p zY|+K&46J}>THSDLPtkP~`o$?DF)F{pXKWSl5LPb&Tg9R`QiMk9keN#C5PevYAZJS# zLO1lD^W%bjN+x+ zl%LF3%tm!aea5_{?RbR)(+bY-ks3CQJ(V<3h5iwntL!BcZwtDC=Rr`oyEJ_Jf_x1I zkZ4&vNGLxAnsP5Tu`M`7J8BaJO;nRZior2&TAagR+bHv0+P3U%AA1&$YXO28SV1+h z#Hp)cwm{Vdz&M{3@Ca5|hM0~RS&e#BrLkaYPIr7Sa2OD1p5EW8qibhqHI<#i&e_;2 zcteV0nm{pT*^5>R^?iEqk>s~mVs?-qKpJMR4)04v{<7<#A0Q)cjPQ)e3iOl#3gL2p z{MD^_dOCsA$HG~nIS>Qrs%-W?Uh((5wX%&$J6ZS_U*Z1H_l}4Z&Ug>Bq|JQF_Ye8( zEo%owgf;yz+f0Oq%tO*-SFbX~E(h<%1>lV{9_>AlG{asL0a{KgwS$0lWl%&xq7erf zKEym)y%8HW;G&<-hw54Y?@zmKl6*<+SvF`KQ+8b#unnuoEd|Qs4g`_lt zV_7SQ*J21x3_@eOSEO)GW73R%X+Z^F1!5;_Qp15yL9M1>f9spK!nBGtF~kjcqNP_? zVXPq>R04BrDyfw}wf?JZ8-FQtHxBO)^E(#?gI7QLlUELFf>awmlE$(MhA$l6{4iGf z3qZ>8i#E{w(6OtED(L}Ct@D{rQ{8483Tz1{(zpd=`#`;II>*4cA+Ct*`=Dv@QYzv$ zJ%%&yBqxpa4)j%BbNKK5M)BDGjGGgE1%>gDWC{nef5FdI@gNr1z> z7wK}I&yx=tYdm6<`wGMlt@5RnE!AqdXaCrqRS_e_Mbkk593Owi$kwC4K#)sgRNSUY ztV)8s`q_li-@ete3-?#Z)`7WcG*6oYGMu0n_461N;yFGAvqOhm|w6XCDGW22#qWdsGWDvGg#X+hPfoYJ_8icc$kZb30jx z?0FNM<@{x8qx$HwMHYA(;6wGvChZj zszkxBKIBnSp&Y^TWtf^r4mWYOF~(!hl$j1sw-~_QWtz1%=km>c zK-Q>P`+M;G*inp9+M|MSNx2iS)RR2ozwxxHbu8bQv<-i_Bti4`Z8*&-w#3%gWC^hO z$2VdWdo0fzq(&+D>m)EX6*9lv9&OkVA4Nbb?M!1AzBIAtv7g$+`!;nM{{-VEHg^f2 zOm{?{SaEn$_FN9yuk2s+bP_WlPfNlf#W?TXH7BjpOIojQ1DmhsK>vEt2^|&MgL584 zLj?yKD~3UhXx)avPPX`m@`+_n+z3M0m)1rUv0D8C9phG3k1NL&oQl{+M7A?w?xOb} z#hjuj)PdYE$KS+#BFw4GzpN}18r5*{cbrnjtGDLXZ@+LGPw>0Yu5yVFkdGp9+3Qj>cB5D)%8VZvX=ZPK zrjqtA?4!jku#*_$Yp%=ZDVMx7my)yrSe$c47GJT@Yda{i(@!@Yv?fCZPzUDr0G2%yoKj zuJ_QNbLhBu;^WFn_}OOSWqsxQjc^M3gWRQ&yBCmTTiw5&Ai#tsZxv2QAxEW#Hy+ME ze7$WM!Xy*@5w(mhm zD~XG8oenU+NhruSBhAlCw*KtpDxIcQ2^umOvp7wRL~>uMPh4J0j-%<&VmW}ly!)9; z$(BnNGf3tPAQSXJbik0;KMtQ5GD%}+KVIZ<2A&oy5v1|YT_D?57vEMCWaP!2QHN)+ zYWmFn*K8?8RGOCvgKB~ifcGlC+RNA7mb$I0qLs8w_*Zi_Kpg4`Sx4AQ`)!ioZa{E^Q{)!zw%+q@nakGR1kCWi9+CJ^*rZNlts3!^+# zhH<9-$vh~&sJOg(+J*q~0+z%kd0oH7besTc>?LZ*xL-i2SCH|POQ+Gj@iSw36_%=R zNf6eOs_-u+GHHO2)%N&tdVT?MbmxuKCen-liiqI#>%Ez-?GiJZekBS4x93Pucgakg zUrEj6`a!n8^gmK1&z&50(%q>)q{!3etel$~r?^d4N5xnDsor@r|4)EB0!UT7qaLKoT=8figPoRs`*5^|PaZN-4u!GnSaZDGgj3dPlKrH#bA zsn@=QruLFi3FpFKYK9SBY^he*@TsG@P4b^zjjq`5VoyXYKLX0=c+fqNkC%gmhxO6- zlWq!<=O==V)UbB~TV7>f_b+5FfhaLj)@)Oaw$lI))HuK6P9J`?i>X=Avv$V*8_w*a42**`{-i4i%Awox)Wy zY6w?Ugg>}zYpO>s=JfQR7bwBLK3r7c2Qttgm!C?#+M6T%ozeVFHl5Cs0^}A&7WAys zZQrl5?FI8yTjeC~1KC}2UEJVQb1J~c&41*b>jN%HUZax*we+;1n1_?Ub1;*zo4Pc+ zde2&&W~Wv|7gH1l6#(p~{EVfXlx+&Lvfv9um9U|fTxSHl+7m{#Tt9Sw8E7c+aUKNivc{@E0*YS6VvNPfX3EYw=zQG|b{Dr)L;h~Z1fyY_T8TG| zM8)r*4?}W5_qi;{0Da7>T&4nTLp&`@lQG`5Js(hw3Ovq`DE7?kpL+O!VdTB)k~2n)1GZ%eGFM zMfDq&c*a(txYLhlASx+_9CK$nse&)S>toYOk=^fwf~4Uoz=HtKXtYa zNgq^=Vm?y6QAYy^IPXTjfAVFOCc zr_c+>>{KZOnd5sI$Km|k?TJ9_eu4)e-`>IwHRR`{j#XE8R`bFT1Z8O0WTM+HmPcvo zu*IF;Z3Sc=M$Va%AjN~p;kDtHLYS}u8;gB9D3z4qetl^(B_EdD29*i}_PKCyuxr0B9~xOC5T8vD%n z#NsL~$c%rzueZ`X5RdIL%6H_c)AKob|A%a1f)xFc)@fz=J(JW;REZG?#krwSd^qWs#Gw~QP9{?7fl5yi_u;@8b&=v<`A)djrzI?Gq`~54oq{)n`lKgNPwPh6LDk*_uxN>OCS%uX$2#L>SojH=V$;0uqvDQL(L6Wf{oW*VyY_`6@ z^+O|n&7Fd{IH&neBzK1bI`*TyCJpMk+8udpGE(fW$T%neo`~w>;eC>$`DB>XjqU}q zJnP$`{f&7L3Pi17iL_~IFxGwph!|>kG5s@)qnt#R8@(+kNJw8r={ye!jDxYXNtAlhO?0lD{lXZ;`4Vr2 zAg6Q`zNx>`RxLMMa_qM^XN$H%y1(}@{MLW(#m3?{w1%wS=-jGAdWJFFR&`I%KJ4tL z3%c8_qXY$=8E~ZT3;C7&FrHW7e)8|iFc1H?i(z)1YGY_$a%%MOk&l*h5FKY6u9f3| zyitbdf0h^!b6XKrzcO3ck?_N4l-Kik28IGPA;84O6UObeEhx2|q#>%&zp|$&tB2>* zacX3sZQg=idC)c3vo>qwcBuWEteOF;-c^oS%s;$vIz%!PWl>4#k1+TGy@)NzXNkNk zjB;dskN52sew(C<+6rD~Tpy`=+((;-(t^1jnjpRHlk_OQnL*upN8oSp(Yr#{(Ccmy z#PqJ!C9}+HCmN?o@ffRgd~2*#+v4)bu5Ha$=KdgxxyROM*<0` z_B1fS=Xz2wtn`*%L7|=xA!61^ax{HxIMrAt@{gB!WT>leqpci1rtSfd5V2P$E^;`U zJK+O!M^#dId?OLHLf^hwLisIrdjOEJRwugkAq}Bd8}*~2;J0V&luR+s%FP79nV=2@ z2EKc58zo+Z*Uz5lh58{Q-9_BC17MG`#fo6;4ovtKdaL_&oSLca_@sN6l@IQvi!Bvr z71$yfQ4EIbzab73l4->~$<`0BRMksn!e@&|quVmWaR%gv1d3sun%8^}n0obo(2w@4 zNyBaxGD;R8#&NS=if|{S`%0Srm%j@ooShM@Apq<=KJ!wJoUPGOoI%nDX^G<} z%|^nGrG%UWdeN-&9mS}(XC(g-L9BRmiEO6+m(8Nwo;W4yk~2eyy!|!_@oo}EMb-IZ z+L2B*w&-|nXU*MG>|_jgy5f#eDwpOEs?3k^+b}X{02%dS79F6{9P+D&>oh6y|95Fs zK{XWXi!_YmZ*)?AC9*P&IG6)#T&2j#*9i3mI!XIA@bRe)$z7gZy)>Nh*$LJC*Jyss z(0Tt;nR;k&E!F=TgK3Mx6UU>m9+n*@?o&2KKuM|?T`KFxKs|LGx|;4`Sa;@|Z@S;{ zn@|6x$k2cn!qG@kRI}8Ten1VfH0V8~1@zDSWG=al_8hyl;o4s2Ia|~0sNqT% zPKR;5Aq8F(e2mN<_7D(08Qr>sNdiGz_UZ3a&5kzI z_lKs9#=vT}dpi5ruX@P$POH#jKTO;}K{3>4%HdshObTk)CBODwfUx{=J9FIiJNPdv zonRI4KrqFNJrnjjsLvhdlP-hnDY-YSk0*o)rlzf&ZU11KmcRC(%RXk-I1I0 zN#}qWlPuY(NBYepm;AGx1#b5)k8iMCBIFRXl=*Gm+8s;{Lv+vzZdYGN^dqxs>XW-t z-VALAD%FqKIWme9`5fofjN7)iU00+8Gt!kbst`J(uY@zXPZ$M^=D`h7RD1J~B@Z7z zI1Dx&_0*+G%gc*KYOl_XjL2dStb!t-72pRwq`lq)8^2C!-E&m*D2VG04{#4|GbKMM z=t1HV2T=pbP-AKw9(5y`A^Ix_H>qqDQ6OSQ|2=cbRR!|0TpyG>Do{mlT<&DVt^s=x z;x#zX6y=4-uw4fg}WEPnkH)yZ3dCvB?{e})vKg;Aa3cv|#X7xd0 zl2sb_VU53!^monKyiM%qZVqBjq4mYg9=!cH{cRg)6rn%R9NW(A=h7e}q{ra5r*|4? zWPB?vUtzQ`Xpc#yBJ0=q5bfp&76z6}spc-uTb!$V>Pk0aCRzW_DG1A|%rATN^Ox*R^si9JoDTA_8kyy^a6>1dn5w{{3 z?>U1(j~9B|b+iu;E;D;+l_iJ4_Ld^r%@a(LJv|j!IPadr}Pm^Fuc?O_w}c zKH!*idsSAzID#e|o-D-!bp~51zycqIH=X}Cgacs@74vqKh50h6r+HZfM5o2+STjmRIpvsoCGeRw?8xW|mN!@0HGV|jY za~K~lXUp?GP*`E3YY-8~30)t0d*6-OeO(9`4MC+T+2dhtz^q_>N`4lop6b>if2Brqdnk?{zLow3#6FglN`V%1Il%#x~z5bu0#JPTtCwryw zwQbnq$C}G0XUvXSthof~UqX2>^iXyRRApw~M4d&)BWt%{ih3^6EG-3q12WwC$Hzu) zfqhCb)`qmHUOu~LSaUAvI4%h6IpyG6lI2tZob0shlD1EKi z3{cqt!UGdEX1~Q6rR#{g*mBR-MeaL?L8IC+J1b0nucm5nGi?^kEkyrHUA5PdS*~hj z?h0ur&N=b|-~NTQH+DGR|r#ja_yGqi=38|Vc9 zVPUWm$^g6S=dqi2>(h>U>Q*@rrX2_9Et})bQ3LuNaa5Bkxy&Ti{K9Xw57M+JT5+Tq zm{9`L_@34s(L`WFjXkkl9d%kXILFIjil{!IRW!X75=AJJ!4hAoD|Ved$4+12HvYlk z()p0xpZ93^<9yrsVZH3un%%TZVDm zk&A3RlOwEmTcYytlJ|Illl}y#q6FSQbK-!Rn_0g4`6r9dO`6!gX>=noV0m#CspAmn zUyOJ1|5T~ZGv7MB=y%L87VqxYgs4pssvfpHe*0>6>mFWdML^#iRmaJU|qa@ zwPH#{yEZT*nH#b!z4&q{6i39pCJq`G$g5|9V{~k-jJCnde4_ukTn^npazhj=DE@r- z*+H+LgfzR1?1_Ov&kQo94&{T|l7s^=pZNOO{b{uSj1ByRu_B=HqF{(Tb)x&WLk zIoRp7y#U*Tf5VN$kN_CDP!m98vgcvf@af};n4oYC(M!eR;dt-oom-8tU-l;#Ie|<> zTwe^Bz;z`No1=Nkw`BooX_m#JiN7VECOFZn`k1WlBc6H$H~;jq{%?_=1fKTH$2Jg^ z#ck?R+2FdaHY<2O(zg}h{E!kRqJN~D`#OLaAfEcwsX%`BOkL%L6k_=b z_vAc6w{cwGdk^V5a^%mkA18^Iuj>=SK%*ezJ152Dd)ZwwQro|QnKCjMjpv0Z9pYE4?-GN z)CW!u#vaHM+8Ml5o#B8)VZ34ZvblQ-I20Q+)m)7HXoXg7n}OWI5Q^cuOp2?~f5Mg= OS~J6QAC))Mcp($UED!ns literal 0 HcmV?d00001 diff --git a/test/resources/dir/file3_zeros b/test/resources/dir/file3_zeros new file mode 100644 index 0000000000000000000000000000000000000000..294f4016d05bdd696670c4840f1f36a71f9239de GIT binary patch literal 16384 zcmeIuF#!Mo0K%a4Pi+hzh(KY$fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM q7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjMyaxtA00031 literal 0 HcmV?d00001 diff --git a/test/resources/file1_random b/test/resources/file1_random new file mode 100644 index 0000000000000000000000000000000000000000..0a872de9ae27fa7c73ad1126646eec7c7d16ca83 GIT binary patch literal 16384 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 OS~J6QAC))Mcp($UED!ns literal 0 HcmV?d00001 diff --git a/test/resources/file3_zeros b/test/resources/file3_zeros new file mode 100644 index 0000000000000000000000000000000000000000..294f4016d05bdd696670c4840f1f36a71f9239de GIT binary patch literal 16384 zcmeIuF#!Mo0K%a4Pi+hzh(KY$fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM q7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjMyaxtA00031 literal 0 HcmV?d00001 diff --git a/test/resources/test1.tar.gz b/test/resources/test1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e30e2173325bd0aeae40d7f211f27a22f42528d4 GIT binary patch literal 33089 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 X+yB^sZo~op&6lrSzi=MI2L=WJ%!_JP literal 0 HcmV?d00001 diff --git a/test/resources/test2.tar.gz b/test/resources/test2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..de56711ea3083f5829cd4855a90d5e9f40caec10 GIT binary patch literal 33222 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 literal 0 HcmV?d00001 diff --git a/test/test.cpp b/test/test.cpp new file mode 100644 index 0000000..c564ff5 --- /dev/null +++ b/test/test.cpp @@ -0,0 +1,231 @@ +/* + * testsuite for libarchive_cpp_wrapper + * + * Created on: Feb 8, 2021 + * Author: coldtobi + * LICENSE is BSD-2 clause. + */ + +#include "archive_reader.hpp" +#include "archive_writer.hpp" +#include "archive_exception.hpp" + +#include +#include +#include +#include +#include +#include + +namespace ar = ns_archive::ns_reader; + +class LibArchiveWrapperTest : public testing::Test { +public: + LibArchiveWrapperTest() = default; + virtual ~LibArchiveWrapperTest() { + if (!HasFailure()) { + for (auto const &x : cleanup_files) { + ::unlink(x.c_str()); + } + } + } + + // Let the test know about archives to de deleted after the test + // (will only be deleted if it succeded, not on failures.) + void deleteAfterTest(const std::string &cleanup) { + cleanup_files.insert(cleanup); + } + + std::string getResourceDir() { + auto resources = ::getenv("TEST_RESOURCES"); + if(!resources) return ""; + std::string ret(resources); + if(ret.size() && (ret.at(ret.size()-1) != '/')) { ret += '/'; } + return ret; + } + + std::string getcwd() { + auto cwd = ::getcwd(nullptr, 0); + if(!cwd) { return "/tmp/"; } + std::string ret(cwd); + if(ret.size() && (ret.at(ret.size()-1) != '/')) { ret += '/'; } + free(cwd); + return ret; + } + +protected: + std::set cleanup_files; + +}; + +TEST_F(LibArchiveWrapperTest, TestReadSimpleArchive) { + // Reading an archive. + auto dutarchive = getResourceDir() + "test1.tar.gz"; + + std::cerr << dutarchive << std::endl; + + std::set expected_files{"file1_random", "file2_random", "file3_zeros"}; + try + { + std::ifstream fs(dutarchive); + ns_archive::reader reader = ns_archive::reader::make_reader(fs, 32000); + + for(auto entry : reader) + { + std::string filename = entry->get_header_value_pathname(); + std::string comparefile = getResourceDir() + filename; + bool isdirectory = (filename.size() && filename[filename.size()-1] == '/'); + + auto it = expected_files.find(filename); + ASSERT_TRUE(it != expected_files.end()); + struct stat sb; + auto statret = stat(comparefile.c_str(),&sb); + EXPECT_EQ(0, statret); + + EXPECT_TRUE(S_ISDIR(sb.st_mode) == isdirectory); + + if (!isdirectory) { + EXPECT_EQ(sb.st_size, entry->get_header_value_size()); + auto original = std::ifstream(comparefile, std::ios::in | std::ios::binary); + auto *buf = new char[sb.st_size]; + auto *buf2 = new char[sb.st_size]; + auto &entrystream = entry->get_stream(); + original.read(buf, sb.st_size); + entrystream.read(buf2, sb.st_size); + EXPECT_TRUE(original.good()); + EXPECT_TRUE(entrystream.good()); + EXPECT_EQ(0,::memcmp(buf, buf2, sb.st_size)); + delete[] buf, buf2; + } + expected_files.erase(filename); + } + } + catch(ns_archive::archive_exception& e) + { + ADD_FAILURE() << e.what(); + } + + EXPECT_EQ(0, expected_files.size()); +} + + +TEST_F(LibArchiveWrapperTest, TestReadDirectoryArchive) { + // Reading an archive. + auto dutarchive = getResourceDir() + "test2.tar.gz"; + + std::set expected_files{"dir/", "dir/file1_random", "dir/file2_random", "dir/file3_zeros"}; + + try + { + std::ifstream fs(dutarchive); + ns_archive::reader reader = ns_archive::reader::make_reader(fs, 32000); + + for(auto entry : reader) + { + std::string filename = entry->get_header_value_pathname(); + std::string comparefile = getResourceDir() + filename; + + bool isdirectory = (filename.size() && filename[filename.size()-1] == '/'); + + auto it = expected_files.find(filename); + ASSERT_TRUE(it != expected_files.end()); + struct stat sb; + auto statret = stat(comparefile.c_str(),&sb); + EXPECT_EQ(0, statret); + + EXPECT_TRUE(S_ISDIR(sb.st_mode) == isdirectory); + + if (!isdirectory) { + EXPECT_EQ(sb.st_size, entry->get_header_value_size()); + auto original = std::ifstream(comparefile, std::ios::in | std::ios::binary); + auto *buf = new char[sb.st_size]; + auto *buf2 = new char[sb.st_size]; + auto &entrystream = entry->get_stream(); + original.read(buf, sb.st_size); + entrystream.read(buf2, sb.st_size); + EXPECT_TRUE(original.good()); + EXPECT_TRUE(entrystream.good()); + EXPECT_EQ(0,::memcmp(buf, buf2, sb.st_size)); + delete[] buf, buf2; + } + expected_files.erase(filename); + } + } + catch(ns_archive::archive_exception& e) + { + ADD_FAILURE() << e.what(); + } + + EXPECT_EQ(0, expected_files.size()); +} + +TEST_F(LibArchiveWrapperTest, TestCreateDirectoryArchive) { + auto dutarchive = getcwd() + "test_create.tar.gz"; + + std::cerr << "DUT: " << dutarchive << std::endl; + std::set expected_files{"dir/file1_random", "dir/file2_random", "dir/file3_zeros"}; + + // Create an archive. + try { + std::ofstream outfs(dutarchive, std::ios::trunc | std::ios::out); + ns_archive::writer writer = ns_archive::writer::make_writer(outfs, 10240); + + for(const auto& x: expected_files) { + std::ifstream file(getResourceDir() + x); + ASSERT_TRUE(file.good()); + ns_archive::entry out_entry(file); + out_entry.set_header_value_pathname(x); + writer.add_entry(out_entry); + } + } catch (ns_archive::archive_exception& e) + { + ADD_FAILURE() << e.what(); + } + + // Read back the archive and compare the files. + try + { + std::ifstream fs(dutarchive); + deleteAfterTest(dutarchive); + ns_archive::reader reader = ns_archive::reader::make_reader(fs, 32000); + + for(auto entry : reader) + { + std::string filename = entry->get_header_value_pathname(); + std::string comparefile = getResourceDir() + filename; + + bool isdirectory = (filename.size() && filename[filename.size()-1] == '/'); + + auto it = expected_files.find(filename); + ASSERT_TRUE(it != expected_files.end()); + struct stat sb; + auto statret = stat(comparefile.c_str(),&sb); + EXPECT_EQ(0, statret); + + EXPECT_TRUE(S_ISDIR(sb.st_mode) == isdirectory); + + if (!isdirectory) { + EXPECT_EQ(sb.st_size, entry->get_header_value_size()); + auto original = std::ifstream(comparefile, std::ios::in | std::ios::binary); + auto *buf = new char[sb.st_size]; + auto *buf2 = new char[sb.st_size]; + auto &entrystream = entry->get_stream(); + original.read(buf, sb.st_size); + entrystream.read(buf2, sb.st_size); + EXPECT_TRUE(original.good()); + EXPECT_TRUE(entrystream.good()); + EXPECT_EQ(0,::memcmp(buf, buf2, sb.st_size)); + delete[] buf, buf2; + } + expected_files.erase(filename); + } + } + catch(ns_archive::archive_exception& e) + { + ADD_FAILURE() << e.what() << " Archive: " << dutarchive; + } + + EXPECT_EQ(0, expected_files.size()); + std::cerr << dutarchive << std::endl; + +}