codespecs / daikon

Dynamic detection of likely invariants
http://plse.cs.washington.edu/daikon/
Other
211 stars 54 forks source link

Evosuite tests - IllegalArgumentException Duplicate method name "equals" #556

Closed elizabethdinella closed 1 month ago

elizabethdinella commented 1 month ago

Running with EvoSuite tests causes IllegalArgumentException due to duplicate method. I've tried various inputs to --ppt-omit-pattern, but all result in the same exception.

export JARS=:evosuite-1.2.0.jar:junit-4.12.jar:hamcrest-core-1.3.jar:foo.jar:evosuite-tests/tests.jar

java -cp :$DAIKONDIR/daikon.jar:$JARS daikon.DynComp org.junit.runner.JUnitCore Foo.Foo_ESTest

Output:

JUnit version 4.13.2-Daikon
.E
Time: 0.048
There was 1 failure:
1) initializationError(Foo.Foo_ESTest)
java.lang.annotation.AnnotationFormatError: java.lang.IllegalArgumentException: java.lang.ClassFormatError: Duplicate method name "equals" with signature "(Ljava.lang.Object;Ljava.lang.DCompMarker;)Z" in class file com/sun/proxy/$Proxy5
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:77)
    at java.lang.Class.createAnnotationData(Class.java:3521)
    at java.lang.Class.annotationData(Class.java:3510)
    at java.lang.Class.getAnnotation(Class.java:3415)
    at org.junit.internal.builders.IgnoredBuilder.runnerForClass(IgnoredBuilder.java:10)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
    at org.junit.runner.Computer.getRunner(Computer.java:50)
    at org.junit.runner.Computer$1.runnerForClass(Computer.java:31)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:125)
    at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:111)
    at org.junit.runners.Suite.<init>(Suite.java:81)
    at org.junit.runner.Computer$2.<init>(Computer.java:33)
    at org.junit.runner.Computer.getSuite(Computer.java:28)
    at org.junit.runner.Request.classes(Request.java:77)
    at org.junit.runner.JUnitCommandLineParseResult.createRequest(JUnitCommandLineParseResult.java:116)
    at org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
    at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
Caused by: java.lang.IllegalArgumentException: java.lang.ClassFormatError: Duplicate method name "equals" with signature "(Ljava.lang.Object;Ljava.lang.DCompMarker;)Z" in class file com/sun/proxy/$Proxy5
    at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:652)
    at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:557)
    at java.lang.reflect.WeakCache$Factory.get(WeakCache.java:230)
    at java.lang.reflect.WeakCache.get(WeakCache.java:127)
    at java.lang.reflect.Proxy.getProxyClass0(Proxy.java:419)
    at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:719)
    at sun.reflect.annotation.AnnotationParser$1.run(AnnotationParser.java:305)
    at sun.reflect.annotation.AnnotationParser$1.run(AnnotationParser.java:303)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.reflect.annotation.AnnotationParser.annotationForMap(AnnotationParser.java:303)
    at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:293)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
    at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
    ... 18 more

FAILURES!!!
Tests run: 1,  Failures: 1

Warning: Target exited with 1 status.

Java version:

openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

Junit version: 4.12 evosuite version: 1.2.0

I've attached foo.tar.gz a tar file with the source and evosuite-tests I am running with.

markro49 commented 1 month ago

Could you find and try a newer version of Evosuite? This one contains over 4000 class files compiled with either Java 2, 3, 4 or 5. We would like to see at least Java 8, but sometimes Java 6 or 7 might work.

markro49 commented 1 month ago

I am testing a fix that does not require updating the class files.

markro49 commented 1 month ago

Fixed with pull request 560.