Skip to content

Commit

Permalink
Add ClasspathManagerTestCase::testUnfoundClassPerformance
Browse files Browse the repository at this point in the history
Performance regression test for #306, failing before the enhancement and
passing afterward.

Signed-off-by: Alexander Kriegisch <[email protected]>
  • Loading branch information
kriegaex committed Apr 26, 2024
1 parent 7d19004 commit c398a21
Showing 1 changed file with 28 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.aspectj.bridge.IMessage.Kind;
import org.aspectj.bridge.IMessageHandler;
import org.aspectj.util.LangUtil;
import org.aspectj.weaver.TypeFactory;
import org.aspectj.weaver.UnresolvedType;
import org.aspectj.weaver.bcel.ClassPathManager.ClassFile;

Expand Down Expand Up @@ -76,7 +77,33 @@ private static File walk(File dir, String jar) {
}

public void testInstructions() {
System.out.println("This test is really only for standalone usage as it need executing on multiple JDK levels");
System.out.println(
"This test is mostly for stand-alone usage (rename 'xtest*' to 'test*'), " +
"as it needs execution on multiple JDK levels"
);
}

/**
* See <a href="https://github.com/eclipse-aspectj/aspectj/issues/306">GitHub issue 306</a>
*/
public void testUnfoundClassPerformance() {
final int ROUNDS = 10_000;
final int MAX_TIME = 500;

List<String> classPath = Arrays.asList(System.getProperty("java.class.path").split(File.pathSeparator));
//System.out.println(classPath);
ClassPathManager classPathManager = new ClassPathManager(classPath, null);
UnresolvedType unresolvedType = TypeFactory.createTypeFromSignature("Ljava/lang/String;");

long startTime = System.currentTimeMillis();
for (int i = 0; i < ROUNDS; i++)
classPathManager.find(unresolvedType);
long duration = System.currentTimeMillis() - startTime;

assertTrue(
String.format("Duration for %d rounds should be < %d ms, but was %d ms", ROUNDS, MAX_TIME, duration),
duration < MAX_TIME
);
}

public void xtestSanity18accessing18RTJAR() throws IOException {
Expand Down

0 comments on commit c398a21

Please sign in to comment.