From 47ce2f7fe88385fc9ef0d65510954477448839b1 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 9 Oct 2013 21:29:50 +0400 Subject: [PATCH] Remove binary test data for tests with broken jars --- .../broken.jar | Bin 767 -> 0 bytes .../library/source.kt | 3 ++ .../source.kt.txt | 10 ----- .../MissingEnum.jar | Bin 1428 -> 0 bytes .../MissingEnum.kt.txt | 14 ------ .../library/source.kt | 7 +++ ...ompileKotlinAgainstCustomBinariesTest.java | 41 +++++++++++++++--- .../generators/tests/CompileBinaryTestData.kt | 14 ------ 8 files changed, 46 insertions(+), 43 deletions(-) delete mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/broken.jar create mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/library/source.kt delete mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/source.kt.txt delete mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/missingEnumReferencedInAnnotation/MissingEnum.jar delete mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/missingEnumReferencedInAnnotation/MissingEnum.kt.txt create mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/missingEnumReferencedInAnnotation/library/source.kt diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/broken.jar b/compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/broken.jar deleted file mode 100644 index b42c5758714aacf26ea5c91253711e46e5db48a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 767 zcmWIWW@Zs#-~hta9Zt>+NPv@pg~8V~#8KDN&rSc|DFy~+h5&DN4v-2asImZ@nni#r z;F^6M{XE@VgG2Ou-9G!CIql=Et9OytTUYDcne&^246YbIcv__A<*VcAd$DvC3+IfN zl1FAsX=PZ5i9A`NRq;&qb>^p{k421N+b@V6%eMiV4ZU z#b8Q8fa(Ggld}`kQ}vQ_5{rv<`_6hDaS&)({W<&5x?MV4hvGgl@l|}?BIgqLVfx;R zS4Yxjs`w==e|)&|17nRwVaKIKebP}e_h+;3 z`Mm6RufwFy3JP=C_w05%XQit1J}R)-IwSvX{pY5DqFnP$pUVmg6+~K|^iJhWE3}?e*-%%Lr?Rb_Pd~Hl-n3W1Z@$~|Z?R_AZtt4D zwYYf`Ti0PT`qn0WuT{j195;iBa;XN zYP7@R6cp{K03MH^M1ZapIYK~@jsUhmCR{605&)UN#eh5F5GL#fGNI9k>Rx2OfFcqB b?g5!#Ef~=n;LXYgQpW;>Ux4&iMi37G4UE)= diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/library/source.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/library/source.kt new file mode 100644 index 00000000000..ecbd62b4e7e --- /dev/null +++ b/compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/library/source.kt @@ -0,0 +1,3 @@ +package test + +public object Lol diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/source.kt.txt b/compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/source.kt.txt deleted file mode 100644 index ff74958b0c5..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/brokenJarWithNoClassForObjectProperty/source.kt.txt +++ /dev/null @@ -1,10 +0,0 @@ -package test - -// To regenerate this test, run CompileBinaryTestData.kt - -// Manual instructions: -// 1. Compile this file -// 2. Delete test/Lol.class -// 3. Pack test/ into broken.jar - -public object Lol diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/missingEnumReferencedInAnnotation/MissingEnum.jar b/compiler/testData/compileKotlinAgainstCustomBinaries/missingEnumReferencedInAnnotation/MissingEnum.jar deleted file mode 100644 index 826bfcc401c7871c0259ea2126a6984504b58f65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1428 zcmWIWW@Zs#-~hsP9Zt>+NPv@pg~8V~#8KDN&rSc|DFy~+h5&DN4v-2asImZ@nni#r z;F^6M{XE@VgG2Ou-9G!CIql=Et9OytTUYDcne&^246YbIcv__A<*VcAd$DvC3+IfN zl1FAsX=PZ5i9A`NRq;&qb>^p{k421N+b@V6%eMiV4ZU z`C&>N^YZfbl5-M^i(La^y`>#R_NJ%XTSc0mbo(UGdTQH+sHtqN+ZF{#sBYc5auQ2T zAlK%?DV?)p3)FPKlz+MY<)Hk7{z-j;ClCL%x>Nnm_WQqw_hkj&UNGv2PR$9Qk}4|b zaJKW0>h4yZ^}CnXuYScqGe&P2Oo2y#3flgK{H-`;#N{kPfiRt;kSO0b1;B1(a{ayGO)+n1Jdl)O9SaZK@o&5A$ zaBtG|$|>h;mrv_H%@S1<`lbq^FIwfF&0Y_(1Mu>{u7N<>3j!PN6q+CO6b1yB;d9-Hfn`Qrx za&|JyU+8!03D)A1`PO@{de+UE<$r%a*JsfG&~TyP)ULes6RurzY&pAf&!oFfvrfNT z{xQTiM%GSop4Ro+^>@~)aJ-h^vh`NXvoy>5vn`#j#P^=+(d6e?!jWz6buQ$Ie0#I8 z)7t>)w{gOM(swUbo7ExBvB8hyj(INU*?;?Mcj&$hmzSTu?!vRM>=PU1R<>SU`tfJi zglhdIlUvsJ-+Jq}ul(Dot&_i;{`1f=M7-?xlILgp*quGq^-o`J()l$|95&kEYy(^ zmp>61W@(sbT)pX0L&ZO4>HFc|Y>z$b?eJBJsV$MPy;3;;wOF-oTD1F)=5LlK9_f|c zSdq5wBe$qj$3Jks%wpbueJU_I#ehXafHxzP2m@-N0xK~ findAllJars() { - return FileUtil.findFilesByMask(Pattern.compile("^.*\\.jar$"), getTestDataDirectory()); + private static File copyJarFileWithoutEntry(@NotNull File jarPath, @NotNull String entryToDelete) { + try { + File outputFile = new File(jarPath.getParentFile(), FileUtil.getNameWithoutExtension(jarPath) + "-after.jar"); + + @SuppressWarnings("IOResourceOpenedButNotSafelyClosed") + JarFile jar = new JarFile(jarPath); + ZipOutputStream output = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(outputFile))); + try { + for (Enumeration enumeration = jar.entries(); enumeration.hasMoreElements(); ) { + JarEntry jarEntry = enumeration.nextElement(); + if (entryToDelete.equals(jarEntry.getName())) { + continue; + } + output.putNextEntry(jarEntry); + output.write(FileUtil.loadBytes(jar.getInputStream(jarEntry))); + output.closeEntry(); + } + } + finally { + output.close(); + jar.close(); + } + + return outputFile; + } + catch (IOException e) { + throw ExceptionUtils.rethrow(e); + } } @@ -126,7 +157,7 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir { Collection allDescriptors = analyzeAndGetAllDescriptors(new Function0>() { @Override public List invoke() { - return findAllJars(); + return Collections.singletonList(copyJarFileWithoutEntry(compileLibrary("library"), "test/Lol.class")); } }); assertEquals(allDescriptors.size(), 1); @@ -150,7 +181,7 @@ public class CompileKotlinAgainstCustomBinariesTest extends TestCaseWithTmpdir { doTestWithTxt(new Function0>() { @Override public List invoke() { - return findAllJars(); + return Collections.singletonList(copyJarFileWithoutEntry(compileLibrary("library"), "test/E.class")); } }); } diff --git a/generators/src/org/jetbrains/jet/generators/tests/CompileBinaryTestData.kt b/generators/src/org/jetbrains/jet/generators/tests/CompileBinaryTestData.kt index c9ad2dabe4c..ec3dfd40cd0 100644 --- a/generators/src/org/jetbrains/jet/generators/tests/CompileBinaryTestData.kt +++ b/generators/src/org/jetbrains/jet/generators/tests/CompileBinaryTestData.kt @@ -45,20 +45,6 @@ Retention(RetentionPolicy.RUNTIME) private annotation class GenScript(val dir: String, val source: String, val binary: String) private object BinaryTestData { - GenScript("compiler/testData/compileKotlinAgainstBinariesCustom/brokenJarWithNoClassForObjectProperty", "source.kt", "broken.jar") - fun genBrokenJarWithNoClassForObjectProperty() { - rm("test/Lol.class") - jar("broken.jar", "test") - rm("test") - } - - GenScript("compiler/testData/compileKotlinAgainstCustomBinaries/missingEnumReferencedInAnnotation", "MissingEnum.kt", "MissingEnum.jar") - fun genMissingEnumReferencedInAnnotation() { - rm("test/E.class") - jar("MissingEnum.jar", "test") - rm("test") - } - GenScript("idea/testData/completion/basic/custom/", "TopLevelNonImportedExtFunSource.kt", "TopLevelNonImportedExtFun.jar") fun genTopLevelNonImportedExtFun() { jar("TopLevelNonImportedExtFun.jar", "abc")