Best Python code snippet using pytest-benchmark
zziptests.py
Source:zziptests.py  
...453    exe = self.bins("zzdir")454    run = shell("{exe} {getfile} ".format(**locals()))455    self.assertIn(' README\n', run.output)456    self.assertIn(' defl:N ', run.output)457    self.assertLess(len(run.output), 30)458  def test_20021_zzdir_test1_zip(self):459    """ run zzdir on test1.zip using just 'test1' """460    zipfile = "test1.zip"461    getfile = "test1"462    exe = self.bins("zzdir")463    run = shell("{exe} {getfile} ".format(**locals()))464    self.assertIn(' file.1\n', run.output)465    self.assertIn(' file.2\n', run.output)466    self.assertIn(' file.9\n', run.output)467    self.assertIn(' README\n', run.output)468    self.assertIn(' defl:N ', run.output)469    self.assertIn(' stored ', run.output)470  def test_20022_zzdir_test2_zip(self):471    """ run zzdir on test2.zip using just 'test2' """472    zipfile = "test2.zip"473    getfile = "test2"474    exe = self.bins("zzdir")475    run = shell("{exe} {getfile} ".format(**locals()))476    self.assertIn(' file.01\n', run.output)477    self.assertIn(' file.22\n', run.output)478    self.assertIn(' file.99\n', run.output)479    self.assertIn(' defl:N ', run.output)480    self.assertIn(' stored ', run.output)481  def test_20023_zzdir_test3_zip(self):482    """ run zzdir on test3.zip using just 'test3' """483    zipfile = "test3.zip"484    getfile = "test3"485    exe = self.bins("zzdir")486    run = shell("{exe} {getfile} ".format(**locals()))487    self.assertIn(' file.001\n', run.output)488    self.assertIn(' file.222\n', run.output)489    self.assertIn(' file.999\n', run.output)490    self.assertIn(' defl:N ', run.output)491    self.assertIn(' stored ', run.output)492  def test_20024_zzdir_test4_zip(self):493    """ run zzdir on test4.zip using just 'test4' """494    zipfile = "test4.zip"495    getfile = "test4"496    exe = self.bins("zzdir")497    run = shell("{exe} {getfile} ".format(**locals()))498    self.assertIn(' file0001.txt\n', run.output)499    self.assertIn(' file2222.txt\n', run.output)500    self.assertIn(' file9999.txt\n', run.output)501    self.assertNotIn(' defl:N ', run.output)502    self.assertIn(' stored ', run.output)503  def test_20320_zzxordir_test0_dat(self):504    """ run zzxordir on test0x.dat """505    zipfile = "test0x.dat"506    getfile = "test0x.dat"507    exe = self.bins("zzdir")508    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])509    self.assertEqual(run.returncode, 1)510    self.assertEqual("", run.output)511    self.assertIn("did not open test", run.errors)512    exe = self.bins("zzxordir")513    run = shell("{exe} {getfile} ".format(**locals()))514    self.assertIn(' README\n', run.output)515    self.assertIn(' defl:N ', run.output)516    self.assertLess(len(run.output), 30)517  def test_20321_zzxordir_test1_dat(self):518    """ run zzxordir on test1x.dat using just 'test1x' """519    zipfile = "test1x.dat"520    getfile = "test1x.dat"521    exe = self.bins("zzdir")522    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])523    self.assertEqual(run.returncode, 1)524    self.assertEqual("", run.output)525    self.assertIn("did not open test", run.errors)526    exe = self.bins("zzxordir")527    run = shell("{exe} {getfile} ".format(**locals()))528    self.assertIn(' file.1\n', run.output)529    self.assertIn(' file.2\n', run.output)530    self.assertIn(' file.9\n', run.output)531    self.assertIn(' README\n', run.output)532    self.assertIn(' defl:N ', run.output)533    self.assertIn(' stored ', run.output)534  def test_20322_zzxordir_test2_dat(self):535    """ run zzxordir on test2x.dat using just 'test2x' """536    zipfile = "test2x.dat"537    getfile = "test2x"538    exe = self.bins("zzdir")539    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])540    self.assertEqual(run.returncode, 1)541    self.assertEqual("", run.output)542    self.assertIn("did not open test", run.errors)543    exe = self.bins("zzxordir")544    run = shell("{exe} {getfile} ".format(**locals()))545    self.assertIn(' file.01\n', run.output)546    self.assertIn(' file.22\n', run.output)547    self.assertIn(' file.99\n', run.output)548    self.assertIn(' defl:N ', run.output)549    self.assertIn(' stored ', run.output)550  def test_20323_zzxordir_test3_dat(self):551    """ run zzxordir on test3x.dat using just 'test3x' """552    zipfile = "test3x.dat"553    getfile = "test3x"554    exe = self.bins("zzdir")555    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])556    self.assertEqual(run.returncode, 1)557    self.assertEqual("", run.output)558    self.assertIn("did not open test", run.errors)559    exe = self.bins("zzxordir")560    run = shell("{exe} {getfile} ".format(**locals()))561    self.assertIn(' file.001\n', run.output)562    self.assertIn(' file.222\n', run.output)563    self.assertIn(' file.999\n', run.output)564    self.assertIn(' defl:N ', run.output)565    self.assertIn(' stored ', run.output)566  def test_20324_zzxordir_test4_zip(self):567    """ run zzxordir on test4x.dat using just 'test4x' """568    zipfile = "test4x.dat"569    getfile = "test4x"570    exe = self.bins("zzdir")571    run = shell("{exe} {getfile} ".format(**locals()), returncodes = [0,1])572    self.assertEqual(run.returncode, 1)573    self.assertEqual("", run.output)574    self.assertIn("did not open test", run.errors)575    exe = self.bins("zzxordir")576    run = shell("{exe} {getfile} ".format(**locals()))577    self.assertIn(' file0001.txt\n', run.output)578    self.assertIn(' file2222.txt\n', run.output)579    self.assertIn(' file9999.txt\n', run.output)580    self.assertNotIn(' defl:N ', run.output)581    self.assertIn(' stored ', run.output)582  def test_20340_zzxorcat_test0_zip(self):583    """ run zzxorcat on testx.zip using just testx/README """584    getfile = "test0x/README"585    logfile = "test0x.readme.txt"586    exe = self.bins("zzcat")587    run = shell("{exe} {getfile} ".format(**locals()), lang="C")588    self.assertEqual("", run.output)589    self.assertIn("No such file or directory", run.errors)590    exe = self.bins("zzxorcat")591    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))592    self.assertGreater(os.path.getsize(logfile), 10)593    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))594  def test_20341_zzxorcat_test1_zip(self):595    """ run zzxorcat on testx.zip using just testx/README """596    getfile = "test1x/README"597    logfile = "test1x.readme.txt"598    exe = self.bins("zzcat")599    run = shell("{exe} {getfile} ".format(**locals()), lang="C")600    self.assertEqual("", run.output)601    self.assertIn("No such file or directory", run.errors)602    exe = self.bins("zzxorcat")603    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))604    self.assertGreater(os.path.getsize(logfile), 10)605    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))606    getfile = "test1x/file.1"607    run = shell("{exe} {getfile}".format(**locals()))608    self.assertEqual("file-1\n", run.output)609  def test_20342_zzxorcat_test2_zip(self):610    """ run zzxorcat on testx.zip using just testx/README """611    getfile = "test2x/README"612    logfile = "test2x.readme.txt"613    exe = self.bins("zzcat")614    run = shell("{exe} {getfile} ".format(**locals()), lang="C")615    self.assertEqual("", run.output)616    self.assertIn("No such file or directory", run.errors)617    exe = self.bins("zzxorcat")618    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))619    self.assertGreater(os.path.getsize(logfile), 10)620    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))621    getfile = "test2x/file.22"622    run = shell("{exe} {getfile}".format(**locals()))623    self.assertEqual("file-22\n", run.output)624  def test_20343_zzxorcat_test3_zip(self):625    """ run zzxorcat on testx.zip using just testx/README """626    getfile = "test3x/README"627    logfile = "test3x.readme.txt"628    exe = self.bins("zzcat")629    run = shell("{exe} {getfile} ".format(**locals()), lang="C")630    self.assertEqual("", run.output)631    self.assertIn("No such file or directory", run.errors)632    exe = self.bins("zzxorcat")633    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))634    self.assertGreater(os.path.getsize(logfile), 10)635    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))636    getfile = "test3x/file.999"637    run = shell("{exe} {getfile}".format(**locals()))638    self.assertEqual("file-999\n", run.output)639  def test_20344_zzxorcat_test4_zip(self):640    """ run zzxorcat on testx.zip using just testx/README """641    getfile = "test4x/README"642    logfile = "test4x.readme.txt"643    exe = self.bins("zzxorcat")644    run = shell("{exe} {getfile} | tee {logfile}".format(**locals()))645    self.assertGreater(os.path.getsize(logfile), 10)646    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))647    getfile = "test4x/file9999.txt"648    run = shell("{exe} {getfile}".format(**locals()))649    self.assertEqual("file-9999\n", run.output)650  #####################################################################651  # check unzzip652  #####################################################################653  def test_20400_infozip_cat_test0_zip(self):654    """ run inzo-zip cat test.zip using just archive README """655    zipfile = "test0.zip"656    getfile = "README"657    logfile = "test0.readme.pk.txt"658    exe = self.bins("unzip")659    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))660    self.assertGreater(os.path.getsize(logfile), 10)661    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))662  def test_20401_infozip_cat_test1_zip(self):663    """ run info-zip cat test.zip using just archive README """664    zipfile = "test1.zip"665    getfile = "README"666    logfile = "test1.readme.pk.txt"667    exe = self.bins("unzip")668    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))669    self.assertGreater(os.path.getsize(logfile), 10)670    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))671    getfile = "file.1"672    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))673    self.assertEqual("file-1\n", run.output)674  def test_20402_infozip_cat_test2_zip(self):675    """ run info-zip cat test.zip using just archive README """676    zipfile = "test2.zip"677    getfile = "README"678    logfile = "test2.readme.pk.txt"679    exe = self.bins("unzip")680    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))681    self.assertGreater(os.path.getsize(logfile), 10)682    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))683    getfile = "file.22"684    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))685    self.assertEqual("file-22\n", run.output)686  def test_20405_zzcat_big_test5_zip(self):687    """ run info-zip cat test.zip using archive README """688    zipfile = "test5.zip"689    getfile = "README"690    logfile = "test5.readme.pk.txt"691    exe = self.bins("unzip")692    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))693    self.assertGreater(os.path.getsize(logfile), 10)694    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))695    getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"696    compare = self.gentext(1024)697    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))698    self.assertEqual(compare, run.output)699  def test_20410_zzcat_big_test0_zip(self):700    """ run zzcat-big on test.zip using just archive README """701    zipfile = "test0.zip"702    getfile = "README"703    logfile = "test0.readme.big.txt"704    exe = self.bins("unzzip-big")705    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))706    self.assertGreater(os.path.getsize(logfile), 10)707    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))708  def test_20411_zzcat_big_test1_zip(self):709    """ run zzcat-big on test.zip using just archive README """710    zipfile = "test1.zip"711    getfile = "README"712    logfile = "test1.readme.big.txt"713    exe = self.bins("unzzip-big")714    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))715    self.assertGreater(os.path.getsize(logfile), 10)716    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))717    getfile = "file.1"718    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))719    self.assertEqual("file-1\n", run.output)720  def test_20412_zzcat_big_test2_zip(self):721    """ run zzcat-seeke on test.zip using just archive README """722    zipfile = "test2.zip"723    getfile = "README"724    logfile = "test2.readme.big.txt"725    exe = self.bins("unzzip-big")726    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))727    self.assertGreater(os.path.getsize(logfile), 10)728    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))729    getfile = "file.22"730    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))731    self.assertEqual("file-22\n", run.output)732  def test_20415_zzcat_big_test5_zip(self):733    """ run zzcat-big on test.zip using archive README """734    zipfile = "test5.zip"735    getfile = "README"736    logfile = "test5.readme.zap.txt"737    exe = self.bins("unzzip-big")738    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))739    self.assertGreater(os.path.getsize(logfile), 10)740    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))741    getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"742    compare = self.gentext(1024)743    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))744    self.assertEqual(compare, run.output)745  def test_20420_zzcat_mem_test0_zip(self):746    """ run zzcat-mem on test.zip using just archive README """747    zipfile = "test0.zip"748    getfile = "README"749    logfile = "test0.readme.mem.txt"750    exe = self.bins("unzzip-mem")751    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))752    self.assertGreater(os.path.getsize(logfile), 10)753    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))754  def test_20421_zzcat_mem_test1_zip(self):755    """ run zzcat-mem on test.zip using archive README """756    zipfile = "test1.zip"757    getfile = "README"758    logfile = "test1.readme.mem.txt"759    exe = self.bins("unzzip-mem")760    run = shell("{exe} -p {zipfile}  {getfile} | tee {logfile}".format(**locals()))761    self.assertGreater(os.path.getsize(logfile), 10)762    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))763    getfile = "file.1"764    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))765    self.assertEqual("file-1\n", run.output)766  def test_20422_zzcat_mem_test2_zip(self):767    """ run zzcat-mem on test.zip using archive README """768    zipfile = "test2.zip"769    getfile = "README"770    logfile = "test2.readme.mem.txt"771    exe = self.bins("unzzip-mem")772    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))773    self.assertGreater(os.path.getsize(logfile), 10)774    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))775    getfile = "file.22"776    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))777    self.assertEqual("file-22\n", run.output)778  def test_20423_zzcat_mem_test3_zip(self):779    """ run zzcat-mem on test.zip using archive README """780    zipfile = "test3.zip"781    getfile = "README"782    logfile = "test3.readme.mem.txt"783    exe = self.bins("unzzip-mem")784    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))785    self.assertGreater(os.path.getsize(logfile), 10)786    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))787    getfile = "file.999"788    run = shell("{exe} -p {zipfile}  {getfile}".format(**locals()))789    self.assertEqual("file-999\n", run.output)790  def test_20424_zzcat_mem_test4_zip(self):791    """ run zzcat-mem on test.zip using archive README """792    zipfile = "test4.zip"793    getfile = "README"794    logfile = "test4.readme.mem.txt"795    exe = self.bins("unzzip-mem")796    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))797    self.assertGreater(os.path.getsize(logfile), 10)798    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))799    getfile = "file9999.txt"800    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))801    self.assertEqual("file-9999\n", run.output)802  def test_20425_zzcat_mem_test5_zip(self):803    """ run zzcat-mem on test.zip using archive README """804    zipfile = "test5.zip"805    getfile = "README"806    logfile = "test5.readme.zap.txt"807    exe = self.bins("unzzip-mem")808    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))809    self.assertGreater(os.path.getsize(logfile), 10)810    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))811    getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"812    compare = self.gentext(1024)813    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))814    self.assertEqual(compare, run.output)815  def test_20430_zzcat_mix_test0_zip(self):816    """ run zzcat-mix on test.zip using just archive README """817    zipfile = "test0.zip"818    getfile = "README"819    logfile = "test0.readme.mix.txt"820    exe = self.bins("unzzip-mix")821    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))822    self.assertGreater(os.path.getsize(logfile), 10)823    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))824  def test_20431_zzcat_mix_test1_zip(self):825    """ run zzcat-mix on test.zip using archive README """826    zipfile = "test1.zip"827    getfile = "README"828    logfile = "test1.readme.mix.txt"829    exe = self.bins("unzzip-mix")830    run = shell("{exe} -p {zipfile}  {getfile} | tee {logfile}".format(**locals()))831    self.assertGreater(os.path.getsize(logfile), 10)832    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))833    getfile = "file.1"834    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))835    self.assertEqual("file-1\n", run.output)836  def test_20432_zzcat_mix_test2_zip(self):837    """ run zzcat-mix on test.zip using archive README """838    zipfile = "test2.zip"839    getfile = "README"840    logfile = "test2.readme.mix.txt"841    exe = self.bins("unzzip-mix")842    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))843    self.assertGreater(os.path.getsize(logfile), 10)844    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))845    getfile = "file.22"846    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))847    self.assertEqual("file-22\n", run.output)848  def test_20433_zzcat_mix_test3_zip(self):849    """ run zzcat-mix on test.zip using archive README """850    zipfile = "test3.zip"851    getfile = "README"852    logfile = "test3.readme.mix.txt"853    exe = self.bins("unzzip-mix")854    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))855    self.assertGreater(os.path.getsize(logfile), 10)856    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))857    getfile = "file.999"858    run = shell("{exe} -p {zipfile}  {getfile}".format(**locals()))859    self.assertEqual("file-999\n", run.output)860  def test_20434_zzcat_mix_test4_zip(self):861    """ run zzcat-mix on test.zip using archive README """862    zipfile = "test4.zip"863    getfile = "README"864    logfile = "test4.readme.mix.txt"865    exe = self.bins("unzzip-mix")866    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))867    self.assertGreater(os.path.getsize(logfile), 10)868    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))869    getfile = "file9999.txt"870    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))871    self.assertEqual("file-9999\n", run.output)872  def test_20435_zzcat_mix_test5_zip(self):873    """ run zzcat-mix on test.zip using archive README """874    zipfile = "test5.zip"875    getfile = "README"876    logfile = "test5.readme.zap.txt"877    exe = self.bins("unzzip-mix")878    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))879    self.assertGreater(os.path.getsize(logfile), 10)880    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))881    getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"882    compare = self.gentext(1024)883    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))884    self.assertEqual(compare, run.output)885  def test_20440_zzcat_zap_test0_zip(self):886    """ run zzcat-zap on test.zip using just archive README """887    zipfile = "test0.zip"888    getfile = "README"889    logfile = "test0.readme.txt"890    exe = self.bins("unzzip")891    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))892    self.assertGreater(os.path.getsize(logfile), 10)893    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))894  def test_20441_zzcat_zap_test1_zip(self):895    """ run zzcat-zap on test.zip using archive README """896    zipfile = "test1.zip"897    getfile = "README"898    logfile = "test1.readme.zap.txt"899    exe = self.bins("unzzip")900    run = shell("{exe} -p {zipfile}  {getfile} | tee {logfile}".format(**locals()))901    self.assertGreater(os.path.getsize(logfile), 10)902    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))903    getfile = "file.1"904    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))905    self.assertEqual("file-1\n", run.output)906  def test_20442_zzcat_zap_test2_zip(self):907    """ run zzcat-zap on test.zip using archive README """908    zipfile = "test2.zip"909    getfile = "README"910    logfile = "test2.readme.zap.txt"911    exe = self.bins("unzzip")912    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))913    self.assertGreater(os.path.getsize(logfile), 10)914    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))915    getfile = "file.22"916    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))917    self.assertEqual("file-22\n", run.output)918  def test_20443_zzcat_zap_test3_zip(self):919    """ run zzcat-zap on test.zip using archive README """920    zipfile = "test3.zip"921    getfile = "README"922    logfile = "test3.readme.zap.txt"923    exe = self.bins("unzzip")924    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))925    self.assertGreater(os.path.getsize(logfile), 10)926    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))927    getfile = "file.999"928    run = shell("{exe} -p {zipfile}  {getfile}".format(**locals()))929    self.assertEqual("file-999\n", run.output)930  def test_20444_zzcat_zap_test4_zip(self):931    """ run zzcat-zap on test.zip using archive README """932    zipfile = "test4.zip"933    getfile = "README"934    logfile = "test4.readme.zap.txt"935    exe = self.bins("unzzip")936    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))937    self.assertGreater(os.path.getsize(logfile), 10)938    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))939    getfile = "file9999.txt"940    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))941    self.assertEqual("file-9999\n", run.output)942  def test_20445_zzcat_zap_test5_zip(self):943    """ run zzcat-zap on test.zip using archive README """944    zipfile = "test5.zip"945    getfile = "README"946    logfile = "test5.readme.zap.txt"947    exe = self.bins("unzzip")948    run = shell("{exe} -p {zipfile} {getfile} | tee {logfile}".format(**locals()))949    self.assertGreater(os.path.getsize(logfile), 10)950    self.assertEqual(run.output.split("\n"), self.readme().split("\n"))951    getfile = "subdir1/subdir2/subdir3/subdir4/subdir5/subdir6/file7-1024.txt"952    compare = self.gentext(1024)953    run = shell("{exe} -p {zipfile} {getfile}".format(**locals()))954    self.assertEqual(compare, run.output)955  def test_20500_infozipdir_test0_zip(self):956    """ run info-zip dir test0.zip  """957    zipfile = "test0.zip"958    getfile = "test0.zip"959    exe = self.bins("unzip")960    run = shell("{exe} -l {getfile} ".format(**locals()))961    self.assertIn(' README\n', run.output)962    self.assertLess(len(run.output), 230)963  def test_20501_infozipdir_test1_zip(self):964    """ run info-zip dir test1.zip  """965    zipfile = "test1.zip"966    getfile = "test1.zip"967    exe = self.bins("unzip")968    run = shell("{exe} -l {getfile} ".format(**locals()))969    self.assertIn(' file.1\n', run.output)970    self.assertIn(' file.2\n', run.output)971    self.assertIn(' file.9\n', run.output)972    self.assertIn(' README\n', run.output)973  def test_20502_infozipdir_big_test2_zip(self):974    """ run info-zip dir test2.zip """975    zipfile = "test2.zip"976    getfile = "test2.zip"977    exe = self.bins("unzip")978    run = shell("{exe} -l {getfile} ".format(**locals()))979    self.assertIn(' file.01\n', run.output)980    self.assertIn(' file.22\n', run.output)981    self.assertIn(' file.99\n', run.output)982  def test_20503_infozipdir_big_test3_zip(self):983    """ run info-zip dir test3.zip  """984    zipfile = "test3.zip"985    getfile = "test3.zip"986    exe = self.bins("unzip")987    run = shell("{exe} -l {getfile} ".format(**locals()))988    self.assertIn(' file.001\n', run.output)989    self.assertIn(' file.222\n', run.output)990    self.assertIn(' file.999\n', run.output)991  def test_20504_infozipdir_big_test4_zip(self):992    """ run info-zip dir test4.zip """993    zipfile = "test4.zip"994    getfile = "test4.zip"995    exe = self.bins("unzip")996    run = shell("{exe} -l {getfile} ".format(**locals()))997    self.assertIn(' file0001.txt\n', run.output)998    self.assertIn(' file2222.txt\n', run.output)999    self.assertIn(' file9999.txt\n', run.output)1000  def test_20505_infozipdir_big_test5_zip(self):1001    """ run info-zip dir on test5.zip """1002    zipfile = "test5.zip"1003    getfile = "test5.zip"1004    exe = self.bins("unzzip-mix")1005    run = shell("{exe} -v {getfile} ".format(**locals()))1006    self.assertIn('/subdir14/file15-128.txt\n', run.output)1007    self.assertIn('/subdir5/subdir6/', run.output)1008    self.assertIn(' defl:N ', run.output)1009    self.assertIn(' stored ', run.output)1010  def test_20510_zzdir_big_test0_zip(self):1011    """ run zzdir-big on test0.zip  """1012    zipfile = "test0.zip"1013    getfile = "test0.zip"1014    exe = self.bins("unzzip-big")1015    run = shell("{exe} -l {getfile} ".format(**locals()))1016    self.assertIn(' README\n', run.output)1017    self.assertLess(len(run.output), 30)1018  def test_20511_zzdir_big_test1_zip(self):1019    """ run zzdir-big on test1.zip  """1020    zipfile = "test1.zip"1021    getfile = "test1.zip"1022    exe = self.bins("unzzip-big")1023    run = shell("{exe} -l {getfile} ".format(**locals()))1024    self.assertIn(' file.1\n', run.output)1025    self.assertIn(' file.2\n', run.output)1026    self.assertIn(' file.9\n', run.output)1027    self.assertIn(' README\n', run.output)1028  def test_20512_zzdir_big_test2_zip(self):1029    """ run zzdir-big on test2.zip """1030    zipfile = "test2.zip"1031    getfile = "test2.zip"1032    exe = self.bins("unzzip-big")1033    run = shell("{exe} -l {getfile} ".format(**locals()))1034    self.assertIn(' file.01\n', run.output)1035    self.assertIn(' file.22\n', run.output)1036    self.assertIn(' file.99\n', run.output)1037  def test_20513_zzdir_big_test3_zip(self):1038    """ run zzdir-big on test3.zip  """1039    zipfile = "test3.zip"1040    getfile = "test3.zip"1041    exe = self.bins("unzzip-big")1042    run = shell("{exe} -l {getfile} ".format(**locals()))1043    self.assertIn(' file.001\n', run.output)1044    self.assertIn(' file.222\n', run.output)1045    self.assertIn(' file.999\n', run.output)1046  def test_20514_zzdir_big_test4_zip(self):1047    """ run zzdir-big on test4.zip """1048    zipfile = "test4.zip"1049    getfile = "test4.zip"1050    exe = self.bins("unzzip-big")1051    run = shell("{exe} -l {getfile} ".format(**locals()))1052    self.assertIn(' file0001.txt\n', run.output)1053    self.assertIn(' file2222.txt\n', run.output)1054    self.assertIn(' file9999.txt\n', run.output)1055  def test_20515_zzdir_big_test5_zip(self):1056    """ run zzdir-big on test5.zip """1057    zipfile = "test5.zip"1058    getfile = "test5.zip"1059    exe = self.bins("unzzip-mix")1060    run = shell("{exe} -v {getfile} ".format(**locals()))1061    self.assertIn('/subdir14/file15-128.txt\n', run.output)1062    self.assertIn('/subdir5/subdir6/', run.output)1063    self.assertIn(' defl:N ', run.output)1064    self.assertIn(' stored ', run.output)1065  def test_20520_zzdir_mem_test0_zip(self):1066    """ run zzdir-mem on test0.zip  """1067    zipfile = "test0.zip"1068    getfile = "test0.zip"1069    exe = self.bins("unzzip-mem")1070    run = shell("{exe} -v {getfile} ".format(**locals()))1071    self.assertIn(' README\n', run.output)1072    self.assertIn(' defl:N ', run.output)1073    self.assertLess(len(run.output), 30)1074  def test_20521_zzdir_mem_test1_zip(self):1075    """ run zzdir-mem on test1.zip  """1076    zipfile = "test1.zip"1077    getfile = "test1.zip"1078    exe = self.bins("unzzip-mem")1079    run = shell("{exe} -v {getfile} ".format(**locals()))1080    self.assertIn(' file.1\n', run.output)1081    self.assertIn(' file.2\n', run.output)1082    self.assertIn(' file.9\n', run.output)1083    self.assertIn(' README\n', run.output)1084    self.assertIn(' defl:N ', run.output)1085    self.assertIn(' stored ', run.output)1086  def test_20522_zzdir_mem_test2_zip(self):1087    """ run zzdir-mem on test2.zip """1088    zipfile = "test2.zip"1089    getfile = "test2.zip"1090    exe = self.bins("unzzip-mem")1091    run = shell("{exe} -v {getfile} ".format(**locals()))1092    self.assertIn(' file.01\n', run.output)1093    self.assertIn(' file.22\n', run.output)1094    self.assertIn(' file.99\n', run.output)1095    self.assertIn(' defl:N ', run.output)1096    self.assertIn(' stored ', run.output)1097  def test_20523_zzdir_mem_test3_zip(self):1098    """ run zzdir-mem on test3.zip  """1099    zipfile = "test3.zip"1100    getfile = "test3.zip"1101    exe = self.bins("unzzip-mem")1102    run = shell("{exe} -v {getfile} ".format(**locals()))1103    self.assertIn(' file.001\n', run.output)1104    self.assertIn(' file.222\n', run.output)1105    self.assertIn(' file.999\n', run.output)1106    self.assertIn(' defl:N ', run.output)1107    self.assertIn(' stored ', run.output)1108  def test_20524_zzdir_mem_test4_zip(self):1109    """ run zzdir-mem on test4.zip """1110    zipfile = "test4.zip"1111    getfile = "test4.zip"1112    exe = self.bins("unzzip-mem")1113    run = shell("{exe} -v {getfile} ".format(**locals()))1114    self.assertIn(' file0001.txt\n', run.output)1115    self.assertIn(' file2222.txt\n', run.output)1116    self.assertIn(' file9999.txt\n', run.output)1117    self.assertNotIn(' defl:N ', run.output)1118    self.assertIn(' stored ', run.output)1119  def test_20525_zzdir_mem_test5_zip(self):1120    """ run zzdir-mem on test5.zip """1121    zipfile = "test5.zip"1122    getfile = "test5.zip"1123    exe = self.bins("unzzip-mix")1124    run = shell("{exe} -v {getfile} ".format(**locals()))1125    self.assertIn('/subdir14/file15-128.txt\n', run.output)1126    self.assertIn('/subdir5/subdir6/', run.output)1127    self.assertIn(' defl:N ', run.output)1128    self.assertIn(' stored ', run.output)1129  def test_20530_zzdir_mix_test0_zip(self):1130    """ run zzdir-mix on test0.zip  """1131    # self.skipTest("todo")1132    zipfile = "test0.zip"1133    getfile = "test0.zip"1134    exe = self.bins("unzzip-mix")1135    run = shell("{exe} -v {getfile} ".format(**locals()))1136    self.assertIn(' README\n', run.output)1137    self.assertIn(' defl:N ', run.output)1138    self.assertLess(len(run.output), 30)1139  def test_20531_zzdir_mix_test1_zip(self):1140    """ run zzdir-mix on test1.zip  """1141    zipfile = "test1.zip"1142    getfile = "test1.zip"1143    exe = self.bins("unzzip-mix")1144    run = shell("{exe} -v {getfile} ".format(**locals()))1145    self.assertIn(' file.1\n', run.output)1146    self.assertIn(' file.2\n', run.output)1147    self.assertIn(' file.9\n', run.output)1148    self.assertIn(' README\n', run.output)1149    self.assertIn(' defl:N ', run.output)1150    self.assertIn(' stored ', run.output)1151  def test_20532_zzdir_mix_test2_zip(self):1152    """ run zzdir-mix on test2.zip """1153    zipfile = "test2.zip"1154    getfile = "test2.zip"1155    exe = self.bins("unzzip-mix")1156    run = shell("{exe} -v {getfile} ".format(**locals()))1157    self.assertIn(' file.01\n', run.output)1158    self.assertIn(' file.22\n', run.output)1159    self.assertIn(' file.99\n', run.output)1160    self.assertIn(' defl:N ', run.output)1161    self.assertIn(' stored ', run.output)1162  def test_20533_zzdir_mix_test3_zip(self):1163    """ run zzdir-mix on test3.zip  """1164    zipfile = "test3.zip"1165    getfile = "test3.zip"1166    exe = self.bins("unzzip-mix")1167    run = shell("{exe} -v {getfile} ".format(**locals()))1168    self.assertIn(' file.001\n', run.output)1169    self.assertIn(' file.222\n', run.output)1170    self.assertIn(' file.999\n', run.output)1171    self.assertIn(' defl:N ', run.output)1172    self.assertIn(' stored ', run.output)1173  def test_20534_zzdir_mix_test4_zip(self):1174    """ run zzdir-mix on test4.zip """1175    zipfile = "test4.zip"1176    getfile = "test4.zip"1177    exe = self.bins("unzzip-mix")1178    run = shell("{exe} -v {getfile} ".format(**locals()))1179    self.assertIn(' file0001.txt\n', run.output)1180    self.assertIn(' file2222.txt\n', run.output)1181    self.assertIn(' file9999.txt\n', run.output)1182    self.assertNotIn(' defl:N ', run.output)1183    self.assertIn(' stored ', run.output)1184  def test_20535_zzdir_mix_test5_zip(self):1185    """ run zzdir-mix on test5.zip """1186    zipfile = "test5.zip"1187    getfile = "test5.zip"1188    exe = self.bins("unzzip-mix")1189    run = shell("{exe} -v {getfile} ".format(**locals()))1190    self.assertIn('/subdir14/file15-128.txt\n', run.output)1191    self.assertIn('/subdir5/subdir6/', run.output)1192    self.assertIn(' defl:N ', run.output)1193    self.assertIn(' stored ', run.output)1194  def test_20540_zzdir_zap_test0_zip(self):1195    """ run zzdir-zap on test0.zip  """1196    zipfile = "test0.zip"1197    getfile = "test0.zip"1198    exe = self.bins("unzzip")1199    run = shell("{exe} -v {getfile} ".format(**locals()))1200    self.assertIn(' README\n', run.output)1201    self.assertIn(' defl:N ', run.output)1202    self.assertLess(len(run.output), 30)1203  def test_20541_zzdir_zap_test1_zip(self):1204    """ run zzdir-zap on test1.zip  """1205    zipfile = "test1.zip"1206    getfile = "test1.zip"1207    exe = self.bins("unzzip")1208    run = shell("{exe} -v {getfile} ".format(**locals()))1209    self.assertIn(' file.1\n', run.output)1210    self.assertIn(' file.2\n', run.output)1211    self.assertIn(' file.9\n', run.output)1212    self.assertIn(' README\n', run.output)1213    self.assertIn(' defl:N ', run.output)1214    self.assertIn(' stored ', run.output)1215  def test_20542_zzdir_zap_test2_zip(self):1216    """ run zzdir-zap on test2.zip """1217    zipfile = "test2.zip"1218    getfile = "test2.zip"1219    exe = self.bins("unzzip")1220    run = shell("{exe} -v {getfile} ".format(**locals()))1221    self.assertIn(' file.01\n', run.output)1222    self.assertIn(' file.22\n', run.output)1223    self.assertIn(' file.99\n', run.output)1224    self.assertIn(' defl:N ', run.output)1225    self.assertIn(' stored ', run.output)1226  def test_20543_zzdir_zap_test3_zip(self):1227    """ run zzdir-zap on test3.zip  """1228    zipfile = "test3.zip"1229    getfile = "test3.zip"1230    exe = self.bins("unzzip")1231    run = shell("{exe} -v {getfile} ".format(**locals()))1232    self.assertIn(' file.001\n', run.output)1233    self.assertIn(' file.222\n', run.output)1234    self.assertIn(' file.999\n', run.output)1235    self.assertIn(' defl:N ', run.output)1236    self.assertIn(' stored ', run.output)1237  def test_20544_zzdir_zap_test4_zip(self):1238    """ run zzdir-zap on test4.zip """1239    zipfile = "test4.zip"1240    getfile = "test4.zip"1241    exe = self.bins("unzzip")1242    run = shell("{exe} -v {getfile} ".format(**locals()))1243    self.assertIn(' file0001.txt\n', run.output)1244    self.assertIn(' file2222.txt\n', run.output)1245    self.assertIn(' file9999.txt\n', run.output)1246    self.assertNotIn(' defl:N ', run.output)1247    self.assertIn(' stored ', run.output)1248  def test_20545_zzdir_zap_test5_zip(self):1249    """ run zzdir-zap on test5.zip """1250    zipfile = "test5.zip"1251    getfile = "test5.zip"1252    exe = self.bins("unzzip")1253    run = shell("{exe} -v {getfile} ".format(**locals()))1254    self.assertIn('/subdir14/file15-128.txt\n', run.output)1255    self.assertIn('/subdir5/subdir6/', run.output)1256    self.assertIn(' defl:N ', run.output)1257    self.assertIn(' stored ', run.output)1258  def test_20595_zzextract_zap_test5_zip(self):1259    """ run zzextract-zap on test5.zip 1260        => coughs up a SEGFAULT in zzip_dir_close() ?!?"""1261    self.rm_testdir()1262    zipfile = "test5.zip"1263    getfile = "test5.zip"1264    tmpdir = self.testdir()1265    exe = self.bins("unzzip")1266    run = shell("cd {tmpdir} && ../{exe} ../{getfile} ".format(**locals()));1267    self.assertTrue(tmpdir+'/subdir1/subdir2/file3-1024.txt')1268    # self.rm_testdir()1269  url_CVE_2017_5977 = "https://github.com/asarubbo/poc/blob/master"1270  zip_CVE_2017_5977 = "00153-zziplib-invalidread-zzip_mem_entry_extra_block"1271  def test_59770_infozipdir_CVE_2017_5977(self):1272    """ run info-zip dir test0.zip  """1273    tmpdir = self.testdir()1274    filename = self.zip_CVE_2017_59771275    file_url = self.url_CVE_2017_59771276    download_raw(file_url, filename, tmpdir)1277    exe = self.bins("unzip")1278    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1279        returncodes = [0, 2])1280    self.assertIn(" didn't find end-of-central-dir signature at end of central dir", run.errors)1281    self.assertIn(" 2 extra bytes at beginning or within zipfile", run.errors)1282    self.assertLess(len(run.output), 280)1283    #1284    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),1285        returncodes = [2])1286    self.assertLess(len(run.output), 90)1287    self.assertLess(len(errors(run.errors)), 900)1288    self.assertIn('test:  mismatching "local" filename', run.errors)1289    self.assertIn('test:  unknown compression method', run.errors)1290    self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)1291    self.rm_testdir()1292  def test_59771_zzipdir_big_CVE_2017_5977(self):1293    """ run info-zip -l $(CVE_2017_5977).zip  """1294    tmpdir = self.testdir()1295    filename = self.zip_CVE_2017_59771296    file_url = self.url_CVE_2017_59771297    download_raw(file_url, filename, tmpdir)1298    exe = self.bins("unzzip-big")1299    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1300        returncodes = [0])1301    self.assertLess(len(run.output), 30)1302    self.assertLess(len(errors(run.errors)), 1)1303    self.assertIn(" stored test", run.output)1304    #1305    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1306        returncodes = [0])1307    self.assertLess(len(run.output), 30)1308    self.assertLess(len(errors(run.errors)), 1)1309    self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)1310    self.rm_testdir()1311  def test_59772_zzipdir_mem_CVE_2017_5977(self):1312    """ run unzzip-mem -l $(CVE_2017_5977).zip  """1313    tmpdir = self.testdir()1314    filename = self.zip_CVE_2017_59771315    file_url = self.url_CVE_2017_59771316    download_raw(file_url, filename, tmpdir)1317    exe = self.bins("unzzip-mem")1318    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1319        returncodes = [0])1320    self.assertLess(len(run.output), 30)1321    self.assertLess(len(errors(run.errors)), 1)1322    self.assertIn(" 3 test", run.output)1323    #1324    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1325        returncodes = [2])1326    self.assertLess(len(run.output), 30)1327    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1328    self.rm_testdir()1329  def test_59773_zzipdir_mix_CVE_2017_5977(self):1330    """ run unzzip-mix -l $(CVE_2017_5977).zip  """1331    tmpdir = self.testdir()1332    filename = self.zip_CVE_2017_59771333    file_url = self.url_CVE_2017_59771334    download_raw(file_url, filename, tmpdir)1335    exe = self.bins("unzzip-mix")1336    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1337        returncodes = [0])1338    self.assertLess(len(run.output), 30)1339    self.assertLess(len(errors(run.errors)), 1)1340    self.assertIn(" 3 test", run.output)1341    #1342    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1343        returncodes = [0])1344    self.assertLess(len(run.output), 30)1345    self.assertLess(len(errors(run.errors)), 1)1346    self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)1347    self.rm_testdir()1348  def test_59774_zzipdir_zap_CVE_2017_5977(self):1349    """ run unzzip -l $(CVE_2017_5977).zip  """1350    tmpdir = self.testdir()1351    filename = self.zip_CVE_2017_59771352    file_url = self.url_CVE_2017_59771353    download_raw(file_url, filename, tmpdir)1354    exe = self.bins("unzzip")1355    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1356        returncodes = [0, 255])1357    self.assertLess(len(run.output), 30)1358    self.assertLess(len(errors(run.errors)), 1)1359    self.assertIn(" 3 test", run.output)1360    #1361    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1362        returncodes = [0])1363    self.assertLess(len(run.output), 30)1364    self.assertLess(len(errors(run.errors)), 1)1365    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3) # TODO1366    self.rm_testdir()1367  def test_59779(self):1368    """ check $(CVE).zip  """1369    tmpdir = self.testdir()1370    filename = self.zip_CVE_2017_59771371    file_url = self.url_CVE_2017_59771372    download_raw(file_url, filename, tmpdir)1373    shell("ls -l {tmpdir}/{filename}".format(**locals()))1374    size = os.path.getsize(os.path.join(tmpdir, filename))1375    self.assertEqual(size, 163)1376  url_CVE_2017_5978 = "https://github.com/asarubbo/poc/blob/master"1377  zip_CVE_2017_5978 = "00156-zziplib-oobread-zzip_mem_entry_new"1378  def test_59780_infozipdir_CVE_2017_5978(self):1379    """ run info-zip dir test0.zip  """1380    tmpdir = self.testdir()1381    filename = self.zip_CVE_2017_59781382    file_url = self.url_CVE_2017_59781383    download_raw(file_url, filename, tmpdir)1384    exe = self.bins("unzip")1385    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1386        returncodes = [0, 3])1387    self.assertIn(' missing 4608 bytes in zipfile', run.errors)1388    self.assertIn(' attempt to seek before beginning of zipfile', run.errors)1389    self.assertLess(len(run.output), 80)1390    self.assertLess(len(errors(run.errors)), 430)1391    #1392    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),1393        returncodes = [3])1394    self.assertLess(len(run.output), 90)1395    self.assertLess(len(errors(run.errors)), 900)1396    self.assertIn('attempt to seek before beginning of zipfile', run.errors)1397    self.assertFalse(os.path.exists(tmpdir+"/test"))1398    self.rm_testdir()1399  def test_59781_zzipdir_big_CVE_2017_5978(self):1400    """ run info-zip -l $(CVE_2017_5978).zip  """1401    tmpdir = self.testdir()1402    filename = self.zip_CVE_2017_59781403    file_url = self.url_CVE_2017_59781404    download_raw(file_url, filename, tmpdir)1405    exe = self.bins("unzzip-big")1406    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1407        returncodes = [0])1408    self.assertLess(len(run.output), 30)1409    self.assertLess(len(errors(run.errors)), 1)1410    self.assertIn(" stored (null)", run.output)1411    #1412    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1413        returncodes = [0,1])1414    self.assertLess(len(run.output), 30)1415    self.assertLess(len(errors(run.errors)), 1)1416    self.assertFalse(os.path.exists(tmpdir+"/test"))1417    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)1418    self.rm_testdir()1419  def test_59782_zzipdir_mem_CVE_2017_5978(self):1420    """ run unzzip-mem -l $(CVE_2017_5978).zip  """1421    tmpdir = self.testdir()1422    filename = self.zip_CVE_2017_59781423    file_url = self.url_CVE_2017_59781424    download_raw(file_url, filename, tmpdir)1425    exe = self.bins("unzzip-mem")1426    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1427        returncodes = [0])1428    self.assertLess(len(run.output), 1)1429    self.assertLess(len(errors(run.errors)), 180)1430    self.assertIn("zzip_mem_disk_load : unable to load entry", run.errors)1431    self.assertIn("zzip_mem_disk_open : unable to load disk", run.errors)1432    #1433    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1434        returncodes = [2])1435    self.assertLess(len(run.output), 30)1436    self.assertLess(len(errors(run.errors)), 300)1437    if grep("DEBUG:", run.errors):1438        self.assertIn("findfirst (nil)", run.errors)1439    self.assertFalse(os.path.exists(tmpdir+"/test"))1440    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)1441    self.rm_testdir()1442  def test_59783_zzipdir_mix_CVE_2017_5978(self):1443    """ run unzzip-mix -l $(CVE_2017_5978).zip  """1444    tmpdir = self.testdir()1445    filename = self.zip_CVE_2017_59781446    file_url = self.url_CVE_2017_59781447    download_raw(file_url, filename, tmpdir)1448    exe = self.bins("unzzip-mix")1449    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1450        returncodes = [0,2])1451    self.assertLess(len(run.output), 1)1452    self.assertLess(len(errors(run.errors)), 180)1453    self.assertTrue(greps(run.errors, "Invalid or"))1454    #1455    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1456        returncodes = [0,2])1457    self.assertLess(len(run.output), 30)1458    self.assertLess(len(errors(run.errors)), 300)1459    self.assertTrue(greps(run.errors, "Invalid or"))1460    self.assertFalse(os.path.exists(tmpdir+"/test"))1461    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)1462    self.rm_testdir()1463  def test_59784_zzipdir_zap_CVE_2017_5978(self):1464    """ run unzzip -l $(CVE_2017_5978).zip  """1465    tmpdir = self.testdir()1466    filename = self.zip_CVE_2017_59781467    file_url = self.url_CVE_2017_59781468    download_raw(file_url, filename, tmpdir)1469    exe = self.bins("unzzip")1470    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1471        returncodes = [3])1472    self.assertLess(len(run.output), 1)1473    self.assertLess(len(errors(run.errors)), 180)1474    #1475    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1476        returncodes = [0,3])1477    self.assertLess(len(run.output), 30)1478    self.assertLess(len(errors(run.errors)), 300)1479    self.assertTrue(greps(run.errors, "Zipfile corrupted"))1480    self.assertFalse(os.path.exists(tmpdir+"/test"))1481    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)1482    self.rm_testdir()1483  def test_59789(self):1484    """ check $(CVE).zip  """1485    tmpdir = self.testdir()1486    filename = self.zip_CVE_2017_59781487    file_url = self.url_CVE_2017_59781488    download_raw(file_url, filename, tmpdir)1489    shell("ls -l {tmpdir}/{filename}".format(**locals()))1490    size = os.path.getsize(os.path.join(tmpdir, filename))1491    self.assertEqual(size, 161)1492  url_CVE_2017_5979 = "https://github.com/asarubbo/poc/blob/master"1493  zip_CVE_2017_5979 = "00157-zziplib-nullptr-prescan_entry"1494  def test_59790_infozipdir_CVE_2017_5979(self):1495    """ run info-zip dir test0.zip  """1496    tmpdir = self.testdir()1497    filename = self.zip_CVE_2017_59791498    file_url = self.url_CVE_2017_59791499    download_raw(file_url, filename, tmpdir)1500    exe = self.bins("unzip")1501    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1502        returncodes = [0])1503    self.assertIn(' 1 file', run.output)1504    self.assertLess(len(run.output), 330)1505    self.assertLess(len(errors(run.errors)), 1)1506    #1507    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),1508        returncodes = [0])1509    self.assertLess(len(run.output), 90)1510    self.assertLess(len(errors(run.errors)), 1)1511    self.assertIn('extracting: a', run.output)1512    self.assertEqual(os.path.getsize(tmpdir+"/a"), 3)1513    self.rm_testdir()1514  def test_59791_zzipdir_big_CVE_2017_5979(self):1515    """ run info-zip -l $(CVE_2017_5979).zip  """1516    tmpdir = self.testdir()1517    filename = self.zip_CVE_2017_59791518    file_url = self.url_CVE_2017_59791519    download_raw(file_url, filename, tmpdir)1520    exe = self.bins("unzzip-big")1521    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1522        returncodes = [0])1523    self.assertLess(len(run.output), 30)1524    self.assertLess(len(errors(run.errors)), 1)1525    self.assertIn(" stored a", run.output)1526    #1527    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1528        returncodes = [0])1529    self.assertLess(len(run.output), 30)1530    self.assertLess(len(errors(run.errors)), 1)1531    self.assertEqual(os.path.getsize(tmpdir+"/a"), 3)1532    self.rm_testdir()1533  def test_59792_zzipdir_mem_CVE_2017_5979(self):1534    """ run unzzip-mem -l $(CVE_2017_5979).zip  """1535    tmpdir = self.testdir()1536    filename = self.zip_CVE_2017_59791537    file_url = self.url_CVE_2017_59791538    download_raw(file_url, filename, tmpdir)1539    exe = self.bins("unzzip-mem")1540    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1541        returncodes = [0])1542    self.assertLess(len(run.output), 30)1543    self.assertLess(len(errors(run.errors)), 1)1544    self.assertIn(" 3 a", run.output)1545    #1546    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1547        returncodes = [2])1548    self.assertLess(len(run.output), 30)1549    self.assertEqual(os.path.getsize(tmpdir+"/a"), 3)1550    self.rm_testdir()1551  def test_59793_zzipdir_mix_CVE_2017_5979(self):1552    """ run unzzip-mix -l $(CVE_2017_5979).zip  """1553    tmpdir = self.testdir()1554    filename = self.zip_CVE_2017_59791555    file_url = self.url_CVE_2017_59791556    download_raw(file_url, filename, tmpdir)1557    exe = self.bins("unzzip-mix")1558    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1559        returncodes = [0])1560    self.assertLess(len(run.output), 30)1561    self.assertLess(len(errors(run.errors)), 1)1562    self.assertIn(" 3 a", run.output)1563    #1564    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1565        returncodes = [0])1566    self.assertLess(len(run.output), 30)1567    self.assertLess(len(errors(run.errors)), 20)1568    self.assertEqual(os.path.getsize(tmpdir+"/a"), 0)    # FIXME1569    # self.assertEqual(os.path.getsize(tmpdir+"/a"), 3)  # FIXME1570    self.rm_testdir()1571  def test_59794_zzipdir_zap_CVE_2017_5979(self):1572    """ run unzzip -l $(CVE_2017_5979).zip  """1573    tmpdir = self.testdir()1574    filename = self.zip_CVE_2017_59791575    file_url = self.url_CVE_2017_59791576    download_raw(file_url, filename, tmpdir)1577    exe = self.bins("unzzip")1578    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1579        returncodes = [0, 255])1580    self.assertLess(len(run.output), 30)1581    self.assertLess(len(errors(run.errors)), 1)1582    self.assertIn(" 3 a", run.output)1583    #1584    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1585        returncodes = [0])1586    self.assertLess(len(run.output), 30)1587    self.assertLess(len(errors(run.errors)), 20)1588    self.assertEqual(os.path.getsize(tmpdir+"/a"), 3)1589    self.rm_testdir()1590  def test_59799(self):1591    """ check $(CVE).zip  """1592    tmpdir = self.testdir()1593    filename = self.zip_CVE_2017_59791594    file_url = self.url_CVE_2017_59791595    download_raw(file_url, filename, tmpdir)1596    shell("ls -l {tmpdir}/{filename}".format(**locals()))1597    size = os.path.getsize(os.path.join(tmpdir, filename))1598    self.assertEqual(size, 155)1599  url_CVE_2017_5974 = "https://github.com/asarubbo/poc/blob/master"1600  zip_CVE_2017_5974 = "00150-zziplib-heapoverflow-__zzip_get32"1601  def test_59740_infozipdir_CVE_2017_5974(self):1602    """ run info-zip dir test0.zip  """1603    tmpdir = self.testdir()1604    filename = self.zip_CVE_2017_59741605    file_url = self.url_CVE_2017_59741606    download_raw(file_url, filename, tmpdir)1607    exe = self.bins("unzip")1608    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1609        returncodes = [0, 9])1610    self.assertIn(' 1 file', run.output)1611    self.assertLess(len(run.output), 330)1612    self.assertLess(len(errors(run.errors)), 1)1613    #1614    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),1615        returncodes = [0])1616    self.assertLess(len(run.output), 90)1617    self.assertLess(len(errors(run.errors)), 1)1618    self.assertIn(" extracting: test", run.output)1619    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1620    self.rm_testdir()1621  def test_59741_zzipdir_big_CVE_2017_5974(self):1622    """ run unzzip-big -l $(CVE_2017_5974).zip  """1623    tmpdir = self.testdir()1624    filename = self.zip_CVE_2017_59741625    file_url = self.url_CVE_2017_59741626    download_raw(file_url, filename, tmpdir)1627    exe = self.bins("unzzip-big")1628    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1629        returncodes = [0])1630    self.assertLess(len(run.output), 30)1631    self.assertLess(len(errors(run.errors)), 1)1632    self.assertIn(" stored test", run.output)1633    #1634    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1635        returncodes = [0])1636    self.assertLess(len(run.output), 30)1637    self.assertLess(len(errors(run.errors)), 1)1638    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1639    self.rm_testdir()1640  def test_59742_zzipdir_mem_CVE_2017_5974(self):1641    """ run unzzip-mem -l $(CVE_2017_5974).zip  """1642    tmpdir = self.testdir()1643    filename = self.zip_CVE_2017_59741644    file_url = self.url_CVE_2017_59741645    download_raw(file_url, filename, tmpdir)1646    exe = self.bins("unzzip-mem")1647    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1648        returncodes = [0])1649    self.assertLess(len(run.output), 30)1650    self.assertLess(len(errors(run.errors)), 1)1651    self.assertIn(" 3 test", run.output)1652    #1653    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1654        returncodes = [2])1655    self.assertLess(len(run.output), 30)1656    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1657    self.rm_testdir()1658  def test_59743_zzipdir_mix_CVE_2017_5974(self):1659    """ run unzzip-mix -l $(CVE_2017_5974).zip  """1660    tmpdir = self.testdir()1661    filename = self.zip_CVE_2017_59741662    file_url = self.url_CVE_2017_59741663    download_raw(file_url, filename, tmpdir)1664    exe = self.bins("unzzip-mix")1665    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1666        returncodes = [0])1667    self.assertLess(len(run.output), 30)1668    self.assertLess(len(errors(run.errors)), 1)1669    self.assertIn(" 3 test", run.output)1670    #1671    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1672        returncodes = [0])1673    self.assertLess(len(run.output), 30)1674    self.assertLess(len(errors(run.errors)), 1)1675    self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)   # FIXME1676    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3) # FIXME1677    self.rm_testdir()1678  def test_59744_zzipdir_zap_CVE_2017_5974(self):1679    """ run unzzip -l $(CVE_2017_5974).zip  """1680    tmpdir = self.testdir()1681    filename = self.zip_CVE_2017_59741682    file_url = self.url_CVE_2017_59741683    download_raw(file_url, filename, tmpdir)1684    exe = self.bins("unzzip")1685    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1686        returncodes = [0, 255])1687    self.assertLess(len(run.output), 30)1688    self.assertLess(len(errors(run.errors)), 1)1689    self.assertIn(" 3 test", run.output)1690    #1691    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1692        returncodes = [0])1693    self.assertLess(len(run.output), 30)1694    self.assertLess(len(errors(run.errors)), 1)1695    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1696    self.rm_testdir()1697  def test_59749(self):1698    """ check $(CVE).zip  """1699    tmpdir = self.testdir()1700    filename = self.zip_CVE_2017_59741701    file_url = self.url_CVE_2017_59741702    download_raw(file_url, filename, tmpdir)1703    shell("ls -l {tmpdir}/{filename}".format(**locals()))1704    size = os.path.getsize(os.path.join(tmpdir, filename))1705    self.assertEqual(size, 161)1706  url_CVE_2017_5975 = "https://github.com/asarubbo/poc/blob/master"1707  zip_CVE_2017_5975 = "00151-zziplib-heapoverflow-__zzip_get64"1708  def test_59750_infozipdir_CVE_2017_5975(self):1709    """ run info-zip dir test0.zip  """1710    tmpdir = self.testdir()1711    filename = self.zip_CVE_2017_59751712    file_url = self.url_CVE_2017_59751713    download_raw(file_url, filename, tmpdir)1714    exe = self.bins("unzip")1715    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1716        returncodes = [0, 2])1717    self.assertIn(' missing 10 bytes in zipfile', run.errors)1718    self.assertIn("didn't find end-of-central-dir signature at end of central dir", run.errors)1719    self.assertIn(' 1 file', run.output)1720    self.assertLess(len(run.output), 330)1721    self.assertLess(len(errors(run.errors)), 430)1722    #1723    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),1724        returncodes = [2])1725    self.assertLess(len(run.output), 90)1726    self.assertLess(len(errors(run.errors)), 900)1727    self.assertIn('file #1:  bad zipfile offset (local header sig):  127', run.errors)1728    #self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1729    self.assertFalse(os.path.exists(tmpdir+"/test"))1730    self.rm_testdir()1731  def test_59751_zzipdir_big_CVE_2017_5975(self):1732    """ run info-zip -l $(CVE_2017_5975).zip  """1733    tmpdir = self.testdir()1734    filename = self.zip_CVE_2017_59751735    file_url = self.url_CVE_2017_59751736    download_raw(file_url, filename, tmpdir)1737    exe = self.bins("unzzip-big")1738    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1739        returncodes = [0])1740    self.assertLess(len(run.output), 30)1741    self.assertLess(len(errors(run.errors)), 1)1742    self.assertIn(" stored test", run.output)1743    #1744    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1745        returncodes = [0])1746    self.assertLess(len(run.output), 30)1747    self.assertLess(len(errors(run.errors)), 1)1748    self.assertEqual(os.path.getsize(tmpdir+"/test"), 0) # TODO1749    self.rm_testdir()1750  def test_59752_zzipdir_mem_CVE_2017_5975(self):1751    """ run unzzip-mem -l $(CVE_2017_5975).zip  """1752    tmpdir = self.testdir()1753    filename = self.zip_CVE_2017_59751754    file_url = self.url_CVE_2017_59751755    download_raw(file_url, filename, tmpdir)1756    exe = self.bins("unzzip-mem")1757    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1758        returncodes = [0])1759    self.assertLess(len(run.output), 1)1760    self.assertLess(len(errors(run.errors)), 180)1761    self.assertIn("zzip_mem_disk_load : unable to load entry", run.errors)1762    self.assertIn("zzip_mem_disk_open : unable to load disk", run.errors)1763    #1764    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1765        returncodes = [2])1766    self.assertLess(len(run.output), 30)1767    self.assertLess(len(errors(run.errors)), 200)1768    if grep("DEBUG:", run.errors):1769        self.assertIn("findfirst (nil)", run.errors)1770    self.assertFalse(os.path.exists(tmpdir+"/test"))1771    self.rm_testdir()1772  def test_59753_zzipdir_mix_CVE_2017_5975(self):1773    """ run unzzip-mix -l $(CVE_2017_5975).zip  """1774    tmpdir = self.testdir()1775    filename = self.zip_CVE_2017_59751776    file_url = self.url_CVE_2017_59751777    download_raw(file_url, filename, tmpdir)1778    exe = self.bins("unzzip-mix")1779    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1780        returncodes = [0,2])1781    self.assertLess(len(run.output), 1)1782    self.assertLess(len(errors(run.errors)), 180)1783    self.assertTrue(greps(run.errors, "Invalid or"))1784    #1785    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1786        returncodes = [0,2])1787    self.assertLess(len(run.output), 30)1788    self.assertLess(len(errors(run.errors)), 200)1789    self.assertTrue(greps(run.errors, "Invalid or"))1790    self.assertFalse(os.path.exists(tmpdir+"/test"))1791    self.rm_testdir()1792  def test_59754_zzipdir_zap_CVE_2017_5975(self):1793    """ run unzzip -l $(CVE_2017_5975).zip  """1794    tmpdir = self.testdir()1795    filename = self.zip_CVE_2017_59751796    file_url = self.url_CVE_2017_59751797    download_raw(file_url, filename, tmpdir)1798    exe = self.bins("unzzip")1799    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1800        returncodes = [0,3])1801    self.assertLess(len(run.output), 1)1802    self.assertLess(len(errors(run.errors)), 180)1803    self.assertIn(": Success", run.errors)1804    #1805    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1806        returncodes = [0,3])1807    self.assertLess(len(run.output), 30)1808    self.assertLess(len(errors(run.errors)), 200)1809    self.assertTrue(greps(run.errors, "Zipfile corrupted"))1810    self.assertFalse(os.path.exists(tmpdir+"/test"))1811    self.rm_testdir()1812  def test_59759(self):1813    """ check $(CVE).zip  """1814    tmpdir = self.testdir()1815    filename = self.zip_CVE_2017_59751816    file_url = self.url_CVE_2017_59751817    download_raw(file_url, filename, tmpdir)1818    shell("ls -l {tmpdir}/{filename}".format(**locals()))1819    size = os.path.getsize(os.path.join(tmpdir, filename))1820    self.assertEqual(size, 151)1821  url_CVE_2017_5976 = "https://github.com/asarubbo/poc/blob/master"1822  zip_CVE_2017_5976 = "00152-zziplib-heapoverflow-zzip_mem_entry_extra_block"1823  def test_59760_infozipdir_CVE_2017_5976(self):1824    """ run info-zip dir test0.zip  """1825    tmpdir = self.testdir()1826    filename = self.zip_CVE_2017_59761827    file_url = self.url_CVE_2017_59761828    download_raw(file_url, filename, tmpdir)1829    exe = self.bins("unzip")1830    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1831        returncodes = [0, 2])1832    self.assertIn(' 27 extra bytes at beginning or within zipfile', run.errors)1833    self.assertIn("didn't find end-of-central-dir signature at end of central dir", run.errors)1834    self.assertIn(' 1 file', run.output)1835    self.assertLess(len(run.output), 330)1836    self.assertLess(len(errors(run.errors)), 500)1837    #1838    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),1839        returncodes = [2])1840    self.assertLess(len(run.output), 190)1841    self.assertLess(len(errors(run.errors)), 900)1842    self.assertIn("extracting: test", run.output)1843    self.assertIn('-27 bytes too long', run.errors)1844    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1845    # self.assertFalse(os.path.exists(tmpdir+"/test"))1846    self.rm_testdir()1847  def test_59761_zzipdir_big_CVE_2017_5976(self):1848    """ run info-zip -l $(CVE_2017_5976).zip  """1849    tmpdir = self.testdir()1850    filename = self.zip_CVE_2017_59761851    file_url = self.url_CVE_2017_59761852    download_raw(file_url, filename, tmpdir)1853    exe = self.bins("unzzip-big")1854    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1855        returncodes = [0])1856    self.assertLess(len(run.output), 30)1857    self.assertLess(len(errors(run.errors)), 1)1858    self.assertIn(" stored test", run.output)1859    #1860    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1861        returncodes = [0])1862    self.assertLess(len(run.output), 30)1863    self.assertLess(len(errors(run.errors)), 1)1864    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1865    self.rm_testdir()1866  def test_59762_zzipdir_mem_CVE_2017_5976(self):1867    """ run unzzip-mem -l $(CVE_2017_5976).zip  """1868    tmpdir = self.testdir()1869    filename = self.zip_CVE_2017_59761870    file_url = self.url_CVE_2017_59761871    download_raw(file_url, filename, tmpdir)1872    exe = self.bins("unzzip-mem")1873    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1874        returncodes = [0])1875    self.assertLess(len(run.output), 30)1876    self.assertLess(len(errors(run.errors)), 1)1877    self.assertIn("3 test", run.output)1878    #1879    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1880        returncodes = [2])1881    self.assertLess(len(run.output), 30)1882    self.assertLess(len(errors(run.errors)), 30) # TODO1883    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1884    self.rm_testdir()1885  def test_59763_zzipdir_mix_CVE_2017_5976(self):1886    """ run unzzip-mix -l $(CVE_2017_5976).zip  """1887    tmpdir = self.testdir()1888    filename = self.zip_CVE_2017_59761889    file_url = self.url_CVE_2017_59761890    download_raw(file_url, filename, tmpdir)1891    exe = self.bins("unzzip-mix")1892    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1893        returncodes = [0])1894    self.assertLess(len(run.output), 30)1895    self.assertLess(len(errors(run.errors)), 1)1896    self.assertIn("3 test", run.output)1897    #1898    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1899        returncodes = [0])1900    self.assertLess(len(run.output), 30)1901    self.assertLess(len(errors(run.errors)), 30) 1902    self.assertEqual(os.path.getsize(tmpdir+"/test"), 0)    # FIXME1903    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)  # FIXME1904    self.rm_testdir()1905  def test_59764_zzipdir_zap_CVE_2017_5976(self):1906    """ run unzzip -l $(CVE_2017_5976).zip  """1907    tmpdir = self.testdir()1908    filename = self.zip_CVE_2017_59761909    file_url = self.url_CVE_2017_59761910    download_raw(file_url, filename, tmpdir)1911    exe = self.bins("unzzip")1912    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1913        returncodes = [0, 255])1914    self.assertLess(len(run.output), 30)1915    self.assertLess(len(errors(run.errors)), 1)1916    self.assertIn("3 test", run.output)1917    #1918    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1919        returncodes = [0])1920    self.assertLess(len(run.output), 30)1921    self.assertLess(len(errors(run.errors)), 30)1922    self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1923    self.rm_testdir()1924  def test_59769(self):1925    """ check $(CVE).zip  """1926    tmpdir = self.testdir()1927    filename = self.zip_CVE_2017_59761928    file_url = self.url_CVE_2017_59761929    download_raw(file_url, filename, tmpdir)1930    shell("ls -l {tmpdir}/{filename}".format(**locals()))1931    size = os.path.getsize(os.path.join(tmpdir, filename))1932    self.assertEqual(size, 188)1933  url_CVE_2017_5980 = "https://github.com/asarubbo/poc/blob/master"1934  zip_CVE_2017_5980 = "00154-zziplib-nullptr-zzip_mem_entry_new"1935  def test_59800_infozipdir_CVE_2017_5980(self):1936    """ run info-zip dir test0.zip  """1937    tmpdir = self.testdir()1938    filename = self.zip_CVE_2017_59801939    file_url = self.url_CVE_2017_59801940    download_raw(file_url, filename, tmpdir)1941    exe = self.bins("unzip")1942    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1943        returncodes = [0, 2])1944    self.assertIn(' missing 6 bytes in zipfile', run.errors)1945    self.assertIn("didn't find end-of-central-dir signature at end of central dir", run.errors)1946    self.assertIn(' 1 file', run.output)1947    self.assertLess(len(run.output), 330)1948    self.assertLess(len(errors(run.errors)), 500)1949    #1950    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),1951        returncodes = [3])1952    self.assertLess(len(run.output), 90)1953    self.assertLess(len(errors(run.errors)), 900)1954    self.assertIn('file #1:  bad zipfile offset (lseek)', run.errors)1955    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1956    self.assertFalse(os.path.exists(tmpdir+"/test"))1957    self.rm_testdir()1958  def test_59801_zzipdir_big_CVE_2017_5980(self):1959    """ run info-zip -l $(CVE_2017_5980).zip  """1960    tmpdir = self.testdir()1961    filename = self.zip_CVE_2017_59801962    file_url = self.url_CVE_2017_59801963    download_raw(file_url, filename, tmpdir)1964    exe = self.bins("unzzip-big")1965    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1966        returncodes = [0])1967    self.assertLess(len(run.output), 30)1968    self.assertLess(len(errors(run.errors)), 1)1969    self.assertIn(" stored (null)", run.output)1970    #1971    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1972        returncodes = [0,1])1973    self.assertLess(len(run.output), 30)1974    self.assertLess(len(errors(run.errors)), 1)1975    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1976    self.assertFalse(os.path.exists(tmpdir+"/test"))1977    self.rm_testdir()1978  def test_59802_zzipdir_mem_CVE_2017_5980(self):1979    """ run unzzip-mem -l $(CVE_2017_5980).zip  """1980    tmpdir = self.testdir()1981    filename = self.zip_CVE_2017_59801982    file_url = self.url_CVE_2017_59801983    download_raw(file_url, filename, tmpdir)1984    exe = self.bins("unzzip-mem")1985    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),1986        returncodes = [0])1987    self.assertLess(len(run.output), 1)1988    self.assertLess(len(errors(run.errors)), 180)1989    self.assertTrue(greps(run.errors, "unable to load disk"))1990    #1991    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),1992        returncodes = [2])1993    self.assertLess(len(run.output), 30)1994    self.assertLess(len(errors(run.errors)), 200)1995    self.assertFalse(os.path.exists(tmpdir+"/test"))1996    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)1997    self.rm_testdir()1998  def test_59803_zzipdir_mix_CVE_2017_5980(self):1999    """ run unzzip-mix -l $(CVE_2017_5980).zip  """2000    tmpdir = self.testdir()2001    filename = self.zip_CVE_2017_59802002    file_url = self.url_CVE_2017_59802003    download_raw(file_url, filename, tmpdir)2004    exe = self.bins("unzzip-mix")2005    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2006        returncodes = [2])2007    self.assertLess(len(run.output), 1)2008    self.assertLess(len(errors(run.errors)), 180)2009    self.assertTrue(greps(run.errors, "Invalid or"))2010    #2011    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2012        returncodes = [2])2013    self.assertLess(len(run.output), 30)2014    self.assertLess(len(errors(run.errors)), 200)2015    self.assertFalse(os.path.exists(tmpdir+"/test"))2016    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2017    self.rm_testdir()2018  def test_59804_zzipdir_zap_CVE_2017_5980(self):2019    """ run unzzip -l $(CVE_2017_5980).zip  """2020    tmpdir = self.testdir()2021    filename = self.zip_CVE_2017_59802022    file_url = self.url_CVE_2017_59802023    download_raw(file_url, filename, tmpdir)2024    exe = self.bins("unzzip")2025    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2026        returncodes = [3])2027    self.assertLess(len(run.output), 1)2028    self.assertLess(len(errors(run.errors)), 180)2029    self.assertIn(": Success", run.errors)2030    #2031    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2032        returncodes = [3]) # TODO2033    self.assertLess(len(run.output), 30)2034    self.assertLess(len(errors(run.errors)), 200)2035    self.assertFalse(os.path.exists(tmpdir+"/test"))2036    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2037    self.rm_testdir()2038  def test_59809(self):2039    """ check $(CVE).zip  """2040    tmpdir = self.testdir()2041    filename = self.zip_CVE_2017_59802042    file_url = self.url_CVE_2017_59802043    download_raw(file_url, filename, tmpdir)2044    shell("ls -l {tmpdir}/{filename}".format(**locals()))2045    size = os.path.getsize(os.path.join(tmpdir, filename))2046    self.assertEqual(size, 155)2047  url_CVE_2017_5981 = "https://github.com/asarubbo/poc/blob/master"2048  zip_CVE_2017_5981 = "00161-zziplib-assertionfailure-seeko_C"2049  def test_59810_infozipdir_CVE_2017_5981(self):2050    """ run info-zip dir test0.zip  """2051    tmpdir = self.testdir()2052    filename = self.zip_CVE_2017_59812053    file_url = self.url_CVE_2017_59812054    download_raw(file_url, filename, tmpdir)2055    exe = self.bins("unzip")2056    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2057        returncodes = [0, 3])2058    self.assertIn(' missing 4 bytes in zipfile', run.errors)2059    self.assertIn("zipfile corrupt", run.errors)2060    self.assertLess(len(run.output), 80)2061    self.assertLess(len(errors(run.errors)), 500)2062    #2063    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),2064        returncodes = [3])2065    self.assertLess(len(run.output), 90)2066    self.assertLess(len(errors(run.errors)), 500)2067    self.assertIn('zipfile corrupt.', run.errors)2068    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2069    self.assertFalse(os.path.exists(tmpdir+"/test"))2070    self.rm_testdir()2071  def test_59811_zzipdir_big_CVE_2017_5981(self):2072    """ run info-zip -l $(CVE_2017_5981).zip  """2073    tmpdir = self.testdir()2074    filename = self.zip_CVE_2017_59812075    file_url = self.url_CVE_2017_59812076    download_raw(file_url, filename, tmpdir)2077    exe = self.bins("unzzip-big")2078    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2079        returncodes = [0])2080    self.assertLess(len(run.output), 1)2081    self.assertLess(len(errors(run.errors)), 1)2082    #2083    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2084        returncodes = [0])2085    self.assertLess(len(run.output), 30)2086    self.assertLess(len(errors(run.errors)), 1)2087    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2088    self.assertFalse(os.path.exists(tmpdir+"/test"))2089    self.rm_testdir()2090  def test_59812_zzipdir_mem_CVE_2017_5981(self):2091    """ run unzzip-mem -l $(CVE_2017_5981).zip  """2092    tmpdir = self.testdir()2093    filename = self.zip_CVE_2017_59812094    file_url = self.url_CVE_2017_59812095    download_raw(file_url, filename, tmpdir)2096    exe = self.bins("unzzip-mem")2097    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2098        returncodes = [0])2099    self.assertLess(len(run.output), 1)2100    self.assertLess(len(errors(run.errors)), 1)2101    #2102    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2103        returncodes = [2])2104    self.assertLess(len(run.output), 30)2105    self.assertLess(len(errors(run.errors)), 10)2106    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2107    self.assertFalse(os.path.exists(tmpdir+"/test"))2108    self.rm_testdir()2109  def test_59813_zzipdir_mix_CVE_2017_5981(self):2110    """ run unzzip-mix -l $(CVE_2017_5981).zip  """2111    tmpdir = self.testdir()2112    filename = self.zip_CVE_2017_59812113    file_url = self.url_CVE_2017_59812114    download_raw(file_url, filename, tmpdir)2115    exe = self.bins("unzzip-mix")2116    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2117        returncodes = [0,2])2118    self.assertLess(len(run.output), 1)2119    self.assertTrue(greps(run.errors, "Invalid or"))2120    #2121    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2122        returncodes = [0,2])2123    self.assertLess(len(run.output), 30)2124    self.assertLess(len(errors(run.errors)), 10)2125    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2126    self.assertFalse(os.path.exists(tmpdir+"/test"))2127    self.rm_testdir()2128  def test_59814_zzipdir_zap_CVE_2017_5981(self):2129    """ run unzzip-zap -l $(CVE_2017_5981).zip  """2130    tmpdir = self.testdir()2131    filename = self.zip_CVE_2017_59812132    file_url = self.url_CVE_2017_59812133    download_raw(file_url, filename, tmpdir)2134    exe = self.bins("unzzip")2135    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2136        returncodes = [0,3])2137    self.assertLess(len(run.output), 1)2138    self.assertLess(len(errors(run.errors)), 80)2139    self.assertIn(": Success", run.errors)2140    #2141    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2142        returncodes = [0,3])2143    self.assertLess(len(run.output), 30)2144    self.assertLess(len(errors(run.errors)), 10)2145    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2146    self.assertFalse(os.path.exists(tmpdir+"/test"))2147    self.rm_testdir()2148  def test_59819(self):2149    """ check $(CVE).zip  """2150    tmpdir = self.testdir()2151    filename = self.zip_CVE_2017_59812152    file_url = self.url_CVE_2017_59812153    download_raw(file_url, filename, tmpdir)2154    shell("ls -l {tmpdir}/{filename}".format(**locals()))2155    size = os.path.getsize(os.path.join(tmpdir, filename))2156    self.assertEqual(size, 157)2157  url_CVE_2018_10 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"2158  zip_CVE_2018_10 = "zziplib_0-13-67_zzdir_invalid-memory-access_main.zip"2159  def test_63010(self):2160    """ info unzip -l $(CVE).zip  """2161    tmpdir = self.testdir()2162    filename = self.zip_CVE_2018_102163    file_url = self.url_CVE_2018_102164    download_raw(file_url, filename, tmpdir)2165    exe = self.bins("unzip")2166    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2167        returncodes = [0, 9])2168    self.assertIn("End-of-central-directory signature not found", run.errors)2169    self.assertLess(len(run.output), 80)2170    self.assertLess(len(errors(run.errors)), 600)2171    #2172    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),2173        returncodes = [9])2174    self.assertLess(len(run.output), 90)2175    self.assertLess(len(errors(run.errors)), 600)2176    self.assertIn('End-of-central-directory signature not found', run.errors)2177    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2178    self.assertFalse(os.path.exists(tmpdir+"/test"))2179    self.rm_testdir()2180  def test_63011(self):2181    """ unzzip-big -l $(CVE).zip  """2182    tmpdir = self.testdir()2183    filename = self.zip_CVE_2018_102184    file_url = self.url_CVE_2018_102185    download_raw(file_url, filename, tmpdir)2186    exe = self.bins("unzzip-big")2187    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2188        returncodes = [0])2189    self.assertLess(len(run.output), 1)2190    self.assertLess(len(errors(run.errors)), 1)2191    #2192    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2193        returncodes = [0])2194    self.assertLess(len(run.output), 30)2195    self.assertLess(len(errors(run.errors)), 1)2196    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2197    self.assertFalse(os.path.exists(tmpdir+"/test"))2198    self.rm_testdir()2199  def test_63012(self):2200    """ unzzip-mem -l $(CVE).zip """2201    tmpdir = self.testdir()2202    filename = self.zip_CVE_2018_102203    file_url = self.url_CVE_2018_102204    download_raw(file_url, filename, tmpdir)2205    exe = self.bins("unzzip-mem")2206    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2207        returncodes = [0])2208    self.assertLess(len(run.output), 1)2209    self.assertLess(len(errors(run.errors)), 1)2210    #2211    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2212        returncodes = [2])2213    self.assertLess(len(run.output), 30)2214    self.assertLess(len(errors(run.errors)), 10)2215    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2216    self.assertFalse(os.path.exists(tmpdir+"/test"))2217    self.rm_testdir()2218  def test_63013(self):2219    """ unzzip-mix -l $(CVE).zip  """2220    tmpdir = self.testdir()2221    filename = self.zip_CVE_2018_102222    file_url = self.url_CVE_2018_102223    download_raw(file_url, filename, tmpdir)2224    exe = self.bins("unzzip-mix")2225    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2226        returncodes = [0,2])2227    self.assertLess(len(run.output), 1)2228    self.assertTrue(greps(run.errors, "Invalid or"))2229    #2230    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2231        returncodes = [0,2])2232    self.assertLess(len(run.output), 30)2233    self.assertLess(len(errors(run.errors)), 10)2234    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2235    self.assertFalse(os.path.exists(tmpdir+"/test"))2236    self.rm_testdir()2237  def test_63014(self):2238    """ unzzip-zap -l $(CVE).zip  """2239    tmpdir = self.testdir()2240    filename = self.zip_CVE_2018_102241    file_url = self.url_CVE_2018_102242    download_raw(file_url, filename, tmpdir)2243    exe = self.bins("unzzip")2244    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2245        returncodes = [0,3])2246    self.assertLess(len(run.output), 1)2247    self.assertLess(len(errors(run.errors)), 80)2248    self.assertIn(": Success", run.errors)2249    #2250    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2251        returncodes = [0,3])2252    self.assertLess(len(run.output), 30)2253    self.assertLess(len(errors(run.errors)), 10)2254    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2255    self.assertFalse(os.path.exists(tmpdir+"/test"))2256    self.rm_testdir()2257  def test_63018(self):2258    """ zzdir on $(CVE).zip  """2259    tmpdir = self.testdir()2260    filename = self.zip_CVE_2018_102261    file_url = self.url_CVE_2018_102262    download_raw(file_url, filename, tmpdir)2263    exe = self.bins("zzdir")2264    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2265        returncodes = [1])2266    self.assertLess(len(run.output), 1)2267    self.assertLess(len(errors(run.errors)), 80)2268    self.assertTrue(greps(run.errors, "Invalid or"))2269  def test_63019(self):2270    """ check $(CVE).zip  """2271    tmpdir = self.testdir()2272    filename = self.zip_CVE_2018_102273    file_url = self.url_CVE_2018_102274    download_raw(file_url, filename, tmpdir)2275    shell("ls -l {tmpdir}/{filename}".format(**locals()))2276    size = os.path.getsize(os.path.join(tmpdir, filename))2277    self.assertEqual(size, 188)2278  url_CVE_2018_11 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"2279  zip_CVE_2018_11 = "zziplib_0-13-67_unzzip_infinite-loop_unzzip_cat_file.zip"2280  def test_63110(self):2281    """ info unzip -l $(CVE).zip  """2282    tmpdir = self.testdir()2283    filename = self.zip_CVE_2018_112284    file_url = self.url_CVE_2018_112285    download_raw(file_url, filename, tmpdir)2286    exe = self.bins("unzip")2287    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2288        returncodes = [0, 9])2289    self.assertIn("End-of-central-directory signature not found", run.errors)2290    self.assertLess(len(run.output), 90)2291    self.assertLess(len(errors(run.errors)), 600)2292    #2293    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),2294        returncodes = [9])2295    self.assertLess(len(run.output), 90)2296    self.assertLess(len(errors(run.errors)), 600)2297    self.assertIn('End-of-central-directory signature not found', run.errors)2298    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2299    self.assertFalse(os.path.exists(tmpdir+"/test"))2300    self.rm_testdir()2301  def test_63111(self):2302    """ unzzip-big -l $(CVE).zip  """2303    tmpdir = self.testdir()2304    filename = self.zip_CVE_2018_112305    file_url = self.url_CVE_2018_112306    download_raw(file_url, filename, tmpdir)2307    exe = self.bins("unzzip-big")2308    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2309        returncodes = [0])2310    self.assertLess(len(run.output), 1)2311    self.assertLess(len(errors(run.errors)), 1)2312    #2313    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2314        returncodes = [0])2315    self.assertLess(len(run.output), 30)2316    self.assertLess(len(errors(run.errors)), 1)2317    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2318    self.assertFalse(os.path.exists(tmpdir+"/test"))2319    self.rm_testdir()2320  def test_63112(self):2321    """ unzzip-mem -l $(CVE).zip """2322    tmpdir = self.testdir()2323    filename = self.zip_CVE_2018_112324    file_url = self.url_CVE_2018_112325    download_raw(file_url, filename, tmpdir)2326    exe = self.bins("unzzip-mem")2327    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2328        returncodes = [0])2329    self.assertLess(len(run.output), 1)2330    self.assertLess(len(errors(run.errors)), 1)2331    #2332    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2333        returncodes = [2])2334    self.assertLess(len(run.output), 30)2335    self.assertLess(len(errors(run.errors)), 10)2336    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2337    self.assertFalse(os.path.exists(tmpdir+"/test"))2338    self.rm_testdir()2339  def test_63113(self):2340    """ unzzip-mix -l $(CVE).zip  """2341    tmpdir = self.testdir()2342    filename = self.zip_CVE_2018_112343    file_url = self.url_CVE_2018_112344    download_raw(file_url, filename, tmpdir)2345    exe = self.bins("unzzip-mix")2346    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2347        returncodes = [0,2])2348    self.assertLess(len(run.output), 1)2349    self.assertTrue(greps(run.errors, "Invalid or"))2350    #2351    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2352        returncodes = [0,2])2353    self.assertLess(len(run.output), 30)2354    self.assertLess(len(errors(run.errors)), 10)2355    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2356    self.assertFalse(os.path.exists(tmpdir+"/test"))2357    self.rm_testdir()2358  def test_63114(self):2359    """ unzzip-zap -l $(CVE).zip  """2360    tmpdir = self.testdir()2361    filename = self.zip_CVE_2018_112362    file_url = self.url_CVE_2018_112363    download_raw(file_url, filename, tmpdir)2364    exe = self.bins("unzzip")2365    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2366        returncodes = [0,3])2367    self.assertLess(len(run.output), 1)2368    self.assertLess(len(errors(run.errors)), 90)2369    self.assertIn(": Success", run.errors)2370    #2371    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2372        returncodes = [0,3])2373    self.assertLess(len(run.output), 30)2374    self.assertLess(len(errors(run.errors)), 10)2375    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2376    self.assertFalse(os.path.exists(tmpdir+"/test"))2377    #2378    run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),2379        returncodes = [0,3])2380    self.rm_testdir()2381  def test_63119(self):2382    """ check $(CVE).zip  """2383    tmpdir = self.testdir()2384    filename = self.zip_CVE_2018_112385    file_url = self.url_CVE_2018_112386    download_raw(file_url, filename, tmpdir)2387    shell("ls -l {tmpdir}/{filename}".format(**locals()))2388    size = os.path.getsize(os.path.join(tmpdir, filename))2389    self.assertEqual(size, 280)2390  url_CVE_2018_12 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"2391  zip_CVE_2018_12 = "zziplib_0-13-67_unzip-mem_buffer-access-with-incorrect-length-value_zzip_disk_fread.zip"2392  def test_63810(self):2393    """ info unzip -l $(CVE).zip  """2394    tmpdir = self.testdir()2395    filename = self.zip_CVE_2018_122396    file_url = self.url_CVE_2018_122397    download_raw(file_url, filename, tmpdir)2398    exe = self.bins("unzip")2399    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2400        returncodes = [2])2401    self.assertIn('reported length of central directory', run.errors)2402    self.assertLess(len(run.output), 300)2403    self.assertLess(len(errors(run.errors)), 800)2404    #2405    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),2406        returncodes = [2])2407    self.assertLess(len(run.output), 300)2408    self.assertLess(len(errors(run.errors)), 800)2409    self.assertIn('reported length of central directory', run.errors)2410    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2411    self.assertFalse(os.path.exists(tmpdir+"/test"))2412    self.rm_testdir()2413  def test_63811(self):2414    """ unzzip-big -l $(CVE).zip  """2415    tmpdir = self.testdir()2416    filename = self.zip_CVE_2018_122417    file_url = self.url_CVE_2018_122418    download_raw(file_url, filename, tmpdir)2419    exe = self.bins("unzzip-big")2420    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2421        returncodes = [0])2422    self.assertLess(len(run.output), 20)2423    self.assertLess(len(errors(run.errors)), 1)2424    #2425    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2426        returncodes = [0])2427    self.assertLess(len(run.output), 30)2428    self.assertLess(len(errors(run.errors)), 1)2429    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2430    self.assertFalse(os.path.exists(tmpdir+"/test"))2431    self.rm_testdir()2432  def test_63812(self):2433    """ unzzip-mem -l $(CVE).zip """2434    tmpdir = self.testdir()2435    filename = self.zip_CVE_2018_122436    file_url = self.url_CVE_2018_122437    download_raw(file_url, filename, tmpdir)2438    exe = self.bins("unzzip-mem")2439    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2440        returncodes = [0])2441    self.assertLess(len(run.output), 1)2442    self.assertLess(len(errors(run.errors)), 1)2443    #2444    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2445        returncodes = [2])2446    self.assertLess(len(run.output), 30)2447    self.assertLess(len(errors(run.errors)), 10)2448    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2449    self.assertFalse(os.path.exists(tmpdir+"/test"))2450    self.rm_testdir()2451  def test_63813(self):2452    """ unzzip-mix -l $(CVE).zip  """2453    tmpdir = self.testdir()2454    filename = self.zip_CVE_2018_122455    file_url = self.url_CVE_2018_122456    download_raw(file_url, filename, tmpdir)2457    exe = self.bins("unzzip-mix")2458    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2459        returncodes = [0,2])2460    self.assertLess(len(run.output), 1)2461    self.assertTrue(grep(run.errors, "central directory not found"))2462    #2463    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2464        returncodes = [0,2])2465    self.assertLess(len(run.output), 30)2466    self.assertLess(len(errors(run.errors)), 10)2467    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2468    self.assertFalse(os.path.exists(tmpdir+"/test"))2469    self.rm_testdir()2470  def test_63814(self):2471    """ unzzip-zap -l $(CVE).zip  """2472    tmpdir = self.testdir()2473    filename = self.zip_CVE_2018_122474    file_url = self.url_CVE_2018_122475    download_raw(file_url, filename, tmpdir)2476    exe = self.bins("unzzip")2477    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2478        returncodes = [0,3])2479    self.assertLess(len(run.output), 1)2480    self.assertLess(len(errors(run.errors)), 200)2481    self.assertIn(": Success", run.errors)2482    #2483    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2484        returncodes = [0,3])2485    self.assertLess(len(run.output), 30)2486    self.assertLess(len(errors(run.errors)), 10)2487    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2488    self.assertFalse(os.path.exists(tmpdir+"/test"))2489    self.rm_testdir()2490  def test_63819(self):2491    """ check $(CVE).zip  """2492    tmpdir = self.testdir()2493    filename = self.zip_CVE_2018_122494    file_url = self.url_CVE_2018_122495    download_raw(file_url, filename, tmpdir)2496    shell("ls -l {tmpdir}/{filename}".format(**locals()))2497    size = os.path.getsize(os.path.join(tmpdir, filename))2498    self.assertEqual(size, 152)2499  url_CVE_2018_14 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"2500  zip_CVE_2018_14 = "zziplib_0-13-67_zzdir_memory-alignment-errors___zzip_fetch_disk_trailer.zip"2501  def test_64840(self):2502    """ info unzip -l $(CVE).zip  """2503    tmpdir = self.testdir()2504    filename = self.zip_CVE_2018_142505    file_url = self.url_CVE_2018_142506    download_raw(file_url, filename, tmpdir)2507    exe = self.bins("unzip")2508    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2509        returncodes = [3])2510    self.assertIn("attempt to seek before beginning of zipfile", run.errors)2511    self.assertLess(len(run.output), 200)2512    self.assertLess(len(errors(run.errors)), 800)2513    #2514    exe = self.bins("unzip")2515    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),2516        returncodes = [3])2517    self.assertLess(len(run.output), 200)2518    self.assertLess(len(errors(run.errors)), 800)2519    self.assertIn('attempt to seek before beginning of zipfile', run.errors)2520    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2521    self.assertFalse(os.path.exists(tmpdir+"/test"))2522    self.rm_testdir()2523  def test_64841(self):2524    """ unzzip-big -l $(CVE).zip  """2525    tmpdir = self.testdir()2526    filename = self.zip_CVE_2018_142527    file_url = self.url_CVE_2018_142528    download_raw(file_url, filename, tmpdir)2529    exe = self.bins("unzzip-big")2530    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2531        returncodes = [0])2532    self.assertLess(len(run.output), 1)2533    self.assertLess(len(errors(run.errors)), 1)2534    #2535    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2536        returncodes = [0])2537    self.assertLess(len(run.output), 30)2538    self.assertLess(len(errors(run.errors)), 1)2539    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2540    self.assertFalse(os.path.exists(tmpdir+"/test"))2541    self.rm_testdir()2542  def test_64842(self):2543    """ unzzip-mem -l $(CVE).zip """2544    tmpdir = self.testdir()2545    filename = self.zip_CVE_2018_142546    file_url = self.url_CVE_2018_142547    download_raw(file_url, filename, tmpdir)2548    exe = self.bins("unzzip-mem")2549    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2550        returncodes = [0])2551    self.assertLess(len(run.output), 1)2552    #2553    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2554        returncodes = [2])2555    self.assertLess(len(run.output), 30)2556    self.assertLess(len(errors(run.errors)), 10)2557    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2558    self.assertFalse(os.path.exists(tmpdir+"/test"))2559    self.rm_testdir()2560  def test_64843(self):2561    """ unzzip-mix -l $(CVE).zip  """2562    tmpdir = self.testdir()2563    filename = self.zip_CVE_2018_142564    file_url = self.url_CVE_2018_142565    download_raw(file_url, filename, tmpdir)2566    exe = self.bins("unzzip-mix")2567    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2568        returncodes = [0, 2])2569    self.assertLess(len(run.output), 1)2570    self.assertTrue(greps(run.errors, "Invalid or"))2571    #2572    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2573        returncodes = [0,2])2574    self.assertLess(len(run.output), 30)2575    self.assertLess(len(errors(run.errors)), 10)2576    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2577    self.assertFalse(os.path.exists(tmpdir+"/test"))2578    self.rm_testdir()2579  def test_64844(self):2580    """ unzzip-zap -l $(CVE).zip  """2581    tmpdir = self.testdir()2582    filename = self.zip_CVE_2018_142583    file_url = self.url_CVE_2018_142584    download_raw(file_url, filename, tmpdir)2585    exe = self.bins("unzzip")2586    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2587        returncodes = [0, 3])2588    self.assertLess(len(run.output), 1)2589    self.assertLess(len(errors(run.errors)), 200)2590    self.assertIn(": Success", run.errors)2591    #2592    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2593        returncodes = [0,3])2594    self.assertLess(len(run.output), 30)2595    self.assertLess(len(errors(run.errors)), 10)2596    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2597    self.assertFalse(os.path.exists(tmpdir+"/test"))2598    self.rm_testdir()2599  def test_64848(self):2600    """ zzdir $(CVE).zip  """2601    tmpdir = self.testdir()2602    filename = self.zip_CVE_2018_142603    file_url = self.url_CVE_2018_142604    download_raw(file_url, filename, tmpdir)2605    exe = self.bins("zzdir")2606    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2607        returncodes = [1])2608    self.assertLess(len(run.output), 1)2609    self.assertLess(len(errors(run.errors)), 200)2610    self.assertTrue(greps(run.errors, "Invalid or"))2611    self.rm_testdir()2612  def test_64849(self):2613    """ check $(CVE).zip  """2614    tmpdir = self.testdir()2615    filename = self.zip_CVE_2018_142616    file_url = self.url_CVE_2018_142617    download_raw(file_url, filename, tmpdir)2618    shell("ls -l {tmpdir}/{filename}".format(**locals()))2619    size = os.path.getsize(os.path.join(tmpdir, filename))2620    self.assertEqual(size, 56)2621  url_CVE_2018_15 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"2622  zip_CVE_2018_15 = "zziplib_0-13-67_unzip-mem_memory-alignment-errors_zzip_disk_findfirst.zip"2623  def test_65400(self):2624    """ info unzip -l $(CVE).zip  """2625    tmpdir = self.testdir()2626    filename = self.zip_CVE_2018_152627    file_url = self.url_CVE_2018_152628    download_raw(file_url, filename, tmpdir)2629    exe = self.bins("unzip")2630    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2631        returncodes = [2])2632    self.assertIn("reported length of central directory", run.errors)2633    self.assertLess(len(run.output), 300)2634    self.assertLess(len(errors(run.errors)), 800)2635    #2636    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),2637        returncodes = [2])2638    self.assertLess(len(run.output), 300)2639    self.assertLess(len(errors(run.errors)), 800)2640    self.assertIn('reported length of central directory', run.errors)2641    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2642    self.assertFalse(os.path.exists(tmpdir+"/test"))2643    self.rm_testdir()2644  def test_65401(self):2645    """ unzzip-big -l $(CVE).zip  """2646    tmpdir = self.testdir()2647    filename = self.zip_CVE_2018_152648    file_url = self.url_CVE_2018_152649    download_raw(file_url, filename, tmpdir)2650    exe = self.bins("unzzip-big")2651    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2652        returncodes = [0])2653    self.assertLess(len(run.output), 15)2654    self.assertLess(len(errors(run.errors)), 1)2655    #2656    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2657        returncodes = [0])2658    self.assertLess(len(run.output), 30)2659    self.assertLess(len(errors(run.errors)), 1)2660    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2661    self.assertFalse(os.path.exists(tmpdir+"/test"))2662    self.rm_testdir()2663  def test_65402(self):2664    """ unzzip-mem -l $(CVE).zip """2665    tmpdir = self.testdir()2666    filename = self.zip_CVE_2018_152667    file_url = self.url_CVE_2018_152668    download_raw(file_url, filename, tmpdir)2669    exe = self.bins("unzzip-mem")2670    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2671        returncodes = [0])2672    self.assertLess(len(run.output), 30)2673    self.assertLess(len(errors(run.errors)), 1)2674    #2675    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2676        returncodes = [2])2677    self.assertLess(len(run.output), 30)2678    self.assertLess(len(errors(run.errors)), 10)2679    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2680    self.assertFalse(os.path.exists(tmpdir+"/test"))2681    self.rm_testdir()2682  def test_65403(self):2683    """ unzzip-mix -l $(CVE).zip  """2684    tmpdir = self.testdir()2685    filename = self.zip_CVE_2018_152686    file_url = self.url_CVE_2018_152687    download_raw(file_url, filename, tmpdir)2688    exe = self.bins("unzzip-mix")2689    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2690        returncodes = [0,2])2691    self.assertLess(len(run.output), 1)2692    self.assertTrue(greps(run.errors, "Invalid or"))2693    #2694    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2695        returncodes = [0,2])2696    self.assertLess(len(run.output), 30)2697    self.assertLess(len(errors(run.errors)), 10)2698    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2699    self.assertFalse(os.path.exists(tmpdir+"/test"))2700    self.rm_testdir()2701  def test_65404(self):2702    """ unzzip-zap -l $(CVE).zip  """2703    tmpdir = self.testdir()2704    filename = self.zip_CVE_2018_152705    file_url = self.url_CVE_2018_152706    download_raw(file_url, filename, tmpdir)2707    exe = self.bins("unzzip")2708    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2709        returncodes = [0, 3])2710    self.assertLess(len(run.output), 1)2711    self.assertLess(len(errors(run.errors)), 200)2712    self.assertIn(": Success", run.errors)2713    #2714    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2715        returncodes = [0,3])2716    self.assertLess(len(run.output), 30)2717    self.assertLess(len(errors(run.errors)), 10)2718    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2719    self.assertFalse(os.path.exists(tmpdir+"/test"))2720    self.rm_testdir()2721  def test_65409(self):2722    """ check $(CVE).zip  """2723    tmpdir = self.testdir()2724    filename = self.zip_CVE_2018_152725    file_url = self.url_CVE_2018_152726    download_raw(file_url, filename, tmpdir)2727    shell("ls -l {tmpdir}/{filename}".format(**locals()))2728    size = os.path.getsize(os.path.join(tmpdir, filename))2729    self.assertEqual(size, 141)2730  url_CVE_2018_16 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"2731  zip_CVE_2018_16 = "zziplib_0-13-67_unzzip_memory-aligment-errors___zzip_fetch_disk_trailer.zip"2732  def test_65410(self):2733    """ info unzip -l $(CVE).zip  """2734    tmpdir = self.testdir()2735    filename = self.zip_CVE_2018_162736    file_url = self.url_CVE_2018_162737    download_raw(file_url, filename, tmpdir)2738    exe = self.bins("unzip")2739    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2740        returncodes = [0, 9])2741    self.assertIn("End-of-central-directory signature not found", run.errors)2742    self.assertLess(len(run.output), 200)2743    self.assertLess(len(errors(run.errors)), 800)2744    #2745    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),2746        returncodes = [9])2747    self.assertLess(len(run.output), 200)2748    self.assertLess(len(errors(run.errors)), 800)2749    self.assertIn('End-of-central-directory signature not found', run.errors)2750    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2751    self.assertFalse(os.path.exists(tmpdir+"/test"))2752    self.rm_testdir()2753  def test_65411(self):2754    """ unzzip-big -l $(CVE).zip  """2755    tmpdir = self.testdir()2756    filename = self.zip_CVE_2018_162757    file_url = self.url_CVE_2018_162758    download_raw(file_url, filename, tmpdir)2759    exe = self.bins("unzzip-big")2760    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2761        returncodes = [0])2762    self.assertLess(len(run.output), 1)2763    self.assertLess(len(errors(run.errors)), 1)2764    #2765    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2766        returncodes = [0])2767    self.assertLess(len(run.output), 30)2768    self.assertLess(len(errors(run.errors)), 1)2769    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2770    self.assertFalse(os.path.exists(tmpdir+"/test"))2771    self.rm_testdir()2772  def test_65412(self):2773    """ unzzip-mem -l $(CVE).zip """2774    tmpdir = self.testdir()2775    filename = self.zip_CVE_2018_162776    file_url = self.url_CVE_2018_162777    download_raw(file_url, filename, tmpdir)2778    exe = self.bins("unzzip-mem")2779    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2780        returncodes = [0])2781    self.assertLess(len(run.output), 1)2782    self.assertLess(len(errors(run.errors)), 1)2783    #2784    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2785        returncodes = [2])2786    self.assertLess(len(run.output), 30)2787    self.assertLess(len(errors(run.errors)), 10)2788    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2789    self.assertFalse(os.path.exists(tmpdir+"/test"))2790    self.rm_testdir()2791  def test_65413(self):2792    """ unzzip-mix -l $(CVE).zip  """2793    tmpdir = self.testdir()2794    filename = self.zip_CVE_2018_162795    file_url = self.url_CVE_2018_162796    download_raw(file_url, filename, tmpdir)2797    exe = self.bins("unzzip-mix")2798    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2799        returncodes = [0,2])2800    self.assertLess(len(run.output), 1)2801    self.assertTrue(greps(run.errors, "Invalid or"))2802    #2803    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2804        returncodes = [0,2])2805    self.assertLess(len(run.output), 30)2806    self.assertLess(len(errors(run.errors)), 10)2807    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2808    self.assertFalse(os.path.exists(tmpdir+"/test"))2809    self.rm_testdir()2810  def test_65414(self):2811    """ unzzip-zap -l $(CVE).zip  """2812    tmpdir = self.testdir()2813    filename = self.zip_CVE_2018_162814    file_url = self.url_CVE_2018_162815    download_raw(file_url, filename, tmpdir)2816    exe = self.bins("unzzip")2817    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2818        returncodes = [0, 3])2819    self.assertLess(len(run.output), 1)2820    self.assertLess(len(errors(run.errors)), 200)2821    self.assertIn(": Success", run.errors)2822    #2823    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2824        returncodes = [0,3])2825    self.assertLess(len(run.output), 30)2826    self.assertLess(len(errors(run.errors)), 10)2827    self.assertTrue(greps(run.errors, "Zipfile corrupted"))2828    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2829    self.assertFalse(os.path.exists(tmpdir+"/test"))2830    #2831    run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),2832        returncodes = [0,3])2833    self.assertTrue(greps(run.errors, "Zipfile corrupted"))2834    self.rm_testdir()2835  def test_65419(self):2836    """ check $(CVE).zip  """2837    tmpdir = self.testdir()2838    filename = self.zip_CVE_2018_162839    file_url = self.url_CVE_2018_162840    download_raw(file_url, filename, tmpdir)2841    shell("ls -l {tmpdir}/{filename}".format(**locals()))2842    size = os.path.getsize(os.path.join(tmpdir, filename))2843    self.assertEqual(size, 124)2844  url_CVE_2018_17 = "https://github.com/ProbeFuzzer/poc/blob/master/zziplib"2845  zip_CVE_2018_17 = "zziplib_0-13-67_unzip-mem_memory-alignment-errors_zzip_disk_findfirst_64.zip"2846  def test_65420(self):2847    """ info unzip -l $(CVE).zip  """2848    tmpdir = self.testdir()2849    filename = self.zip_CVE_2018_172850    file_url = self.url_CVE_2018_172851    download_raw(file_url, filename, tmpdir)2852    exe = self.bins("unzip")2853    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2854        returncodes = [0, 9])2855    self.assertIn("End-of-central-directory signature not found", run.errors)2856    self.assertLess(len(run.output), 200)2857    self.assertLess(len(errors(run.errors)), 800)2858    #2859    run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),2860        returncodes = [9])2861    self.assertLess(len(run.output), 200)2862    self.assertLess(len(errors(run.errors)), 800)2863    self.assertIn('End-of-central-directory signature not found', run.errors)2864    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2865    self.assertFalse(os.path.exists(tmpdir+"/test"))2866    self.rm_testdir()2867  def test_65421(self):2868    """ unzzip-big -l $(CVE).zip  """2869    tmpdir = self.testdir()2870    filename = self.zip_CVE_2018_172871    file_url = self.url_CVE_2018_172872    download_raw(file_url, filename, tmpdir)2873    exe = self.bins("unzzip-big")2874    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2875        returncodes = [0])2876    self.assertLess(len(run.output), 1)2877    #2878    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2879        returncodes = [0])2880    self.assertLess(len(run.output), 30)2881    self.assertLess(len(errors(run.errors)), 1)2882    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2883    self.assertFalse(os.path.exists(tmpdir+"/test"))2884    self.rm_testdir()2885  def test_65422(self):2886    """ unzzip-mem -l $(CVE).zip """2887    tmpdir = self.testdir()2888    filename = self.zip_CVE_2018_172889    file_url = self.url_CVE_2018_172890    download_raw(file_url, filename, tmpdir)2891    exe = self.bins("unzzip-mem")2892    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2893        returncodes = [0])2894    self.assertLess(len(run.output), 50)2895    self.assertLess(len(errors(run.errors)), 1)2896    #2897    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2898        returncodes = [2])2899    self.assertLess(len(run.output), 30)2900    self.assertLess(len(errors(run.errors)), 10)2901    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2902    self.assertFalse(os.path.exists(tmpdir+"/test"))2903    #2904    run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),2905        returncodes = [2])2906    # self.rm_testdir()2907  def test_65423(self):2908    """ unzzip-mix -l $(CVE).zip  """2909    tmpdir = self.testdir()2910    filename = self.zip_CVE_2018_172911    file_url = self.url_CVE_2018_172912    download_raw(file_url, filename, tmpdir)2913    exe = self.bins("unzzip-mix")2914    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2915        returncodes = [0,2])2916    self.assertLess(len(run.output), 1)2917    self.assertTrue(greps(run.errors, "Invalid or"))2918    #2919    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2920        returncodes = [0,2])2921    self.assertLess(len(run.output), 30)2922    self.assertTrue(greps(run.errors, "Invalid or"))2923    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2924    self.assertFalse(os.path.exists(tmpdir+"/test"))2925    self.rm_testdir()2926  def test_65424(self):2927    """ unzzip-zap -l $(CVE).zip  """2928    tmpdir = self.testdir()2929    filename = self.zip_CVE_2018_172930    file_url = self.url_CVE_2018_172931    download_raw(file_url, filename, tmpdir)2932    exe = self.bins("unzzip")2933    run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),2934        returncodes = [0, 3])2935    self.assertLess(len(run.output), 1)2936    self.assertLess(len(errors(run.errors)), 200)2937    self.assertIn(": Success", run.errors)2938    #2939    run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),2940        returncodes = [0,3])2941    self.assertLess(len(run.output), 30)2942    self.assertTrue(greps(run.errors, "Zipfile corrupted"))2943    # self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)2944    self.assertFalse(os.path.exists(tmpdir+"/test"))2945    self.rm_testdir()2946  def test_65429(self):2947    """ check $(CVE).zip  """2948    tmpdir = self.testdir()2949    filename = self.zip_CVE_2018_172950    file_url = self.url_CVE_2018_172951    download_raw(file_url, filename, tmpdir)2952    shell("ls -l {tmpdir}/{filename}".format(**locals()))2953    size = os.path.getsize(os.path.join(tmpdir, filename))2954    self.assertEqual(size, 360)2955  def test_91000_zzshowme_check_sfx(self):...test_whfast_testparticles.py
Source:test_whfast_testparticles.py  
...22        sim2.integrate(1)23        # some combinations can't do a simple keplerian orbit exactly (sad but true)24        eps = 1e-1425        for i in range(sim.N):26            self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps)27            self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps)28            self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps)29            self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps)30        31        # all should be able to do this exactly32        sim.integrate(1)33        eps = 1e-1634        for i in range(sim.N):35            self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps)36            self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps)37            self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps)38            self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps)39    return do_test40def create_whfast_testparticle_withplanet(coordinates, N, N_active):41    def do_test(self):42        eps = 1e-1343        sim = rebound.Simulation()44        sim.integrator = "whfast"45        sim.ri_whfast.coordinates = coordinates46        sim.dt=1e-347        sim.add(m=1)48        sim.add(m=1e-3,P=0.4)49        sim.add(m=1e-3,P=0.7)50        for i in range(N):51            sim.add(m=0,P=1,e=0.1,f=i)52  53        sim2 = sim.copy()54        if N_active>0:55            sim2.N_active = N_active56       57        sim2.integrate(1)58        sim.integrate(1)59        for i in range(sim.N):60            self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps)61            self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps)62            self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps)63            self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps)64    return do_test65def create_whfast_testparticletype1(coordinates, N_active):66    def do_test(self):67        eps = 1e-1668        sim = rebound.Simulation()69        sim.ri_whfast.coordinates = coordinates70        sim.testparticle_type = 171        sim.integrator = "whfast"72        sim.dt=1e-373        sim.add(m=1)74        sim.add(m=1e-3,P=1,e=0.1)75  76        sim2 = sim.copy()77        if N_active>0:78            sim2.N_active = N_active79        sim2.integrate(1)80        sim.integrate(1)81        for i in range(sim.N):82            self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps)83            self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps)84            self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps)85            self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps)86    return do_test87def create_whfast_testparticletype1_withplanet(coordinates, N_active):88    def do_test(self):89        eps = 1e-1690        sim = rebound.Simulation()91        sim.integrator = "whfast"92        sim.ri_whfast.coordinates = coordinates93        sim.testparticle_type = 194        sim.dt=1e-395        sim.add(m=1)96        sim.add(m=1e-3,P=0.4)97        sim.add(m=1e-3,P=0.7,e=0.1)98        sim.add(m=1e-3,P=1.0)99  100        sim2 = sim.copy()101        if N_active>0:102            sim2.N_active = N_active103       104        sim2.integrate(1)105        sim.integrate(1)106        for i in range(sim.N):107            self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps)108            self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps)109            self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps)110            self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps)111    return do_test112## Testparticles with mass currently lead to unexpexted behaviour:113def create_whfast_massivetestparticle(coordinates, N):114    def do_test(self):115        eps = 2e-13116        sim = rebound.Simulation()117        sim.ri_whfast.coordinates = coordinates118        sim.integrator = "whfast"119        sim.dt=1e-3120        sim.add(m=1)121        sim.add(m=1e-3,P=0.4)122        for i in range(N):123            sim.add(m=0,P=1,e=0.1,f=i)124  125        sim2 = sim.copy()126        for i in range(N):127            sim2.particles[i+2].m = 1 # particles have zero mass for sim, but finite for sim2128        sim2.N_active = 2129        sim.integrate(1)130        with warnings.catch_warnings(record=True) as w:131            warnings.simplefilter("always")132            sim2.integrate(1)133            self.assertEqual(1,len(w))134        for i in range(sim.N):135            self.assertLess(abs(sim.particles[i].x-sim2.particles[i].x),eps)136            self.assertLess(abs(sim.particles[i].vx-sim2.particles[i].vx),eps)137            self.assertLess(abs(sim.particles[i].y-sim2.particles[i].y),eps)138            self.assertLess(abs(sim.particles[i].vy-sim2.particles[i].vy),eps)139    return do_test140for N in [1,2]: 141    for coordinates in coordinatelist:142        for N_active in [-1]+list(range(1,N+2)):143            test_method = create_whfast_testparticle(coordinates,N, N_active)144            test_method.__name__ = "test_whfast_testparticle_N%d_Nactive%d_"%(N,N_active)+coordinates145            setattr(TestIntegratorWHFastTestParticle, test_method.__name__, test_method)146            147        for N_active in [-1]+list(range(3,N+4)):148            test_method = create_whfast_testparticle_withplanet(coordinates,N, N_active)149            test_method.__name__ = "test_whfast_testparticle_withplanet_N%d_Nactive%d_"%(N,N_active)+coordinates150            setattr(TestIntegratorWHFastTestParticle, test_method.__name__, test_method)151        test_method = create_whfast_massivetestparticle(coordinates,N)152        test_method.__name__ = "test_whfast_massivetestparticle_N%d_"%(N)+coordinates...tests.py
Source:tests.py  
...38        ordered_sigs = [sig for sig,value in ordered]39        self.assertIn('s1', ordered_sigs)40        self.assertIn('s2', ordered_sigs)41        self.assertIn('s3', ordered_sigs)42        self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s1'))43        self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s2'))44    def test_chained_dependencies(self):45        raw = [46            ('s1', ('s1_db', ['alpha'])),47            ('s2', ('s2_db', ['bravo'])),48            ('s3', ('s3_db', ['charlie'])),49        ]50        dependencies = {51            'alpha': ['bravo'],52            'bravo': ['charlie'],53        }54        ordered = simple.dependency_ordered(raw, dependencies=dependencies)55        ordered_sigs = [sig for sig,value in ordered]56        self.assertIn('s1', ordered_sigs)57        self.assertIn('s2', ordered_sigs)58        self.assertIn('s3', ordered_sigs)59        # Explicit dependencies60        self.assertLess(ordered_sigs.index('s2'), ordered_sigs.index('s1'))61        self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s2'))62        # Implied dependencies63        self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s1'))64    def test_multiple_dependencies(self):65        raw = [66            ('s1', ('s1_db', ['alpha'])),67            ('s2', ('s2_db', ['bravo'])),68            ('s3', ('s3_db', ['charlie'])),69            ('s4', ('s4_db', ['delta'])),70        ]71        dependencies = {72            'alpha': ['bravo','delta'],73            'bravo': ['charlie'],74            'delta': ['charlie'],75        }76        ordered = simple.dependency_ordered(raw, dependencies=dependencies)77        ordered_sigs = [sig for sig,aliases in ordered]78        self.assertIn('s1', ordered_sigs)79        self.assertIn('s2', ordered_sigs)80        self.assertIn('s3', ordered_sigs)81        self.assertIn('s4', ordered_sigs)82        # Explicit dependencies83        self.assertLess(ordered_sigs.index('s2'), ordered_sigs.index('s1'))84        self.assertLess(ordered_sigs.index('s4'), ordered_sigs.index('s1'))85        self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s2'))86        self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s4'))87        # Implicit dependencies88        self.assertLess(ordered_sigs.index('s3'), ordered_sigs.index('s1'))89    def test_circular_dependencies(self):90        raw = [91            ('s1', ('s1_db', ['alpha'])),92            ('s2', ('s2_db', ['bravo'])),93        ]94        dependencies = {95            'bravo': ['alpha'],96            'alpha': ['bravo'],97        }...test_h2py_runtime.py
Source:test_h2py_runtime.py  
...31    def test_false(self):32        self.assertEqual(P(False), False)33class TestH2PyRuntimeHcompare(unittest.TestCase):34    def test_typeorder(self):35        self.assertLess(hcompare(H(False), H(42)), 0)36        self.assertLess(hcompare(H(False), H("abc")), 0)37        self.assertLess(hcompare(H(False), H({})), 0)38        self.assertLess(hcompare(H(False), HAddr(("x",))), 0)39        self.assertLess(hcompare(H(42), H("abc")), 0)40        self.assertLess(hcompare(H(42), H({})), 0)41        self.assertLess(hcompare(H(42), HAddr(("x",))), 0)42        self.assertLess(hcompare(H("abc"), H({})), 0)43        self.assertLess(hcompare(H("abc"), HAddr(("x",))), 0)44        self.assertLess(hcompare(H({}), HAddr(("x",))), 0)45    def test_int(self):46        self.assertLess(hcompare(H(42), H(43)), 0)47        self.assertEqual(hcompare(H(42), H(42)), 0)48        self.assertGreater(hcompare(H(43), H(42)), 0)49    def test_bool(self):50        self.assertEqual(hcompare(H(False), H(False)), 0)51        self.assertLess(hcompare(H(False), H(True)), 0)52        self.assertGreater(hcompare(H(True), H(False)), 0)53        self.assertEqual(hcompare(H(True), H(True)), 0)54    def test_atom(self):55        self.assertLess(hcompare(H("abc"), H("abcd")), 0)56        self.assertLess(hcompare(H("abc"), H("abd")), 0)57        self.assertEqual(hcompare(H("abc"), H("abc")), 0)58        self.assertGreater(hcompare(H("abcd"), H("abc")), 0)59        self.assertGreater(hcompare(H("abd"), H("abc")), 0)60    def test_dict(self):61        self.assertLess(hcompare(H({}), H({0: 1})), 0)62        self.assertEqual(hcompare(H({0: 1}), H({0: 1})), 0)63        self.assertGreater(hcompare(H({0: 1, 2: 3}), H({0: 1})), 0)64    def test_addr(self):65        self.assertLess(hcompare(H(None), HAddr(("x",))), 0)66        self.assertEqual(hcompare(HAddr(("x",)), HAddr(("x",))), 0)67        self.assertGreater(hcompare(HAddr(("x", "y")), HAddr(("x",))), 0)68if __name__ == '__main__':...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
