From 4b175b0f0c21bcafe539740df4efc26995853ff5 Mon Sep 17 00:00:00 2001 From: Jacob Khaliqi Date: Wed, 15 Jan 2025 13:00:10 -0800 Subject: [PATCH 1/3] add in tests for java onepointfive --- .../wala/cast/java/test/ECJJava15IRTest.java | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java diff --git a/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java b/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java new file mode 100644 index 0000000000..a72dc398d0 --- /dev/null +++ b/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java @@ -0,0 +1,77 @@ +package com.ibm.wala.cast.java.test; + +import com.ibm.wala.cast.java.client.ECJJavaSourceAnalysisEngine; +import com.ibm.wala.cast.java.client.JavaSourceAnalysisEngine; +import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope; +import com.ibm.wala.client.AbstractAnalysisEngine; +import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil; +import com.ibm.wala.ipa.callgraph.CallGraphBuilder; +import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.impl.Util; +import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; +import com.ibm.wala.ipa.cha.IClassHierarchy; +import com.ibm.wala.util.CancelException; +import java.io.IOException; +import java.util.Collection; +import java.util.List; +import org.junit.jupiter.api.Test; + +public class ECJJava15IRTest extends IRTests { + + public ECJJava15IRTest() { + super(null); + dump = true; + } + + @Override + protected AbstractAnalysisEngine, ?> getAnalysisEngine( + final String[] mainClassDescriptors, Collection sources, List libs) { + JavaSourceAnalysisEngine engine = + new ECJJavaSourceAnalysisEngine() { + @Override + protected Iterable makeDefaultEntrypoints(IClassHierarchy cha) { + return Util.makeMainEntrypoints( + JavaSourceAnalysisScope.SOURCE, cha, mainClassDescriptors); + } + }; + engine.setExclusionsFile(CallGraphTestUtil.REGRESSION_EXCLUSIONS); + populateScope(engine, sources, libs); + return engine; + } + + @Test + public void testVarargsOverriding() + throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } + + @Test + public void testEnumSwitch() + throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } + + @Test + public void testOverridesOnePointFour() + throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } +} From b95600a008764a90fc7b703af7dee6da1c84a459 Mon Sep 17 00:00:00 2001 From: Deepkiran Sangha Date: Thu, 16 Jan 2025 13:44:49 -0800 Subject: [PATCH 2/3] Kiran's test cases #10 to #12 --- .../wala/cast/java/test/ECJJava15IRTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java b/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java index a72dc398d0..1b4b9cb457 100644 --- a/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java +++ b/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java @@ -74,4 +74,40 @@ public void testOverridesOnePointFour() true, null); } + + @Test + public void testVarargsCovariant() + throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } + + @Test + public void testSimpleEnums() + throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } + + @Test + public void testGenericSuperSink() + throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } } From 979857f8d3a6bf40551e279f0ae08bc1867c41a8 Mon Sep 17 00:00:00 2001 From: Tejas Karuturi Date: Mon, 27 Jan 2025 11:32:22 -0800 Subject: [PATCH 3/3] Add test cases for javaonepointfive --- .../wala/cast/java/test/ECJJava15IRTest.java | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java b/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java index 1b4b9cb457..66919d9ec7 100644 --- a/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java +++ b/cast/java/ecj/src/test/java/com/ibm/wala/cast/java/test/ECJJava15IRTest.java @@ -110,4 +110,70 @@ public void testGenericSuperSink() true, null); } + + @Test + public void testAnonGeneNullarySimple() throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } + + @Test + public void testAnonymousGenerics() throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } + + @Test + public void testNotSoSimpleEnums() throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } + + @Test + public void testVarargs() throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } + + @Test + public void testGenericArrays() throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } + + @Test + public void testAnnotations() throws IllegalArgumentException, CancelException, IOException { + runTest( + singlePkgTestSrc("javaonepointfive"), + rtJar, + simplePkgTestEntryPoint("javaonepointfive"), + emptyList, + true, + null); + } }