Browse Source

test - fix dup entries for target when assembling

tags/V1_5_0RC1
wisberg 18 years ago
parent
commit
2a5c822a59
1 changed files with 46 additions and 0 deletions
  1. 46
    0
      build/testsrc/org/aspectj/internal/build/BuildModuleTest.java

+ 46
- 0
build/testsrc/org/aspectj/internal/build/BuildModuleTest.java View File

@@ -15,9 +15,14 @@
package org.aspectj.internal.build;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;

import junit.framework.TestCase;

@@ -97,6 +102,9 @@ public class BuildModuleTest extends TestCase {
protected void tearDown() throws Exception {
super.tearDown();
if (debugging() && !REMOVE_JARS_AFTER_DEBUGGING) {
if (0 < tempFiles.size()) {
System.err.println("debugging files left: " + tempFiles);
}
return;
}
deleteTempFiles();
@@ -169,6 +177,14 @@ public class BuildModuleTest extends TestCase {
// System.out.println("results: " + Arrays.asList(results));
// deleteTempFiles();
// }
public void testNoDuplicates() {
File weaverAllJar = doTask("weaver",true, true, true);
String dupError = duplicateEntryError(weaverAllJar);
weaverAllJar.delete();
if (null != dupError) {
fail(dupError);
}
}
public void testAjbrowser() {
checkBuild("ajbrowser",
"org.aspectj.tools.ajbrowser.Main",
@@ -320,6 +336,36 @@ public class BuildModuleTest extends TestCase {
private static boolean debugging() {
return ((null != DEBUGS) && (0 < DEBUGS.length));
}
private static String duplicateEntryError(File weaverAllJar) {
ZipFile zipFile = null;
try {
zipFile = new ZipFile(weaverAllJar);
Enumeration e = zipFile.entries();
ArrayList entryNames = new ArrayList();
while (e.hasMoreElements()) {
ZipEntry entry = (ZipEntry) e.nextElement();
String name = entry.getName();
if (entryNames.contains(name)) {
return "duplicate entry: " + name;
}
entryNames.add(name);
}
} catch (ZipException e) {
return "ZipException " + e;
} catch (IOException e) {
return "IOException " + e;
} finally {
if (null != zipFile) {
try {
zipFile.close();
} catch (IOException e) {
return "IOException closing " + zipFile + ": " + e;
}
}
}
return null;
}
private static String name(String module, boolean trimTesting, boolean assemble) {
return module + (trimTesting?"":"-test") + (assemble?"-all":"");
}

Loading…
Cancel
Save