diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index c5e215a55dd..4acfb07356f 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -75,7 +75,7 @@ jobs: java-version: 1.8 - name: Test (JDK8) - run: mvn -pl '!de.upb.swt.soot.tests' -am verify -B -Dfmt.skip -Dmaven.main.skip=true -PJava8 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -X + run: mvn -pl '!de.upb.sse.sootup.tests' -am verify -B -Dfmt.skip -Dmaven.main.skip=true -PJava8 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -X - uses: actions/upload-artifact@v3 if: ${{ always() }} @@ -83,7 +83,7 @@ jobs: name: coverage-exec path: | */target/coverage-reports/jacoco-ut-jdk8.exec - !de.upb.swt.soot.tests/ + !de.upb.sse.sootup.tests/ - uses: actions/upload-artifact@v3 if: ${{ always() }} @@ -91,7 +91,7 @@ jobs: name: test-reports-jdk8 path: | */target/surefire-reports - !de.upb.swt.soot.tests/ + !de.upb.sse.sootup.tests/ JDK9: @@ -125,7 +125,7 @@ jobs: java-version: 1.9 - name: Test (JDK9) - run: mvn -pl '!de.upb.swt.soot.tests' -am verify -B -Dfmt.skip -Dmaven.main.skip=true -PJava9 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -X + run: mvn -pl '!de.upb.sse.sootup.tests' -am verify -B -Dfmt.skip -Dmaven.main.skip=true -PJava9 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -X - uses: actions/upload-artifact@v3 if: ${{ always() }} @@ -133,7 +133,7 @@ jobs: name: coverage-exec path: | */target/coverage-reports/jacoco-ut-jdk9.exec - !de.upb.swt.soot.tests/ + !de.upb.sse.sootup.tests/ - uses: actions/upload-artifact@v3 if: ${{ always() }} @@ -141,7 +141,7 @@ jobs: name: test-reports-jdk9 path: | */target/surefire-reports - !de.upb.swt.soot.tests/ + !de.upb.sse.sootup.tests/ # style check is not clean here but does not consume additional time as the other parallel running tests take (way) longer - name: Check Format @@ -179,7 +179,7 @@ jobs: ${{ runner.os }}-maven- - name: Test (IntegrationTest) - run: mvn -pl de.upb.swt.soot.tests -am verify -B -Dfmt.skip -Dmaven.main.skip=true -PIntegrationTest -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + run: mvn -pl de.upb.sse.sootup.tests -am verify -B -Dfmt.skip -Dmaven.main.skip=true -PIntegrationTest -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn - uses: actions/upload-artifact@v3 if: ${{ always() }} diff --git a/.gitignore b/.gitignore index 5d7a643c666..9448e5cb933 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,7 @@ # Package Files # *.jar *.war -!de.upb.swt.soot.java.bytecode/lib/dex-tools-2.2-SNAPSHOT.jar +!de.upb.sse.sootup.java.bytecode/lib/dex-tools-2.2-SNAPSHOT.jar !shared-test-resources/java-miniapps/MiniApp.jar !shared-test-resources/java-warApp/dummyWarApp.war !shared-test-resources/multi-release-jar/mrjar.jar diff --git a/LICENSE b/LICENSE index 667b7ff7273..03c556a1fca 100644 --- a/LICENSE +++ b/LICENSE @@ -470,7 +470,7 @@ safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - FutureSoot + SootUp Copyright (C) 2018 soot This library is free software; you can redistribute it and/or diff --git a/de.upb.sse.sootup.analysis/pom.xml b/de.upb.sse.sootup.analysis/pom.xml new file mode 100644 index 00000000000..063e2f0a7b9 --- /dev/null +++ b/de.upb.sse.sootup.analysis/pom.xml @@ -0,0 +1,68 @@ + + 4.0.0 + + SootUp Analysis + sootup.analysis + jar + + de.upb.sse + sootup + 1.0.0-SNAPSHOT + + + + + + + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT + pom + import + + + + + + + de.upb.sse + sootup.callgraph + 1.0.0-SNAPSHOT + + + de.upb.cs.swt + heros + 1.2.3-SNAPSHOT + + + de.upb.sse + sootup.java.bytecode + 1.0.0-SNAPSHOT + test + + + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT + test + + + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT + test + + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + + + \ No newline at end of file diff --git a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/AbstractJimpleBasedICFG.java b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/AbstractJimpleBasedICFG.java similarity index 93% rename from de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/AbstractJimpleBasedICFG.java rename to de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/AbstractJimpleBasedICFG.java index 7d4f523c4fa..37ede848019 100644 --- a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/AbstractJimpleBasedICFG.java +++ b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/AbstractJimpleBasedICFG.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.analysis.interprocedural.icfg; +package de.upb.sse.sootup.analysis.interprocedural.icfg; /*- * #%L @@ -24,15 +24,15 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import de.upb.swt.soot.core.graph.ExceptionalStmtGraph; -import de.upb.swt.soot.core.graph.ForwardingStmtGraph; -import de.upb.swt.soot.core.graph.MutableExceptionalStmtGraph; -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.graph.ExceptionalStmtGraph; +import de.upb.sse.sootup.core.graph.ForwardingStmtGraph; +import de.upb.sse.sootup.core.graph.MutableExceptionalStmtGraph; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.views.View; import heros.DontSynchronize; import heros.SynchronizedBy; import heros.solver.IDESolver; diff --git a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/BiDiInterproceduralCFG.java b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/BiDiInterproceduralCFG.java similarity index 92% rename from de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/BiDiInterproceduralCFG.java rename to de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/BiDiInterproceduralCFG.java index be6acba08d1..69c9c7c886a 100644 --- a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/BiDiInterproceduralCFG.java +++ b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/BiDiInterproceduralCFG.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.analysis.interprocedural.icfg; +package de.upb.sse.sootup.analysis.interprocedural.icfg; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Value; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Value; import heros.InterproceduralCFG; import java.util.Collection; import java.util.List; diff --git a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/CGEdgeUtil.java b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/CGEdgeUtil.java similarity index 94% rename from de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/CGEdgeUtil.java rename to de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/CGEdgeUtil.java index fe0d238d116..6c0441e436d 100644 --- a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/CGEdgeUtil.java +++ b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/CGEdgeUtil.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.analysis.interprocedural.icfg; +package de.upb.sse.sootup.analysis.interprocedural.icfg; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.callgraph.CallGraph; -import de.upb.swt.soot.core.jimple.common.expr.*; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.callgraph.CallGraph; +import de.upb.sse.sootup.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.views.View; import java.util.HashSet; import java.util.Set; import org.apache.commons.lang3.tuple.ImmutablePair; diff --git a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/CalleeMethodSignature.java b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/CalleeMethodSignature.java similarity index 90% rename from de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/CalleeMethodSignature.java rename to de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/CalleeMethodSignature.java index a898b8cbd16..0f7593eaa4b 100644 --- a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/CalleeMethodSignature.java +++ b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/CalleeMethodSignature.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.analysis.interprocedural.icfg; +package de.upb.sse.sootup.analysis.interprocedural.icfg; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.signatures.MethodSignature; /** Method Signature with its calling CallGraphEdgeType and sourceStmt that invokes the call */ public class CalleeMethodSignature { diff --git a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/JimpleBasedInterproceduralCFG.java b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/JimpleBasedInterproceduralCFG.java similarity index 92% rename from de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/JimpleBasedInterproceduralCFG.java rename to de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/JimpleBasedInterproceduralCFG.java index 0cec2ab599e..23f9efaebe2 100644 --- a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/icfg/JimpleBasedInterproceduralCFG.java +++ b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/icfg/JimpleBasedInterproceduralCFG.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.analysis.interprocedural.icfg; +package de.upb.sse.sootup.analysis.interprocedural.icfg; /*- * #%L @@ -24,16 +24,16 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import de.upb.swt.soot.callgraph.CallGraph; -import de.upb.swt.soot.callgraph.CallGraphAlgorithm; -import de.upb.swt.soot.callgraph.ClassHierarchyAnalysisAlgorithm; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.callgraph.CallGraph; +import de.upb.sse.sootup.callgraph.CallGraphAlgorithm; +import de.upb.sse.sootup.callgraph.ClassHierarchyAnalysisAlgorithm; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.core.views.JavaView; import heros.DontSynchronize; import heros.InterproceduralCFG; import heros.SynchronizedBy; diff --git a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ide/DefaultJimpleIDETabulationProblem.java b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ide/DefaultJimpleIDETabulationProblem.java similarity index 87% rename from de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ide/DefaultJimpleIDETabulationProblem.java rename to de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ide/DefaultJimpleIDETabulationProblem.java index 29b13ae5f1e..89453282244 100644 --- a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ide/DefaultJimpleIDETabulationProblem.java +++ b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ide/DefaultJimpleIDETabulationProblem.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.analysis.interprocedural.ide; +package de.upb.sse.sootup.analysis.interprocedural.ide; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.SootMethod; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.SootMethod; import heros.InterproceduralCFG; import heros.template.DefaultIDETabulationProblem; diff --git a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ide/JimpleIDESolver.java b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ide/JimpleIDESolver.java similarity index 88% rename from de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ide/JimpleIDESolver.java rename to de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ide/JimpleIDESolver.java index d1d52fd2b2b..ee96a132d76 100644 --- a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ide/JimpleIDESolver.java +++ b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ide/JimpleIDESolver.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.analysis.interprocedural.ide; +package de.upb.sse.sootup.analysis.interprocedural.ide; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.SootMethod; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.SootMethod; import heros.IDETabulationProblem; import heros.InterproceduralCFG; import heros.solver.IDESolver; diff --git a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ifds/DefaultJimpleIFDSTabulationProblem.java b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ifds/DefaultJimpleIFDSTabulationProblem.java similarity index 87% rename from de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ifds/DefaultJimpleIFDSTabulationProblem.java rename to de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ifds/DefaultJimpleIFDSTabulationProblem.java index 3c3f3b12d46..a653ac7da63 100644 --- a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ifds/DefaultJimpleIFDSTabulationProblem.java +++ b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ifds/DefaultJimpleIFDSTabulationProblem.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.analysis.interprocedural.ifds; +package de.upb.sse.sootup.analysis.interprocedural.ifds; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.SootMethod; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.SootMethod; import heros.InterproceduralCFG; import heros.template.DefaultIFDSTabulationProblem; diff --git a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ifds/JimpleIFDSSolver.java b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ifds/JimpleIFDSSolver.java similarity index 89% rename from de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ifds/JimpleIFDSSolver.java rename to de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ifds/JimpleIFDSSolver.java index 9ccc95ce370..190702f3805 100644 --- a/de.upb.swt.soot.analysis/src/main/java/de/upb/swt/soot/analysis/interprocedural/ifds/JimpleIFDSSolver.java +++ b/de.upb.sse.sootup.analysis/src/main/java/de/upb/sse/sootUp/analysis/interprocedural/ifds/JimpleIFDSSolver.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.analysis.interprocedural.ifds; +package de.upb.sse.sootup.analysis.interprocedural.ifds; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.SootMethod; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.SootMethod; import heros.IFDSTabulationProblem; import heros.InterproceduralCFG; import heros.solver.IFDSSolver; diff --git a/de.upb.swt.soot.analysis/src/test/java/de/upb/swt/soot/test/analysis/interprocedural/ifds/IFDSTaintAnalysisProblem.java b/de.upb.sse.sootup.analysis/src/test/java/de/upb/sse/sootUp/test/analysis/interprocedural/ifds/IFDSTaintAnalysisProblem.java similarity index 93% rename from de.upb.swt.soot.analysis/src/test/java/de/upb/swt/soot/test/analysis/interprocedural/ifds/IFDSTaintAnalysisProblem.java rename to de.upb.sse.sootup.analysis/src/test/java/de/upb/sse/sootUp/test/analysis/interprocedural/ifds/IFDSTaintAnalysisProblem.java index 5913a82b879..071298ac8a7 100644 --- a/de.upb.swt.soot.analysis/src/test/java/de/upb/swt/soot/test/analysis/interprocedural/ifds/IFDSTaintAnalysisProblem.java +++ b/de.upb.sse.sootup.analysis/src/test/java/de/upb/sse/sootUp/test/analysis/interprocedural/ifds/IFDSTaintAnalysisProblem.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.test.analysis.interprocedural.ifds; +package de.upb.sse.sootup.test.analysis.interprocedural.ifds; /*- * #%L @@ -22,16 +22,16 @@ * #L% */ -import de.upb.swt.soot.analysis.interprocedural.ifds.DefaultJimpleIFDSTabulationProblem; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.StringConstant; -import de.upb.swt.soot.core.jimple.common.expr.*; -import de.upb.swt.soot.core.jimple.common.ref.JStaticFieldRef; -import de.upb.swt.soot.core.jimple.common.stmt.*; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.types.NullType; +import de.upb.sse.sootup.analysis.interprocedural.ifds.DefaultJimpleIFDSTabulationProblem; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.StringConstant; +import de.upb.sse.sootup.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.ref.JStaticFieldRef; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.types.NullType; import heros.DefaultSeeds; import heros.FlowFunction; import heros.FlowFunctions; diff --git a/de.upb.swt.soot.analysis/src/test/java/de/upb/swt/soot/test/analysis/interprocedural/ifds/IFDSTaintAnalysisTest.java b/de.upb.sse.sootup.analysis/src/test/java/de/upb/sse/sootUp/test/analysis/interprocedural/ifds/IFDSTaintAnalysisTest.java similarity index 89% rename from de.upb.swt.soot.analysis/src/test/java/de/upb/swt/soot/test/analysis/interprocedural/ifds/IFDSTaintAnalysisTest.java rename to de.upb.sse.sootup.analysis/src/test/java/de/upb/sse/sootUp/test/analysis/interprocedural/ifds/IFDSTaintAnalysisTest.java index 5437451b39c..e84c7cb34b7 100644 --- a/de.upb.swt.soot.analysis/src/test/java/de/upb/swt/soot/test/analysis/interprocedural/ifds/IFDSTaintAnalysisTest.java +++ b/de.upb.sse.sootup.analysis/src/test/java/de/upb/sse/sootUp/test/analysis/interprocedural/ifds/IFDSTaintAnalysisTest.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.test.analysis.interprocedural.ifds; +package de.upb.sse.sootup.test.analysis.interprocedural.ifds; /*- * #%L @@ -24,12 +24,12 @@ import static org.junit.Assert.*; -import de.upb.swt.soot.analysis.interprocedural.ifds.JimpleIFDSSolver; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef; -import de.upb.swt.soot.core.jimple.common.ref.JStaticFieldRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.SootMethod; +import de.upb.sse.sootup.analysis.interprocedural.ifds.JimpleIFDSSolver; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef; +import de.upb.sse.sootup.core.jimple.common.ref.JStaticFieldRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.SootMethod; import heros.InterproceduralCFG; import java.util.HashSet; import java.util.List; diff --git a/de.upb.swt.soot.analysis/src/test/java/de/upb/swt/soot/test/analysis/interprocedural/ifds/IFDSTaintTestSetUp.java b/de.upb.sse.sootup.analysis/src/test/java/de/upb/sse/sootUp/test/analysis/interprocedural/ifds/IFDSTaintTestSetUp.java similarity index 78% rename from de.upb.swt.soot.analysis/src/test/java/de/upb/swt/soot/test/analysis/interprocedural/ifds/IFDSTaintTestSetUp.java rename to de.upb.sse.sootup.analysis/src/test/java/de/upb/sse/sootUp/test/analysis/interprocedural/ifds/IFDSTaintTestSetUp.java index 100890f6337..5d55a5d0a4d 100644 --- a/de.upb.swt.soot.analysis/src/test/java/de/upb/swt/soot/test/analysis/interprocedural/ifds/IFDSTaintTestSetUp.java +++ b/de.upb.sse.sootup.analysis/src/test/java/de/upb/sse/sootUp/test/analysis/interprocedural/ifds/IFDSTaintTestSetUp.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.test.analysis.interprocedural.ifds; +package de.upb.sse.sootup.test.analysis.interprocedural.ifds; /*- * #%L @@ -24,18 +24,18 @@ import static org.junit.Assert.assertNotNull; -import de.upb.swt.soot.analysis.interprocedural.icfg.JimpleBasedInterproceduralCFG; -import de.upb.swt.soot.analysis.interprocedural.ifds.JimpleIFDSSolver; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.analysis.interprocedural.icfg.JimpleBasedInterproceduralCFG; +import de.upb.sse.sootup.analysis.interprocedural.ifds.JimpleIFDSSolver; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; import heros.InterproceduralCFG; public class IFDSTaintTestSetUp { diff --git a/de.upb.swt.soot.analysis/src/test/resources/taint/source/FunctionTaint.java b/de.upb.sse.sootup.analysis/src/test/resources/taint/source/FunctionTaint.java similarity index 100% rename from de.upb.swt.soot.analysis/src/test/resources/taint/source/FunctionTaint.java rename to de.upb.sse.sootup.analysis/src/test/resources/taint/source/FunctionTaint.java diff --git a/de.upb.swt.soot.analysis/src/test/resources/taint/source/FunctionTaintPropagated.java b/de.upb.sse.sootup.analysis/src/test/resources/taint/source/FunctionTaintPropagated.java similarity index 100% rename from de.upb.swt.soot.analysis/src/test/resources/taint/source/FunctionTaintPropagated.java rename to de.upb.sse.sootup.analysis/src/test/resources/taint/source/FunctionTaintPropagated.java diff --git a/de.upb.swt.soot.analysis/src/test/resources/taint/source/FunctionTaintSanitized.java b/de.upb.sse.sootup.analysis/src/test/resources/taint/source/FunctionTaintSanitized.java similarity index 100% rename from de.upb.swt.soot.analysis/src/test/resources/taint/source/FunctionTaintSanitized.java rename to de.upb.sse.sootup.analysis/src/test/resources/taint/source/FunctionTaintSanitized.java diff --git a/de.upb.swt.soot.analysis/src/test/resources/taint/source/SimpleTaint.java b/de.upb.sse.sootup.analysis/src/test/resources/taint/source/SimpleTaint.java similarity index 100% rename from de.upb.swt.soot.analysis/src/test/resources/taint/source/SimpleTaint.java rename to de.upb.sse.sootup.analysis/src/test/resources/taint/source/SimpleTaint.java diff --git a/de.upb.swt.soot.analysis/src/test/resources/taint/source/SimpleTaintSanitized.java b/de.upb.sse.sootup.analysis/src/test/resources/taint/source/SimpleTaintSanitized.java similarity index 100% rename from de.upb.swt.soot.analysis/src/test/resources/taint/source/SimpleTaintSanitized.java rename to de.upb.sse.sootup.analysis/src/test/resources/taint/source/SimpleTaintSanitized.java diff --git a/de.upb.sse.sootup.callgraph/pom.xml b/de.upb.sse.sootup.callgraph/pom.xml new file mode 100644 index 00000000000..e7ff350e4ce --- /dev/null +++ b/de.upb.sse.sootup.callgraph/pom.xml @@ -0,0 +1,63 @@ + + 4.0.0 + + SootUp Callgraph + sootup.callgraph + jar + + de.upb.sse + sootup + 1.0.0-SNAPSHOT + + + + + + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT + pom + import + + + + + + + de.upb.sse + sootup.core + 1.0.0-SNAPSHOT + + + de.upb.sse + sootup.java.core + 1.0.0-SNAPSHOT + + + de.upb.sse + sootup.java.bytecode + 1.0.0-SNAPSHOT + test + + + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT + test + + + org.jgrapht + jgrapht-core + 1.3.1 + + + de.upb.sse + sootup.jimple.parser + 1.0.0-SNAPSHOT + test + + + + diff --git a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/AbstractCallGraphAlgorithm.java b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/AbstractCallGraphAlgorithm.java similarity index 93% rename from de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/AbstractCallGraphAlgorithm.java rename to de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/AbstractCallGraphAlgorithm.java index ac594093adb..b9755eab112 100644 --- a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/AbstractCallGraphAlgorithm.java +++ b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/AbstractCallGraphAlgorithm.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.callgraph; +package de.upb.sse.sootup.callgraph; /*- * #%L @@ -22,18 +22,18 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.expr.AbstractInvokeExpr; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Method; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Method; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; diff --git a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/CallGraph.java b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/CallGraph.java similarity index 93% rename from de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/CallGraph.java rename to de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/CallGraph.java index 36e323ab522..a676c555c10 100644 --- a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/CallGraph.java +++ b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/CallGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.callgraph; +package de.upb.sse.sootup.callgraph; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; import java.util.Set; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/CallGraphAlgorithm.java b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/CallGraphAlgorithm.java similarity index 88% rename from de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/CallGraphAlgorithm.java rename to de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/CallGraphAlgorithm.java index ab7cc71e722..53c5a4bbdbf 100644 --- a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/CallGraphAlgorithm.java +++ b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/CallGraphAlgorithm.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.callgraph; +package de.upb.sse.sootup.callgraph; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/ClassHierarchyAnalysisAlgorithm.java b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/ClassHierarchyAnalysisAlgorithm.java similarity index 80% rename from de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/ClassHierarchyAnalysisAlgorithm.java rename to de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/ClassHierarchyAnalysisAlgorithm.java index 79467173d9b..df20981f54f 100644 --- a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/ClassHierarchyAnalysisAlgorithm.java +++ b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/ClassHierarchyAnalysisAlgorithm.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.callgraph; +package de.upb.sse.sootup.callgraph; /*- * #%L @@ -22,16 +22,16 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.expr.AbstractInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JDynamicInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JSpecialInvokeExpr; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.MethodDispatchResolver; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JDynamicInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JSpecialInvokeExpr; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.MethodDispatchResolver; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.core.views.View; import java.util.*; import java.util.stream.Stream; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/GraphBasedCallGraph.java b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/GraphBasedCallGraph.java similarity index 96% rename from de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/GraphBasedCallGraph.java rename to de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/GraphBasedCallGraph.java index ea1b10c9759..e8100365588 100644 --- a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/GraphBasedCallGraph.java +++ b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/GraphBasedCallGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.callgraph; +package de.upb.sse.sootup.callgraph; /*- * #%L @@ -23,9 +23,9 @@ */ import com.google.common.base.Preconditions; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.SootClassMemberSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.SootClassMemberSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.Comparator; import java.util.HashMap; import java.util.Map; diff --git a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/MutableCallGraph.java b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/MutableCallGraph.java similarity index 92% rename from de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/MutableCallGraph.java rename to de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/MutableCallGraph.java index 71d6bc15994..cc859466915 100644 --- a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/MutableCallGraph.java +++ b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/MutableCallGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.callgraph; +package de.upb.sse.sootup.callgraph; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; import javax.annotation.Nonnull; public interface MutableCallGraph extends CallGraph { diff --git a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/OnDemandClassHierarchyAnalysisAlgorithm.java b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/OnDemandClassHierarchyAnalysisAlgorithm.java similarity index 84% rename from de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/OnDemandClassHierarchyAnalysisAlgorithm.java rename to de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/OnDemandClassHierarchyAnalysisAlgorithm.java index b656c0cb899..98213b5c5f3 100644 --- a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/OnDemandClassHierarchyAnalysisAlgorithm.java +++ b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/OnDemandClassHierarchyAnalysisAlgorithm.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.callgraph; +package de.upb.sse.sootup.callgraph; /*- * #%L @@ -23,10 +23,10 @@ */ import com.google.common.annotations.Beta; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.core.views.View; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/RapidTypeAnalysisAlgorithm.java b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/RapidTypeAnalysisAlgorithm.java similarity index 91% rename from de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/RapidTypeAnalysisAlgorithm.java rename to de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/RapidTypeAnalysisAlgorithm.java index 95d3b8d71a3..5c9af511a83 100644 --- a/de.upb.swt.soot.callgraph/src/main/java/de/upb/swt/soot/callgraph/RapidTypeAnalysisAlgorithm.java +++ b/de.upb.sse.sootup.callgraph/src/main/java/de/upb/sse/sootup/callgraph/RapidTypeAnalysisAlgorithm.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.callgraph; +package de.upb.sse.sootup.callgraph; /*- * #%L @@ -23,16 +23,16 @@ */ import com.google.common.collect.Sets; -import de.upb.swt.soot.core.jimple.common.expr.AbstractInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JSpecialInvokeExpr; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.MethodDispatchResolver; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JSpecialInvokeExpr; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.MethodDispatchResolver; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; diff --git a/de.upb.swt.soot.callgraph/src/test/java/categories/Java8Test.java b/de.upb.sse.sootup.callgraph/src/test/java/categories/Java8Test.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/java/categories/Java8Test.java rename to de.upb.sse.sootup.callgraph/src/test/java/categories/Java8Test.java diff --git a/de.upb.swt.soot.callgraph/src/test/java/categories/Java9Test.java b/de.upb.sse.sootup.callgraph/src/test/java/categories/Java9Test.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/java/categories/Java9Test.java rename to de.upb.sse.sootup.callgraph/src/test/java/categories/Java9Test.java diff --git a/de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/CallGraphTestBase.java b/de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/CallGraphTestBase.java similarity index 93% rename from de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/CallGraphTestBase.java rename to de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/CallGraphTestBase.java index ffb7b6b7d28..4e4a4d5e971 100644 --- a/de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/CallGraphTestBase.java +++ b/de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/CallGraphTestBase.java @@ -1,21 +1,23 @@ -package de.upb.swt.soot.test.callgraph; +package de.upb.sse.sootup.test.callgraph; import static junit.framework.TestCase.*; -import de.upb.swt.soot.callgraph.*; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import de.upb.sse.sootup.callgraph.*; +import de.upb.sse.sootup.callgraph.AbstractCallGraphAlgorithm; +import de.upb.sse.sootup.callgraph.CallGraph; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; import java.util.Collections; import java.util.Optional; import junit.framework.TestCase; diff --git a/de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/ClassHierarchyAnalysisAlgorithmTest.java b/de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/ClassHierarchyAnalysisAlgorithmTest.java similarity index 90% rename from de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/ClassHierarchyAnalysisAlgorithmTest.java rename to de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/ClassHierarchyAnalysisAlgorithmTest.java index 6e32af684b6..6da7304695c 100644 --- a/de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/ClassHierarchyAnalysisAlgorithmTest.java +++ b/de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/ClassHierarchyAnalysisAlgorithmTest.java @@ -1,13 +1,13 @@ -package de.upb.swt.soot.test.callgraph; +package de.upb.sse.sootup.test.callgraph; import static junit.framework.TestCase.*; import categories.Java8Test; -import de.upb.swt.soot.callgraph.CallGraph; -import de.upb.swt.soot.callgraph.ClassHierarchyAnalysisAlgorithm; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.callgraph.CallGraph; +import de.upb.sse.sootup.callgraph.ClassHierarchyAnalysisAlgorithm; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/DefaultEntryPointTest.java b/de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/DefaultEntryPointTest.java similarity index 90% rename from de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/DefaultEntryPointTest.java rename to de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/DefaultEntryPointTest.java index 67c033acade..adff622f07d 100644 --- a/de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/DefaultEntryPointTest.java +++ b/de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/DefaultEntryPointTest.java @@ -1,28 +1,28 @@ -package de.upb.swt.soot.test.callgraph; +package de.upb.sse.sootup.test.callgraph; import static junit.framework.TestCase.*; -import de.upb.swt.soot.callgraph.CallGraph; -import de.upb.swt.soot.callgraph.CallGraphAlgorithm; -import de.upb.swt.soot.callgraph.ClassHierarchyAnalysisAlgorithm; -import de.upb.swt.soot.callgraph.RapidTypeAnalysisAlgorithm; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootClassSource; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; -import de.upb.swt.soot.jimple.parser.JimpleAnalysisInputLocation; -import de.upb.swt.soot.jimple.parser.JimpleProject; -import de.upb.swt.soot.jimple.parser.JimpleView; +import de.upb.sse.sootup.callgraph.CallGraph; +import de.upb.sse.sootup.callgraph.CallGraphAlgorithm; +import de.upb.sse.sootup.callgraph.ClassHierarchyAnalysisAlgorithm; +import de.upb.sse.sootup.callgraph.RapidTypeAnalysisAlgorithm; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootClassSource; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import de.upb.sse.sootup.jimple.parser.JimpleAnalysisInputLocation; +import de.upb.sse.sootup.jimple.parser.JimpleProject; +import de.upb.sse.sootup.jimple.parser.JimpleView; import java.nio.file.Paths; import java.util.*; import org.junit.Test; diff --git a/de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/RapidTypeAnalysisAlgorithmTest.java b/de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/RapidTypeAnalysisAlgorithmTest.java similarity index 94% rename from de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/RapidTypeAnalysisAlgorithmTest.java rename to de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/RapidTypeAnalysisAlgorithmTest.java index e6ba76c5d30..acfb6023deb 100644 --- a/de.upb.swt.soot.callgraph/src/test/java/de/upb/swt/soot/test/callgraph/RapidTypeAnalysisAlgorithmTest.java +++ b/de.upb.sse.sootup.callgraph/src/test/java/de/upb/sse/sootup/test/callgraph/RapidTypeAnalysisAlgorithmTest.java @@ -1,13 +1,13 @@ -package de.upb.swt.soot.test.callgraph; +package de.upb.sse.sootup.test.callgraph; import static junit.framework.TestCase.*; import categories.Java8Test; -import de.upb.swt.soot.callgraph.CallGraph; -import de.upb.swt.soot.callgraph.RapidTypeAnalysisAlgorithm; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.callgraph.CallGraph; +import de.upb.sse.sootup.callgraph.RapidTypeAnalysisAlgorithm; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.Collections; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/DefaultEntryPoint/Example1.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/DefaultEntryPoint/Example1.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/DefaultEntryPoint/Example1.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/DefaultEntryPoint/Example1.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM1.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM1.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM1.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM1.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM2.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM2.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM2.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM2.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM3.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM3.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM3.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM3.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM4.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM4.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM4.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM4.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM5.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM5.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM5.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM5.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM6.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM6.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM6.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8DIM6.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8SIM.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8SIM.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/InterfaceMethod/J8SIM.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/InterfaceMethod/J8SIM.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/AddClass.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/AddClass.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/AddClass.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/AddClass.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/Example1.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/Example1.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/Example1.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/Example1.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/HelloWorld.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/HelloWorld.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/HelloWorld.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/HelloWorld.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/RecursiveCall.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/RecursiveCall.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/RecursiveCall.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/RecursiveCall.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/RecursiveRevisitedMethod.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/RecursiveRevisitedMethod.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/RecursiveRevisitedMethod.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/RecursiveRevisitedMethod.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/RevisitedMethod.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/RevisitedMethod.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/RevisitedMethod.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/RevisitedMethod.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/SingleMethod.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/SingleMethod.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/Misc/SingleMethod.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/Misc/SingleMethod.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/NoMainMethod/Example1.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NoMainMethod/Example1.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/NoMainMethod/Example1.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NoMainMethod/Example1.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC1.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC1.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC1.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC1.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC2.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC2.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC2.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC2.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC3.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC3.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC3.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC3.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC4.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC4.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC4.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC4.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC5.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC5.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC5.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/NonVirtualCall/NVC5.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall1.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall1.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall1.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall1.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall2.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall2.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall2.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall2.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall3.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall3.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall3.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall3.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall4.java b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall4.java similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall4.java rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/VirtualCall/VirtualCall4.java diff --git a/de.upb.swt.soot.callgraph/src/test/resources/callgraph/jimple/A.jimple b/de.upb.sse.sootup.callgraph/src/test/resources/callgraph/jimple/A.jimple similarity index 100% rename from de.upb.swt.soot.callgraph/src/test/resources/callgraph/jimple/A.jimple rename to de.upb.sse.sootup.callgraph/src/test/resources/callgraph/jimple/A.jimple diff --git a/de.upb.sse.sootup.core/pom.xml b/de.upb.sse.sootup.core/pom.xml new file mode 100644 index 00000000000..df09e124f10 --- /dev/null +++ b/de.upb.sse.sootup.core/pom.xml @@ -0,0 +1,21 @@ + + 4.0.0 + SootUp Core + + + org.jgrapht + jgrapht-core + 1.3.1 + compile + + + sootup.core + jar + + de.upb.sse + sootup + 1.0.0-SNAPSHOT + + diff --git a/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/BaseViewChangeListener.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/BaseViewChangeListener.java new file mode 100644 index 00000000000..0d8319e6017 --- /dev/null +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/BaseViewChangeListener.java @@ -0,0 +1,18 @@ +package de.upb.sse.sootup.core; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; + +public class BaseViewChangeListener implements ViewChangeListener { + @Override + public void classAdded(SootClass sc) {} + + @Override + public void classRemoved(SootClass sc) {} + + @Override + public void methodAdded(SootMethod m) {} + + @Override + public void methodRemoved(SootMethod m) {} +} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/IdentifierFactory.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/IdentifierFactory.java similarity index 92% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/IdentifierFactory.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/IdentifierFactory.java index a22c2fd81d6..953e4f3e086 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/IdentifierFactory.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/IdentifierFactory.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core; +package de.upb.sse.sootup.core; /*- * #%L @@ -22,16 +22,16 @@ * #L% */ -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.FieldSubSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ArrayType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.FieldSubSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; import java.nio.file.Path; import java.util.List; import java.util.Optional; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/Language.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/Language.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/Language.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/Language.java index 89fb9fd0f55..c415c06dff1 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/Language.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/Language.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core; +package de.upb.sse.sootup.core; /*- * #%L * Soot diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/Project.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/Project.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/Project.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/Project.java index c060648fae4..963da32ff0e 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/Project.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/Project.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core; +package de.upb.sse.sootup.core; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.views.View; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -127,8 +127,7 @@ public Language getLanguage() { public abstract V createFullView(); /** - * Creates an on-demand View that uses the default {@link - * de.upb.swt.soot.core.inputlocation.ClassLoadingOptions} of each frontend. + * Creates an on-demand View that uses the default {@link ClassLoadingOptions} of each frontend. */ @Nonnull public abstract V createOnDemandView(); diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/Scope.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/Scope.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/Scope.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/Scope.java index be130ed5c47..fb270bbe73f 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/Scope.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/Scope.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core; +package de.upb.sse.sootup.core; /*- * #%L * Soot @@ -20,9 +20,9 @@ * . * #L% */ -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ClassType; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ClassType; /** * Definition of a scope diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/SourceTypeSpecifier.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/SourceTypeSpecifier.java similarity index 89% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/SourceTypeSpecifier.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/SourceTypeSpecifier.java index b7eeb3ec6a2..2bacd2efe42 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/SourceTypeSpecifier.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/SourceTypeSpecifier.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core; +package de.upb.sse.sootup.core; /*- * #%L * Soot @@ -20,8 +20,8 @@ * . * #L% */ -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.model.SourceType; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.model.SourceType; import javax.annotation.Nonnull; /** diff --git a/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/ViewChangeListener.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/ViewChangeListener.java new file mode 100644 index 00000000000..860359f49e3 --- /dev/null +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/ViewChangeListener.java @@ -0,0 +1,14 @@ +package de.upb.sse.sootup.core; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; + +public interface ViewChangeListener { + void classAdded(SootClass sc); + + void classRemoved(SootClass sc); + + void methodAdded(SootMethod m); + + void methodRemoved(SootMethod m); +} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/AbstractClassSource.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/AbstractClassSource.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/AbstractClassSource.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/AbstractClassSource.java index c029f06eea0..8f5ffd24182 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/AbstractClassSource.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/AbstractClassSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.frontend; +package de.upb.sse.sootup.core.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,13 +21,13 @@ * #L% */ import com.google.common.base.Objects; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.AbstractClass; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.signatures.Signature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.AbstractClass; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.signatures.Signature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; import java.nio.file.Path; import javax.annotation.Nonnull; import javax.annotation.Nullable; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/BodySource.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/BodySource.java similarity index 88% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/BodySource.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/BodySource.java index 0e9d54cbe36..1c6fc3ff4f8 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/BodySource.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/BodySource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.frontend; +package de.upb.sse.sootup.core.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,9 +21,9 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.signatures.MethodSignature; import java.io.IOException; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/ClassProvider.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/ClassProvider.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/ClassProvider.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/ClassProvider.java index 4af86269a30..66a20324723 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/ClassProvider.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/ClassProvider.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.frontend; +package de.upb.sse.sootup.core.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,11 +21,11 @@ * #L% */ -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.FileType; -import de.upb.swt.soot.core.model.AbstractClass; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.types.ClassType; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.FileType; +import de.upb.sse.sootup.core.model.AbstractClass; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.types.ClassType; import java.nio.file.Path; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/OverridingBodySource.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/OverridingBodySource.java similarity index 92% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/OverridingBodySource.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/OverridingBodySource.java index 01ebe2fac3c..1c6f39bd693 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/OverridingBodySource.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/OverridingBodySource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.frontend; +package de.upb.sse.sootup.core.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,9 +20,9 @@ * . * #L% */ -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.signatures.MethodSignature; import java.io.IOException; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -36,7 +36,7 @@ *

When replacing specific parts of a method by default, it delegates to the {@link BodySource} * delegate provided in the constructor. * - *

To alter the results of invocations to e.g. {@link #resolveBody(Iterable)}, simply + *

To alter the results of invocations to e.g. {@link #resolveBody(Iterable< Modifier >)}, simply * call {@link #withBody(Body)} to obtain a new {@link OverridingBodySource}. The new instance will * then use the supplied value instead of calling {@link #resolveBody(Iterable)} on the * delegate. diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/OverridingClassSource.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/OverridingClassSource.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/OverridingClassSource.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/OverridingClassSource.java index 559aad49307..118a758c9ca 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/OverridingClassSource.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/OverridingClassSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.frontend; +package de.upb.sse.sootup.core.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,10 +20,10 @@ * . * #L% */ -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.*; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.CollectionUtils; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.*; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.CollectionUtils; import java.nio.file.Path; import java.util.Collection; import java.util.EnumSet; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/ResolveException.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/ResolveException.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/ResolveException.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/ResolveException.java index 4f6007798df..ac532c392f7 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/ResolveException.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/ResolveException.java @@ -1,7 +1,7 @@ -package de.upb.swt.soot.core.frontend; +package de.upb.sse.sootup.core.frontend; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.model.Position; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.model.Position; import java.nio.file.Path; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/SootClassSource.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/SootClassSource.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/SootClassSource.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/SootClassSource.java index 94459769c70..d06d43414c4 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/frontend/SootClassSource.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/frontend/SootClassSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.frontend; +package de.upb.sse.sootup.core.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,13 +21,13 @@ * #L% */ -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.types.ClassType; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.types.ClassType; import java.nio.file.OpenOption; import java.nio.file.Path; import java.util.Collection; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/BackwardsStmtGraph.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/BackwardsStmtGraph.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/BackwardsStmtGraph.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/BackwardsStmtGraph.java index 202d1c72acd..aacdab8eee2 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/BackwardsStmtGraph.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/BackwardsStmtGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L @@ -21,8 +21,8 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/Block.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/Block.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/Block.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/Block.java index 06d6569d207..813c04a794d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/Block.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/Block.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/BlockGraph.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/BlockGraph.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/BlockGraph.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/BlockGraph.java index 1558711399e..86095068759 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/BlockGraph.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/BlockGraph.java @@ -1,8 +1,8 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.BranchingStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.BranchingStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/DominanceFinder.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/DominanceFinder.java similarity index 99% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/DominanceFinder.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/DominanceFinder.java index 54f211f3dd8..27dbd4780e1 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/DominanceFinder.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/DominanceFinder.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/DominanceTree.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/DominanceTree.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/DominanceTree.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/DominanceTree.java index 140e78dcb42..4b24aa4212a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/DominanceTree.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/DominanceTree.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ExceptionalStmtGraph.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ExceptionalStmtGraph.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ExceptionalStmtGraph.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ExceptionalStmtGraph.java index 00eee1c0c60..47db58e0a4b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ExceptionalStmtGraph.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ExceptionalStmtGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,8 +21,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ForwardingStmtGraph.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ForwardingStmtGraph.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ForwardingStmtGraph.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ForwardingStmtGraph.java index d061d2d8147..7ba99879c63 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ForwardingStmtGraph.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ForwardingStmtGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,8 +20,8 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.List; import java.util.Set; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ImmutableExceptionalStmtGraph.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ImmutableExceptionalStmtGraph.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ImmutableExceptionalStmtGraph.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ImmutableExceptionalStmtGraph.java index f7996cf8d57..6913b08f9db 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ImmutableExceptionalStmtGraph.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ImmutableExceptionalStmtGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,8 +21,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ImmutableStmtGraph.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ImmutableStmtGraph.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ImmutableStmtGraph.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ImmutableStmtGraph.java index 110cebfa431..fe3eb48874b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/ImmutableStmtGraph.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/ImmutableStmtGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,8 +20,9 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import javax.annotation.Nonnull; import javax.annotation.Nullable; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/MutableExceptionalStmtGraph.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/MutableExceptionalStmtGraph.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/MutableExceptionalStmtGraph.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/MutableExceptionalStmtGraph.java index 90bba4b5166..6377ff9eb0a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/MutableExceptionalStmtGraph.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/MutableExceptionalStmtGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,8 +21,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/MutableStmtGraph.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/MutableStmtGraph.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/MutableStmtGraph.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/MutableStmtGraph.java index 162ecb2f670..1e65fa082a9 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/MutableStmtGraph.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/MutableStmtGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,12 +20,12 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.BranchingStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JIfStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.BranchingStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JIfStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; import java.util.*; import javax.annotation.Nonnull; import javax.annotation.Nullable; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/StmtGraph.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/StmtGraph.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/StmtGraph.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/StmtGraph.java index 73c362dce84..e65715619b0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/StmtGraph.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/StmtGraph.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,12 +20,12 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.iterator.StmtGraphBlockIterator; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.ref.JThisRef; -import de.upb.swt.soot.core.jimple.common.stmt.*; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.graph.iterator.StmtGraphBlockIterator; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.ref.JThisRef; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/BreadthFirstIterator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/BreadthFirstIterator.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/BreadthFirstIterator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/BreadthFirstIterator.java index 910041a94f9..3761af5ddfc 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/BreadthFirstIterator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/BreadthFirstIterator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph.iterator; +package de.upb.sse.sootup.core.graph.iterator; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,8 +21,8 @@ * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/DepthFirstIterator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/DepthFirstIterator.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/DepthFirstIterator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/DepthFirstIterator.java index dfcadb14494..b891ffba804 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/DepthFirstIterator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/DepthFirstIterator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph.iterator; +package de.upb.sse.sootup.core.graph.iterator; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,8 +20,8 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/StmtGraphBlockIterator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/StmtGraphBlockIterator.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/StmtGraphBlockIterator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/StmtGraphBlockIterator.java index 582ed07e107..3b99e409def 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/StmtGraphBlockIterator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/StmtGraphBlockIterator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph.iterator; +package de.upb.sse.sootup.core.graph.iterator; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,9 +20,13 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.common.stmt.JGotoStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnVoidStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/StmtGraphIterator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/StmtGraphIterator.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/StmtGraphIterator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/StmtGraphIterator.java index 25caeb3eacd..036afc9ba9b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/graph/iterator/StmtGraphIterator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/graph/iterator/StmtGraphIterator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.graph.iterator; +package de.upb.sse.sootup.core.graph.iterator; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,8 +20,8 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/AnalysisInputLocation.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/AnalysisInputLocation.java similarity index 83% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/AnalysisInputLocation.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/AnalysisInputLocation.java index 346c0f0bd27..0e32b0bece3 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/AnalysisInputLocation.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/AnalysisInputLocation.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.inputlocation; +package de.upb.sse.sootup.core.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,12 +21,13 @@ * #L% */ -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.model.AbstractClass; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.model.AbstractClass; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; import java.util.Collection; import java.util.Optional; import javax.annotation.Nonnull; @@ -39,8 +40,7 @@ * *

{@link #getClassSource(ClassType, View)} and {@link #getClassSources(View)} should in most * cases simply call {@link #getClassSource(ClassType, View)} or {@link #getClassSources(View)} - * respectively with the default {@link de.upb.swt.soot.core.transform.BodyInterceptor}s of the - * frontend. + * respectively with the default {@link BodyInterceptor}s of the frontend. * * @author Manuel Benz created on 22.05.18 * @author Ben Hermann diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/ClassLoadingOptionKey.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/ClassLoadingOptionKey.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/ClassLoadingOptionKey.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/ClassLoadingOptionKey.java index 2bb15b88f75..e3a8bf78696 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/ClassLoadingOptionKey.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/ClassLoadingOptionKey.java @@ -19,7 +19,7 @@ * . * #L% */ -package de.upb.swt.soot.core.inputlocation; +package de.upb.sse.sootup.core.inputlocation; /** An Extensible way to support configurations for a View */ public class ClassLoadingOptionKey {} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/ClassLoadingOptions.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/ClassLoadingOptions.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/ClassLoadingOptions.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/ClassLoadingOptions.java index efaee254050..cdf083ab4d7 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/ClassLoadingOptions.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/ClassLoadingOptions.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.inputlocation; +package de.upb.sse.sootup.core.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,7 +20,7 @@ * . * #L% */ -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/DefaultSourceTypeSpecifier.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/DefaultSourceTypeSpecifier.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/DefaultSourceTypeSpecifier.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/DefaultSourceTypeSpecifier.java index 053c7fac89b..356d6c62707 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/DefaultSourceTypeSpecifier.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/DefaultSourceTypeSpecifier.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.inputlocation; +package de.upb.sse.sootup.core.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,9 +20,9 @@ * . * #L% */ -import de.upb.swt.soot.core.SourceTypeSpecifier; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.model.SourceType; +import de.upb.sse.sootup.core.SourceTypeSpecifier; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.model.SourceType; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/EagerInputLocation.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/EagerInputLocation.java similarity index 88% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/EagerInputLocation.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/EagerInputLocation.java index 74dc4e2a567..09522da8386 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/EagerInputLocation.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/EagerInputLocation.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.inputlocation; +package de.upb.sse.sootup.core.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,11 +21,11 @@ * #L% */ import com.google.common.collect.ImmutableMap; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; import java.util.Collection; import java.util.Collections; import java.util.Map; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/EmptyClassLoadingOptions.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/EmptyClassLoadingOptions.java similarity index 76% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/EmptyClassLoadingOptions.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/EmptyClassLoadingOptions.java index c564edc169d..be2566b4018 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/EmptyClassLoadingOptions.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/EmptyClassLoadingOptions.java @@ -1,6 +1,6 @@ -package de.upb.swt.soot.core.inputlocation; +package de.upb.sse.sootup.core.inputlocation; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/FileType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/FileType.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/FileType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/FileType.java index acc796a11d9..2fac5e340eb 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/inputlocation/FileType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/inputlocation/FileType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.inputlocation; +package de.upb.sse.sootup.core.inputlocation; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/IgnoreLocalNameComparator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/IgnoreLocalNameComparator.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/IgnoreLocalNameComparator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/IgnoreLocalNameComparator.java index 120f628152a..df125fd516f 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/IgnoreLocalNameComparator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/IgnoreLocalNameComparator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple; +package de.upb.sse.sootup.core.jimple; /*- * #%L * Soot @@ -21,8 +21,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Local; public class IgnoreLocalNameComparator extends JimpleComparator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/Jimple.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/Jimple.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/Jimple.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/Jimple.java index db13525f730..dd43458ba70 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/Jimple.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/Jimple.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple; +package de.upb.sse.sootup.core.jimple; /*- * #%L @@ -22,27 +22,30 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.graph.Block; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.expr.*; -import de.upb.swt.soot.core.jimple.common.ref.*; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JGotoStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JIfStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JInvokeStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnVoidStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JThrowStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.*; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.*; -import de.upb.swt.soot.core.util.StringTools; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.graph.Block; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.ref.*; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JGotoStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JIfStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JInvokeStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnVoidStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JThrowStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.*; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.*; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.StringTools; import java.util.*; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/EquivTo.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/EquivTo.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/EquivTo.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/EquivTo.java index b055077d452..2857e4d2ed0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/EquivTo.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/EquivTo.java @@ -23,7 +23,7 @@ * contributors. (Soot is distributed at http://www.sable.mcgill.ca/soot) */ -package de.upb.swt.soot.core.jimple.basic; +package de.upb.sse.sootup.core.jimple.basic; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Immediate.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Immediate.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Immediate.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Immediate.java index c6d59f2d360..7d2cfccac75 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Immediate.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Immediate.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.basic; +package de.upb.sse.sootup.core.jimple.basic; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/JimpleComparator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/JimpleComparator.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/JimpleComparator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/JimpleComparator.java index 6a133e53554..b794f8e125b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/JimpleComparator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/JimpleComparator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.basic; +package de.upb.sse.sootup.core.jimple.basic; /*- * #%L @@ -22,18 +22,18 @@ * #L% */ -import de.upb.swt.soot.core.graph.Block; -import de.upb.swt.soot.core.jimple.common.constant.Constant; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.expr.*; -import de.upb.swt.soot.core.jimple.common.ref.JArrayRef; -import de.upb.swt.soot.core.jimple.common.ref.JCaughtExceptionRef; -import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef; -import de.upb.swt.soot.core.jimple.common.ref.JParameterRef; -import de.upb.swt.soot.core.jimple.common.ref.JStaticFieldRef; -import de.upb.swt.soot.core.jimple.common.ref.JThisRef; -import de.upb.swt.soot.core.jimple.common.stmt.*; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.*; +import de.upb.sse.sootup.core.graph.Block; +import de.upb.sse.sootup.core.jimple.common.constant.Constant; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.ref.JArrayRef; +import de.upb.sse.sootup.core.jimple.common.ref.JCaughtExceptionRef; +import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef; +import de.upb.sse.sootup.core.jimple.common.ref.JParameterRef; +import de.upb.sse.sootup.core.jimple.common.ref.JStaticFieldRef; +import de.upb.sse.sootup.core.jimple.common.ref.JThisRef; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.*; import java.util.Iterator; import java.util.List; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Local.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Local.java similarity index 86% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Local.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Local.java index 561bf6cecbc..4f2972e1c1d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Local.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Local.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.basic; +package de.upb.sse.sootup.core.jimple.basic; /*- * #%L @@ -22,13 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.Acceptor; -import de.upb.swt.soot.core.jimple.visitor.ImmediateVisitor; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.visitor.Acceptor; +import de.upb.sse.sootup.core.jimple.visitor.ImmediateVisitor; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.Collections; import java.util.List; import java.util.Objects; @@ -37,7 +38,7 @@ /** * Local variable in {@link Body}. Use {@link LocalGenerator} to generate locals. * - *

Prefer to use the factory methods in {@link de.upb.swt.soot.core.jimple.Jimple}. + *

Prefer to use the factory methods in {@link Jimple}. * * @author Linghui Luo */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/LocalGenerator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/LocalGenerator.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/LocalGenerator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/LocalGenerator.java index 4641fe3504b..99871a11767 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/LocalGenerator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/LocalGenerator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.basic; +package de.upb.sse.sootup.core.jimple.basic; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.ReferenceType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; -import de.upb.swt.soot.core.types.VoidType; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.ReferenceType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; +import de.upb.sse.sootup.core.types.VoidType; import java.util.HashMap; import java.util.Map; import java.util.Set; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/NoPositionInformation.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/NoPositionInformation.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/NoPositionInformation.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/NoPositionInformation.java index 073b7249c0e..500f2a7c3f0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/NoPositionInformation.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/NoPositionInformation.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.basic; +package de.upb.sse.sootup.core.jimple.basic; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Position; +import de.upb.sse.sootup.core.model.Position; /** * This convenience class represents the case when there is no position information available. diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/StmtPositionInfo.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/StmtPositionInfo.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/StmtPositionInfo.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/StmtPositionInfo.java index f74c52c4dc3..416b62d26ec 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/StmtPositionInfo.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/StmtPositionInfo.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.basic; +package de.upb.sse.sootup.core.jimple.basic; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Trap.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Trap.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Trap.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Trap.java index 5d4c2236cc0..ea9dce7a59c 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Trap.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Trap.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.basic; +package de.upb.sse.sootup.core.jimple.basic; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.Copyable; import java.util.Arrays; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Value.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Value.java similarity index 84% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Value.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Value.java index 685fa335716..88a5eba291a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/basic/Value.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/basic/Value.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.basic; +package de.upb.sse.sootup.core.jimple.basic; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.constant.Constant; -import de.upb.swt.soot.core.jimple.common.expr.Expr; -import de.upb.swt.soot.core.jimple.common.ref.Ref; -import de.upb.swt.soot.core.jimple.visitor.*; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.common.constant.Constant; +import de.upb.sse.sootup.core.jimple.common.expr.Expr; +import de.upb.sse.sootup.core.jimple.common.ref.Ref; +import de.upb.sse.sootup.core.jimple.visitor.*; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/BooleanConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/BooleanConstant.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/BooleanConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/BooleanConstant.java index 36308618df2..5aa93b7303f 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/BooleanConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/BooleanConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/ClassConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/ClassConstant.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/ClassConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/ClassConstant.java index 2af1c0533a8..e2283b383f6 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/ClassConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/ClassConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /* Soot - a J*va Optimization Framework * Copyright (C) 2005 - Jennifer Lhotak @@ -47,9 +47,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; public class ClassConstant implements Constant { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/ComparableConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/ComparableConstant.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/ComparableConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/ComparableConstant.java index a23eef228d8..753b9e96796 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/ComparableConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/ComparableConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/Constant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/Constant.java similarity index 80% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/Constant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/Constant.java index 10e4c01e471..565e4b8ffdd 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/Constant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/Constant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.Acceptor; -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.Acceptor; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/DoubleConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/DoubleConstant.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/DoubleConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/DoubleConstant.java index 5778f1feb30..e20284b89bb 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/DoubleConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/DoubleConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -28,9 +28,9 @@ * contributors. (Soot is distributed at http://www.sable.mcgill.ca/soot) */ -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; /** Floating point constant with double precision. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/EnumConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/EnumConstant.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/EnumConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/EnumConstant.java index 9b3e2179f41..53f28b6d784 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/EnumConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/EnumConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; public class EnumConstant implements Constant { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/FloatConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/FloatConstant.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/FloatConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/FloatConstant.java index 597f942e8fe..ee0c171234b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/FloatConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/FloatConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; /** Floating point constant with single precision. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/IntConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/IntConstant.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/IntConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/IntConstant.java index 36f4a76e757..6a95410fb63 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/IntConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/IntConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; /** A 32-bit integer constant. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/LogicalConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/LogicalConstant.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/LogicalConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/LogicalConstant.java index 6deceebe596..5817ae9759d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/LogicalConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/LogicalConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/LongConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/LongConstant.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/LongConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/LongConstant.java index 4e5da599faf..d55bf6cb76b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/LongConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/LongConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; /** A 64-bit integer constant */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/MethodHandle.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/MethodHandle.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/MethodHandle.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/MethodHandle.java index 7a602685c68..52b9a64ff3b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/MethodHandle.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/MethodHandle.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.ref.JFieldRef; -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.common.ref.JFieldRef; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; public class MethodHandle implements Constant { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/MethodType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/MethodType.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/MethodType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/MethodType.java index 91e55697410..8ec17e6f856 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/MethodType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/MethodType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,11 +22,11 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; import java.util.List; import java.util.Objects; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/NullConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/NullConstant.java similarity index 88% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/NullConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/NullConstant.java index 16d8422a8e8..e5059a5e73f 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/NullConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/NullConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.types.NullType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.types.NullType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; public class NullConstant implements Constant { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/NumericConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/NumericConstant.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/NumericConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/NumericConstant.java index 6104ee8471e..f4fb541e185 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/NumericConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/NumericConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/RealConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/RealConstant.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/RealConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/RealConstant.java index 9a5a976eeba..61196e06747 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/RealConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/RealConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/ShiftableConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/ShiftableConstant.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/ShiftableConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/ShiftableConstant.java index eda7c173414..c69b425c467 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/ShiftableConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/ShiftableConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/StringConstant.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/StringConstant.java similarity index 89% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/StringConstant.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/StringConstant.java index c24ad24d5be..a6e2f7246f0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/constant/StringConstant.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/constant/StringConstant.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.constant; +package de.upb.sse.sootup.core.jimple.common.constant; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.visitor.ConstantVisitor; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.visitor.ConstantVisitor; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; public class StringConstant implements Constant { diff --git a/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractBinopExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractBinopExpr.java new file mode 100644 index 00000000000..43eb47778b0 --- /dev/null +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractBinopExpr.java @@ -0,0 +1,100 @@ +package de.upb.sse.sootup.core.jimple.common.expr; + +/*- + * #%L + * Soot - a J*va Optimization Framework + * %% + * Copyright (C) 1999-2020 Patrick Lam, Christian Brüggemann, Linghui Luo and others + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 2.1 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * . + * #L% + */ + +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; +import java.util.ArrayList; +import java.util.List; +import javax.annotation.Nonnull; + +public abstract class AbstractBinopExpr implements Expr { + + @Nonnull private final Immediate op1; + @Nonnull private final Immediate op2; + + AbstractBinopExpr(@Nonnull Immediate op1, @Nonnull Immediate op2) { + this.op1 = op1; + this.op2 = op2; + } + + @Nonnull + public Immediate getOp1() { + return op1; + } + + @Nonnull + public Immediate getOp2() { + return op2; + } + + @Override + @Nonnull + public final List getUses() { + final List uses1 = op1.getUses(); + final List uses2 = op2.getUses(); + List list = new ArrayList<>(uses1.size() + uses2.size() + 2); + list.addAll(uses1); + list.add(op1); + list.addAll(uses2); + list.add(op2); + return list; + } + + @Override + public boolean equivTo(@Nonnull Object o, @Nonnull JimpleComparator comparator) { + return comparator.caseAbstractBinopExpr(this, o); + } + + /** Returns a hash code for this object, consistent with structural equality. */ + @Override + public int equivHashCode() { + return op1.equivHashCode() * 101 + op2.equivHashCode() + 17 ^ getSymbol().hashCode(); + } + + /** Returns the unique symbol for an operator. */ + @Nonnull + public abstract String getSymbol(); + + @Override + public String toString() { + String leftOp = op1.toString(); + String rightOp = op2.toString(); + return leftOp + getSymbol() + rightOp; + } + + @Override + public void toString(@Nonnull StmtPrinter up) { + op1.toString(up); + up.literal(getSymbol()); + op2.toString(up); + } + + @Nonnull + public abstract AbstractBinopExpr withOp1(@Nonnull Immediate value); + + @Nonnull + public abstract AbstractBinopExpr withOp2(@Nonnull Immediate value); +} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractConditionExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractConditionExpr.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractConditionExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractConditionExpr.java index 5ac7166adf2..6eae01a5ef8 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractConditionExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractConditionExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Immediate; import javax.annotation.Nonnull; public abstract class AbstractConditionExpr extends AbstractIntBinopExpr { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractFloatBinopExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractFloatBinopExpr.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractFloatBinopExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractFloatBinopExpr.java index e33016cb90d..e65d4ab140b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractFloatBinopExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractFloatBinopExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,11 +22,11 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; import javax.annotation.Nonnull; public abstract class AbstractFloatBinopExpr extends AbstractBinopExpr { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractInstanceInvokeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractInstanceInvokeExpr.java similarity index 88% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractInstanceInvokeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractInstanceInvokeExpr.java index 643a8159b46..7fa74789f69 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractInstanceInvokeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractInstanceInvokeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.signatures.MethodSignature; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractIntBinopExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractIntBinopExpr.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractIntBinopExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractIntBinopExpr.java index baa742583ad..4ac4eaf2836 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractIntBinopExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractIntBinopExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; public abstract class AbstractIntBinopExpr extends AbstractBinopExpr { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractIntLongBinopExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractIntLongBinopExpr.java similarity index 83% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractIntLongBinopExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractIntLongBinopExpr.java index faf281298fd..d489927e51e 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractIntLongBinopExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractIntLongBinopExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,11 +22,11 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; import javax.annotation.Nonnull; public abstract class AbstractIntLongBinopExpr extends AbstractBinopExpr { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractInvokeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractInvokeExpr.java similarity index 89% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractInvokeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractInvokeExpr.java index b8b89de9d6a..683908a6656 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractInvokeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractInvokeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,11 +22,11 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractUnopExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractUnopExpr.java similarity index 89% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractUnopExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractUnopExpr.java index 6db8012b8a6..0eeeef87d5e 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractUnopExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/AbstractUnopExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Value; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/Expr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/Expr.java similarity index 81% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/Expr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/Expr.java index 3949a4ca78e..7cc98b33cb9 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/Expr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/Expr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.Acceptor; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.Acceptor; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; /* An Expression is a Language construct that returns a Value */ public interface Expr extends Value, Acceptor {} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JAddExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JAddExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JAddExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JAddExpr.java index 0941e62fd71..aae01b6c24d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JAddExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JAddExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that adds two numbers. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JAndExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JAndExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JAndExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JAndExpr.java index a0dfd68bcc1..53bbc194e81 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JAndExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JAndExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that computes a binary AND of two operands. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCastExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCastExpr.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCastExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCastExpr.java index 3040875a62c..da79afa9908 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCastExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCastExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCmpExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCmpExpr.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCmpExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCmpExpr.java index 9697b2ed842..b9261a7b3d5 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCmpExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCmpExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; public final class JCmpExpr extends AbstractIntBinopExpr implements Copyable { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCmpgExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCmpgExpr.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCmpgExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCmpgExpr.java index 8d654705db6..dfb37b22836 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCmpgExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCmpgExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; public final class JCmpgExpr extends AbstractIntBinopExpr implements Copyable { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCmplExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCmplExpr.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCmplExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCmplExpr.java index a8046200dbf..c044196718b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JCmplExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JCmplExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; public final class JCmplExpr extends AbstractIntBinopExpr implements Copyable { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JDivExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JDivExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JDivExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JDivExpr.java index 31da3db56db..feee4a4a9e4 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JDivExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JDivExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that divides a number by another. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JDynamicInvokeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JDynamicInvokeExpr.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JDynamicInvokeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JDynamicInvokeExpr.java index c093fab25be..c994e44f654 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JDynamicInvokeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JDynamicInvokeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,23 +22,23 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.List; import java.util.stream.Collectors; import javax.annotation.Nonnull; public final class JDynamicInvokeExpr extends AbstractInvokeExpr implements Copyable { - @Nonnull public static final String INVOKEDYNAMIC_DUMMY_CLASS_NAME = "soot.dummy.InvokeDynamic"; + @Nonnull public static final String INVOKEDYNAMIC_DUMMY_CLASS_NAME = "sootup.dummy.InvokeDynamic"; @Nonnull private final MethodSignature bootstrapMethodSignature; // TODO: use immutable List? private final List bootstrapMethodSignatureArgs; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JEqExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JEqExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JEqExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JEqExpr.java index 36408a3769d..89eb7ce49c0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JEqExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JEqExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that checks whether two value are equal. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JGeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JGeExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JGeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JGeExpr.java index 6ae9ac6ec96..ed57a7f8ad7 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JGeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JGeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that checks whether operand 1 >= operand 2. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JGtExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JGtExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JGtExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JGtExpr.java index a6340984314..d30cba6793a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JGtExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JGtExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that checks whether operand 1 > operand 2. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JInstanceOfExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JInstanceOfExpr.java similarity index 83% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JInstanceOfExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JInstanceOfExpr.java index b8cd22dadc2..71f55af0174 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JInstanceOfExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JInstanceOfExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,15 +22,15 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JInterfaceInvokeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JInterfaceInvokeExpr.java similarity index 88% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JInterfaceInvokeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JInterfaceInvokeExpr.java index d39a987f9c8..aec2a949cbe 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JInterfaceInvokeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JInterfaceInvokeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -28,14 +28,14 @@ * contributors. (Soot is distributed at http://www.sable.mcgill.ca/soot) */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JLeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JLeExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JLeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JLeExpr.java index 6bf7d1933ed..58bb406edc7 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JLeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JLeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that checks whether operand 1 <= operand 2. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JLengthExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JLengthExpr.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JLengthExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JLengthExpr.java index 426342930c1..9bedddf14b0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JLengthExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JLengthExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** An expression that returns the length of an array. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JLtExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JLtExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JLtExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JLtExpr.java index 8de9451670c..5bb3de5105d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JLtExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JLtExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that checks whether operand 1 < operand 2. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JMulExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JMulExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JMulExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JMulExpr.java index 41a72643a28..bd1640dea92 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JMulExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JMulExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that multiplies two numbers. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNeExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNeExpr.java index 267b2dbe9d1..44386658b20 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** The opposite of {@link JEqExpr} */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNegExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNegExpr.java similarity index 81% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNegExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNegExpr.java index e204c941b1d..ea9c6ee391d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNegExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNegExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,16 +22,16 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** An expression that negates its operand (-). */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNewArrayExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNewArrayExpr.java similarity index 86% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNewArrayExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNewArrayExpr.java index f379876daeb..67ba9ab7f7f 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNewArrayExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNewArrayExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,16 +22,16 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.ArrayType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNewExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNewExpr.java similarity index 81% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNewExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNewExpr.java index eb5bc49bbe6..db87aab937f 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNewExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNewExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,14 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.ReferenceType; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.ReferenceType; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNewMultiArrayExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNewMultiArrayExpr.java similarity index 86% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNewMultiArrayExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNewMultiArrayExpr.java index 680d34647bc..e3c986e7936 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JNewMultiArrayExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JNewMultiArrayExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,13 +22,16 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.ArrayType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JOrExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JOrExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JOrExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JOrExpr.java index cc0148d6929..0ca29feee64 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JOrExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JOrExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that computes a binary OR of two operands. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JPhiExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JPhiExpr.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JPhiExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JPhiExpr.java index a339f4e4b2a..605ce98c327 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JPhiExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JPhiExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,15 +22,15 @@ * #L% */ -import de.upb.swt.soot.core.graph.Block; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.graph.Block; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JRemExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JRemExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JRemExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JRemExpr.java index ec8506d0cfc..22b9945e1c9 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JRemExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JRemExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that computes a % b. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JShlExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JShlExpr.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JShlExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JShlExpr.java index ced399a6ee0..48e38547b15 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JShlExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JShlExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that shifts its operand to the left (<<). */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JShrExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JShrExpr.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JShrExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JShrExpr.java index a707a50d95b..ec7a266ff81 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JShrExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JShrExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that shifts its operand to the left (>>). */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JSpecialInvokeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JSpecialInvokeExpr.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JSpecialInvokeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JSpecialInvokeExpr.java index 0c6cc646b32..80c98eb5c85 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JSpecialInvokeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JSpecialInvokeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,14 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JStaticInvokeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JStaticInvokeExpr.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JStaticInvokeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JStaticInvokeExpr.java index 2f32d96e216..2cb9a8bb1a3 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JStaticInvokeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JStaticInvokeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JSubExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JSubExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JSubExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JSubExpr.java index 86e56bae8cb..c766e77f008 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JSubExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JSubExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that subtracts operand 2 from operand 1. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JUshrExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JUshrExpr.java similarity index 83% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JUshrExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JUshrExpr.java index ca4eea97095..1924e284f1c 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JUshrExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JUshrExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** Similar to {@link JShrExpr}, but shifts zero into the leftmost position. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JVirtualInvokeExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JVirtualInvokeExpr.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JVirtualInvokeExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JVirtualInvokeExpr.java index 21bcdbfd347..a611879bd41 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JVirtualInvokeExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JVirtualInvokeExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,14 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JXorExpr.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JXorExpr.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JXorExpr.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JXorExpr.java index 51c317ed92b..1859108b9ba 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/JXorExpr.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/expr/JXorExpr.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.expr; +package de.upb.sse.sootup.core.jimple.common.expr; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.visitor.ExprVisitor; -import de.upb.swt.soot.core.util.Copyable; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.visitor.ExprVisitor; +import de.upb.sse.sootup.core.util.Copyable; import javax.annotation.Nonnull; /** An expression that computes a binary XOR of two operands. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/ConcreteRef.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/ConcreteRef.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/ConcreteRef.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/ConcreteRef.java index c726bd8a254..bdc9b456693 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/ConcreteRef.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/ConcreteRef.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/IdentityRef.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/IdentityRef.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/IdentityRef.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/IdentityRef.java index 445d8cda866..3c4331b73cc 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/IdentityRef.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/IdentityRef.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JArrayRef.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JArrayRef.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JArrayRef.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JArrayRef.java index 368f84d4fb7..72593015dbe 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JArrayRef.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JArrayRef.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L @@ -22,18 +22,18 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.RefVisitor; -import de.upb.swt.soot.core.types.ArrayType; -import de.upb.swt.soot.core.types.NullType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.RefVisitor; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.NullType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JCaughtExceptionRef.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JCaughtExceptionRef.java similarity index 83% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JCaughtExceptionRef.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JCaughtExceptionRef.java index aef73b58810..692bc2aee73 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JCaughtExceptionRef.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JCaughtExceptionRef.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.RefVisitor; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.RefVisitor; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JFieldRef.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JFieldRef.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JFieldRef.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JFieldRef.java index fe91a8febd4..a022019b983 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JFieldRef.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JFieldRef.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; public abstract class JFieldRef implements ConcreteRef { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JInstanceFieldRef.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JInstanceFieldRef.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JInstanceFieldRef.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JInstanceFieldRef.java index e2a886fd476..d8dd57b12e0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JInstanceFieldRef.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JInstanceFieldRef.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L * Soot - a J*va Optimization Framework @@ -26,13 +26,13 @@ * @version 1.0 */ -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.RefVisitor; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.RefVisitor; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JParameterRef.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JParameterRef.java similarity index 88% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JParameterRef.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JParameterRef.java index fa9323ea7d3..1a7ad099f71 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JParameterRef.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JParameterRef.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.RefVisitor; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.RefVisitor; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JStaticFieldRef.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JStaticFieldRef.java similarity index 83% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JStaticFieldRef.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JStaticFieldRef.java index 7a2cc2660bc..0e857f0645d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JStaticFieldRef.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JStaticFieldRef.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.RefVisitor; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.RefVisitor; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JThisRef.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JThisRef.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JThisRef.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JThisRef.java index bf7b870d631..12b2a2b045e 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/JThisRef.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/JThisRef.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.RefVisitor; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.RefVisitor; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/Ref.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/Ref.java similarity index 81% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/Ref.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/Ref.java index f4699c27e5d..5bf74228f0b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/ref/Ref.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/ref/Ref.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.ref; +package de.upb.sse.sootup.core.jimple.common.ref; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.visitor.Acceptor; -import de.upb.swt.soot.core.jimple.visitor.RefVisitor; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.visitor.Acceptor; +import de.upb.sse.sootup.core.jimple.visitor.RefVisitor; /* * References e.g. Locals, Fields, Array elements diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/AbstractDefinitionStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/AbstractDefinitionStmt.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/AbstractDefinitionStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/AbstractDefinitionStmt.java index 50acd0b5f62..ec15b1dc0eb 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/AbstractDefinitionStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/AbstractDefinitionStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.types.Type; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/AbstractOpStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/AbstractOpStmt.java similarity index 87% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/AbstractOpStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/AbstractOpStmt.java index 7862e8c47c5..100304102a7 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/AbstractOpStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/AbstractOpStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/BranchingStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/BranchingStmt.java similarity index 88% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/BranchingStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/BranchingStmt.java index e2a14473407..6ffdea54f39 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/BranchingStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/BranchingStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.model.Body; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JAssignStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JAssignStmt.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JAssignStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JAssignStmt.java index 529ed46c6fd..515965c4c45 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JAssignStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JAssignStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,15 +22,15 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.expr.AbstractInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.Expr; -import de.upb.swt.soot.core.jimple.common.ref.ConcreteRef; -import de.upb.swt.soot.core.jimple.common.ref.JArrayRef; -import de.upb.swt.soot.core.jimple.common.ref.JFieldRef; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.Expr; +import de.upb.sse.sootup.core.jimple.common.ref.ConcreteRef; +import de.upb.sse.sootup.core.jimple.common.ref.JArrayRef; +import de.upb.sse.sootup.core.jimple.common.ref.JFieldRef; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** Represents the assignment of one value to another */ @@ -79,7 +79,7 @@ private boolean validateValue(@Nonnull Value rValue) { /* * (non-Javadoc) * - * @see de.upb.soot.jimple.common.stmt.AbstractStmt#containsInvokeExpr() + * @see de.upb.sootup.jimple.common.stmt.AbstractStmt#containsInvokeExpr() */ @Override public boolean containsInvokeExpr() { @@ -89,7 +89,7 @@ public boolean containsInvokeExpr() { /* * (non-Javadoc) * - * @see de.upb.soot.jimple.common.stmt.AbstractStmt#getInvokeExpr() + * @see de.upb.sootup.jimple.common.stmt.AbstractStmt#getInvokeExpr() */ @Override public AbstractInvokeExpr getInvokeExpr() { @@ -102,7 +102,7 @@ public AbstractInvokeExpr getInvokeExpr() { /* * (non-Javadoc) * - * @see de.upb.soot.jimple.common.stmt.AbstractStmt#containsArrayRef() + * @see de.upb.sootup.jimple.common.stmt.AbstractStmt#containsArrayRef() */ /* added by Feng */ @Override @@ -113,7 +113,7 @@ public boolean containsArrayRef() { /* * (non-Javadoc) * - * @see de.upb.soot.jimple.common.stmt.AbstractStmt#getArrayRef() + * @see de.upb.sootup.jimple.common.stmt.AbstractStmt#getArrayRef() */ // TODO [ms]: what is with assignments like: arr[0] = arr[6]? is that possible? if not -> // validator @@ -130,7 +130,7 @@ public JArrayRef getArrayRef() { /* * (non-Javadoc) * - * @see de.upb.soot.jimple.common.stmt.AbstractStmt#containsFieldRef() + * @see de.upb.sootup.jimple.common.stmt.AbstractStmt#containsFieldRef() */ @Override public boolean containsFieldRef() { @@ -140,7 +140,7 @@ public boolean containsFieldRef() { /* * (non-Javadoc) * - * @see de.upb.soot.jimple.common.stmt.AbstractStmt#getFieldRef() + * @see de.upb.sootup.jimple.common.stmt.AbstractStmt#getFieldRef() */ public JFieldRef getFieldRef() { // TODO: [MS] what if both Op's are a FieldRef? verify it in a verifier that this does not @@ -167,7 +167,7 @@ public String toString() { /* * (non-Javadoc) * - * @see de.upb.soot.jimple.common.stmt.Stmt#toString(de.upb.soot.StmtPrinter) + * @see de.upb.sootup.jimple.common.stmt.Stmt#toString(de.upb.sootup.StmtPrinter) */ @Override public void toString(@Nonnull StmtPrinter up) { @@ -179,7 +179,7 @@ public void toString(@Nonnull StmtPrinter up) { /* * (non-Javadoc) * - * @see de.upb.soot.jimple.common.stmt.AbstractStmt#accept(de.upb.soot.jimple.visitor.Visitor) + * @see de.upb.sootup.jimple.common.stmt.AbstractStmt#accept(de.upb.sootup.jimple.visitor.Visitor) */ @Override public void accept(@Nonnull StmtVisitor sw) { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JGotoStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JGotoStmt.java similarity index 84% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JGotoStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JGotoStmt.java index 8cb05c8aaed..2d179e03f2b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JGotoStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JGotoStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JIdentityStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JIdentityStmt.java similarity index 83% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JIdentityStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JIdentityStmt.java index e532021d529..9790d8f9f75 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JIdentityStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JIdentityStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; public final class JIdentityStmt extends AbstractDefinitionStmt diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JIfStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JIfStmt.java similarity index 86% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JIfStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JIfStmt.java index 68d43e38655..93e5bf40f31 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JIfStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JIfStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,15 +22,15 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.expr.AbstractConditionExpr; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractConditionExpr; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JInvokeStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JInvokeStmt.java similarity index 84% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JInvokeStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JInvokeStmt.java index 758b05ef9f7..1a454b5705d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JInvokeStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JInvokeStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -21,13 +21,13 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.expr.AbstractInvokeExpr; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInvokeExpr; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JNopStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JNopStmt.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JNopStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JNopStmt.java index e0b7741d0d0..22ad0cc67cd 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JNopStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JNopStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** A no-operation statement. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JReturnStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JReturnStmt.java similarity index 83% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JReturnStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JReturnStmt.java index fe3252a3b4b..45d4a7966a1 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JReturnStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JReturnStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** A statement that ends the method, returning a value. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JReturnVoidStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JReturnVoidStmt.java similarity index 83% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JReturnVoidStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JReturnVoidStmt.java index 62a13752829..dc5dd071503 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JReturnVoidStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JReturnVoidStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** A statement that ends the method, returning no value. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JThrowStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JThrowStmt.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JThrowStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JThrowStmt.java index 2e25bd9f22f..f72b9a0e03a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/JThrowStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/JThrowStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** A statement that throws an Exception */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/Stmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/Stmt.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/Stmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/Stmt.java index 12fe8b8df16..f218fc9f8b9 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/stmt/Stmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/common/stmt/Stmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.common.stmt; +package de.upb.sse.sootup.core.jimple.common.stmt; /*- * #%L @@ -22,14 +22,17 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.expr.AbstractInvokeExpr; -import de.upb.swt.soot.core.jimple.common.ref.JArrayRef; -import de.upb.swt.soot.core.jimple.common.ref.JFieldRef; -import de.upb.swt.soot.core.jimple.visitor.Acceptor; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.basic.EquivTo; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.ref.JArrayRef; +import de.upb.sse.sootup.core.jimple.common.ref.JFieldRef; +import de.upb.sse.sootup.core.jimple.visitor.Acceptor; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JBreakpointStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JBreakpointStmt.java similarity index 80% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JBreakpointStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JBreakpointStmt.java index 4ff785fca52..cde3d5d622b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JBreakpointStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JBreakpointStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.core.jimple.javabytecode.stmt; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; public final class JBreakpointStmt extends Stmt implements Copyable { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JEnterMonitorStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JEnterMonitorStmt.java similarity index 80% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JEnterMonitorStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JEnterMonitorStmt.java index 6b6e908c26d..79fbb547949 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JEnterMonitorStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JEnterMonitorStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.core.jimple.javabytecode.stmt; /*- * #%L @@ -22,14 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.AbstractOpStmt; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.AbstractOpStmt; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** A statement that enters a JVM monitor, thereby synchronizing its following statements. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JExitMonitorStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JExitMonitorStmt.java similarity index 80% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JExitMonitorStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JExitMonitorStmt.java index 0cf2b074167..6a2ff4b8670 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JExitMonitorStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JExitMonitorStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.core.jimple.javabytecode.stmt; /*- * #%L @@ -22,14 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.AbstractOpStmt; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.AbstractOpStmt; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** A statement that exits a JVM monitor, thereby ending synchronization. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JRetStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JRetStmt.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JRetStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JRetStmt.java index c06f7203cf0..d7650995d60 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JRetStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JRetStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.core.jimple.javabytecode.stmt; /*- * #%L @@ -22,12 +22,15 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JSwitchStmt.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JSwitchStmt.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JSwitchStmt.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JSwitchStmt.java index 6009e7d1501..c9956ae5bc1 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/javabytecode/stmt/JSwitchStmt.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/javabytecode/stmt/JSwitchStmt.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.core.jimple.javabytecode.stmt; /*- * #%L @@ -22,15 +22,19 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.BranchingStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.BranchingStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractConstantVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractConstantVisitor.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractConstantVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractConstantVisitor.java index 535d0ecbc77..ff49e2145ee 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractConstantVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractConstantVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.constant.*; +import de.upb.sse.sootup.core.jimple.common.constant.*; import javax.annotation.Nonnull; public class AbstractConstantVisitor extends AbstractVisitor implements ConstantVisitor { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractExprVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractExprVisitor.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractExprVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractExprVisitor.java index b830aa6a97c..13dd5876b54 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractExprVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractExprVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.expr.*; import javax.annotation.Nonnull; public abstract class AbstractExprVisitor extends AbstractVisitor implements ExprVisitor { diff --git a/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractImmediateVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractImmediateVisitor.java new file mode 100644 index 00000000000..cbae2398a99 --- /dev/null +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractImmediateVisitor.java @@ -0,0 +1,22 @@ +package de.upb.sse.sootup.core.jimple.visitor; + +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.common.constant.Constant; +import javax.annotation.Nonnull; + +public class AbstractImmediateVisitor extends AbstractConstantVisitor + implements ImmediateVisitor { + + @Override + public void caseLocal(@Nonnull Local local) { + defaultCaseImmediate(local); + } + + @Override + public void defaultCaseConstant(@Nonnull Constant constant) { + defaultCaseImmediate(constant); + } + + private void defaultCaseImmediate(@Nonnull Immediate immediate) {} +} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractRefVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractRefVisitor.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractRefVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractRefVisitor.java index 2b5adea1ce2..1f2aff70ae6 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractRefVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractRefVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.ref.*; +import de.upb.sse.sootup.core.jimple.common.ref.*; import javax.annotation.Nonnull; public abstract class AbstractRefVisitor extends AbstractVisitor implements RefVisitor { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractStmtVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractStmtVisitor.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractStmtVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractStmtVisitor.java index c9bd02106ec..d9747b0977c 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractStmtVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractStmtVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.stmt.*; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.*; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.*; import javax.annotation.Nonnull; public abstract class AbstractStmtVisitor extends AbstractVisitor implements StmtVisitor { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractTypeVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractTypeVisitor.java similarity index 92% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractTypeVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractTypeVisitor.java index 332700a5b38..eb8ac5425bf 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractTypeVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractTypeVisitor.java @@ -1,6 +1,6 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; -import de.upb.swt.soot.core.types.*; +import de.upb.sse.sootup.core.types.*; /** @author Markus Schmidt */ public abstract class AbstractTypeVisitor extends AbstractVisitor implements TypeVisitor { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractValueVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractValueVisitor.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractValueVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractValueVisitor.java index 3463f83c7de..4ada1a1378e 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractValueVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractValueVisitor.java @@ -1,10 +1,10 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.*; -import de.upb.swt.soot.core.jimple.common.expr.*; -import de.upb.swt.soot.core.jimple.common.ref.*; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.*; +import de.upb.sse.sootup.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.ref.*; import javax.annotation.Nonnull; /** @author Markus Schmidt */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractVisitor.java similarity index 88% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractVisitor.java index 669a033138d..6cd057927ca 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/AbstractVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /** * Base class for retrieving a calculated result from the implemented Visitor (which is basically a diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/Acceptor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/Acceptor.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/Acceptor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/Acceptor.java index ec19befae92..bf973e1f256 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/Acceptor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/Acceptor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ConstantVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ConstantVisitor.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ConstantVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ConstantVisitor.java index fa256b720a8..b3eaec8ad11 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ConstantVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ConstantVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.constant.*; +import de.upb.sse.sootup.core.jimple.common.constant.*; import javax.annotation.Nonnull; public interface ConstantVisitor extends Visitor { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ExprVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ExprVisitor.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ExprVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ExprVisitor.java index 1afb99005c2..a2084bf8064 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ExprVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ExprVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.expr.*; public interface ExprVisitor extends Visitor { diff --git a/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ImmediateVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ImmediateVisitor.java new file mode 100644 index 00000000000..fe8cdaac108 --- /dev/null +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ImmediateVisitor.java @@ -0,0 +1,11 @@ +package de.upb.sse.sootup.core.jimple.visitor; + +import de.upb.sse.sootup.core.jimple.basic.Local; +import javax.annotation.Nonnull; + +/* + * @author Markus Schmidt + */ +public interface ImmediateVisitor extends ConstantVisitor { + void caseLocal(@Nonnull Local local); +} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/RefVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/RefVisitor.java similarity index 92% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/RefVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/RefVisitor.java index 7be9cf1088c..3cffb0c555e 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/RefVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/RefVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.ref.*; +import de.upb.sse.sootup.core.jimple.common.ref.*; public interface RefVisitor extends Visitor { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ReplaceUseExprVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ReplaceUseExprVisitor.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ReplaceUseExprVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ReplaceUseExprVisitor.java index 9ded0a0b622..887d65f7b47 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ReplaceUseExprVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ReplaceUseExprVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.graph.Block; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.graph.Block; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.expr.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ReplaceUseRefVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ReplaceUseRefVisitor.java similarity index 81% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ReplaceUseRefVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ReplaceUseRefVisitor.java index 074c54d9d29..894c031fca0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ReplaceUseRefVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ReplaceUseRefVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,10 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.ref.*; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.ref.*; +import de.upb.sse.sootup.core.jimple.common.ref.JArrayRef; +import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef; +import de.upb.sse.sootup.core.jimple.common.ref.Ref; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ReplaceUseStmtVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ReplaceUseStmtVisitor.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ReplaceUseStmtVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ReplaceUseStmtVisitor.java index 43b860addb9..cad7cbab1ba 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ReplaceUseStmtVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ReplaceUseStmtVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,14 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.expr.AbstractConditionExpr; -import de.upb.swt.soot.core.jimple.common.expr.AbstractInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.Expr; -import de.upb.swt.soot.core.jimple.common.ref.Ref; -import de.upb.swt.soot.core.jimple.common.stmt.*; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.*; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractConditionExpr; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.Expr; +import de.upb.sse.sootup.core.jimple.common.ref.Ref; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.*; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/StmtVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/StmtVisitor.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/StmtVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/StmtVisitor.java index a4911296271..058f2924b51 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/StmtVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/StmtVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -28,8 +28,8 @@ * contributors. (Soot is distributed at http://www.sable.mcgill.ca/soot) */ -import de.upb.swt.soot.core.jimple.common.stmt.*; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.*; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.*; public interface StmtVisitor extends Visitor { void caseBreakpointStmt(JBreakpointStmt stmt); diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/TypeVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/TypeVisitor.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/TypeVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/TypeVisitor.java index 73947b64761..bdce47036ec 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/TypeVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/TypeVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.types.*; +import de.upb.sse.sootup.core.types.*; public interface TypeVisitor extends Visitor { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ValueVisitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ValueVisitor.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ValueVisitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ValueVisitor.java index 240cc5ab90d..e365864f0dd 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ValueVisitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/ValueVisitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.basic.Value; import javax.annotation.Nonnull; public interface ValueVisitor extends ImmediateVisitor, ExprVisitor, RefVisitor { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/Visitor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/Visitor.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/Visitor.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/Visitor.java index 289de6997d1..25bd80adfa5 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/Visitor.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/jimple/visitor/Visitor.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.jimple.visitor; +package de.upb.sse.sootup.core.jimple.visitor; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/AbstractClass.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/AbstractClass.java similarity index 89% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/AbstractClass.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/AbstractClass.java index 121b89a424f..b145214a0eb 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/AbstractClass.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/AbstractClass.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L @@ -23,11 +23,14 @@ */ import com.google.common.collect.Iterables; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.signatures.*; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.signatures.*; +import de.upb.sse.sootup.core.signatures.FieldSubSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.signatures.Signature; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.views.View; import java.util.Optional; import java.util.Set; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Body.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Body.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Body.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Body.java index 01c65600ebe..c5e1311f81b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Body.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Body.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L @@ -23,19 +23,19 @@ */ import com.google.common.collect.Lists; -import de.upb.swt.soot.core.graph.*; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.ref.JParameterRef; -import de.upb.swt.soot.core.jimple.common.ref.JThisRef; -import de.upb.swt.soot.core.jimple.common.stmt.*; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.EscapedWriter; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.core.util.printer.Printer; -import de.upb.swt.soot.core.validation.*; +import de.upb.sse.sootup.core.graph.*; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.ref.JParameterRef; +import de.upb.sse.sootup.core.jimple.common.ref.JThisRef; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.EscapedWriter; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.core.util.printer.Printer; +import de.upb.sse.sootup.core.validation.*; import java.io.PrintWriter; import java.io.StringWriter; import java.util.*; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/BodyUtils.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/BodyUtils.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/BodyUtils.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/BodyUtils.java index cbbb279b450..628c6877298 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/BodyUtils.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/BodyUtils.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,15 +20,15 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.stmt.AbstractDefinitionStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.visitor.ReplaceUseStmtVisitor; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.stmt.AbstractDefinitionStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.visitor.ReplaceUseStmtVisitor; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/BuilderException.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/BuilderException.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/BuilderException.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/BuilderException.java index e60c5d02cad..d41a457d4ae 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/BuilderException.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/BuilderException.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L * Soot - a J*va Optimization Framework diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Field.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Field.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Field.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Field.java index 1bd9fd3441c..7f0ee678f8f 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Field.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Field.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.FieldSignature; /** * Interface for field. diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Method.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Method.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Method.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Method.java index 6e1e283eb9b..1ce739b2c13 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Method.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Method.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L @@ -21,7 +21,7 @@ * . * #L% */ -import de.upb.swt.soot.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; /** * Interface for method. diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Modifier.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Modifier.java similarity index 99% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Modifier.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Modifier.java index 7faa9884c59..2d5ecb66968 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Modifier.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Modifier.java @@ -1,6 +1,6 @@ // Incomplete class -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Position.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Position.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Position.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Position.java index ea9a04828f7..469a813ed9c 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/Position.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/Position.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootClass.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootClass.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootClass.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootClass.java index 389eb716eab..dd7b29ba2ab 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootClass.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootClass.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L @@ -23,11 +23,11 @@ */ import com.google.common.base.Suppliers; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.core.util.printer.Printer; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.core.util.printer.Printer; import java.io.PrintWriter; import java.io.StringWriter; import java.util.Optional; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootClassMember.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootClassMember.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootClassMember.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootClassMember.java index 7d9e37a6c42..cf38da43e0d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootClassMember.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootClassMember.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L @@ -23,9 +23,9 @@ */ import com.google.common.collect.ImmutableSet; -import de.upb.swt.soot.core.signatures.SootClassMemberSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.ImmutableUtils; +import de.upb.sse.sootup.core.signatures.SootClassMemberSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.ImmutableUtils; import java.util.Objects; import java.util.Set; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootField.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootField.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootField.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootField.java index 2dc6bafb077..c617af439ba 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootField.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootField.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,9 +21,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.types.Type; import java.util.EnumSet; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootMethod.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootMethod.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootMethod.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootMethod.java index a95f8bb35cf..aa547236de9 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SootMethod.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SootMethod.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L @@ -24,17 +24,17 @@ import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableList; -import de.upb.swt.soot.core.frontend.BodySource; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.Copyable; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.frontend.BodySource; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.Copyable; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.io.IOException; import java.nio.file.Paths; import java.util.*; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SourceType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SourceType.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SourceType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SourceType.java index 72e0896d5c8..79c5076fda4 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/model/SourceType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/model/SourceType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.model; +package de.upb.sse.sootup.core.model; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/FieldSignature.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/FieldSignature.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/FieldSignature.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/FieldSignature.java index 981fc80bb55..642f4fcb53b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/FieldSignature.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/FieldSignature.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.signatures; +package de.upb.sse.sootup.core.signatures; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/FieldSubSignature.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/FieldSubSignature.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/FieldSubSignature.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/FieldSubSignature.java index 9140d5a287a..dac7f91f26c 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/FieldSubSignature.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/FieldSubSignature.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.signatures; +package de.upb.sse.sootup.core.signatures; /*- * #%L @@ -23,9 +23,9 @@ */ import com.google.common.base.Suppliers; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.function.Supplier; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/MethodSignature.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/MethodSignature.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/MethodSignature.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/MethodSignature.java index a77703477ab..93eb1c84b8d 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/MethodSignature.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/MethodSignature.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.signatures; +package de.upb.sse.sootup.core.signatures; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/MethodSubSignature.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/MethodSubSignature.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/MethodSubSignature.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/MethodSubSignature.java index cc1d10d0d74..3e26a8391c4 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/MethodSubSignature.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/MethodSubSignature.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.signatures; +package de.upb.sse.sootup.core.signatures; /*- * #%L @@ -25,9 +25,9 @@ import com.google.common.base.Objects; import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableList; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.Iterator; import java.util.List; import java.util.function.Supplier; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/PackageName.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/PackageName.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/PackageName.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/PackageName.java index 7d50930e37c..61bd954fb5e 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/PackageName.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/PackageName.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.signatures; +package de.upb.sse.sootup.core.signatures; /*- * #%L @@ -23,6 +23,7 @@ */ import com.google.common.base.Objects; +import de.upb.sse.sootup.core.IdentifierFactory; import javax.annotation.Nonnull; /** @@ -41,7 +42,7 @@ public class PackageName { /** * Internal: Constructs a Package Signature of a Java package. Instances should only be created by - * a {@link de.upb.swt.soot.core.IdentifierFactory } + * a {@link IdentifierFactory } * * @param packageName the package's name */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/Signature.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/Signature.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/Signature.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/Signature.java index a34c04509c5..5c1926b8f83 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/Signature.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/Signature.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.signatures; +package de.upb.sse.sootup.core.signatures; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/SootClassMemberSignature.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/SootClassMemberSignature.java similarity index 92% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/SootClassMemberSignature.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/SootClassMemberSignature.java index 8566a4298cc..71310875061 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/SootClassMemberSignature.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/SootClassMemberSignature.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.signatures; +package de.upb.sse.sootup.core.signatures; /*- * #%L @@ -23,9 +23,9 @@ */ import com.google.common.base.Objects; -import de.upb.swt.soot.core.model.SootClassMember; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.model.SootClassMember; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/SootClassMemberSubSignature.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/SootClassMemberSubSignature.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/SootClassMemberSubSignature.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/SootClassMemberSubSignature.java index 1c8ad8e7cff..ec09b4038df 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/signatures/SootClassMemberSubSignature.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/signatures/SootClassMemberSubSignature.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.signatures; +package de.upb.sse.sootup.core.signatures; /*- * #%L @@ -24,9 +24,9 @@ import com.google.common.base.Objects; import com.google.common.base.Suppliers; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.function.Supplier; import javax.annotation.Nonnull; import javax.annotation.Nullable; diff --git a/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/transform/BodyInterceptor.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/transform/BodyInterceptor.java new file mode 100644 index 00000000000..ccf5904f181 --- /dev/null +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/transform/BodyInterceptor.java @@ -0,0 +1,41 @@ +package de.upb.sse.sootup.core.transform; + +/*- + * #%L + * Soot - a J*va Optimization Framework + * %% + * Copyright (C) 2019-2020 Christian Brüggemann + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 2.1 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * . + * #L% + */ + +import de.upb.sse.sootup.core.model.Body; +import javax.annotation.Nonnull; + +/** + * @author + * @see #interceptBody(Body.BodyBuilder) + */ +public interface BodyInterceptor { + + /** + * Takes a BodyBuilder and may apply a transformation to it, for example removing unused local + * variables. + * + * @param builder + */ + void interceptBody(@Nonnull Body.BodyBuilder builder); +} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/MethodDispatchResolver.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/MethodDispatchResolver.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/MethodDispatchResolver.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/MethodDispatchResolver.java index 0652cc62cd1..18fec7ea8e7 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/MethodDispatchResolver.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/MethodDispatchResolver.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.typehierarchy; +package de.upb.sse.sootup.core.typehierarchy; /*- * #%L * Soot - a J*va Optimization Framework @@ -22,14 +22,14 @@ */ import com.google.common.collect.Sets; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.jimple.common.expr.JSpecialInvokeExpr; -import de.upb.swt.soot.core.model.Method; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.jimple.common.expr.JSpecialInvokeExpr; +import de.upb.sse.sootup.core.model.Method; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; import java.util.Set; import java.util.stream.Collectors; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/MutableTypeHierarchy.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/MutableTypeHierarchy.java similarity index 92% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/MutableTypeHierarchy.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/MutableTypeHierarchy.java index eaea902a11a..67e31815abe 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/MutableTypeHierarchy.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/MutableTypeHierarchy.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.typehierarchy; +package de.upb.sse.sootup.core.typehierarchy; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,7 +20,7 @@ * . * #L% */ -import de.upb.swt.soot.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootClass; /** For internal use only. */ public interface MutableTypeHierarchy extends TypeHierarchy { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/TypeHierarchy.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/TypeHierarchy.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/TypeHierarchy.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/TypeHierarchy.java index 949fb2de582..326adb1667c 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/TypeHierarchy.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/TypeHierarchy.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.typehierarchy; +package de.upb.sse.sootup.core.typehierarchy; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,8 +20,8 @@ * . * #L% */ -import de.upb.swt.soot.core.types.*; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.types.*; +import de.upb.sse.sootup.core.views.View; import java.util.ArrayList; import java.util.List; import java.util.Set; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/ViewTypeHierarchy.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/ViewTypeHierarchy.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/ViewTypeHierarchy.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/ViewTypeHierarchy.java index 7876812f5a0..9784ea0c39b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/typehierarchy/ViewTypeHierarchy.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/typehierarchy/ViewTypeHierarchy.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.typehierarchy; +package de.upb.sse.sootup.core.typehierarchy; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,14 +21,14 @@ * #L% */ import com.google.common.base.Suppliers; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy.ScanResult.Edge; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy.ScanResult.EdgeType; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy.ScanResult.Vertex; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy.ScanResult.VertexType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy.ScanResult.Edge; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy.ScanResult.EdgeType; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy.ScanResult.Vertex; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy.ScanResult.VertexType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/ArrayType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/ArrayType.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/ArrayType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/ArrayType.java index 086815105f9..94be951c6ad 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/ArrayType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/ArrayType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.types; +package de.upb.sse.sootup.core.types; /*- * #%L @@ -23,8 +23,8 @@ */ import com.google.common.base.Objects; -import de.upb.swt.soot.core.jimple.visitor.TypeVisitor; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.visitor.TypeVisitor; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/ClassType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/ClassType.java similarity index 88% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/ClassType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/ClassType.java index 38e6bfac2eb..aae4319d79b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/ClassType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/ClassType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.types; +package de.upb.sse.sootup.core.types; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.TypeVisitor; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.signatures.Signature; +import de.upb.sse.sootup.core.jimple.visitor.TypeVisitor; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.signatures.Signature; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/NullType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/NullType.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/NullType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/NullType.java index 4067d853fa8..61fc87c56d1 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/NullType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/NullType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.types; +package de.upb.sse.sootup.core.types; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.TypeVisitor; +import de.upb.sse.sootup.core.jimple.visitor.TypeVisitor; import javax.annotation.Nonnull; /** Represents a signature for a null-reference. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/PrimitiveType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/PrimitiveType.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/PrimitiveType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/PrimitiveType.java index 62ca846845d..84be5722281 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/PrimitiveType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/PrimitiveType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.types; +package de.upb.sse.sootup.core.types; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.TypeVisitor; +import de.upb.sse.sootup.core.jimple.visitor.TypeVisitor; import javax.annotation.Nonnull; /** Represents Java's primitive types. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/ReferenceType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/ReferenceType.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/ReferenceType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/ReferenceType.java index 8196047cd15..1d3dcbdb1ec 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/ReferenceType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/ReferenceType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.types; +package de.upb.sse.sootup.core.types; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/Type.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/Type.java similarity index 86% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/Type.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/Type.java index 5b70cdd7944..73941a27a6f 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/Type.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/Type.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.types; +package de.upb.sse.sootup.core.types; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.Acceptor; -import de.upb.swt.soot.core.jimple.visitor.TypeVisitor; +import de.upb.sse.sootup.core.jimple.visitor.Acceptor; +import de.upb.sse.sootup.core.jimple.visitor.TypeVisitor; /** Represents the signature of a Java type, e.g., a class, a primitive type, void, or null. */ public abstract class Type implements Acceptor {} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/UnknownType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/UnknownType.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/UnknownType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/UnknownType.java index 9421e43b087..d997e85065a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/UnknownType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/UnknownType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.types; +package de.upb.sse.sootup.core.types; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.TypeVisitor; +import de.upb.sse.sootup.core.jimple.visitor.TypeVisitor; import javax.annotation.Nonnull; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/VoidType.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/VoidType.java similarity index 92% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/VoidType.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/VoidType.java index 9d3e58141b5..aaefe5c1432 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/types/VoidType.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/types/VoidType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.types; +package de.upb.sse.sootup.core.types; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.jimple.visitor.TypeVisitor; +import de.upb.sse.sootup.core.jimple.visitor.TypeVisitor; import javax.annotation.Nonnull; /** Represents Java's 'void' type as methods return's type. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/CollectionUtils.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/CollectionUtils.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/CollectionUtils.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/CollectionUtils.java index 11d983ab7ab..17254037328 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/CollectionUtils.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/CollectionUtils.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util; +package de.upb.sse.sootup.core.util; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/Copyable.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/Copyable.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/Copyable.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/Copyable.java index 38571821a46..d1586e0f5fb 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/Copyable.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/Copyable.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util; +package de.upb.sse.sootup.core.util; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/EscapedWriter.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/EscapedWriter.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/EscapedWriter.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/EscapedWriter.java index 97df5121d6a..ab46cc5e02a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/EscapedWriter.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/EscapedWriter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util; +package de.upb.sse.sootup.core.util; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/ImmutableUtils.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/ImmutableUtils.java similarity index 99% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/ImmutableUtils.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/ImmutableUtils.java index bf65176456a..01576139eb3 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/ImmutableUtils.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/ImmutableUtils.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util; +package de.upb.sse.sootup.core.util; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/PathUtils.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/PathUtils.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/PathUtils.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/PathUtils.java index 88996b4fd04..8d17556a0aa 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/PathUtils.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/PathUtils.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util; +package de.upb.sse.sootup.core.util; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.inputlocation.FileType; +import de.upb.sse.sootup.core.inputlocation.FileType; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/StreamUtils.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/StreamUtils.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/StreamUtils.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/StreamUtils.java index 2db5792e7e7..5504f3fcb00 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/StreamUtils.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/StreamUtils.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util; +package de.upb.sse.sootup.core.util; /*- * #%L diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/StringTools.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/StringTools.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/StringTools.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/StringTools.java index 1ab3362efca..b12e3a714e6 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/StringTools.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/StringTools.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util; +package de.upb.sse.sootup.core.util; /*- * #%L @@ -25,7 +25,7 @@ import java.text.CharacterIterator; import java.text.StringCharacterIterator; -/** Utility methods for string manipulations commonly used in Soot. */ +/** Utility methods for string manipulations commonly used in sootup. */ public class StringTools { /** Returns fromString, but with non-isalpha() characters printed as '\\unnnn'. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/Utils.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/Utils.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/Utils.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/Utils.java index 275ecbfd68a..ba5f3d0f02a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/Utils.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/Utils.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util; +package de.upb.sse.sootup.core.util; /*- * #%L @@ -22,12 +22,11 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.EquivTo; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.util.printer.Printer; -import de.upb.swt.soot.core.util.printer.Printer.Option; +import de.upb.sse.sootup.core.jimple.basic.EquivTo; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.util.printer.Printer; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -147,7 +146,7 @@ public static ArrayList bodyStmtsAsStrings(@Nonnull Body body) { StringWriter writer = new StringWriter(); try (PrintWriter writerOut = new PrintWriter(new EscapedWriter(writer))) { Printer printer = new Printer(); - printer.setOption(Option.OmitLocalsDeclaration); + printer.setOption(Printer.Option.OmitLocalsDeclaration); printer.printTo(body, writerOut); } diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/AbstractStmtPrinter.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/AbstractStmtPrinter.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/AbstractStmtPrinter.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/AbstractStmtPrinter.java index 692d8227e17..d88974f47da 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/AbstractStmtPrinter.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/AbstractStmtPrinter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util.printer; +package de.upb.sse.sootup.core.util.printer; /*- * #%L @@ -22,14 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.common.constant.Constant; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ArrayType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.common.constant.Constant; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; import java.util.HashMap; import java.util.Map; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/BriefStmtPrinter.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/BriefStmtPrinter.java similarity index 84% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/BriefStmtPrinter.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/BriefStmtPrinter.java index e786bce497d..03264c00145 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/BriefStmtPrinter.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/BriefStmtPrinter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util.printer; +package de.upb.sse.sootup.core.util.printer; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.ref.JCaughtExceptionRef; -import de.upb.swt.soot.core.jimple.common.ref.JParameterRef; -import de.upb.swt.soot.core.jimple.common.ref.JThisRef; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.ref.JCaughtExceptionRef; +import de.upb.sse.sootup.core.jimple.common.ref.JParameterRef; +import de.upb.sse.sootup.core.jimple.common.ref.JThisRef; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; /** StmtPrinter implementation for normal Jimple */ public class BriefStmtPrinter extends LabeledStmtPrinter { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/LabeledStmtPrinter.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/LabeledStmtPrinter.java similarity index 89% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/LabeledStmtPrinter.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/LabeledStmtPrinter.java index 74aa56ae976..1ff927c9630 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/LabeledStmtPrinter.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/LabeledStmtPrinter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util.printer; +package de.upb.sse.sootup.core.util.printer; /*- * #%L @@ -22,17 +22,17 @@ * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.FieldSubSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.FieldSubSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.Type; import java.util.*; public abstract class LabeledStmtPrinter extends AbstractStmtPrinter { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/LegacyJimplePrinter.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/LegacyJimplePrinter.java similarity index 91% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/LegacyJimplePrinter.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/LegacyJimplePrinter.java index 27d890a1b94..9970deab4b0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/LegacyJimplePrinter.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/LegacyJimplePrinter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util.printer; +package de.upb.sse.sootup.core.util.printer; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; /** * StmtPrinter implementation for normal (full) Jimple for OldSoot diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/NormalStmtPrinter.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/NormalStmtPrinter.java similarity index 82% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/NormalStmtPrinter.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/NormalStmtPrinter.java index c3e508c14a4..ddbdca96cba 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/NormalStmtPrinter.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/NormalStmtPrinter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util.printer; +package de.upb.sse.sootup.core.util.printer; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.ref.JCaughtExceptionRef; -import de.upb.swt.soot.core.jimple.common.ref.JParameterRef; -import de.upb.swt.soot.core.jimple.common.ref.JThisRef; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.ref.JCaughtExceptionRef; +import de.upb.sse.sootup.core.jimple.common.ref.JParameterRef; +import de.upb.sse.sootup.core.jimple.common.ref.JThisRef; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; /** StmtPrinter implementation for normal (full) Jimple */ public class NormalStmtPrinter extends LabeledStmtPrinter { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/Printer.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/Printer.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/Printer.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/Printer.java index c10ab6f0787..10081d86e87 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/Printer.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/Printer.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util.printer; +package de.upb.sse.sootup.core.util.printer; /*- * #%L @@ -22,22 +22,22 @@ * #L% */ -import de.upb.swt.soot.core.graph.ImmutableStmtGraph; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Field; -import de.upb.swt.soot.core.model.Method; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.graph.ImmutableStmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Field; +import de.upb.sse.sootup.core.model.Method; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; import java.io.PrintWriter; import java.util.*; diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/StmtPrinter.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/StmtPrinter.java similarity index 77% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/StmtPrinter.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/StmtPrinter.java index 46ce60bc274..8dd18262873 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/util/printer/StmtPrinter.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/util/printer/StmtPrinter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.util.printer; +package de.upb.sse.sootup.core.util.printer; /*- * #%L @@ -22,16 +22,16 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.common.constant.Constant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.common.constant.Constant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.Type; import javax.annotation.Nonnull; /** Interface for different methods of printing out a Stmt. */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/BodyValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/BodyValidator.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/BodyValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/BodyValidator.java index 5abb736aa88..c26c1b8c94a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/BodyValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/BodyValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; /** Implement this interface if you want to provide your own body Validator */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckEscapingValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckEscapingValidator.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckEscapingValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckEscapingValidator.java index c1370184bf2..1e2f7ea4f16 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckEscapingValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckEscapingValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class CheckEscapingValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckInitValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckInitValidator.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckInitValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckInitValidator.java index 7780c10cd17..1c81faa03e0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckInitValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckInitValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class CheckInitValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckTypesValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckTypesValidator.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckTypesValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckTypesValidator.java index 484cc124a15..e3e557abbfe 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckTypesValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckTypesValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class CheckTypesValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckVoidLocalesValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckVoidLocalesValidator.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckVoidLocalesValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckVoidLocalesValidator.java index a7370a5a0f0..dae3da6fe2a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/CheckVoidLocalesValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/CheckVoidLocalesValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class CheckVoidLocalesValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ClassFlagsValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ClassFlagsValidator.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ClassFlagsValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ClassFlagsValidator.java index 68361cdfcf6..d237132739c 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ClassFlagsValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ClassFlagsValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootClass; import java.util.List; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ClassValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ClassValidator.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ClassValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ClassValidator.java index fe0f825c5f2..be9aa90c5d5 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ClassValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ClassValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootClass; import java.util.List; /** Implement this interface if you want to provide your own class validator */ diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/FieldRefValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/FieldRefValidator.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/FieldRefValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/FieldRefValidator.java index 9005aeae8f1..5bbf61c860b 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/FieldRefValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/FieldRefValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class FieldRefValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/IdentityStatementsValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/IdentityStatementsValidator.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/IdentityStatementsValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/IdentityStatementsValidator.java index 4e7cddf4915..db9f9ca4e2a 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/IdentityStatementsValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/IdentityStatementsValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class IdentityStatementsValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/IdentityValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/IdentityValidator.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/IdentityValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/IdentityValidator.java index a167882b63b..85f3992b0f0 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/IdentityValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/IdentityValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/InvokeArgumentValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/InvokeArgumentValidator.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/InvokeArgumentValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/InvokeArgumentValidator.java index 3f7f78c34fc..39e43f09966 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/InvokeArgumentValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/InvokeArgumentValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/JimpleTrapValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/JimpleTrapValidator.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/JimpleTrapValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/JimpleTrapValidator.java index e0bda3eff01..a472c646809 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/JimpleTrapValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/JimpleTrapValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; /** * This validator checks whether the jimple traps are correct. It does not perform the same checks - * as {link soot.validation.TrapsValidator} + * as {link sootup.validation.TrapsValidator} * * @see JimpleTrapValidator#validate(Body, List) * @author Marc Miltenberger diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/LocalsValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/LocalsValidator.java similarity index 90% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/LocalsValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/LocalsValidator.java index d97dc2594c3..13f768800ef 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/LocalsValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/LocalsValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class LocalsValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/MethodDeclarationValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/MethodDeclarationValidator.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/MethodDeclarationValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/MethodDeclarationValidator.java index 80870260745..1f113f8f3d9 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/MethodDeclarationValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/MethodDeclarationValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootClass; import java.util.List; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/MethodValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/MethodValidator.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/MethodValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/MethodValidator.java index 928af4cc2b2..01b1a384157 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/MethodValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/MethodValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class MethodValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/NewValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/NewValidator.java similarity index 98% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/NewValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/NewValidator.java index 9468ada3ac3..e9bd9add621 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/NewValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/NewValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/OuterClassValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/OuterClassValidator.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/OuterClassValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/OuterClassValidator.java index 798a3230c10..6cd4c8e2fbf 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/OuterClassValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/OuterClassValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootClass; import java.util.List; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ReturnStatementsValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ReturnStatementsValidator.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ReturnStatementsValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ReturnStatementsValidator.java index da79f26b7f2..75c6189a2db 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ReturnStatementsValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ReturnStatementsValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class ReturnStatementsValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/StmtsValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/StmtsValidator.java similarity index 93% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/StmtsValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/StmtsValidator.java index 7b3b4040eb1..20305ea067f 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/StmtsValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/StmtsValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class StmtsValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/TrapsValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/TrapsValidator.java similarity index 95% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/TrapsValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/TrapsValidator.java index fb9c2bb99d8..d1ed3d697a6 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/TrapsValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/TrapsValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class TrapsValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/TypesValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/TypesValidator.java similarity index 96% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/TypesValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/TypesValidator.java index a40718e737f..6fbdb851bd3 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/TypesValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/TypesValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; /** diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/UsesValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/UsesValidator.java similarity index 97% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/UsesValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/UsesValidator.java index 03553ea5441..f24a1b30eee 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/UsesValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/UsesValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class UsesValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ValidationException.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ValidationException.java similarity index 86% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ValidationException.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ValidationException.java index d14eedfd00c..c7c5b4257cb 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ValidationException.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ValidationException.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; public class ValidationException extends RuntimeException { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ValuesValidator.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ValuesValidator.java similarity index 94% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ValuesValidator.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ValuesValidator.java index f45b7b0d46c..936495a7d86 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/validation/ValuesValidator.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/validation/ValuesValidator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.validation; +package de.upb.sse.sootup.core.validation; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.model.Body; import java.util.List; public class ValuesValidator implements BodyValidator { diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/views/AbstractView.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/views/AbstractView.java similarity index 86% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/views/AbstractView.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/views/AbstractView.java index 6563b52cd84..3e90018c1b7 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/views/AbstractView.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/views/AbstractView.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.views; +package de.upb.sse.sootup.core.views; /*- * #%L @@ -22,16 +22,16 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.Scope; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.Scope; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; import java.util.HashMap; import java.util.Map; import java.util.Optional; diff --git a/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/views/MutableView.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/views/MutableView.java new file mode 100644 index 00000000000..f395f2af6e8 --- /dev/null +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/views/MutableView.java @@ -0,0 +1,10 @@ +package de.upb.sse.sootup.core.views; + +import de.upb.sse.sootup.core.ViewChangeListener; + +public interface MutableView { + + void addChangeListener(ViewChangeListener listener); + + void removeChangeListener(ViewChangeListener listener); +} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/views/View.java b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/views/View.java similarity index 85% rename from de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/views/View.java rename to de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/views/View.java index f315bc7f443..f74fa6f61b1 100644 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/views/View.java +++ b/de.upb.sse.sootup.core/src/main/java/de/upb/sse/sootup/core/views/View.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.core.views; +package de.upb.sse.sootup.core.views; /*- * #%L @@ -22,19 +22,19 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.Scope; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.Scope; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; import java.util.Collection; import java.util.List; import java.util.Optional; @@ -44,7 +44,7 @@ import javax.annotation.Nullable; /** - * A View is essentially a collection of code belonging to a {@link de.upb.swt.soot.core.Project}. + * A View is essentially a collection of code belonging to a {@link Project}. * * @author Linghui Luo * @author Ben Hermann diff --git a/de.upb.swt.soot.core/src/test/java/categories/Java8Test.java b/de.upb.sse.sootup.core/src/test/java/categories/Java8Test.java similarity index 100% rename from de.upb.swt.soot.core/src/test/java/categories/Java8Test.java rename to de.upb.sse.sootup.core/src/test/java/categories/Java8Test.java diff --git a/de.upb.sse.sootup.core/src/test/java/de/upb/sse/sootup/core/graph/BlockGraphTest.java b/de.upb.sse.sootup.core/src/test/java/de/upb/sse/sootup/core/graph/BlockGraphTest.java new file mode 100644 index 00000000000..4574e90a494 --- /dev/null +++ b/de.upb.sse.sootup.core/src/test/java/de/upb/sse/sootup/core/graph/BlockGraphTest.java @@ -0,0 +1,20 @@ +package de.upb.sse.sootup.core.graph; + +import static org.junit.Assert.*; + +import categories.Java8Test; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class BlockGraphTest { + + @Test + public void testSingleStmtInBlock() {} + + @Test + public void testMultipleStmtInBlock() {} + + @Test + public void testSingleBlock() {} +} diff --git a/de.upb.swt.soot.core/src/test/java/de/upb/swt/soot/core/graph/StmtGraphTest.java b/de.upb.sse.sootup.core/src/test/java/de/upb/sse/sootup/core/graph/StmtGraphTest.java similarity index 95% rename from de.upb.swt.soot.core/src/test/java/de/upb/swt/soot/core/graph/StmtGraphTest.java rename to de.upb.sse.sootup.core/src/test/java/de/upb/sse/sootup/core/graph/StmtGraphTest.java index 46a1795c662..d77b2ed1ca3 100644 --- a/de.upb.swt.soot.core/src/test/java/de/upb/swt/soot/core/graph/StmtGraphTest.java +++ b/de.upb.sse.sootup.core/src/test/java/de/upb/sse/sootup/core/graph/StmtGraphTest.java @@ -1,14 +1,15 @@ -package de.upb.swt.soot.core.graph; +package de.upb.sse.sootup.core.graph; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.Arrays; import java.util.Collections; import java.util.LinkedHashSet; +import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -25,7 +26,7 @@ public void copyOfImmutable() { final ImmutableStmtGraph immutableGraph = ImmutableStmtGraph.copyOf(graph); - assertEquals(graph.getStartingStmt(), immutableGraph.getStartingStmt()); + Assert.assertEquals(graph.getStartingStmt(), immutableGraph.getStartingStmt()); assertEquals(graph.nodes().size(), immutableGraph.nodes().size()); assertEquals( Collections.unmodifiableSet(new LinkedHashSet<>(Arrays.asList(stmt1, stmt2))), @@ -66,7 +67,7 @@ public void copyOf() { final StmtGraph graph2 = new MutableStmtGraph(graph); - assertEquals(graph.getStartingStmt(), graph2.getStartingStmt()); + Assert.assertEquals(graph.getStartingStmt(), graph2.getStartingStmt()); assertEquals(graph.nodes().size(), graph2.nodes().size()); assertEquals( Collections.unmodifiableSet(new LinkedHashSet<>(Arrays.asList(stmt1, stmt2))), @@ -104,8 +105,8 @@ public void setEdgesSimple() { assertTrue(graph.successors(stmt1).contains(stmt3)); // order of stmts - assertEquals(stmt2, graph.successors(stmt1).get(0)); - assertEquals(stmt3, graph.successors(stmt1).get(1)); + Assert.assertEquals(stmt2, graph.successors(stmt1).get(0)); + Assert.assertEquals(stmt3, graph.successors(stmt1).get(1)); } @Test diff --git a/de.upb.swt.soot.core/src/test/java/de/upb/swt/soot/core/util/printer/AbstractStmtPrinterTest.java b/de.upb.sse.sootup.core/src/test/java/de/upb/sse/sootup/core/util/printer/AbstractStmtPrinterTest.java similarity index 88% rename from de.upb.swt.soot.core/src/test/java/de/upb/swt/soot/core/util/printer/AbstractStmtPrinterTest.java rename to de.upb.sse.sootup.core/src/test/java/de/upb/sse/sootup/core/util/printer/AbstractStmtPrinterTest.java index 933d86498e3..bac2c1091f1 100644 --- a/de.upb.swt.soot.core/src/test/java/de/upb/swt/soot/core/util/printer/AbstractStmtPrinterTest.java +++ b/de.upb.sse.sootup.core/src/test/java/de/upb/sse/sootup/core/util/printer/AbstractStmtPrinterTest.java @@ -1,15 +1,15 @@ -package de.upb.swt.soot.core.util.printer; +package de.upb.sse.sootup.core.util.printer; import static org.junit.Assert.*; import categories.Java8Test; import com.google.common.base.Objects; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.VoidType; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.VoidType; import java.util.Collections; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.bytecode/lib/dex-tools-2.2-SNAPSHOT.jar b/de.upb.sse.sootup.java.bytecode/lib/dex-tools-2.2-SNAPSHOT.jar similarity index 100% rename from de.upb.swt.soot.java.bytecode/lib/dex-tools-2.2-SNAPSHOT.jar rename to de.upb.sse.sootup.java.bytecode/lib/dex-tools-2.2-SNAPSHOT.jar diff --git a/de.upb.sse.sootup.java.bytecode/pom.xml b/de.upb.sse.sootup.java.bytecode/pom.xml new file mode 100644 index 00000000000..67a647950b8 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/pom.xml @@ -0,0 +1,45 @@ + + 4.0.0 + + SootUp Java Bytecode Frontend + sootup.java.bytecode + jar + + de.upb.sse + sootup + 1.0.0-SNAPSHOT + + + + + de.upb.sse + sootup.core + 1.0.0-SNAPSHOT + + + de.upb.sse + sootup.java.core + 1.0.0-SNAPSHOT + + + org.ow2.asm + asm-util + 9.1 + + + org.ow2.asm + asm-commons + 9.1 + + + com.googlecode.d2j + dex-tools + 2.2-SNAPSHOT + + + + + + diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmAnnotationClassSource.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmAnnotationClassSource.java similarity index 88% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmAnnotationClassSource.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmAnnotationClassSource.java index 69573531bd1..435b02918f3 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmAnnotationClassSource.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmAnnotationClassSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L @@ -22,21 +22,21 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.model.*; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.java.core.AnnotationUsage; -import de.upb.swt.soot.java.core.JavaAnnotationSootClassSource; -import de.upb.swt.soot.java.core.JavaAnnotationSootMethod; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaSootField; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.model.*; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.java.core.AnnotationUsage; +import de.upb.sse.sootup.java.core.JavaAnnotationSootClassSource; +import de.upb.sse.sootup.java.core.JavaAnnotationSootMethod; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaSootField; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmClassSource.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmClassSource.java similarity index 91% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmClassSource.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmClassSource.java index 2d9e99dacc9..7554b85e3c7 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmClassSource.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmClassSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L @@ -22,17 +22,17 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.model.*; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.java.core.*; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.model.*; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.java.core.*; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.nio.file.Path; import java.util.*; import java.util.stream.Collectors; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmJavaClassProvider.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmJavaClassProvider.java similarity index 79% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmJavaClassProvider.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmJavaClassProvider.java index a1bc9ed8f30..9d6dd94abc5 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmJavaClassProvider.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmJavaClassProvider.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,19 +20,19 @@ * . * #L% */ -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ClassProvider; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.FileType; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.types.AnnotationType; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ClassProvider; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.FileType; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.types.AnnotationType; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.io.IOException; import java.nio.file.Path; import java.util.List; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmMethodSource.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmMethodSource.java similarity index 95% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmMethodSource.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmMethodSource.java index efdb45f9b51..50ce040b3a3 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmMethodSource.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmMethodSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -40,60 +40,60 @@ import com.google.common.base.Suppliers; import com.google.common.collect.*; -import de.upb.swt.soot.core.frontend.BodySource; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.DoubleConstant; -import de.upb.swt.soot.core.jimple.common.constant.FloatConstant; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.constant.LongConstant; -import de.upb.swt.soot.core.jimple.common.constant.MethodHandle; -import de.upb.swt.soot.core.jimple.common.constant.NullConstant; -import de.upb.swt.soot.core.jimple.common.expr.AbstractBinopExpr; -import de.upb.swt.soot.core.jimple.common.expr.AbstractConditionExpr; -import de.upb.swt.soot.core.jimple.common.expr.AbstractInstanceInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.AbstractInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.AbstractUnopExpr; -import de.upb.swt.soot.core.jimple.common.expr.Expr; -import de.upb.swt.soot.core.jimple.common.expr.JAddExpr; -import de.upb.swt.soot.core.jimple.common.expr.JCastExpr; -import de.upb.swt.soot.core.jimple.common.expr.JDynamicInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JInstanceOfExpr; -import de.upb.swt.soot.core.jimple.common.expr.JNewArrayExpr; -import de.upb.swt.soot.core.jimple.common.expr.JNewMultiArrayExpr; -import de.upb.swt.soot.core.jimple.common.expr.JStaticInvokeExpr; -import de.upb.swt.soot.core.jimple.common.ref.JArrayRef; -import de.upb.swt.soot.core.jimple.common.ref.JCaughtExceptionRef; -import de.upb.swt.soot.core.jimple.common.ref.JFieldRef; -import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef; -import de.upb.swt.soot.core.jimple.common.stmt.AbstractDefinitionStmt; -import de.upb.swt.soot.core.jimple.common.stmt.AbstractOpStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JGotoStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JInvokeStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JThrowStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.ArrayType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.jimple.basic.JavaLocal; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.frontend.BodySource; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.DoubleConstant; +import de.upb.sse.sootup.core.jimple.common.constant.FloatConstant; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.constant.LongConstant; +import de.upb.sse.sootup.core.jimple.common.constant.MethodHandle; +import de.upb.sse.sootup.core.jimple.common.constant.NullConstant; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractBinopExpr; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractConditionExpr; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInstanceInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractUnopExpr; +import de.upb.sse.sootup.core.jimple.common.expr.Expr; +import de.upb.sse.sootup.core.jimple.common.expr.JAddExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JCastExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JDynamicInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JInstanceOfExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JNewArrayExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JNewMultiArrayExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JStaticInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.ref.JArrayRef; +import de.upb.sse.sootup.core.jimple.common.ref.JCaughtExceptionRef; +import de.upb.sse.sootup.core.jimple.common.ref.JFieldRef; +import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef; +import de.upb.sse.sootup.core.jimple.common.stmt.AbstractDefinitionStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.AbstractOpStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JGotoStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JInvokeStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JThrowStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.jimple.basic.JavaLocal; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import java.util.Map.Entry; import java.util.function.Supplier; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmModuleSource.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmModuleSource.java similarity index 94% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmModuleSource.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmModuleSource.java index 67a027e65c3..4af78ca68dc 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmModuleSource.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmModuleSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,12 +21,12 @@ * #L% */ import com.google.common.base.Suppliers; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.JavaModuleInfo; -import de.upb.swt.soot.java.core.ModuleModifier; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaModuleInfo; +import de.upb.sse.sootup.java.core.ModuleModifier; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmUtil.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmUtil.java similarity index 94% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmUtil.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmUtil.java index e6a7b667f02..18efa2378ec 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/AsmUtil.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/AsmUtil.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,19 +20,19 @@ * . * #L% */ -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.jimple.common.constant.ClassConstant; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.java.core.AnnotationUsage; -import de.upb.swt.soot.java.core.ConstantUtil; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.ModuleModifier; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.AnnotationType; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.jimple.common.constant.ClassConstant; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.java.core.AnnotationUsage; +import de.upb.sse.sootup.java.core.ConstantUtil; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.ModuleModifier; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.AnnotationType; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/BranchedInsnInfo.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/BranchedInsnInfo.java similarity index 97% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/BranchedInsnInfo.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/BranchedInsnInfo.java index f6466478e7c..2e8e46d76e0 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/BranchedInsnInfo.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/BranchedInsnInfo.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/NonIndexOutofBoundsArrayList.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/NonIndexOutofBoundsArrayList.java similarity index 97% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/NonIndexOutofBoundsArrayList.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/NonIndexOutofBoundsArrayList.java index 7b3c0001bcd..74b2dcd4899 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/NonIndexOutofBoundsArrayList.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/NonIndexOutofBoundsArrayList.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/Operand.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/Operand.java similarity index 93% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/Operand.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/Operand.java index f9b708c666f..c40dfeaadcd 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/Operand.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/Operand.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,11 +20,11 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.expr.Expr; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.visitor.ReplaceUseStmtVisitor; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.expr.Expr; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.visitor.ReplaceUseStmtVisitor; import java.util.ArrayList; import java.util.List; import java.util.Objects; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/OperandStack.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/OperandStack.java similarity index 92% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/OperandStack.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/OperandStack.java index 601a426de8b..3c2ba5145a2 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/OperandStack.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/OperandStack.java @@ -20,14 +20,14 @@ * #L% */ -package de.upb.swt.soot.java.bytecode.frontend; - -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.Constant; -import de.upb.swt.soot.core.types.Type; +package de.upb.sse.sootup.java.bytecode.frontend; + +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.Constant; +import de.upb.sse.sootup.core.types.Type; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/StackFrame.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/StackFrame.java similarity index 92% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/StackFrame.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/StackFrame.java index eb444df974e..a13a1f4ba6b 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/StackFrame.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/StackFrame.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,14 +20,14 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.stmt.AbstractDefinitionStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.stmt.AbstractDefinitionStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.ArrayList; import javax.annotation.Nonnull; import javax.annotation.Nullable; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/StmtContainer.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/StmtContainer.java similarity index 92% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/StmtContainer.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/StmtContainer.java index 15820fbd3f5..ea8085a6a19 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/frontend/StmtContainer.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/frontend/StmtContainer.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,10 +20,10 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.visitor.StmtVisitor; -import de.upb.swt.soot.core.util.printer.StmtPrinter; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.visitor.StmtVisitor; +import de.upb.sse.sootup.core.util.printer.StmtPrinter; import java.util.Collection; import java.util.LinkedList; import java.util.List; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/BytecodeClassLoadingOptions.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/BytecodeClassLoadingOptions.java similarity index 82% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/BytecodeClassLoadingOptions.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/BytecodeClassLoadingOptions.java index cfd1249fef8..6ccb2d17c94 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/BytecodeClassLoadingOptions.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/BytecodeClassLoadingOptions.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.inputlocation; +package de.upb.sse.sootup.java.bytecode.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,9 +20,9 @@ * . * #L% */ -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.java.bytecode.interceptors.BytecodeBodyInterceptors; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.java.bytecode.interceptors.BytecodeBodyInterceptors; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/JavaClassPathAnalysisInputLocation.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/JavaClassPathAnalysisInputLocation.java similarity index 94% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/JavaClassPathAnalysisInputLocation.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/JavaClassPathAnalysisInputLocation.java index f0dc20c594a..a1eb4a8eee5 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/JavaClassPathAnalysisInputLocation.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/JavaClassPathAnalysisInputLocation.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.inputlocation; +package de.upb.sse.sootup.java.bytecode.inputlocation; /*- * #%L @@ -22,14 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.PathUtils; -import de.upb.swt.soot.core.util.StreamUtils; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.core.JavaSootClass; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.PathUtils; +import de.upb.sse.sootup.core.util.StreamUtils; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.core.JavaSootClass; import java.io.*; import java.nio.file.*; import java.util.*; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocation.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocation.java similarity index 86% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocation.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocation.java index e025819fbfb..670525a0ad4 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocation.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocation.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.inputlocation; +package de.upb.sse.sootup.java.bytecode.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,20 +21,20 @@ * #L% */ import com.google.common.base.Preconditions; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ClassProvider; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.types.*; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.JavaModuleInfo; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.ModuleInfoAnalysisInputLocation; -import de.upb.swt.soot.java.core.signatures.ModulePackageName; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ClassProvider; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.types.*; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaModuleInfo; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.ModuleInfoAnalysisInputLocation; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.util.Collection; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocation.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocation.java similarity index 89% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocation.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocation.java index 3b31a53b5c5..e4d8d77f6ac 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocation.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocation.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.inputlocation; +package de.upb.sse.sootup.java.bytecode.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,23 +21,23 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ClassProvider; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.StreamUtils; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.bytecode.frontend.AsmJavaClassProvider; -import de.upb.swt.soot.java.bytecode.frontend.AsmModuleSource; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.JavaModuleInfo; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.ModuleInfoAnalysisInputLocation; -import de.upb.swt.soot.java.core.signatures.ModulePackageName; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ClassProvider; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.StreamUtils; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.bytecode.frontend.AsmJavaClassProvider; +import de.upb.sse.sootup.java.bytecode.frontend.AsmModuleSource; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaModuleInfo; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.ModuleInfoAnalysisInputLocation; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.io.IOException; import java.net.URI; import java.nio.file.DirectoryStream; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/ModuleFinder.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/ModuleFinder.java similarity index 94% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/ModuleFinder.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/ModuleFinder.java index 25702f612c4..60eee8521ad 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/ModuleFinder.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/ModuleFinder.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.inputlocation; +package de.upb.sse.sootup.java.bytecode.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,16 +20,16 @@ * . * #L% */ -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.util.PathUtils; -import de.upb.swt.soot.java.bytecode.frontend.AsmJavaClassProvider; -import de.upb.swt.soot.java.bytecode.frontend.AsmModuleSource; -import de.upb.swt.soot.java.bytecode.interceptors.BytecodeBodyInterceptors; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.JavaModuleInfo; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.util.PathUtils; +import de.upb.sse.sootup.java.bytecode.frontend.AsmJavaClassProvider; +import de.upb.sse.sootup.java.bytecode.frontend.AsmModuleSource; +import de.upb.sse.sootup.java.bytecode.interceptors.BytecodeBodyInterceptors; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaModuleInfo; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; import java.io.File; import java.io.IOException; import java.nio.file.*; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/PathBasedAnalysisInputLocation.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/PathBasedAnalysisInputLocation.java similarity index 96% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/PathBasedAnalysisInputLocation.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/PathBasedAnalysisInputLocation.java index 9d79f3071c2..f5eb1e428f9 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/inputlocation/PathBasedAnalysisInputLocation.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/inputlocation/PathBasedAnalysisInputLocation.java @@ -1,29 +1,29 @@ -package de.upb.swt.soot.java.bytecode.inputlocation; +package de.upb.sse.sootup.java.bytecode.inputlocation; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.cache.RemovalNotification; import com.googlecode.dex2jar.tools.Dex2jarCmd; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ClassProvider; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.FileType; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.PathUtils; -import de.upb.swt.soot.core.util.StreamUtils; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.bytecode.frontend.AsmJavaClassProvider; -import de.upb.swt.soot.java.bytecode.frontend.AsmModuleSource; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.JavaModuleInfo; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.ModuleInfoAnalysisInputLocation; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.types.ModuleJavaClassType; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ClassProvider; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.FileType; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.PathUtils; +import de.upb.sse.sootup.core.util.StreamUtils; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.bytecode.frontend.AsmJavaClassProvider; +import de.upb.sse.sootup.java.bytecode.frontend.AsmModuleSource; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaModuleInfo; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.ModuleInfoAnalysisInputLocation; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.types.ModuleJavaClassType; import java.io.*; import java.nio.file.*; import java.util.*; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/Aggregator.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/Aggregator.java similarity index 91% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/Aggregator.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/Aggregator.java index 3e14a428bc6..8516d9dcef0 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/Aggregator.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/Aggregator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,18 +20,18 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.expr.AbstractBinopExpr; -import de.upb.swt.soot.core.jimple.common.expr.AbstractInstanceInvokeExpr; -import de.upb.swt.soot.core.jimple.common.ref.JArrayRef; -import de.upb.swt.soot.core.jimple.common.ref.JFieldRef; -import de.upb.swt.soot.core.jimple.common.stmt.*; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.BodyUtils; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractBinopExpr; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInstanceInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.ref.JArrayRef; +import de.upb.sse.sootup.core.jimple.common.ref.JFieldRef; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.BodyUtils; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/BytecodeBodyInterceptors.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/BytecodeBodyInterceptors.java similarity index 94% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/BytecodeBodyInterceptors.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/BytecodeBodyInterceptors.java index ab852036b8e..39021ce6bf3 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/BytecodeBodyInterceptors.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/BytecodeBodyInterceptors.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,7 +20,7 @@ * . * #L% */ -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.Arrays; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/CastAndReturnInliner.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/CastAndReturnInliner.java similarity index 86% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/CastAndReturnInliner.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/CastAndReturnInliner.java index ab98d805381..0ebf1ed895e 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/CastAndReturnInliner.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/CastAndReturnInliner.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,16 +20,16 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.expr.JCastExpr; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JGotoStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.expr.JCastExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JGotoStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/ConditionalBranchFolder.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/ConditionalBranchFolder.java similarity index 88% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/ConditionalBranchFolder.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/ConditionalBranchFolder.java index 04778fbe9aa..8669685ef69 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/ConditionalBranchFolder.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/ConditionalBranchFolder.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,13 +21,13 @@ * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.JIfStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.JIfStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.ArrayDeque; import java.util.Deque; import java.util.List; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/ConstantPropagatorAndFolder.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/ConstantPropagatorAndFolder.java similarity index 84% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/ConstantPropagatorAndFolder.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/ConstantPropagatorAndFolder.java index ca5064fd95b..1a744c9bdc2 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/ConstantPropagatorAndFolder.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/ConstantPropagatorAndFolder.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,18 +20,18 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.*; -import de.upb.swt.soot.core.jimple.common.expr.*; -import de.upb.swt.soot.core.jimple.common.stmt.AbstractDefinitionStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.BodyUtils; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.*; +import de.upb.sse.sootup.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.stmt.AbstractDefinitionStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.BodyUtils; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/CopyPropagator.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/CopyPropagator.java similarity index 81% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/CopyPropagator.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/CopyPropagator.java index 3051499c21c..37d687a4b12 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/CopyPropagator.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/CopyPropagator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,20 +21,20 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.Constant; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.constant.LongConstant; -import de.upb.swt.soot.core.jimple.common.constant.NullConstant; -import de.upb.swt.soot.core.jimple.common.expr.JCastExpr; -import de.upb.swt.soot.core.jimple.common.stmt.AbstractDefinitionStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.BodyUtils; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.ReferenceType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.Constant; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.constant.LongConstant; +import de.upb.sse.sootup.core.jimple.common.constant.NullConstant; +import de.upb.sse.sootup.core.jimple.common.expr.JCastExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.AbstractDefinitionStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.BodyUtils; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.ReferenceType; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/DeadAssignmentEliminator.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/DeadAssignmentEliminator.java similarity index 89% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/DeadAssignmentEliminator.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/DeadAssignmentEliminator.java index 04c2af43852..6d42fffe528 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/DeadAssignmentEliminator.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/DeadAssignmentEliminator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,25 +20,25 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.constant.NullConstant; -import de.upb.swt.soot.core.jimple.common.expr.*; -import de.upb.swt.soot.core.jimple.common.ref.JArrayRef; -import de.upb.swt.soot.core.jimple.common.ref.JFieldRef; -import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.BodyUtils; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.*; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.constant.NullConstant; +import de.upb.sse.sootup.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.ref.JArrayRef; +import de.upb.sse.sootup.core.jimple.common.ref.JFieldRef; +import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.BodyUtils; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.*; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/DuplicateCatchAllTrapRemover.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/DuplicateCatchAllTrapRemover.java similarity index 94% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/DuplicateCatchAllTrapRemover.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/DuplicateCatchAllTrapRemover.java index 83e14e523db..1909d50e570 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/DuplicateCatchAllTrapRemover.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/DuplicateCatchAllTrapRemover.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,10 +20,10 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/EmptySwitchEliminator.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/EmptySwitchEliminator.java similarity index 80% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/EmptySwitchEliminator.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/EmptySwitchEliminator.java index 9d670d0ad13..d23fc7670a1 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/EmptySwitchEliminator.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/EmptySwitchEliminator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,13 +20,13 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.JGotoStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.JGotoStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.Iterator; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/Evaluator.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/Evaluator.java similarity index 96% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/Evaluator.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/Evaluator.java index 953f92f1b3c..516240141a5 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/Evaluator.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/Evaluator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.*; -import de.upb.swt.soot.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.*; +import de.upb.sse.sootup.core.jimple.common.expr.*; /** * Evaluates, whether a value is constant and computes its constant value, if possible. diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalLivenessAnalyser.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalLivenessAnalyser.java similarity index 94% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalLivenessAnalyser.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalLivenessAnalyser.java index 1d87fccb9fc..00a69e87ba2 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalLivenessAnalyser.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalLivenessAnalyser.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.graph.ExceptionalStmtGraph; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.graph.ExceptionalStmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalNameStandardizer.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalNameStandardizer.java similarity index 90% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalNameStandardizer.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalNameStandardizer.java index 0a00667d415..ea45751e702 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalNameStandardizer.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalNameStandardizer.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,17 +20,17 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.ExceptionalStmtGraph; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.BodyUtils; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.NullType; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.UnknownType; +import de.upb.sse.sootup.core.graph.ExceptionalStmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.BodyUtils; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.NullType; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.UnknownType; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalPacker.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalPacker.java similarity index 95% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalPacker.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalPacker.java index 60cd88ad0cd..842c9a81a52 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalPacker.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalPacker.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,16 +20,16 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.ExceptionalStmtGraph; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.BodyUtils; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.Type; +import de.upb.sse.sootup.core.graph.ExceptionalStmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.BodyUtils; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.Type; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalSplitter.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalSplitter.java similarity index 96% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalSplitter.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalSplitter.java index 412d5807d79..6337e161cd3 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/LocalSplitter.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/LocalSplitter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L @@ -22,16 +22,16 @@ * #L% */ -import de.upb.swt.soot.core.graph.ExceptionalStmtGraph; -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Body.BodyBuilder; -import de.upb.swt.soot.core.model.BodyUtils; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.graph.ExceptionalStmtGraph; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Body.BodyBuilder; +import de.upb.sse.sootup.core.model.BodyUtils; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.*; import javax.annotation.Nonnull; import javax.annotation.Nullable; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/NopEliminator.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/NopEliminator.java similarity index 87% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/NopEliminator.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/NopEliminator.java index f1b42c67340..ca78dae0ccf 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/NopEliminator.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/NopEliminator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L @@ -21,11 +21,11 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/StaticSingleAssignmentFormer.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/StaticSingleAssignmentFormer.java similarity index 94% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/StaticSingleAssignmentFormer.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/StaticSingleAssignmentFormer.java index 3730b73ffea..137a1b2ce91 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/StaticSingleAssignmentFormer.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/StaticSingleAssignmentFormer.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L @@ -22,19 +22,19 @@ * #L% */ -import de.upb.swt.soot.core.graph.Block; -import de.upb.swt.soot.core.graph.BlockGraph; -import de.upb.swt.soot.core.graph.DominanceFinder; -import de.upb.swt.soot.core.graph.DominanceTree; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.expr.JPhiExpr; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.BodyUtils; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.graph.Block; +import de.upb.sse.sootup.core.graph.BlockGraph; +import de.upb.sse.sootup.core.graph.DominanceFinder; +import de.upb.sse.sootup.core.graph.DominanceTree; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.expr.JPhiExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.BodyUtils; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/TrapTightener.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/TrapTightener.java similarity index 92% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/TrapTightener.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/TrapTightener.java index b92269215c5..d816a799fcf 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/TrapTightener.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/TrapTightener.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L @@ -22,13 +22,13 @@ * #L% */ -import de.upb.swt.soot.core.graph.ExceptionalStmtGraph; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JEnterMonitorStmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JExitMonitorStmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.graph.ExceptionalStmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JEnterMonitorStmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JExitMonitorStmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/TypeAssigner.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/TypeAssigner.java similarity index 89% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/TypeAssigner.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/TypeAssigner.java index 3a09b1513c0..e47468ab07a 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/TypeAssigner.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/TypeAssigner.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,8 +21,8 @@ * #L% */ -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import javax.annotation.Nonnull; // https://github.com/Sable/soot/blob/master/src/main/java/soot/jimple/toolkits/typing/TypeAssigner.java diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/UnreachableCodeEliminator.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/UnreachableCodeEliminator.java similarity index 88% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/UnreachableCodeEliminator.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/UnreachableCodeEliminator.java index c530f6f3e74..9625601cc93 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/UnreachableCodeEliminator.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/UnreachableCodeEliminator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,11 +20,11 @@ * . * #L% */ -import de.upb.swt.soot.core.graph.ExceptionalStmtGraph; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.graph.ExceptionalStmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/UnusedLocalEliminator.java b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/UnusedLocalEliminator.java similarity index 85% rename from de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/UnusedLocalEliminator.java rename to de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/UnusedLocalEliminator.java index 5134a60e6ce..b0820046b0b 100644 --- a/de.upb.swt.soot.java.bytecode/src/main/java/de/upb/swt/soot/java/bytecode/interceptors/UnusedLocalEliminator.java +++ b/de.upb.sse.sootup.java.bytecode/src/main/java/de/upb/sse/sootup/java/bytecode/interceptors/UnusedLocalEliminator.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.bytecode.interceptors; +package de.upb.sse.sootup.java.bytecode.interceptors; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,11 +21,11 @@ * #L% * */ -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.LinkedHashSet; import java.util.Set; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/categories/Java8Test.java b/de.upb.sse.sootup.java.bytecode/src/test/java/categories/Java8Test.java similarity index 100% rename from de.upb.swt.soot.java.bytecode/src/test/java/categories/Java8Test.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/categories/Java8Test.java diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/categories/Java9Test.java b/de.upb.sse.sootup.java.bytecode/src/test/java/categories/Java9Test.java similarity index 100% rename from de.upb.swt.soot.java.bytecode/src/test/java/categories/Java9Test.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/categories/Java9Test.java diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/java/bytecode/frontend/AsmMethodSourceTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/java/bytecode/frontend/AsmMethodSourceTest.java new file mode 100644 index 00000000000..ff983d9116a --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/java/bytecode/frontend/AsmMethodSourceTest.java @@ -0,0 +1,58 @@ +package de.upb.sse.sootup.java.bytecode.frontend; + +import static junit.framework.TestCase.fail; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; +import java.util.Arrays; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class AsmMethodSourceTest { + + @Test + @Ignore("FIXME") + public void testFix_StackUnderrun_convertPutFieldInsn_init() { + + double version = Double.parseDouble(System.getProperty("java.specification.version")); + if (version > 1.8) { + fail("The rt.jar is not available after Java 8. You are using version " + version); + } + + JavaProject javaProject = + JavaProject.builder(new JavaLanguage(8)) + .addInputLocation( + new JavaClassPathAnalysisInputLocation( + System.getProperty("java.home") + "/lib/rt.jar")) + .build(); + + JavaView view = javaProject.createOnDemandView(); + + JavaClassType mainClassSignature = + JavaIdentifierFactory.getInstance() + .getClassType("javax.management.NotificationBroadcasterSupport"); + MethodSignature mainMethodSignature = + JavaIdentifierFactory.getInstance() + .getMethodSignature( + mainClassSignature, + "", + "void", + Arrays.asList( + "java.util.concurrent.Executor", "javax.management.MBeanNotificationInfo[]")); + + final SootClass abstractClass = view.getClass(mainClassSignature).get(); + + final SootMethod method = abstractClass.getMethod(mainMethodSignature.getSubSignature()).get(); + method.getBody().getStmts(); + } +} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/java/bytecode/frontend/JavaModuleViewTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/java/bytecode/frontend/JavaModuleViewTest.java similarity index 97% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/java/bytecode/frontend/JavaModuleViewTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/java/bytecode/frontend/JavaModuleViewTest.java index 0f60b7bbb57..1aa4a63db0f 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/java/bytecode/frontend/JavaModuleViewTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/java/bytecode/frontend/JavaModuleViewTest.java @@ -1,16 +1,20 @@ -package de.upb.swt.soot.java.bytecode.frontend; +package de.upb.sse.sootup.java.bytecode.frontend; import static org.junit.Assert.*; import categories.Java9Test; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaModulePathAnalysisInputLocation; -import de.upb.swt.soot.java.bytecode.inputlocation.JrtFileSystemAnalysisInputLocation; -import de.upb.swt.soot.java.core.*; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.signatures.ModulePackageName; -import de.upb.swt.soot.java.core.types.ModuleJavaClassType; -import de.upb.swt.soot.java.core.views.JavaModuleView; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaModulePathAnalysisInputLocation; +import de.upb.sse.sootup.java.bytecode.inputlocation.JrtFileSystemAnalysisInputLocation; +import de.upb.sse.sootup.java.core.*; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaModuleInfo; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.java.core.types.ModuleJavaClassType; +import de.upb.sse.sootup.java.core.views.JavaModuleView; import java.util.Collection; import java.util.Optional; import org.junit.Ignore; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocationTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocationTest.java similarity index 89% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocationTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocationTest.java index 30c95a95f0d..8ae5655e7bd 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocationTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/java/bytecode/inputlocation/JavaModulePathAnalysisInputLocationTest.java @@ -1,17 +1,17 @@ -package de.upb.swt.soot.java.bytecode.inputlocation; +package de.upb.sse.sootup.java.bytecode.inputlocation; import static org.junit.Assert.*; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.inputlocation.DefaultSourceTypeSpecifier; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.*; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.signatures.ModulePackageName; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaModuleView; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.inputlocation.DefaultSourceTypeSpecifier; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.*; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaModuleView; import java.util.Collection; import java.util.Collections; import java.util.Optional; diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/Soot1577.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/Soot1577.java new file mode 100644 index 00000000000..9d5bf13614f --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/Soot1577.java @@ -0,0 +1,32 @@ +package de.upb.sse.sootup.test.java.bytecode; + +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.java.bytecode.inputlocation.BytecodeClassLoadingOptions; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; +import org.junit.Assert; +import org.junit.Test; + +public class Soot1577 { + final String directory = "../shared-test-resources/soot-1577/"; + + @Test + public void test() { + AnalysisInputLocation inputLocation = + new JavaClassPathAnalysisInputLocation(directory); + + JavaProject project = + JavaProject.builder(new JavaLanguage(7)).addInputLocation(inputLocation).build(); + + JavaView view = + project.createOnDemandView(analysisInputLocation -> BytecodeClassLoadingOptions.Default); + + Assert.assertEquals(1, view.getClasses().size()); + + view.getClasses().stream().findFirst().get().getMethods().forEach(SootMethod::getBody); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/Soot1580.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/Soot1580.java new file mode 100644 index 00000000000..7a7987a91b6 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/Soot1580.java @@ -0,0 +1,41 @@ +package de.upb.sse.sootup.test.java.bytecode; + +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.bytecode.inputlocation.BytecodeClassLoadingOptions; +import de.upb.sse.sootup.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; +import java.nio.file.Path; +import java.nio.file.Paths; +import org.junit.Assert; +import org.junit.Test; + +public class Soot1580 { + final Path jar = Paths.get("../shared-test-resources/soot-1580/jpush-android_v3.0.5.jar"); + + @Test + public void test() { + AnalysisInputLocation inputLocation = + new PathBasedAnalysisInputLocation(jar, null); + + JavaProject project = + JavaProject.builder(new JavaLanguage(7)).addInputLocation(inputLocation).build(); + + JavaView view = + project.createOnDemandView(analysisInputLocation -> BytecodeClassLoadingOptions.Default); + + Assert.assertEquals(91, view.getClasses().size()); + + ClassType clazzType = + JavaIdentifierFactory.getInstance().getClassType("cn.jpush.android.data.f"); + + Assert.assertTrue(view.getClass(clazzType).isPresent()); + + view.getClass(clazzType).get().getMethods().forEach(SootMethod::getBody); + } +} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/AnalysisInputLocationTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/AnalysisInputLocationTest.java similarity index 76% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/AnalysisInputLocationTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/AnalysisInputLocationTest.java index 09335e1455a..ab32eb54142 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/AnalysisInputLocationTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/AnalysisInputLocationTest.java @@ -1,19 +1,19 @@ -package de.upb.swt.soot.test.java.bytecode.inputlocation; +package de.upb.sse.sootup.test.java.bytecode.inputlocation; import static org.junit.Assert.*; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ClassProvider; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.bytecode.frontend.AsmJavaClassProvider; -import de.upb.swt.soot.java.bytecode.interceptors.BytecodeBodyInterceptors; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ClassProvider; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.bytecode.frontend.AsmJavaClassProvider; +import de.upb.sse.sootup.java.bytecode.interceptors.BytecodeBodyInterceptors; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collection; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocationTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocationTest.java similarity index 80% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocationTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocationTest.java index 77d7b19dfc8..5a0cb3f2ebf 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocationTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/JrtFileSystemAnalysisInputLocationTest.java @@ -1,19 +1,19 @@ -package de.upb.swt.soot.test.java.bytecode.inputlocation; +package de.upb.sse.sootup.test.java.bytecode.inputlocation; import static org.junit.Assert.*; import categories.Java9Test; -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.inputlocation.DefaultSourceTypeSpecifier; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.bytecode.inputlocation.JrtFileSystemAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.JavaModuleProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.inputlocation.DefaultSourceTypeSpecifier; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.bytecode.inputlocation.JrtFileSystemAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaModuleProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.Collection; import java.util.Collections; import java.util.Optional; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/JrtFileSystemNamespaceTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/JrtFileSystemNamespaceTest.java similarity index 100% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/JrtFileSystemNamespaceTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/JrtFileSystemNamespaceTest.java diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/ModuleFinderTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/ModuleFinderTest.java similarity index 84% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/ModuleFinderTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/ModuleFinderTest.java index 85964c4e3ba..08e2129b263 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/ModuleFinderTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/ModuleFinderTest.java @@ -1,14 +1,14 @@ -package de.upb.swt.soot.test.java.bytecode.inputlocation; +package de.upb.sse.sootup.test.java.bytecode.inputlocation; import static org.junit.Assert.*; import categories.Java9Test; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.java.bytecode.inputlocation.ModuleFinder; -import de.upb.swt.soot.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.java.bytecode.inputlocation.ModuleFinder; +import de.upb.sse.sootup.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; import java.nio.file.Paths; import java.util.Collection; import org.junit.Test; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/PathBasedAnalysisInputLocationTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/PathBasedAnalysisInputLocationTest.java similarity index 89% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/PathBasedAnalysisInputLocationTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/PathBasedAnalysisInputLocationTest.java index 46c16ad9f79..2839061b621 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/inputlocation/PathBasedAnalysisInputLocationTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/inputlocation/PathBasedAnalysisInputLocationTest.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.test.java.bytecode.inputlocation; +package de.upb.sse.sootup.test.java.bytecode.inputlocation; /*- * #%L @@ -26,29 +26,24 @@ import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.BodySource; -import de.upb.swt.soot.core.inputlocation.EagerInputLocation; -import de.upb.swt.soot.core.model.*; -import de.upb.swt.soot.core.signatures.FieldSubSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; -import de.upb.swt.soot.java.core.*; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.JavaModuleProject; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.ModuleInfoAnalysisInputLocation; -import de.upb.swt.soot.java.core.OverridingJavaClassSource; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.ModuleJavaClassType; -import de.upb.swt.soot.java.core.views.JavaModuleView; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.BodySource; +import de.upb.sse.sootup.core.inputlocation.EagerInputLocation; +import de.upb.sse.sootup.core.model.*; +import de.upb.sse.sootup.core.signatures.FieldSubSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; +import de.upb.sse.sootup.java.core.*; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.ModuleJavaClassType; +import de.upb.sse.sootup.java.core.views.JavaModuleView; +import de.upb.sse.sootup.java.core.views.JavaView; import java.io.File; import java.nio.file.Paths; import java.util.Collection; @@ -69,9 +64,9 @@ public class PathBasedAnalysisInputLocationTest extends AnalysisInputLocationTes @Test public void multiReleaseJar() { final ClassType classType = - getIdentifierFactory().getClassType("de.upb.swt.multirelease.Utility"); + getIdentifierFactory().getClassType("de.upb.sse.multirelease.Utility"); final ClassType classType2 = - getIdentifierFactory().getClassType("de.upb.swt.multirelease.Main"); + getIdentifierFactory().getClassType("de.upb.sse.multirelease.Main"); final JavaProject project_min = JavaProject.builder(new JavaLanguage(Integer.MIN_VALUE)) @@ -178,14 +173,14 @@ public void multiReleaseJar() { @Test public void modularMultiReleaseJar() { final ClassType utilityNoModule = - getIdentifierFactory().getClassType("de.upb.swt.multirelease.Utility"); + getIdentifierFactory().getClassType("de.upb.sse.multirelease.Utility"); final ModuleJavaClassType utilityModule = JavaModuleIdentifierFactory.getInstance() - .getClassType("de.upb.swt.multirelease/de.upb.swt.multirelease.Utility"); + .getClassType("de.upb.sse.multirelease/de.upb.sse.multirelease.Utility"); final ClassType classType2 = - getIdentifierFactory().getClassType("de.upb.swt.multirelease.Main"); + getIdentifierFactory().getClassType("de.upb.sse.multirelease.Main"); final JavaProject project_8 = JavaProject.builder(new JavaLanguage(8)) @@ -206,7 +201,7 @@ public void modularMultiReleaseJar() { final JavaModuleView view_9 = project_9.createOnDemandView(); ModuleSignature moduleSignature = - JavaModuleIdentifierFactory.getModuleSignature("de.upb.swt.multirelease"); + JavaModuleIdentifierFactory.getModuleSignature("de.upb.sse.multirelease"); Assert.assertEquals(Collections.singleton(moduleSignature), view_9.getNamedModules()); @@ -215,7 +210,7 @@ public void modularMultiReleaseJar() { Assert.assertEquals(1, view_9.getModuleClasses(moduleSignature).size()); Assert.assertEquals( - "de.upb.swt.multirelease.Utility", + "de.upb.sse.multirelease.Utility", view_9.getModuleClasses(moduleSignature).stream() .findAny() .get() @@ -279,7 +274,7 @@ public void testApk() { PathBasedAnalysisInputLocation pathBasedNamespace = new PathBasedAnalysisInputLocation(apk, null); final ClassType mainClass = - getIdentifierFactory().getClassType("de.upb.futuresoot.fields.MainActivity"); + getIdentifierFactory().getClassType("de.upb.sootup.fields.MainActivity"); testClassReceival(pathBasedNamespace, mainClass, 1); } diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/AggregatorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/AggregatorTest.java similarity index 79% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/AggregatorTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/AggregatorTest.java index f7b8ef53a97..da70fbf0205 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/AggregatorTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/AggregatorTest.java @@ -1,20 +1,20 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.assertEquals; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.expr.JAddExpr; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.Aggregator; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.expr.JAddExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.Aggregator; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/AssertUtils.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/AssertUtils.java similarity index 93% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/AssertUtils.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/AssertUtils.java index db119b13cf4..fc4c68d6e0c 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/AssertUtils.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/AssertUtils.java @@ -1,13 +1,13 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.*; import com.google.common.collect.Lists; -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; import java.util.List; import java.util.Set; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/CastAndReturnInlinerTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/CastAndReturnInlinerTest.java similarity index 88% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/CastAndReturnInlinerTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/CastAndReturnInlinerTest.java index 610566f76b6..831b9a93f55 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/CastAndReturnInlinerTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/CastAndReturnInlinerTest.java @@ -1,18 +1,18 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.CastAndReturnInliner; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.CastAndReturnInliner; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/ConditionalBranchFolderTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/ConditionalBranchFolderTest.java similarity index 81% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/ConditionalBranchFolderTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/ConditionalBranchFolderTest.java index c751ea0833e..9269911eeb5 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/ConditionalBranchFolderTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/ConditionalBranchFolderTest.java @@ -1,21 +1,21 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.assertEquals; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.constant.StringConstant; -import de.upb.swt.soot.core.jimple.common.expr.JEqExpr; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.ConditionalBranchFolder; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.constant.StringConstant; +import de.upb.sse.sootup.core.jimple.common.expr.JEqExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.ConditionalBranchFolder; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.Collections; import java.util.List; import java.util.Set; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/ConstantPropagatorAndFolderTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/ConstantPropagatorAndFolderTest.java similarity index 82% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/ConstantPropagatorAndFolderTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/ConstantPropagatorAndFolderTest.java index 221e58cfb12..51860630f42 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/ConstantPropagatorAndFolderTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/ConstantPropagatorAndFolderTest.java @@ -1,21 +1,21 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.assertEquals; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.expr.JAddExpr; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.ConstantPropagatorAndFolder; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.expr.JAddExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.ConstantPropagatorAndFolder; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; import java.util.Collections; import java.util.List; import java.util.Set; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/CopyPropagatorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/CopyPropagatorTest.java similarity index 90% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/CopyPropagatorTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/CopyPropagatorTest.java index ffadd19a23a..804e65f1b08 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/CopyPropagatorTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/CopyPropagatorTest.java @@ -1,25 +1,25 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.constant.LongConstant; -import de.upb.swt.soot.core.jimple.common.constant.NullConstant; -import de.upb.swt.soot.core.jimple.common.expr.AbstractConditionExpr; -import de.upb.swt.soot.core.jimple.common.expr.Expr; -import de.upb.swt.soot.core.jimple.common.expr.JCastExpr; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.CopyPropagator; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.constant.LongConstant; +import de.upb.sse.sootup.core.jimple.common.constant.NullConstant; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractConditionExpr; +import de.upb.sse.sootup.core.jimple.common.expr.Expr; +import de.upb.sse.sootup.core.jimple.common.expr.JCastExpr; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.CopyPropagator; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.Collections; import java.util.Set; import org.junit.Test; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/DeadAssignmentEliminatorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/DeadAssignmentEliminatorTest.java similarity index 75% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/DeadAssignmentEliminatorTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/DeadAssignmentEliminatorTest.java index 9e1c83991c7..029b40c6803 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/DeadAssignmentEliminatorTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/DeadAssignmentEliminatorTest.java @@ -1,21 +1,21 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.assertEquals; -import de.upb.swt.soot.core.graph.ImmutableStmtGraph; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.DeadAssignmentEliminator; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.graph.ImmutableStmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.DeadAssignmentEliminator; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/DuplicateCatchAllTrapRemoverTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/DuplicateCatchAllTrapRemoverTest.java similarity index 88% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/DuplicateCatchAllTrapRemoverTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/DuplicateCatchAllTrapRemoverTest.java index 7bce09b3ea5..b72f07eee19 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/DuplicateCatchAllTrapRemoverTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/DuplicateCatchAllTrapRemoverTest.java @@ -1,19 +1,19 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Body.BodyBuilder; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.DuplicateCatchAllTrapRemover; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Body.BodyBuilder; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.DuplicateCatchAllTrapRemover; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/EmptySwitchEliminatorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/EmptySwitchEliminatorTest.java similarity index 79% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/EmptySwitchEliminatorTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/EmptySwitchEliminatorTest.java index 661f7ea2e8e..b5408de9282 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/EmptySwitchEliminatorTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/EmptySwitchEliminatorTest.java @@ -1,20 +1,20 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.EmptySwitchEliminator; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.EmptySwitchEliminator; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalLivenessAnalyserTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalLivenessAnalyserTest.java similarity index 81% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalLivenessAnalyserTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalLivenessAnalyserTest.java index d27890bc726..e718d09197d 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalLivenessAnalyserTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalLivenessAnalyserTest.java @@ -1,20 +1,20 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.LocalLivenessAnalyser; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.LocalLivenessAnalyser; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.Collections; import java.util.Set; import org.junit.Test; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalNameStandardizerTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalNameStandardizerTest.java similarity index 82% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalNameStandardizerTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalNameStandardizerTest.java index 9ba05a84925..e14b5b22315 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalNameStandardizerTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalNameStandardizerTest.java @@ -1,27 +1,25 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; - -import static org.junit.Assert.*; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.BooleanConstant; -import de.upb.swt.soot.core.jimple.common.constant.DoubleConstant; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.expr.Expr; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.UnknownType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.LocalNameStandardizer; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.BooleanConstant; +import de.upb.sse.sootup.core.jimple.common.constant.DoubleConstant; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.expr.Expr; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.UnknownType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.LocalNameStandardizer; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalPackerTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalPackerTest.java similarity index 92% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalPackerTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalPackerTest.java index 349ab4e627c..a2be0ede194 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalPackerTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalPackerTest.java @@ -1,23 +1,23 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.LocalPacker; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.LocalPacker; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalSplitterTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalSplitterTest.java similarity index 95% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalSplitterTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalSplitterTest.java index 84818d0d9c1..3ce6640304c 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/LocalSplitterTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/LocalSplitterTest.java @@ -1,20 +1,20 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.LocalSplitter; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.LocalSplitter; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/NopEliminatorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/NopEliminatorTest.java similarity index 84% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/NopEliminatorTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/NopEliminatorTest.java index 95c51d4d47a..3c0f30a29c5 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/NopEliminatorTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/NopEliminatorTest.java @@ -1,18 +1,18 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.graph.ImmutableStmtGraph; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.NopEliminator; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.graph.ImmutableStmtGraph; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.NopEliminator; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/StaticSingleAssignmentFormerTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/StaticSingleAssignmentFormerTest.java similarity index 91% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/StaticSingleAssignmentFormerTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/StaticSingleAssignmentFormerTest.java index b0b02b659fd..1f6fb6166b7 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/StaticSingleAssignmentFormerTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/StaticSingleAssignmentFormerTest.java @@ -1,20 +1,20 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.StaticSingleAssignmentFormer; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.StaticSingleAssignmentFormer; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.Collections; import java.util.List; import java.util.Set; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/TrapTightenerTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/TrapTightenerTest.java similarity index 88% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/TrapTightenerTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/TrapTightenerTest.java index f13552d1f83..6a6b81b4362 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/TrapTightenerTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/TrapTightenerTest.java @@ -1,20 +1,20 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.TrapTightener; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.TrapTightener; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/UnreachableCodeEliminatorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/UnreachableCodeEliminatorTest.java similarity index 84% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/UnreachableCodeEliminatorTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/UnreachableCodeEliminatorTest.java index 84596abfa40..2aaeb37484d 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/UnreachableCodeEliminatorTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/UnreachableCodeEliminatorTest.java @@ -1,23 +1,23 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.UnreachableCodeEliminator; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.UnreachableCodeEliminator; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/UnusedLocalEliminatorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/UnusedLocalEliminatorTest.java similarity index 84% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/UnusedLocalEliminatorTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/UnusedLocalEliminatorTest.java index cfbd71b788f..418a03b6567 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/interceptors/UnusedLocalEliminatorTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/interceptors/UnusedLocalEliminatorTest.java @@ -1,17 +1,17 @@ -package de.upb.swt.soot.test.java.bytecode.interceptors; +package de.upb.sse.sootup.test.java.bytecode.interceptors; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.interceptors.UnusedLocalEliminator; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.interceptors.UnusedLocalEliminator; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.Collections; import java.util.Set; import org.junit.Test; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/MinimalBytecodeTestSuiteBase.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/MinimalBytecodeTestSuiteBase.java similarity index 84% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/MinimalBytecodeTestSuiteBase.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/MinimalBytecodeTestSuiteBase.java index 912fc6c2134..247a31519f4 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/MinimalBytecodeTestSuiteBase.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/MinimalBytecodeTestSuiteBase.java @@ -1,23 +1,23 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite; +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootMethod; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootMethod; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; import java.io.File; import java.util.Collections; import java.util.List; diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java10/TypeInferenceTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java10/TypeInferenceTest.java new file mode 100644 index 00000000000..fbaedeeeed9 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java10/TypeInferenceTest.java @@ -0,0 +1,78 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java10; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class TypeInferenceTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + /** + * + * + *

+   * public void printFile() throws Exception{
+   * var fileName="file.txt";
+   * var data = "";
+   * var fileReader= new FileReader(fileName);
+   * var bufferedReader= new BufferedReader(fileReader);
+   * while( (data= bufferedReader.readLine()) != null ){
+   * System.out.println(data);
+   * }
+   * bufferedReader.close();
+   * }
+   *
+   * public static void main(String[] args) throws Exception{
+   * TypeInference typeInference = new TypeInference();
+   * typeInference.printFile();
+   * }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TypeInference", + "l1 = \"file.txt\"", + "l2 = \"\"", + "$stack5 = new java.io.FileReader", + "specialinvoke $stack5.(java.lang.String)>(l1)", + "l3 = $stack5", + "$stack6 = new java.io.BufferedReader", + "specialinvoke $stack6.(java.io.Reader)>(l3)", + "l4 = $stack6", + "label1:", + "$stack9 = l4", + "$stack7 = virtualinvoke $stack9.()", + "l2 = $stack7", + "if $stack7 == null goto label2", + "$stack8 = ", + "virtualinvoke $stack8.(l2)", + "goto label1", + "label2:", + "virtualinvoke l4.()", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java11/TypeInferenceLambdaTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java11/TypeInferenceLambdaTest.java similarity index 88% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java11/TypeInferenceLambdaTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java11/TypeInferenceLambdaTest.java index 94828f916d4..bc2f5b49d8c 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java11/TypeInferenceLambdaTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java11/TypeInferenceLambdaTest.java @@ -1,8 +1,8 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java11; +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java11; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java14/SwitchExprWithoutBreakTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java14/SwitchExprWithoutBreakTest.java similarity index 94% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java14/SwitchExprWithoutBreakTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java14/SwitchExprWithoutBreakTest.java index 91ab23f7df6..28dd0cb8e87 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java14/SwitchExprWithoutBreakTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java14/SwitchExprWithoutBreakTest.java @@ -1,8 +1,8 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java14; +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java14; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java15/MultilineStringsTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java15/MultilineStringsTest.java similarity index 82% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java15/MultilineStringsTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java15/MultilineStringsTest.java index d7c955672dd..b4f2e35de95 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java15/MultilineStringsTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java15/MultilineStringsTest.java @@ -1,8 +1,8 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java15; +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java15; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AbstractClassTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AbstractClassTest.java new file mode 100644 index 00000000000..3389eedf6b4 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AbstractClassTest.java @@ -0,0 +1,58 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AbstractClassTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootClass clazz = loadClass(getDeclaredClassSignature()); + // The SuperClass is the abstract one + SootClass superClazz = loadClass(clazz.getSuperclass().get()); + assertTrue(superClazz.isAbstract()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "abstractClass", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void abstractClass(){
+   *         A obj = new AbstractClass();
+   *         obj.a();
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: AbstractClass", + "$stack2 = new AbstractClass", + "specialinvoke $stack2.()>()", + "l1 = $stack2", + "virtualinvoke l1.()", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AccessArraysTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AccessArraysTest.java new file mode 100644 index 00000000000..fc337b7177c --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AccessArraysTest.java @@ -0,0 +1,392 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AccessArraysTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts(method, expectedBodyStmtsIntArrays()); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts(method, expectedBodyStmtsByteArrays()); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts(method, expectedBodyStmtsShortArrays()); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts(method, expectedBodyStmtsLongArrays()); + + method = loadMethod(getMethodSignature("floatArrays")); + assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts(method, expectedBodyStmtsCharArrays()); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts(method, expectedBodyStmtsStringArrays()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void intArrays(){
+   *         int[] anArrayOfInts = {1, 2, 3};
+   *         int val;
+   *         for(int item: anArrayOfInts){
+   *             val = item;
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntArrays() { + return Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (int)[3]", + "$stack7[0] = 1", + "$stack7[1] = 2", + "$stack7[2] = 3", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void byteArrays(){
+   *         byte[] anArrayOfBytes = {4, 5, 6};
+   *         byte val;
+   *         for(byte item: anArrayOfBytes){
+   *             val = item;
+   *         }
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByteArrays() { + return Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (byte)[3]", + "$stack7[0] = 4", + "$stack7[1] = 5", + "$stack7[2] = 6", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void shortArrays(){
+   *         short[] anArrayOfShorts = {10, 20, 30};
+   *         short val;
+   *         for(short item: anArrayOfShorts){
+   *             val = item;
+   *         }
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsShortArrays() { + return Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (short)[3]", + "$stack7[0] = 10", + "$stack7[1] = 20", + "$stack7[2] = 30", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void longArrays(){
+   *         long[] anArrayOfLongs = {547087L, 564645L, 654786L};
+   *         long val;
+   *         for(long item: anArrayOfLongs){
+   *             val = item;
+   *         }
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLongArrays() { + return Stream.of( + "l0 := @this: AccessArrays", + "$stack9 = newarray (long)[3]", + "$stack9[0] = 547087L", + "$stack9[1] = 564645L", + "$stack9[2] = 654786L", + "l1 = $stack9", + "l4 = l1", + "l5 = lengthof l4", + "l6 = 0", + "label1:", + "$stack11 = l6", + "$stack10 = l5", + "if $stack11 >= $stack10 goto label2", + "l7 = l4[l6]", + "l2 = l7", + "l6 = l6 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatArrays(){
+   *         float[] anArrayOfFloats = {3.14f, 5.46f, 2.987f, 4.87f};
+   *         float val;
+   *         for(float item: anArrayOfFloats){
+   *             val = item;
+   *         }
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatArrays() { + return Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (float)[4]", + "$stack7[0] = 3.14F", + "$stack7[1] = 5.46F", + "$stack7[2] = 2.987F", + "$stack7[3] = 4.87F", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleArrays(){
+   *         double[] anArrayOfDoubles = {6.765414d, 9.676565646d};
+   *         double val;
+   *         for(double item: anArrayOfDoubles){
+   *             val = item;
+   *         }
+   *
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleArrays() { + return Stream.of( + "l0 := @this: AccessArrays", + "$stack9 = newarray (double)[2]", + "$stack9[0] = 6.765414", + "$stack9[1] = 9.676565646", + "l1 = $stack9", + "l4 = l1", + "l5 = lengthof l4", + "l6 = 0", + "label1:", + "$stack11 = l6", + "$stack10 = l5", + "if $stack11 >= $stack10 goto label2", + "l7 = l4[l6]", + "l2 = l7", + "l6 = l6 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void booleanArrays(){
+   *         boolean[] anArrayOfBooleans = {true, false};
+   *         boolean val;
+   *         for(boolean item: anArrayOfBooleans){
+   *             val = item;
+   *         }
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBooleanArrays() { + return Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (boolean)[2]", + "$stack7[0] = 1", + "$stack7[1] = 0", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charArrays(){
+   *         char[] anArrayOfChars = {'A', 'b', '&'};
+   *         char val;
+   *         for(char item: anArrayOfChars){
+   *             val = item;
+   *         }
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharArrays() { + return Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (char)[3]", + "$stack7[0] = 65", + "$stack7[1] = 98", + "$stack7[2] = 38", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void stringArrays(){
+   *         String[] anArrayOfStrings = {"Hello World", "Greetings"};
+   *         String val;
+   *         for(String item: anArrayOfStrings){
+   *             val = item;
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsStringArrays() { + return Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (java.lang.String)[2]", + "$stack7[0] = \"Hello World\"", + "$stack7[1] = \"Greetings\"", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnnotationLibraryTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnnotationLibraryTest.java new file mode 100644 index 00000000000..ce459c03ac9 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnnotationLibraryTest.java @@ -0,0 +1,32 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.util.printer.Printer; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.io.PrintWriter; +import java.io.StringWriter; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AnnotationLibraryTest extends MinimalBytecodeTestSuiteBase { + + // TODO: [bh] annotation methods lose default values + + @Test + public void testAnnotationDeclaration() { + SootClass sootClass = loadClass(getDeclaredClassSignature()); + Printer p = new Printer(Printer.Option.LegacyMode); + StringWriter out = new StringWriter(); + p.printTo(sootClass, new PrintWriter(out)); + assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); + } + + // TODO: [ms] add test for more annotation declarations e.g. inheritance + +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageInheritedTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageInheritedTest.java new file mode 100644 index 00000000000..6149f60043f --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageInheritedTest.java @@ -0,0 +1,34 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertEquals; + +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.java.core.AnnotationUsage; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.AnnotationType; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; +import org.junit.Test; + +public class AnnotationUsageInheritedTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void testInheritedAnnotationOnClass() { + JavaSootClass sootClass = loadClass(getDeclaredClassSignature()); + Map annotationParamMap = new HashMap<>(); + + annotationParamMap.put("sthBlue", IntConstant.getInstance(42)); + annotationParamMap.put("author", JavaJimple.getInstance().newStringConstant("GeorgeLucas")); + + assertEquals( + Arrays.asList( + new AnnotationUsage( + new AnnotationType("OnClass", new PackageName(""), true), annotationParamMap)), + sootClass.getAnnotations(Optional.of(customTestWatcher.getJavaView()))); + } +} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageTest.java similarity index 95% rename from de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageTest.java rename to de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageTest.java index 9b93bdf8920..4e9f69f62a0 100644 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageTest.java +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageTest.java @@ -1,22 +1,22 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import de.upb.swt.soot.core.jimple.common.constant.BooleanConstant; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.java.core.AnnotationUsage; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootField; -import de.upb.swt.soot.java.core.JavaSootMethod; -import de.upb.swt.soot.java.core.jimple.basic.JavaLocal; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.AnnotationType; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import de.upb.sse.sootup.core.jimple.common.constant.BooleanConstant; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.java.core.AnnotationUsage; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootField; +import de.upb.sse.sootup.java.core.JavaSootMethod; +import de.upb.sse.sootup.java.core.jimple.basic.JavaLocal; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.AnnotationType; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java new file mode 100644 index 00000000000..b38964f5a22 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java @@ -0,0 +1,62 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AnonymousClassInsideMethodTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "anonymousClassInsideMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void anonymousClassInsideMethod() {
+   *
+   * MathOperation myMathOperation = new MathOperation() {
+   * int i = 0;
+   *
+   * @Override
+   * public void addition() {
+   * i++;
+   * }
+   * };
+   *
+   * myMathOperation.addition();
+   *
+   * }
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: AnonymousClassInsideMethod", + "$stack2 = new AnonymousClassInsideMethod$1", + "specialinvoke $stack2.(AnonymousClassInsideMethod)>(l0)", + "l1 = $stack2", + "interfaceinvoke l1.()", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AssertStatementTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AssertStatementTest.java new file mode 100644 index 00000000000..0e09f3f8bf3 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AssertStatementTest.java @@ -0,0 +1,129 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AssertStatementTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "assertStatement", "void", Collections.emptyList()); + } + + public MethodSignature getMethodSignatureExtend() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "assertStatementExtend", "void", Collections.emptyList()); + } + + public MethodSignature getMethodSignatureExtend2() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "assertStatementExtend2", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void assertStatement() {
+   *         assert "" != null;
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: AssertStatement", + "$stack1 = ", + "if $stack1 != 0 goto label1", + "if \"\" != null goto label1", + "$stack2 = new java.lang.AssertionError", + "specialinvoke $stack2.()>()", + "throw $stack2", + "label1:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void assertStatementExtend() {
+   *         assert "" != null;
+   *         int x = 4;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsExtend() { + return Stream.of( + "l0 := @this: AssertStatement", + "$stack2 = ", + "if $stack2 != 0 goto label1", + "if \"\" != null goto label1", + "$stack4 = new java.lang.AssertionError", + "specialinvoke $stack4.()>()", + "throw $stack4", + "label1:", + "$stack3 = 4", + "l1 = $stack3", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void assertStatementExtend2() {
+   *         assert "first" != null;
+   *         int x = 1;
+   *         assert "second" != null;
+   *         x = 2;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsExtend2() { + return Stream.of( + "l0 := @this: AssertStatement", + "$stack2 = ", + "if $stack2 != 0 goto label1", + "if \"first\" != null goto label1", + "$stack7 = new java.lang.AssertionError", + "specialinvoke $stack7.()>()", + "throw $stack7", + "label1:", + "$stack6 = 1", + "l1 = $stack6", + "$stack3 = ", + "if $stack3 != 0 goto label2", + "if \"second\" != null goto label2", + "$stack5 = new java.lang.AssertionError", + "specialinvoke $stack5.()>()", + "throw $stack5", + "label2:", + "$stack4 = 2", + "l1 = $stack4", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getMethodSignatureExtend()); + assertJimpleStmts(method, expectedBodyStmtsExtend()); + method = loadMethod(getMethodSignatureExtend2()); + assertJimpleStmts(method, expectedBodyStmtsExtend2()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AutoboxingTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AutoboxingTest.java new file mode 100644 index 00000000000..1eb9c397bc9 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AutoboxingTest.java @@ -0,0 +1,51 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AutoboxingTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "autoboxing", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void autoboxing(){
+   * int i = 5;
+   * i++;
+   * Integer j = i;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: Autoboxing", + "l1 = 5", + "l1 = l1 + 1", + "l2 = staticinvoke (l1)", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AutomaticWideningTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AutomaticWideningTest.java new file mode 100644 index 00000000000..ce1bdef67cc --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/AutomaticWideningTest.java @@ -0,0 +1,45 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AutomaticWideningTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "automaticWidening", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void automaticWidening(){
+   * int x = 10;
+   * long y = x;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: AutomaticWidening", "l1 = 10", "l2 = (long) l1", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java new file mode 100644 index 00000000000..b0255e8140c --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java @@ -0,0 +1,158 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class BitwiseOperationsIntTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("bitwiseOpAnd")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpAnd()); + + method = loadMethod(getMethodSignature("bitwiseOpOr")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpOr()); + + method = loadMethod(getMethodSignature("bitwiseOpXor")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpXor()); + + method = loadMethod(getMethodSignature("bitwiseOpComplement")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpComplement()); + + method = loadMethod(getMethodSignature("bitwiseOpSignedRightShift")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpSignedRightShift()); + + method = loadMethod(getMethodSignature("bitwiseOpLeftShift")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpLeftShift()); + + method = loadMethod(getMethodSignature("bitwiseOpUnsignedRightShift")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpUnsignedRightShift()); + } + + /** + * + * + *
+   *     public void bitwiseOpAnd(){
+   *         int a = 70;
+   *         int b = 20;
+   *         int c = a&b;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpAnd() { + return Stream.of( + "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 & l2", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpOr(){
+   *         int a = 70;
+   *         int b = 20;
+   *         int c = a|b;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpOr() { + return Stream.of( + "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 | l2", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpXor(){
+   *         int a = 70;
+   *         int b = 20;
+   *         int c = a^b;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpXor() { + return Stream.of( + "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 ^ l2", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpComplement(){
+   *         int a = 70;
+   *         int b = ~a;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpComplement() { + return Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 ^ -1", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpSignedRightShift(){
+   *         int a = 70;
+   *         int b = a >> 5;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpSignedRightShift() { + return Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 >> 5", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpLeftShift(){
+   *         int a = 70;
+   *         int b = a << 5;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpLeftShift() { + return Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 << 5", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpUnsignedRightShift(){
+   *         int a = 70;
+   *         int b = a >>> 5;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpUnsignedRightShift() { + return Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 >>> 5", "return") + .collect(Collectors.toList()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/BooleanOperatorsTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/BooleanOperatorsTest.java new file mode 100644 index 00000000000..ef23ebcfeba --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/BooleanOperatorsTest.java @@ -0,0 +1,516 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class BooleanOperatorsTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void testRelOpEq() { + + SootMethod method = loadMethod(getMethodSignature("relationalOpEqual")); + assertJimpleStmts(method, expectedBodyStmtsRelationalOpEqual()); + } + + @Test + public void testrelOpNotEq() { + SootMethod method = loadMethod(getMethodSignature("relationalOpNotEqual")); + assertJimpleStmts(method, expectedBodyStmtsRelationalOpNotEqual()); + } + + @Test + public void testComplementOP() { + SootMethod method = loadMethod(getMethodSignature("complementOp")); + assertJimpleStmts(method, expectedBodyStmtsComplementOp()); + } + + @Test + public void testLogicalAnd() { + SootMethod method = loadMethod(getMethodSignature("logicalOpAnd")); + assertJimpleStmts(method, expectedBodyStmtsLogicalOpAnd()); + } + + @Test + public void testLogicalOr() { + SootMethod method = loadMethod(getMethodSignature("logicalOpOr")); + + assertJimpleStmts(method, expectedBodyStmtsLogicalOpOr()); + } + + @Test + public void testLocgicalOpXor() { + SootMethod method = loadMethod(getMethodSignature("logicalOpXor")); + assertJimpleStmts(method, expectedBodyStmtsLogicalOpXor()); + } + + @Test + public void testCondOpAnd() { + SootMethod method = loadMethod(getMethodSignature("ConditionalOpAnd")); + assertJimpleStmts(method, expectedBodyStmtsConditionalOpAnd()); + } + + @Test + public void testCondOpOr() { + SootMethod method = loadMethod(getMethodSignature("conditionalOpOr")); + assertJimpleStmts(method, expectedBodyStmtsConditionalOpOr()); + } + + @Test + public void testCondOp() { + SootMethod method = loadMethod(getMethodSignature("conditionalOp")); + assertJimpleStmts(method, expectedBodyStmtsConditionalOp()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void relationalOpEqual(){
+   *         int i =  0;
+   *         while (i<=10){
+   *             i++;
+   *             if (i==5){
+   *                 break;
+   *             }
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsRelationalOpEqual() { + return Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 0", + "label1:", + "$stack3 = l1", + "$stack2 = 10", + "if $stack3 > $stack2 goto label2", + "l1 = l1 + 1", + "if l1 != 5 goto label1", + "goto label2", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void relationalOpNotEqual(){
+   *         int i =  0;
+   *         String str = "";
+   *         while (i<10){
+   *             i++;
+   *             if (i!=5){
+   *                 str = "i != 5";
+   *             }
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsRelationalOpNotEqual() { + return Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 0", + "l2 = \"\"", + "label1:", + "$stack4 = l1", + "$stack3 = 10", + "if $stack4 >= $stack3 goto label2", + "l1 = l1 + 1", + "if l1 == 5 goto label1", + "l2 = \"i != 5\"", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void complementOp(){
+   *         boolean b = true;
+   *         if(b){
+   *             b = !b;
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsComplementOp() { + return Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "if l1 == 0 goto label3", + "if l1 != 0 goto label1", + "$stack2 = 1", + "goto label2", + "label1:", + "$stack2 = 0", + "label2:", + "l1 = $stack2", + "label3:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void logicalOpAnd(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a & b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c & d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a & c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d & b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLogicalOpAnd() { + return Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "$stack6 = l1 & l2", + "if $stack6 == 0 goto label1", + "l5 = \"A\"", + "label1:", + "$stack15 = l3", + "$stack14 = l4", + "$stack7 = $stack15 & $stack14", + "if $stack7 == 0 goto label2", + "l5 = \"B\"", + "label2:", + "$stack13 = l1", + "$stack12 = l3", + "$stack8 = $stack13 & $stack12", + "if $stack8 == 0 goto label3", + "l5 = \"C\"", + "label3:", + "$stack11 = l4", + "$stack10 = l2", + "$stack9 = $stack11 & $stack10", + "if $stack9 == 0 goto label4", + "l5 = \"D\"", + "label4:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void logicalOpOr(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a | b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c | d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a | c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d | b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLogicalOpOr() { + return Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "$stack6 = l1 | l2", + "if $stack6 == 0 goto label1", + "l5 = \"A\"", + "label1:", + "$stack15 = l3", + "$stack14 = l4", + "$stack7 = $stack15 | $stack14", + "if $stack7 == 0 goto label2", + "l5 = \"B\"", + "label2:", + "$stack13 = l1", + "$stack12 = l3", + "$stack8 = $stack13 | $stack12", + "if $stack8 == 0 goto label3", + "l5 = \"C\"", + "label3:", + "$stack11 = l4", + "$stack10 = l2", + "$stack9 = $stack11 | $stack10", + "if $stack9 == 0 goto label4", + "l5 = \"D\"", + "label4:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void logicalOpXor(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a ^ b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c ^ d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a ^ c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d ^ b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLogicalOpXor() { + return Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "$stack6 = l1 ^ l2", + "if $stack6 == 0 goto label1", + "l5 = \"A\"", + "label1:", + "$stack15 = l3", + "$stack14 = l4", + "$stack7 = $stack15 ^ $stack14", + "if $stack7 == 0 goto label2", + "l5 = \"B\"", + "label2:", + "$stack13 = l1", + "$stack12 = l3", + "$stack8 = $stack13 ^ $stack12", + "if $stack8 == 0 goto label3", + "l5 = \"C\"", + "label3:", + "$stack11 = l4", + "$stack10 = l2", + "$stack9 = $stack11 ^ $stack10", + "if $stack9 == 0 goto label4", + "l5 = \"D\"", + "label4:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void ConditionalOpAnd(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a && b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c && d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a && c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d && b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsConditionalOpAnd() { + return Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "if l1 == 0 goto label1", + "if l2 == 0 goto label1", + "l5 = \"A\"", + "label1:", + "$stack8 = l3", + "if $stack8 == 0 goto label2", + "if l4 == 0 goto label2", + "l5 = \"B\"", + "label2:", + "$stack7 = l1", + "if $stack7 == 0 goto label3", + "if l3 == 0 goto label3", + "l5 = \"C\"", + "label3:", + "$stack6 = l4", + "if $stack6 == 0 goto label4", + "if l2 == 0 goto label4", + "l5 = \"D\"", + "label4:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void conditionalOpOr(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a || b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c || d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a || c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d || b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsConditionalOpOr() { + return Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "if l1 != 0 goto label1", + "if l2 == 0 goto label2", + "label1:", + "$stack12 = \"A\"", + "l5 = $stack12", + "label2:", + "$stack11 = l3", + "if $stack11 != 0 goto label3", + "if l4 == 0 goto label4", + "label3:", + "$stack10 = \"B\"", + "l5 = $stack10", + "label4:", + "$stack9 = l1", + "if $stack9 != 0 goto label5", + "if l3 == 0 goto label6", + "label5:", + "$stack8 = \"C\"", + "l5 = $stack8", + "label6:", + "$stack7 = l4", + "if $stack7 != 0 goto label7", + "if l2 == 0 goto label8", + "label7:", + "$stack6 = \"D\"", + "l5 = $stack6", + "label8:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void conditionalOp(){
+   *         int i = 5;
+   *         String str = "";
+   *         str = i <10 ? "i less than 10" : "i greater than 10";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsConditionalOp() { + return Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 5", + "l2 = \"\"", + "if l1 >= 10 goto label1", + "$stack3 = \"i less than 10\"", + "goto label2", + "label1:", + "$stack3 = \"i greater than 10\"", + "label2:", + "l2 = $stack3", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/BreakInWhileLoopTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/BreakInWhileLoopTest.java new file mode 100644 index 00000000000..c9072496906 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/BreakInWhileLoopTest.java @@ -0,0 +1,59 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class BreakInWhileLoopTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "breakInWhileLoop", "void", Collections.emptyList()); + } + + /**
+   * public void breakInWhileLoop() {
+   * int num = 10;
+   * int i = 5;
+   * while (num > 0) {
+   * num--;
+   * if (num == i) {
+   * break;
+   * }
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: BreakInWhileLoop",
+            "l1 = 10",
+            "l2 = 5",
+            "label1:",
+            "$stack3 = l1",
+            "if $stack3 <= 0 goto label2",
+            "l1 = l1 + -1",
+            "if l1 != l2 goto label1",
+            "goto label2",
+            "label2:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/CastingInNumTypesTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/CastingInNumTypesTest.java
new file mode 100644
index 00000000000..78b3df7639d
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/CastingInNumTypesTest.java
@@ -0,0 +1,116 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class CastingInNumTypesTest extends MinimalBytecodeTestSuiteBase {
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "displayNum", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * public void displayNum(){
+   * byte num1 =1;
+   * short num2=2;
+   * int num3= 3;
+   * long num4=4551598461l;
+   * float num5= 5.4f;
+   * double num6= 4551595484654646464654684664646846713431.265;
+   *
+   * System.out.println(num1);
+   * System.out.println((byte)num3);
+   * System.out.println((double)num2);
+   * System.out.println((short)num4);
+   * System.out.println((double)num5);
+   * System.out.println((int)num4);
+   * System.out.println((float) num6);
+   * System.out.println(num6);
+   *
+   * double d = 4786777867867868654674678346734763478673478654478967.77;
+   * System.out.println((float)d);
+   * System.out.println((long)d);
+   * System.out.println((int)d);
+   * System.out.println((short)d);
+   * System.out.println((byte)d);
+   *
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: CastingInNumTypes", + "l1 = 1", + "l2 = 2", + "l3 = 3", + "l4 = 4551598461L", + "l6 = 5.4F", + "l7 = 4.5515954846546467E39", + "$stack11 = ", + "virtualinvoke $stack11.(l1)", + "$stack13 = ", + "$stack12 = (byte) l3", + "virtualinvoke $stack13.($stack12)", + "$stack15 = ", + "$stack14 = (double) l2", + "virtualinvoke $stack15.($stack14)", + "$stack18 = ", + "$stack16 = (int) l4", + "$stack17 = (short) $stack16", + "virtualinvoke $stack18.($stack17)", + "$stack20 = ", + "$stack19 = (double) l6", + "virtualinvoke $stack20.($stack19)", + "$stack22 = ", + "$stack21 = (int) l4", + "virtualinvoke $stack22.($stack21)", + "$stack24 = ", + "$stack23 = (float) l7", + "virtualinvoke $stack24.($stack23)", + "$stack25 = ", + "virtualinvoke $stack25.(l7)", + "l9 = 4.7867778678678685E51", + "$stack27 = ", + "$stack26 = (float) l9", + "virtualinvoke $stack27.($stack26)", + "$stack29 = ", + "$stack28 = (long) l9", + "virtualinvoke $stack29.($stack28)", + "$stack31 = ", + "$stack30 = (int) l9", + "virtualinvoke $stack31.($stack30)", + "$stack34 = ", + "$stack32 = (int) l9", + "$stack33 = (short) $stack32", + "virtualinvoke $stack34.($stack33)", + "$stack37 = ", + "$stack35 = (int) l9", + "$stack36 = (byte) $stack35", + "virtualinvoke $stack37.($stack36)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/CharLiteralsTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/CharLiteralsTest.java new file mode 100644 index 00000000000..699671ca781 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/CharLiteralsTest.java @@ -0,0 +1,137 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class CharLiteralsTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("charCharacter")); + assertJimpleStmts(method, expectedBodyStmtsCharCharacter()); + + method = loadMethod(getMethodSignature("charSymbol")); + assertJimpleStmts(method, expectedBodyStmtsCharSymbol()); + + method = loadMethod(getMethodSignature("charBackslashT")); + assertJimpleStmts(method, expectedBodyStmtsCharBackslashT()); + + method = loadMethod(getMethodSignature("charBackslash")); + assertJimpleStmts(method, expectedBodyStmtsCharBackslash()); + + method = loadMethod(getMethodSignature("charSingleQuote")); + assertJimpleStmts(method, expectedBodyStmtsCharSingleQuote()); + + method = loadMethod(getMethodSignature("charUnicode")); + assertJimpleStmts(method, expectedBodyStmtsCharUnicode()); + + method = loadMethod(getMethodSignature("specialChar")); + assertJimpleStmts(method, expectedBodyStmtsSpecialChar()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void charCharacter(){
+   *         char val = 'a';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharCharacter() { + return Stream.of("l0 := @this: CharLiterals", "l1 = 97", "return").collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charSymbol(){
+   *         char val = '%';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharSymbol() { + return Stream.of("l0 := @this: CharLiterals", "l1 = 37", "return").collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charBackslashT(){ char val = '\t'; }
+   * 
+ */ + public List expectedBodyStmtsCharBackslashT() { + return Stream.of("l0 := @this: CharLiterals", "l1 = 9", "return").collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charBackslash(){
+   *         char val = '\\';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharBackslash() { + return Stream.of("l0 := @this: CharLiterals", "l1 = 92", "return").collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charSingleQuote(){
+   *         char val = '\'';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharSingleQuote() { + return Stream.of("l0 := @this: CharLiterals", "l1 = 39", "return").collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charUnicode(){
+   *         char val = '\u03a9';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharUnicode() { + return Stream.of("l0 := @this: CharLiterals", "l1 = 937", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void specialChar(){
+   *         char val = '™';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsSpecialChar() { + return Stream.of("l0 := @this: CharLiterals", "l1 = 8482", "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java new file mode 100644 index 00000000000..0e025493dc9 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java @@ -0,0 +1,62 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ContinueInWhileLoopTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "continueInWhileLoop", "void", Collections.emptyList()); + } + + /**
+   * public void continueInWhileLoop(){
+   * int num = 0;
+   * while (num < 10) {
+   * if (num == 5) {
+   * num++;
+   * continue;
+   * }
+   * num++;
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: ContinueInWhileLoop",
+            "l1 = 0",
+            "label1:",
+            "$stack3 = l1",
+            "$stack2 = 10",
+            "if $stack3 >= $stack2 goto label3",
+            "if l1 != 5 goto label2",
+            "l1 = l1 + 1",
+            "goto label1",
+            "label2:",
+            "l1 = l1 + 1",
+            "goto label1",
+            "label3:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/CreateNewInstanceTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/CreateNewInstanceTest.java
new file mode 100644
index 00000000000..f104eb518bd
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/CreateNewInstanceTest.java
@@ -0,0 +1,50 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class CreateNewInstanceTest extends MinimalBytecodeTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "createNewInstance", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * public void createNewInstance(){
+   * Person person = new Person(20);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: CreateNewInstance", + "$stack2 = new Person", + "specialinvoke $stack2.(int)>(20)", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareConstructorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareConstructorTest.java new file mode 100644 index 00000000000..fdfba395be9 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareConstructorTest.java @@ -0,0 +1,81 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareConstructorTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignatureInitOneParam() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Collections.singletonList("int")); + } + + public MethodSignature getMethodSignatureInitTwoParam() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Arrays.asList("int", "int")); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignatureInitOneParam()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getMethodSignatureInitTwoParam()); + assertJimpleStmts(method, expectedBodyStmts1()); + } + + /** + * + * + *
+   * public DeclareConstructor(int var1){
+   *         this.var1=var1;
+   *         this.var2=0;
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareConstructor", + "l1 := @parameter0: int", + "specialinvoke l0.()>()", + "l0. = l1", + "l0. = 0", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public DeclareConstructor(int var1, int var2){
+   *         this.var1=var1;
+   *         this.var2=var2;
+   *     }
+   * 
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: DeclareConstructor", + "l1 := @parameter0: int", + "l2 := @parameter1: int", + "specialinvoke l0.()>()", + "l0. = l1", + "l0. = l2", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareEnumTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareEnumTest.java new file mode 100644 index 00000000000..2b59fb04476 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareEnumTest.java @@ -0,0 +1,64 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareEnumTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootClass sc = + loadClass( + JavaIdentifierFactory.getInstance() + .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$Type")); + assertTrue(sc.isEnum()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareEnum", "void", Collections.emptyList()); + } + + /**
+   * public void declareEnum(){
+   * for(Type type:Type.values()){
+   * System.out.println(type);
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return super.expectedBodyStmts(
+        "l0 := @this: DeclareEnum",
+        "l1 = staticinvoke ()",
+        "l2 = lengthof l1",
+        "l3 = 0",
+        "label1:",
+        "$stack7 = l3",
+        "$stack6 = l2",
+        "if $stack7 >= $stack6 goto label2",
+        "l4 = l1[l3]",
+        "$stack5 = ",
+        "virtualinvoke $stack5.(l4)",
+        "l3 = l3 + 1",
+        "goto label1",
+        "label2:",
+        "return");
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java
new file mode 100644
index 00000000000..23a993dc3fa
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java
@@ -0,0 +1,211 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertTrue;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.java.core.JavaIdentifierFactory;
+import de.upb.sse.sootup.java.core.JavaSootClass;
+import de.upb.sse.sootup.java.core.JavaSootMethod;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class DeclareEnumWithConstructorTest extends MinimalBytecodeTestSuiteBase {
+
+  public MethodSignature getInitMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "", "void", Collections.emptyList());
+  }
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "getValue", "int", Collections.emptyList());
+  }
+
+  public MethodSignature getMainMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(),
+        "main",
+        "void",
+        Collections.singletonList("java.lang.String[]"));
+  }
+
+  public MethodSignature getEnumConstructorSignature() {
+    return identifierFactory.getMethodSignature(
+        identifierFactory.getClassType("DeclareEnumWithConstructor$Number"),
+        "",
+        "void",
+        Collections.emptyList());
+  }
+
+  public MethodSignature getEnumGetValueSignature() {
+    return identifierFactory.getMethodSignature(
+        identifierFactory.getClassType("DeclareEnumWithConstructor$Number"),
+        "getValue",
+        "int",
+        Collections.emptyList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod sootMethod = loadMethod(getInitMethodSignature());
+    assertJimpleStmts(sootMethod, expectedBodyStmts());
+
+    sootMethod = loadMethod(getMainMethodSignature());
+    assertJimpleStmts(sootMethod, expectedMainBodyStmts());
+
+    sootMethod = loadMethod(getEnumConstructorSignature());
+    assertJimpleStmts(sootMethod, expectedEnumConstructorStmts());
+
+    sootMethod = loadMethod(getEnumGetValueSignature());
+    assertJimpleStmts(sootMethod, expectedGetValueStmts());
+    JavaSootClass sootClass =
+        loadClass(
+            JavaIdentifierFactory.getInstance()
+                .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$Number"));
+    assertTrue(sootClass.isEnum());
+
+    final Set methods = sootClass.getMethods();
+    assertTrue(methods.stream().anyMatch(m -> m.getSignature().getName().equals("getValue")));
+  }
+
+  /**
+   *
+   *
+   * 
    public void declareEnum(){
+   * for(Type type:Type.values()){
+   * System.out.println(type);
+   * }
+   * }
+   * }
+   * 
+ */ + /** + * + * + *
        private int getValue() {
+   * return value;
+   * }
+   * 
+ */ + + /** + * + * + *
+   * public void declareEnum(){
+   * for(Type type:Type.values()){
+   * System.out.println(type);
+   * }
+   * }
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareEnumWithConstructor", + "specialinvoke l0.()>()", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public static void main(String[] args) {
+   *         Number number = Number.ONE;
+   *         System.out.println(number.getValue());
+   *     }
+   * 
+ */ + public List expectedMainBodyStmts() { + return Stream.of( + "l0 := @parameter0: java.lang.String[]", + "l1 = ", + "$stack2 = ", + "$stack3 = staticinvoke (l1)", + "virtualinvoke $stack2.($stack3)", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public enum Number{
+   *         ZERO(0),
+   *         ONE(1),
+   *         TWO(2),
+   *         THREE(3);
+   *         private int value;
+   *         Number(int value){
+   *             this.value=value;
+   *         }
+   *  }
+   * 
+ */ + public List expectedEnumConstructorStmts() { + return Stream.of( + "$stack0 = new DeclareEnumWithConstructor$Number", + "specialinvoke $stack0.(java.lang.String,int,int)>(\"ZERO\", 0, 0)", + " = $stack0", + "$stack1 = new DeclareEnumWithConstructor$Number", + "specialinvoke $stack1.(java.lang.String,int,int)>(\"ONE\", 1, 1)", + " = $stack1", + "$stack2 = new DeclareEnumWithConstructor$Number", + "specialinvoke $stack2.(java.lang.String,int,int)>(\"TWO\", 2, 2)", + " = $stack2", + "$stack3 = new DeclareEnumWithConstructor$Number", + "specialinvoke $stack3.(java.lang.String,int,int)>(\"THREE\", 3, 3)", + " = $stack3", + "$stack4 = newarray (DeclareEnumWithConstructor$Number)[4]", + "$stack5 = ", + "$stack4[0] = $stack5", + "$stack6 = ", + "$stack4[1] = $stack6", + "$stack7 = ", + "$stack4[2] = $stack7", + "$stack8 = ", + "$stack4[3] = $stack8", + " = $stack4", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
public enum Number{
+   *         ZERO(0),
+   *         ONE(1),
+   *         TWO(2),
+   *         THREE(3);
+   *         private int value;
+   *
+   *     private int getValue() {
+   *             return value;
+   *         }
+   *         }
+   * 
+ */ + public List expectedGetValueStmts() { + return Stream.of( + "l0 := @this: DeclareEnumWithConstructor$Number", + "$stack1 = l0.", + "return $stack1") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareFieldTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareFieldTest.java new file mode 100644 index 00000000000..cdc936efa60 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareFieldTest.java @@ -0,0 +1,97 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareFieldTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "display", "void", Collections.emptyList()); + } + + public MethodSignature getStaticMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticDisplay", "void", Collections.emptyList()); + } + + @org.junit.Test + public void test() { + SootMethod method1 = loadMethod(getMethodSignature()); + assertJimpleStmts(method1, expectedBodyStmts()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getStaticMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts1()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> { + return sootField.getModifiers().contains(Modifier.PRIVATE) + && sootField.getModifiers().contains(Modifier.STATIC) + && sootField.getName().equals("i"); + })); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> { + return sootField.getModifiers().contains(Modifier.PUBLIC) + && sootField.getModifiers().contains(Modifier.FINAL) + && sootField.getName().equals("s"); + })); + } + + /** + * + * + *
+   *     public void display(){
+   *         System.out.println(s);
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareField", + "$stack1 = ", + "virtualinvoke $stack1.(\"Java\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void staticDisplay(){
+   *         System.out.println(i);
+   *     }
+   * 
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: DeclareField", + "$stack2 = ", + "$stack1 = ", + "virtualinvoke $stack2.($stack1)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareFloatTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareFloatTest.java new file mode 100644 index 00000000000..1d8a9f46a48 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareFloatTest.java @@ -0,0 +1,54 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareFloatTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareFloatMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * void declareFloatMethod(){
+   * System.out.println(f1);
+   * System.out.println(f2);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareFloat", + "$stack2 = ", + "$stack1 = l0.", + "virtualinvoke $stack2.($stack1)", + "$stack4 = ", + "$stack3 = l0.", + "virtualinvoke $stack4.($stack3)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareInnerClassTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareInnerClassTest.java new file mode 100644 index 00000000000..dc24d4b81b9 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareInnerClassTest.java @@ -0,0 +1,80 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareInnerClassTest extends MinimalBytecodeTestSuiteBase { + + final JavaClassType innerClassType = + JavaIdentifierFactory.getInstance() + .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$InnerClass"); + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodDisplayOuter", "void", Collections.emptyList()); + } + + public MethodSignature getInnerMethodSignature() { + return identifierFactory.getMethodSignature( + innerClassType, "methodDisplayInner", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = loadMethod(getInnerMethodSignature()); + assertJimpleStmts(method, expectedInnerClassBodyStmts()); + } + + /** + * + * + *
+   *     public void methodDisplayOuter(){
+   *         System.out.println("methodDisplayOuter");
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareInnerClass", + "$stack1 = ", + "virtualinvoke $stack1.(\"methodDisplayOuter\")", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void methodDisplayInner(){
+   *             System.out.println("methodDisplayInner");
+   *         }
+   * 
+ */ + public List expectedInnerClassBodyStmts() { + return Stream.of( + "l0 := @this: DeclareInnerClass$InnerClass", + "$stack1 = ", + "virtualinvoke $stack1.(\"methodDisplayInner\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareIntTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareIntTest.java new file mode 100644 index 00000000000..37ac33402c5 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareIntTest.java @@ -0,0 +1,57 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareIntTest extends MinimalBytecodeTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareIntMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * void declareIntMethod(){
+   * System.out.println(dec);
+   * System.out.println(hex);
+   * System.out.println(oct);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareInt", + "$stack2 = ", + "$stack1 = l0.", + "virtualinvoke $stack2.($stack1)", + "$stack4 = ", + "$stack3 = l0.", + "virtualinvoke $stack4.($stack3)", + "$stack6 = ", + "$stack5 = l0.", + "virtualinvoke $stack6.($stack5)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareLongTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareLongTest.java new file mode 100644 index 00000000000..807daff879c --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DeclareLongTest.java @@ -0,0 +1,54 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareLongTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareLongMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * void declareLongMethod(){
+   * System.out.println(l1);
+   * System.out.println(l2);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareLong", + "$stack2 = ", + "$stack1 = l0.", + "virtualinvoke $stack2.($stack1)", + "$stack4 = ", + "$stack3 = l0.", + "virtualinvoke $stack4.($stack3)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DoWhileLoopTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DoWhileLoopTest.java new file mode 100644 index 00000000000..3c73a7a9951 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/DoWhileLoopTest.java @@ -0,0 +1,53 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DoWhileLoopTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "doWhileLoop", "void", Collections.emptyList()); + } + + /**
+   * public void doWhileLoop() {
+   * int num = 10;
+   * int i = 0;
+   * do {
+   * i++;
+   * } while (num > i);
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: DoWhileLoop",
+            "l1 = 10",
+            "l2 = 0",
+            "label1:",
+            "l2 = l2 + 1",
+            "$stack4 = l1",
+            "$stack3 = l2",
+            "if $stack4 > $stack3 goto label1",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/EmptyStatementTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/EmptyStatementTest.java
new file mode 100644
index 00000000000..a71a4ce258f
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/EmptyStatementTest.java
@@ -0,0 +1,45 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class EmptyStatementTest extends MinimalBytecodeTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "emptyStatement", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * public void emptyStatement(){
+   * int num  = 5;;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: EmptyStatement", "l1 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java new file mode 100644 index 00000000000..f8655b5da29 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java @@ -0,0 +1,183 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class EscapeSequencesInStringTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("escapeBackslashB")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashB()); + + method = loadMethod(getMethodSignature("escapeBackslashT")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashT()); + + method = loadMethod(getMethodSignature("escapeBackslashN")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashN()); + + method = loadMethod(getMethodSignature("escapeBackslashF")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashF()); + + method = loadMethod(getMethodSignature("escapeBackslashR")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashR()); + + method = loadMethod(getMethodSignature("escapeDoubleQuotes")); + assertJimpleStmts(method, expectedBodyStmtsEscapeDoubleQuotes()); + + method = loadMethod(getMethodSignature("escapeSingleQuote")); + assertJimpleStmts(method, expectedBodyStmtsEscapeSingleQuote()); + + method = loadMethod(getMethodSignature("escapeBackslash")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslash()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void escapeBackslashB(){
+   *         String str = "This escapes backslash b \b";
+   *     }
+   *     
+ */ + public List expectedBodyStmtsEscapeBackslashB() { + return Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash b \\u0008\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeBackslashT(){
+   *         String str = "This escapes backslash t \t";
+   *     }
+ */ + public List expectedBodyStmtsEscapeBackslashT() { + return Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash t \\t\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeBackslashN(){
+   *         String str = "This escapes backslash n \n";
+   *     }
+ */ + public List expectedBodyStmtsEscapeBackslashN() { + return Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash n \\n\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeBackslashF(){
+   *         String str = "This escapes backslash f \f";
+   *     }
+   *     
+ */ + public List expectedBodyStmtsEscapeBackslashF() { + return Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash f \\f\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void escapeBackslashR(){
+   *         String str = "This escapes backslash r \r";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsEscapeBackslashR() { + return Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash r \\r\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeDoubleQuotes(){
+   *         String str = "This escapes double quotes \"";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsEscapeDoubleQuotes() { + return Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes double quotes \\\"\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeSingleQuote(){
+   *         String str = "This escapes single quote \'";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsEscapeSingleQuote() { + return Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes single quote \\'\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeBackslash(){
+   *         String str = "This escapes backslash \\";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsEscapeBackslash() { + return Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash \\\\\"", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java new file mode 100644 index 00000000000..0e2126fac96 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java @@ -0,0 +1,48 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class EvaluationOrderWithParenthesesTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), + "evaluationOrderWithParentheses", + "void", + Collections.emptyList()); + } + + /** + * + * + *
+   * public void evaluationOrderWithParentheses(){
+   * int b = ((1 + 2) * 3);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: EvaluationOrderWithParentheses", "l1 = 9", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/FinalMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/FinalMethodTest.java new file mode 100644 index 00000000000..aaca28d5e81 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/FinalMethodTest.java @@ -0,0 +1,52 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class FinalMethodTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + assertTrue(method.isFinal()); + } + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "finalMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * final void finalMethod(){
+   * System.out.println("final method");
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: FinalMethod", + "$stack1 = ", + "virtualinvoke $stack1.(\"final method\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/FinalVariableTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/FinalVariableTest.java new file mode 100644 index 00000000000..41b17eb0040 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/FinalVariableTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class FinalVariableTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "finalVariable", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void finalVariable() {
+   * final int num = 5;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: FinalVariable", "return").collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ForEachLoopTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ForEachLoopTest.java new file mode 100644 index 00000000000..f3ad1fdc9aa --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ForEachLoopTest.java @@ -0,0 +1,71 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ForEachLoopTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "forEachLoop", "void", Collections.emptyList()); + } + + /**
+   * public void forEachLoop(){
+   * int[] numArray = {10,20,30,40,50,60,71,80,90};
+   * int count = 0;
+   * for (int item :numArray) {
+   * count++;
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: ForEachLoop",
+            "$stack7 = newarray (int)[9]",
+            "$stack7[0] = 10",
+            "$stack7[1] = 20",
+            "$stack7[2] = 30",
+            "$stack7[3] = 40",
+            "$stack7[4] = 50",
+            "$stack7[5] = 60",
+            "$stack7[6] = 71",
+            "$stack7[7] = 80",
+            "$stack7[8] = 90",
+            "l1 = $stack7",
+            "l2 = 0",
+            "l3 = l1",
+            "l4 = lengthof l3",
+            "l5 = 0",
+            "label1:",
+            "$stack9 = l5",
+            "$stack8 = l4",
+            "if $stack9 >= $stack8 goto label2",
+            "l6 = l3[l5]",
+            "l2 = l2 + 1",
+            "l5 = l5 + 1",
+            "goto label1",
+            "label2:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ForLoopTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ForLoopTest.java
new file mode 100644
index 00000000000..cc97ffbb7ce
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ForLoopTest.java
@@ -0,0 +1,58 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class ForLoopTest extends MinimalBytecodeTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "forLoop", "void", Collections.emptyList());
+  }
+
+  /**  
+   * public void forLoop(){
+   * int j = 10;
+   * int num = 0;
+   * for(int i=0; i*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: ForLoop",
+            "l1 = 10",
+            "l2 = 0",
+            "l3 = 0",
+            "label1:",
+            "$stack5 = l3",
+            "$stack4 = l1",
+            "if $stack5 >= $stack4 goto label2",
+            "l2 = l2 + 1",
+            "l3 = l3 + 1",
+            "goto label1",
+            "label2:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/GenTypeParamTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/GenTypeParamTest.java
new file mode 100644
index 00000000000..f248519f306
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/GenTypeParamTest.java
@@ -0,0 +1,72 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class GenTypeParamTest extends MinimalBytecodeTestSuiteBase {
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "geneTypeParamDisplay", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * public void geneTypeParamDisplay(){
+   * List output = new ArrayList< Object >(3);
+   * List input = Arrays.asList(1,2,3);
+   * GenTypeParam genTypeParam= new GenTypeParam();
+   * genTypeParam.copy(output,input);
+   * System.out.println(genTypeParam.largestNum(2,8,3));
+   * }
+   *
+   * 
+   */
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: GenTypeParam",
+            "$stack4 = new java.util.ArrayList",
+            "specialinvoke $stack4.(int)>(3)",
+            "l1 = $stack4",
+            "$stack5 = newarray (java.lang.Integer)[3]",
+            "$stack6 = staticinvoke (1)",
+            "$stack5[0] = $stack6",
+            "$stack7 = staticinvoke (2)",
+            "$stack5[1] = $stack7",
+            "$stack8 = staticinvoke (3)",
+            "$stack5[2] = $stack8",
+            "l2 = staticinvoke ($stack5)",
+            "$stack9 = new GenTypeParam",
+            "specialinvoke $stack9.()>()",
+            "l3 = $stack9",
+            "virtualinvoke l3.(l1, l2)",
+            "$stack10 = ",
+            "$stack13 = staticinvoke (2)",
+            "$stack12 = staticinvoke (8)",
+            "$stack11 = staticinvoke (3)",
+            "$stack14 = virtualinvoke l3.($stack13, $stack12, $stack11)",
+            "virtualinvoke $stack10.($stack14)",
+            "return")
+        .collect(Collectors.toCollection(ArrayList::new));
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java
new file mode 100644
index 00000000000..664735e8161
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java
@@ -0,0 +1,56 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class GenericTypeParamOnClassTest extends MinimalBytecodeTestSuiteBase {
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "genericTypeParamOnClass", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * public void genericTypeParamOnClass() {
+   * A a = new A();
+   * a.set(5);
+   * int x = a.get();
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: GenericTypeParamOnClass", + "$stack3 = new GenericTypeParamOnClass$A", + "specialinvoke $stack3.(GenericTypeParamOnClass)>(l0)", + "l1 = $stack3", + "$stack4 = staticinvoke (5)", + "staticinvoke (l1, $stack4)", + "$stack5 = virtualinvoke l1.()", + "$stack6 = (java.lang.Integer) $stack5", + "l2 = virtualinvoke $stack6.()", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java new file mode 100644 index 00000000000..3d721b04ce0 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java @@ -0,0 +1,47 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class GenericTypeParamOnMethodTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "genericTypeParamOnMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void genericTypeParamOnMethod() {
+   * a("Hello World");
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: GenericTypeParamOnMethod", + "virtualinvoke l0.(\"Hello World\")", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/IfElseStatementTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/IfElseStatementTest.java new file mode 100644 index 00000000000..8d32cfbc0aa --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/IfElseStatementTest.java @@ -0,0 +1,308 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class IfElseStatementTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("ifStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfStatement()); + + method = loadMethod(getMethodSignature("ifElseStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseStatement()); + + method = loadMethod(getMethodSignature("ifElseIfStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseIfStatement()); + + method = loadMethod(getMethodSignature("ifElseCascadingStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingStatement()); + + method = loadMethod(getMethodSignature("ifElseCascadingInElseStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingInElseStatement()); + + method = loadMethod(getMethodSignature("ifElseCascadingElseIfStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingElseIfStatement()); + + method = loadMethod(getMethodSignature("ifElseCascadingElseIfInElseStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingElseIfInElseStatement()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "int", Collections.singletonList("int")); + } + + /** + * + * + *
+   *     public int ifStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfStatement() { + return Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "label1:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *  public int ifElseStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }else{
+   *             val = 2;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseStatement() { + return Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "goto label2", + "label1:", + "l2 = 2", + "label2:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseIfStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }else if( a > 123){
+   *             val = 2;
+   *         }else{
+   *             val = 3;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseIfStatement() { + return Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "goto label3", + "label1:", + "if l1 <= 123 goto label2", + "l2 = 2", + "goto label3", + "label2:", + "l2 = 3", + "label3:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseCascadingStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             if(a < 42){
+   *                 val = 11;
+   *             }else{
+   *                 val = 12;
+   *             }
+   *         }else{
+   *             val = 3;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseCascadingStatement() { + return Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label2", + "if l1 >= 42 goto label1", + "l2 = 11", + "goto label3", + "label1:", + "l2 = 12", + "goto label3", + "label2:", + "l2 = 3", + "label3:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseCascadingInElseStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }else{
+   *             if(a < 42){
+   *                 val = 21;
+   *             }else{
+   *                 val = 22;
+   *             }
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseCascadingInElseStatement() { + return Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "goto label3", + "label1:", + "if l1 >= 42 goto label2", + "l2 = 21", + "goto label3", + "label2:", + "l2 = 22", + "label3:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseCascadingElseIfStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             if(a < 42){
+   *                 val = 11;
+   *             }else if(a > 123){
+   *                 val = 12;
+   *             }else{
+   *                 val = 13;
+   *             }
+   *         }else{
+   *             val = 2;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseCascadingElseIfStatement() { + return Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label3", + "if l1 >= 42 goto label1", + "l2 = 11", + "goto label4", + "label1:", + "if l1 <= 123 goto label2", + "l2 = 12", + "goto label4", + "label2:", + "l2 = 13", + "goto label4", + "label3:", + "l2 = 2", + "label4:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseCascadingElseIfInElseStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }else{
+   *             if(a < 42){
+   *                 val = 21;
+   *             }else if(a > 123){
+   *                 val = 22;
+   *             }else{
+   *                 val = 23;
+   *             }
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseCascadingElseIfInElseStatement() { + return Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "goto label4", + "label1:", + "if l1 >= 42 goto label2", + "l2 = 21", + "goto label4", + "label2:", + "if l1 <= 123 goto label3", + "l2 = 22", + "goto label4", + "label3:", + "l2 = 23", + "label4:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InfiniteLoopTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InfiniteLoopTest.java new file mode 100644 index 00000000000..f21643ea648 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InfiniteLoopTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Markus Schmidt */ +@Category(Java8Test.class) +public class InfiniteLoopTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stmtLoop", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * void stmtLoop(){
+   * infloop:
+   * break infloop;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: InfiniteLoop", "return").collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java new file mode 100644 index 00000000000..a155b2f2466 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java @@ -0,0 +1,404 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class Initialize3DimensionalArraysTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts(method, expectedBodyStmtsIntArrays()); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts(method, expectedBodyStmtsByteArrays()); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts(method, expectedBodyStmtsShortArrays()); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts(method, expectedBodyStmtsLongArrays()); + + method = loadMethod(getMethodSignature("floatArrays")); + assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts(method, expectedBodyStmtsCharArrays()); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts(method, expectedBodyStmtsStringArrays()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void intArrays(){
+   *         int[][][] intArray3D = {{{1, 2, 3},{5, 6}},{{7, 8, 9},{10,11}}};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntArrays() { + return Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (int[][])[2]", + "$stack3 = newarray (int[])[2]", + "$stack4 = newarray (int)[3]", + "$stack4[0] = 1", + "$stack4[1] = 2", + "$stack4[2] = 3", + "$stack3[0] = $stack4", + "$stack5 = newarray (int)[2]", + "$stack5[0] = 5", + "$stack5[1] = 6", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (int[])[2]", + "$stack7 = newarray (int)[3]", + "$stack7[0] = 7", + "$stack7[1] = 8", + "$stack7[2] = 9", + "$stack6[0] = $stack7", + "$stack8 = newarray (int)[2]", + "$stack8[0] = 10", + "$stack8[1] = 11", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void byteArrays(){
+   *         byte[][][] byteArray3D = {{{7, 8, 9},{10,11}},{{1, 2, 3},{5, 6}}};;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByteArrays() { + return Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (byte[][])[2]", + "$stack3 = newarray (byte[])[2]", + "$stack4 = newarray (byte)[3]", + "$stack4[0] = 7", + "$stack4[1] = 8", + "$stack4[2] = 9", + "$stack3[0] = $stack4", + "$stack5 = newarray (byte)[2]", + "$stack5[0] = 10", + "$stack5[1] = 11", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (byte[])[2]", + "$stack7 = newarray (byte)[3]", + "$stack7[0] = 1", + "$stack7[1] = 2", + "$stack7[2] = 3", + "$stack6[0] = $stack7", + "$stack8 = newarray (byte)[2]", + "$stack8[0] = 5", + "$stack8[1] = 6", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void shortArrays(){
+   *         short[][][] shortArray3D = {{{10,20},{40,85}},{{56,59},{95,35}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsShortArrays() { + return Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (short[][])[2]", + "$stack3 = newarray (short[])[2]", + "$stack4 = newarray (short)[2]", + "$stack4[0] = 10", + "$stack4[1] = 20", + "$stack3[0] = $stack4", + "$stack5 = newarray (short)[2]", + "$stack5[0] = 40", + "$stack5[1] = 85", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (short[])[2]", + "$stack7 = newarray (short)[2]", + "$stack7[0] = 56", + "$stack7[1] = 59", + "$stack6[0] = $stack7", + "$stack8 = newarray (short)[2]", + "$stack8[0] = 95", + "$stack8[1] = 35", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void longArrays(){
+   *         long[][][] longArray3D = {{{547087L, 654786L},{547287L, 864645L, 6533786L}},{{34565L,234L},{9851L,63543L}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLongArrays() { + return Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (long[][])[2]", + "$stack3 = newarray (long[])[2]", + "$stack4 = newarray (long)[2]", + "$stack4[0] = 547087L", + "$stack4[1] = 654786L", + "$stack3[0] = $stack4", + "$stack5 = newarray (long)[3]", + "$stack5[0] = 547287L", + "$stack5[1] = 864645L", + "$stack5[2] = 6533786L", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (long[])[2]", + "$stack7 = newarray (long)[2]", + "$stack7[0] = 34565L", + "$stack7[1] = 234L", + "$stack6[0] = $stack7", + "$stack8 = newarray (long)[2]", + "$stack8[0] = 9851L", + "$stack8[1] = 63543L", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatArrays(){
+   *         float[][][] floatrray3D = {{{3.14f, 5.46f}, {2.987f, 4.87f}},{{65.15f,854.18f},{16.51f,58.14f}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatArrays() { + return Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (float[][])[2]", + "$stack3 = newarray (float[])[2]", + "$stack4 = newarray (float)[2]", + "$stack4[0] = 3.14F", + "$stack4[1] = 5.46F", + "$stack3[0] = $stack4", + "$stack5 = newarray (float)[2]", + "$stack5[0] = 2.987F", + "$stack5[1] = 4.87F", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (float[])[2]", + "$stack7 = newarray (float)[2]", + "$stack7[0] = 65.15F", + "$stack7[1] = 854.18F", + "$stack6[0] = $stack7", + "$stack8 = newarray (float)[2]", + "$stack8[0] = 16.51F", + "$stack8[1] = 58.14F", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleArrays(){
+   *         double[][][] doubleArray3D = {{{6.765414d, 9.676565646d},{45.345435d}},{{3.5656d,68.234234d},{68416.651d,65416.5d}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleArrays() { + return Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (double[][])[2]", + "$stack3 = newarray (double[])[2]", + "$stack4 = newarray (double)[2]", + "$stack4[0] = 6.765414", + "$stack4[1] = 9.676565646", + "$stack3[0] = $stack4", + "$stack5 = newarray (double)[1]", + "$stack5[0] = 45.345435", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (double[])[2]", + "$stack7 = newarray (double)[2]", + "$stack7[0] = 3.5656", + "$stack7[1] = 68.234234", + "$stack6[0] = $stack7", + "$stack8 = newarray (double)[2]", + "$stack8[0] = 68416.651", + "$stack8[1] = 65416.5", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void booleanArrays(){
+   *         boolean[][][] boolArray3D = {{{true, false},{true}},{{false,false},{true}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBooleanArrays() { + return Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (boolean[][])[2]", + "$stack3 = newarray (boolean[])[2]", + "$stack4 = newarray (boolean)[2]", + "$stack4[0] = 1", + "$stack4[1] = 0", + "$stack3[0] = $stack4", + "$stack5 = newarray (boolean)[1]", + "$stack5[0] = 1", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (boolean[])[2]", + "$stack7 = newarray (boolean)[2]", + "$stack7[0] = 0", + "$stack7[1] = 0", + "$stack6[0] = $stack7", + "$stack8 = newarray (boolean)[1]", + "$stack8[0] = 1", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charArrays(){
+   *         char[][][] charArray3D = {{{'A', 'b', '&'},{'c','$'}},{{'2','G'},{'a','%'}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharArrays() { + return Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (char[][])[2]", + "$stack3 = newarray (char[])[2]", + "$stack4 = newarray (char)[3]", + "$stack4[0] = 65", + "$stack4[1] = 98", + "$stack4[2] = 38", + "$stack3[0] = $stack4", + "$stack5 = newarray (char)[2]", + "$stack5[0] = 99", + "$stack5[1] = 36", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (char[])[2]", + "$stack7 = newarray (char)[2]", + "$stack7[0] = 50", + "$stack7[1] = 71", + "$stack6[0] = $stack7", + "$stack8 = newarray (char)[2]", + "$stack8[0] = 97", + "$stack8[1] = 37", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void stringArrays() {
+   *         String[][][] stringArray3D = {{{"Hello World"}, {"Greetings", "Welcome"}}, {{"Future","Soot"},{"UPB","HNI"}}};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsStringArrays() { + return Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (java.lang.String[][])[2]", + "$stack3 = newarray (java.lang.String[])[2]", + "$stack4 = newarray (java.lang.String)[1]", + "$stack4[0] = \"Hello World\"", + "$stack3[0] = $stack4", + "$stack5 = newarray (java.lang.String)[2]", + "$stack5[0] = \"Greetings\"", + "$stack5[1] = \"Welcome\"", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (java.lang.String[])[2]", + "$stack7 = newarray (java.lang.String)[2]", + "$stack7[0] = \"Future\"", + "$stack7[1] = \"Soot\"", + "$stack6[0] = $stack7", + "$stack8 = newarray (java.lang.String)[2]", + "$stack8[0] = \"UPB\"", + "$stack8[1] = \"HNI\"", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java new file mode 100644 index 00000000000..b61dbdc5a39 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java @@ -0,0 +1,242 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InitializeArraysWhileDeclarationTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts(method, expectedBodyStmtsIntArrays()); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts(method, expectedBodyStmtsByteArrays()); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts(method, expectedBodyStmtsShortArrays()); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts(method, expectedBodyStmtsLongArrays()); + + method = loadMethod(getMethodSignature("floatArrays")); + assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts(method, expectedBodyStmtsCharArrays()); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts(method, expectedBodyStmtsStringArrays()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void intArrays(){
+   *         int[] anArrayOfInts = {1, 2, 3};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (int)[3]", + "$stack2[0] = 1", + "$stack2[1] = 2", + "$stack2[2] = 3", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void byteArrays(){
+   *         byte[] anArrayOfBytes = {4, 5, 6};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByteArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (byte)[3]", + "$stack2[0] = 4", + "$stack2[1] = 5", + "$stack2[2] = 6", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void shortArrays(){
+   *         short[] anArrayOfShorts = {10, 20, 30};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsShortArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (short)[3]", + "$stack2[0] = 10", + "$stack2[1] = 20", + "$stack2[2] = 30", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void longArrays(){
+   *         long[] anArrayOfLongs = {547087L, 564645L, 654786L};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLongArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (long)[3]", + "$stack2[0] = 547087L", + "$stack2[1] = 564645L", + "$stack2[2] = 654786L", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatArrays(){
+   *         float[] anArrayOfFloats = {3.14f, 5.46f, 2.987f, 4.87f};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (float)[4]", + "$stack2[0] = 3.14F", + "$stack2[1] = 5.46F", + "$stack2[2] = 2.987F", + "$stack2[3] = 4.87F", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleArrays(){
+   *         double[] anArrayOfDoubles = {6.765414d, 9.676565646d};
+   *
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (double)[2]", + "$stack2[0] = 6.765414", + "$stack2[1] = 9.676565646", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void booleanArrays(){
+   *         boolean[] anArrayOfBooleans = {true, false};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBooleanArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (boolean)[2]", + "$stack2[0] = 1", + "$stack2[1] = 0", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * public void charArrays(){ char[] anArrayOfChars = {'A', 'b', '&'}; + * + *

} + */ + public List expectedBodyStmtsCharArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (char)[3]", + "$stack2[0] = 65", + "$stack2[1] = 98", + "$stack2[2] = 38", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *

+   *     public void stringArrays(){
+   *         String[] anArrayOfStrings = {"Hello World", "Greetings"};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsStringArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (java.lang.String)[2]", + "$stack2[0] = \"Hello World\"", + "$stack2[1] = \"Greetings\"", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java new file mode 100644 index 00000000000..68a9d6bf53b --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java @@ -0,0 +1,264 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InitializeArraysWithIndexTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts(method, expectedBodyStmtsIntArrays()); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts(method, expectedBodyStmtsByteArrays()); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts(method, expectedBodyStmtsShortArrays()); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts(method, expectedBodyStmtsLongArrays()); + + method = loadMethod(getMethodSignature("floatArrays")); + + assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts(method, expectedBodyStmtsCharArrays()); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts(method, expectedBodyStmtsStringArrays()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *    public void intArrays(){
+   *         int[] anArrayOfInts = new int[3];
+   *         anArrayOfInts[0] = 1;
+   *         anArrayOfInts[1] = 2;
+   *         anArrayOfInts[2] = 3;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (int)[3]", + "l1[0] = 1", + "l1[1] = 2", + "l1[2] = 3", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void byteArrays(){
+   *         byte[] anArrayOfBytes = new byte[3];
+   *         anArrayOfBytes[0] = 4;
+   *         anArrayOfBytes[1] = 5;
+   *         anArrayOfBytes[2] = 6;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByteArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (byte)[3]", + "l1[0] = 4", + "l1[1] = 5", + "l1[2] = 6", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void shortArrays(){
+   *         short[] anArrayOfShorts = new short[3];
+   *         anArrayOfShorts[0] = 10;
+   *         anArrayOfShorts[1] = 20;
+   *         anArrayOfShorts[2] = 30;
+   *
+   *     }
+ */ + public List expectedBodyStmtsShortArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (short)[3]", + "l1[0] = 10", + "l1[1] = 20", + "l1[2] = 30", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void longArrays(){
+   *         long[] anArrayOfLongs = new long[3];
+   *         anArrayOfLongs[0] = 547087L;
+   *         anArrayOfLongs[1] = 564645L;
+   *         anArrayOfLongs[2] = 654786L;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLongArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (long)[3]", + "l1[0] = 547087L", + "l1[1] = 564645L", + "l1[2] = 654786L", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatArrays(){
+   *         float[] anArrayOfFloats = new float[4];
+   *         anArrayOfFloats[0] = 3.14f;
+   *         anArrayOfFloats[1] = 5.46f;
+   *         anArrayOfFloats[2] = 2.987f;
+   *         anArrayOfFloats[3] = 4.87f;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (float)[4]", + "l1[0] = 3.14F", + "l1[1] = 5.46F", + "l1[2] = 2.987F", + "l1[3] = 4.87F", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleArrays(){
+   *         double[] anArrayOfDoubles = new double[2];
+   *         anArrayOfDoubles[0] = 6.765414d;
+   *         anArrayOfDoubles[1] = 9.676565646d;
+   *
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (double)[2]", + "l1[0] = 6.765414", + "l1[1] = 9.676565646", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void booleanArrays(){
+   *         boolean[] anArrayOfBooleans = new boolean[2];
+   *         anArrayOfBooleans[0] = true;
+   *         anArrayOfBooleans[1] = false;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBooleanArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (boolean)[2]", + "l1[0] = 1", + "l1[1] = 0", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charArrays(){
+   *         char[] anArrayOfChars = new char[3];
+   *         anArrayOfChars[0] = 'A';
+   *         anArrayOfChars[1] = 'b';
+   *         anArrayOfChars[2] = '&';
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (char)[3]", + "l1[0] = 65", + "l1[1] = 98", + "l1[2] = 38", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void stringArrays(){
+   *         String[] anArrayOfStrings = new String[2];
+   *         anArrayOfStrings[0] = "Hello World";
+   *         anArrayOfStrings[1] = "Greetings";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsStringArrays() { + return Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (java.lang.String)[2]", + "l1[0] = \"Hello World\"", + "l1[1] = \"Greetings\"", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java new file mode 100644 index 00000000000..d8b14725b11 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java @@ -0,0 +1,307 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InitializeMultidimensionalArraysTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts(method, expectedBodyStmtsIntArrays()); + + method = loadMethod(getMethodSignature("byteArrays")); + + assertJimpleStmts(method, expectedBodyStmtsByteArrays()); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts(method, expectedBodyStmtsShortArrays()); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts(method, expectedBodyStmtsLongArrays()); + + method = loadMethod(getMethodSignature("floatArrays")); + + assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts(method, expectedBodyStmtsCharArrays()); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts(method, expectedBodyStmtsStringArrays()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void intArrays(){
+   *         int[][] anArrayOfInts = {{1, 2, 3},{5, 6},{7, 8, 9}};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntArrays() { + return Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (int[])[3]", + "$stack3 = newarray (int)[3]", + "$stack3[0] = 1", + "$stack3[1] = 2", + "$stack3[2] = 3", + "$stack2[0] = $stack3", + "$stack4 = newarray (int)[2]", + "$stack4[0] = 5", + "$stack4[1] = 6", + "$stack2[1] = $stack4", + "$stack5 = newarray (int)[3]", + "$stack5[0] = 7", + "$stack5[1] = 8", + "$stack5[2] = 9", + "$stack2[2] = $stack5", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void byteArrays(){
+   *         byte[][] anArrayOfBytes = {{4, 5},{2}};
+   *
+   *     }
+ */ + public List expectedBodyStmtsByteArrays() { + return Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (byte[])[2]", + "$stack3 = newarray (byte)[2]", + "$stack3[0] = 4", + "$stack3[1] = 5", + "$stack2[0] = $stack3", + "$stack4 = newarray (byte)[1]", + "$stack4[0] = 2", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
public void shortArrays(){
+   *         short[][] anArrayOfShorts = {{10, 20, 30},{40}};
+   *
+   *     }
+ */ + public List expectedBodyStmtsShortArrays() { + return Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (short[])[2]", + "$stack3 = newarray (short)[3]", + "$stack3[0] = 10", + "$stack3[1] = 20", + "$stack3[2] = 30", + "$stack2[0] = $stack3", + "$stack4 = newarray (short)[1]", + "$stack4[0] = 40", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
public void longArrays(){
+   *         long[][] anArrayOfLongs = {{547087L, 654786L},{547287L, 864645L, 6533786L},{34565L,234L}};
+   *
+   *     }
+ */ + public List expectedBodyStmtsLongArrays() { + return Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (long[])[3]", + "$stack3 = newarray (long)[2]", + "$stack3[0] = 547087L", + "$stack3[1] = 654786L", + "$stack2[0] = $stack3", + "$stack4 = newarray (long)[3]", + "$stack4[0] = 547287L", + "$stack4[1] = 864645L", + "$stack4[2] = 6533786L", + "$stack2[1] = $stack4", + "$stack5 = newarray (long)[2]", + "$stack5[0] = 34565L", + "$stack5[1] = 234L", + "$stack2[2] = $stack5", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatArrays(){
+   *         float[][] anArrayOfFloats = {{3.14f, 5.46f}, {2.987f, 4.87f}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatArrays() { + return Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (float[])[2]", + "$stack3 = newarray (float)[2]", + "$stack3[0] = 3.14F", + "$stack3[1] = 5.46F", + "$stack2[0] = $stack3", + "$stack4 = newarray (float)[2]", + "$stack4[0] = 2.987F", + "$stack4[1] = 4.87F", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleArrays(){
+   *         double[][] anArrayOfDoubles = {{6.765414d, 9.676565646d},{45.345435d},{3.5656d,68.234234d}};
+   *
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleArrays() { + return Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (double[])[3]", + "$stack3 = newarray (double)[2]", + "$stack3[0] = 6.765414", + "$stack3[1] = 9.676565646", + "$stack2[0] = $stack3", + "$stack4 = newarray (double)[1]", + "$stack4[0] = 45.345435", + "$stack2[1] = $stack4", + "$stack5 = newarray (double)[2]", + "$stack5[0] = 3.5656", + "$stack5[1] = 68.234234", + "$stack2[2] = $stack5", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void booleanArrays(){
+   *         boolean[][] anArrayOfBooleans = {{true, false},{true}};
+   *
+   *     }
+ */ + public List expectedBodyStmtsBooleanArrays() { + return Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (boolean[])[2]", + "$stack3 = newarray (boolean)[2]", + "$stack3[0] = 1", + "$stack3[1] = 0", + "$stack2[0] = $stack3", + "$stack4 = newarray (boolean)[1]", + "$stack4[0] = 1", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charArrays(){
+   *         char[][] anArrayOfChars = {{'A', 'b', '&'},{'c','$'},{'2','G'}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharArrays() { + return Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (char[])[3]", + "$stack3 = newarray (char)[3]", + "$stack3[0] = 65", + "$stack3[1] = 98", + "$stack3[2] = 38", + "$stack2[0] = $stack3", + "$stack4 = newarray (char)[2]", + "$stack4[0] = 99", + "$stack4[1] = 36", + "$stack2[1] = $stack4", + "$stack5 = newarray (char)[2]", + "$stack5[0] = 50", + "$stack5[1] = 71", + "$stack2[2] = $stack5", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void stringArrays(){
+   *         String[][] anArrayOfStrings = {{"Hello World"}, {"Greetings", "Welcome"}};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsStringArrays() { + return Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (java.lang.String[])[2]", + "$stack3 = newarray (java.lang.String)[1]", + "$stack3[0] = \"Hello World\"", + "$stack2[0] = $stack3", + "$stack4 = newarray (java.lang.String)[2]", + "$stack4[0] = \"Greetings\"", + "$stack4[1] = \"Welcome\"", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InstanceOfCheckTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InstanceOfCheckTest.java new file mode 100644 index 00000000000..cac1f381006 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InstanceOfCheckTest.java @@ -0,0 +1,60 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertEquals; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InstanceOfCheckTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "instanceOfCheckMethod", "void", Collections.emptyList()); + } + + @org.junit.Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + if (sootClass.getSuperclass().isPresent()) { + assertEquals("InstanceOfCheckSuper", sootClass.getSuperclass().get().getClassName()); + } + } + + /** + * + * + *
+   * public void instanceOfCheckMethod(){
+   * InstanceOfCheck obj= new InstanceOfCheck();
+   * System.out.println(obj instanceof InstanceOfCheckSuper);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: InstanceOfCheck", + "$stack2 = new InstanceOfCheck", + "specialinvoke $stack2.()>()", + "l1 = $stack2", + "$stack4 = ", + "$stack3 = l1 instanceof InstanceOfCheckSuper", + "virtualinvoke $stack4.($stack3)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InterfaceImplClassTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InterfaceImplClassTest.java new file mode 100644 index 00000000000..a732b5e2c33 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/InterfaceImplClassTest.java @@ -0,0 +1,68 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InterfaceImplClassTest extends MinimalBytecodeTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equalsIgnoreCase("InterfaceImpl"); + })); + } + + /** + * + * + *
+   *
+   * 
+ */ + /** + * + * + *
+   * public void interfaceMethod(){
+   * System.out.print("Method from InterfaceImpl is implemented");
+   * System.out.println("Variable from InterfaceImpl is "+a);
+   * };
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: InterfaceImplClass", + "$stack1 = ", + "virtualinvoke $stack1.(\"Method from InterfaceImpl is implemented\")", + "$stack2 = ", + "virtualinvoke $stack2.(\"Variable from InterfaceImpl is 10\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/LabelStatementTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/LabelStatementTest.java new file mode 100644 index 00000000000..2c2194f5f34 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/LabelStatementTest.java @@ -0,0 +1,64 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class LabelStatementTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "labelStatement", "void", Collections.emptyList()); + } + + /**
+   * public void labelStatement(){
+   * int num = 20;
+   * int i = 1;
+   * start:
+   * while (i*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: LabelStatement",
+            "l1 = 20",
+            "l2 = 1",
+            "label1:",
+            "$stack5 = l2",
+            "$stack4 = l1",
+            "if $stack5 >= $stack4 goto label3",
+            "$stack3 = l2 % 10",
+            "if $stack3 != 0 goto label2",
+            "goto label3",
+            "label2:",
+            "l2 = l2 + 1",
+            "goto label1",
+            "label3:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/LabelledLoopBreakTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/LabelledLoopBreakTest.java
new file mode 100644
index 00000000000..4bc212ba6ca
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/LabelledLoopBreakTest.java
@@ -0,0 +1,69 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class LabelledLoopBreakTest extends MinimalBytecodeTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "labelledLoopBreak", "void", Collections.emptyList());
+  }
+
+  /**  
+   * public void labelledLoopBreak() {
+   * start:
+   * for (int i = 0; i < 5; i++) {
+   * for (int j = 0; j < 5; j++) {
+   * if (i == 1) {
+   * break start;
+   * }
+   * }
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: LabelledLoopBreak",
+            "l1 = 0",
+            "label1:",
+            "$stack4 = l1",
+            "$stack3 = 5",
+            "if $stack4 >= $stack3 goto label5",
+            "l2 = 0",
+            "label2:",
+            "$stack6 = l2",
+            "$stack5 = 5",
+            "if $stack6 >= $stack5 goto label4",
+            "if l1 != 1 goto label3",
+            "goto label5",
+            "label3:",
+            "l2 = l2 + 1",
+            "goto label2",
+            "label4:",
+            "l1 = l1 + 1",
+            "goto label1",
+            "label5:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodAcceptingVarTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodAcceptingVarTest.java
new file mode 100644
index 00000000000..921cbb3b435
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodAcceptingVarTest.java
@@ -0,0 +1,168 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class MethodAcceptingVarTest extends MinimalBytecodeTestSuiteBase {
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature("short"));
+    assertJimpleStmts(method, expectedBodyStmtsShort());
+
+    method = loadMethod(getMethodSignature("byte"));
+    assertJimpleStmts(method, expectedBodyStmtsByte());
+
+    method = loadMethod(getMethodSignature("char"));
+    assertJimpleStmts(method, expectedBodyStmtsChar());
+
+    method = loadMethod(getMethodSignature("int"));
+    assertJimpleStmts(method, expectedBodyStmtsInt());
+
+    method = loadMethod(getMethodSignature("long"));
+    assertJimpleStmts(method, expectedBodyStmtsLong());
+
+    method = loadMethod(getMethodSignature("float"));
+    assertJimpleStmts(method, expectedBodyStmtsFloat());
+
+    method = loadMethod(getMethodSignature("double"));
+    assertJimpleStmts(method, expectedBodyStmtsDouble());
+  }
+
+  public MethodSignature getMethodSignature(String datatype) {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(),
+        datatype + "Variable",
+        "void",
+        Collections.singletonList(datatype));
+  }
+
+  /**
+   *
+   *
+   * 
+   *    public void shortVariable(short a) {
+   *        a++;
+   * }
+   * 
+ */ + public List expectedBodyStmtsShort() { + return Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: short", + "$stack2 = l1 + 1", + "l1 = (short) $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void byteVariable(byte b) {
+   *     b++;
+   * }
+   * 
+ */ + public List expectedBodyStmtsByte() { + return Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: byte", + "$stack2 = l1 + 1", + "l1 = (byte) $stack2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void charVariable(char c) {
+   *    c = 'a';
+   * }
+   * 
+ */ + public List expectedBodyStmtsChar() { + return Stream.of( + "l0 := @this: MethodAcceptingVar", "l1 := @parameter0: char", "l1 = 97", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void intVariable(int d) {
+   *    d++;
+   * }
+   * 
+ */ + public List expectedBodyStmtsInt() { + return Stream.of( + "l0 := @this: MethodAcceptingVar", "l1 := @parameter0: int", "l1 = l1 + 1", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void longVariable(long e) {
+   *     e = 123456777;
+   * }
+   * 
+ */ + public List expectedBodyStmtsLong() { + return Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: long", + "l1 = 123456777L", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void floatVariable(float f) {
+   *         f = 7.77f;
+   * }
+   * 
+ */ + public List expectedBodyStmtsFloat() { + return Stream.of( + "l0 := @this: MethodAcceptingVar", "l1 := @parameter0: float", "l1 = 7.77F", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void doubleVariable(double g) {
+   *     g = 1.787777777;
+   * }
+   * 
+ */ + public List expectedBodyStmtsDouble() { + return Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: double", + "l1 = 1.787777777", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodOverloadingTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodOverloadingTest.java new file mode 100644 index 00000000000..d9d1b38a370 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodOverloadingTest.java @@ -0,0 +1,92 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MethodOverloadingTest extends MinimalBytecodeTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "calculate", "int", Arrays.asList("int", "int")); + } + /** @returns the method signature needed for second method in testCase */ + public MethodSignature getMethodSignatureSingleParam() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "calculate", "int", Collections.singletonList("int")); + } + + public MethodSignature getMethodSignatureInit() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = loadMethod(getMethodSignatureSingleParam()); + assertJimpleStmts(method, expectedBodyStmts1()); + + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(sootClass.getMethod(getMethodSignature().getSubSignature()).isPresent()); + assertTrue(sootClass.getMethod(getMethodSignatureSingleParam().getSubSignature()).isPresent()); + assertTrue(sootClass.getMethod(getMethodSignatureInit().getSubSignature()).isPresent()); + assertEquals(3, sootClass.getMethods().size()); + } + + /** + * + * + *
+   * int calculate(int a, int b){
+   * return a+b;
+   *
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MethodOverloading", + "l1 := @parameter0: int", + "l2 := @parameter1: int", + "$stack3 = l1 + l2", + "return $stack3") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   * int calculate(int a){
+   * return a+a;
+   *
+   *  }
+   *  
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: MethodOverloading", + "l1 := @parameter0: int", + "$stack2 = l1 + l1", + "return $stack2") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodOverridingTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodOverridingTest.java new file mode 100644 index 00000000000..17f1837abc5 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodOverridingTest.java @@ -0,0 +1,53 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MethodOverridingTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignature() { + + return identifierFactory.getMethodSignature( + identifierFactory.getClassType("MethodOverridingSubclass"), + "calculateArea", + "void", + Collections.emptyList()); + } + + /** + * + * + *
+   * public void calculateArea(){
+   * System.out.println("Inside MethodOverriding-calculateArea()");
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MethodOverridingSubclass", + "$stack1 = ", + "virtualinvoke $stack1.(\"Inside MethodOverridingSubclass-calculateArea()\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodReturningVarTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodReturningVarTest.java new file mode 100644 index 00000000000..ccfe68dc46c --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MethodReturningVarTest.java @@ -0,0 +1,152 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MethodReturningVarTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("short")); + assertJimpleStmts(method, expectedBodyStmtsShort()); + + method = loadMethod(getMethodSignature("byte")); + assertJimpleStmts(method, expectedBodyStmtsByte()); + + method = loadMethod(getMethodSignature("char")); + assertJimpleStmts(method, expectedBodyStmtsChar()); + + method = loadMethod(getMethodSignature("int")); + assertJimpleStmts(method, expectedBodyStmtsInt()); + + method = loadMethod(getMethodSignature("long")); + assertJimpleStmts(method, expectedBodyStmtsLong()); + + method = loadMethod(getMethodSignature("float")); + assertJimpleStmts(method, expectedBodyStmtsFloat()); + + method = loadMethod(getMethodSignature("double")); + assertJimpleStmts(method, expectedBodyStmtsDouble()); + } + + public MethodSignature getMethodSignature(String datatype) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), datatype + "Variable", datatype, Collections.emptyList()); + } + + /** + * + * + *
+   * public short shortVariable() {
+   *         short a = 10;
+   *         return a;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsShort() { + return Stream.of("l0 := @this: MethodReturningVar", "l1 = 10", "return l1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public byte byteVariable() {
+   *         byte b = 0;
+   *         return b;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByte() { + return Stream.of("l0 := @this: MethodReturningVar", "l1 = 0", "return l1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public char charVariable() {
+   *         char c = 'a';
+   *         return c;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsChar() { + return Stream.of("l0 := @this: MethodReturningVar", "l1 = 97", "return l1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public int intVariable() {
+   *         int d = 512;
+   *         return d;
+   *     }
+   *     
+ */ + public List expectedBodyStmtsInt() { + return Stream.of("l0 := @this: MethodReturningVar", "l1 = 512", "return l1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public long longVariable() {
+   *         long e = 123456789;
+   *         return e;
+   *
+   *     }
+   *     
+ */ + public List expectedBodyStmtsLong() { + return Stream.of("l0 := @this: MethodReturningVar", "l1 = 123456789L", "return l1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public float floatVariable() {
+   *         float f = 3.14f;
+   *         return f;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloat() { + return Stream.of("l0 := @this: MethodReturningVar", "l1 = 3.14F", "return l1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public double doubleVariable() {
+   *         double g = 1.96969654d;
+   *         return g;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDouble() { + return Stream.of("l0 := @this: MethodReturningVar", "l1 = 1.96969654", "return l1") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java new file mode 100644 index 00000000000..9965a789d8a --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java @@ -0,0 +1,61 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MultiInterfaceImplClassTest extends MinimalBytecodeTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equals("InterfaceImplDummy"); + })); + } + + /** + * + * + *
+   * public void interfaceMethod(){
+   * System.out.print("Method from InterfaceImpl is implemented");
+   * System.out.println("Variable from InterfaceImpl is "+a);
+   * };
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MultiInterfaceImplClass", + "$stack1 = ", + "virtualinvoke $stack1.(\"Method from InterfaceImpl is implemented\")", + "$stack2 = ", + "virtualinvoke $stack2.(\"Variable from InterfaceImpl is 10\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java new file mode 100644 index 00000000000..37576dc2fa3 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java @@ -0,0 +1,56 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class NamedClassInsideMethodTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "namedClassInsideMethod", "void", Collections.emptyList()); + } + + /**
+   * public void namedClassInsideMethod() {
+   *
+   * class MyMathOperation implements MathOperation {
+   * int i = 0;
+   * public void addition() {
+   * i++;
+   * }
+   * }
+   *
+   * MathOperation myMathOperation = new MyMathOperation();
+   * myMathOperation.addition();
+   *
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: NamedClassInsideMethod",
+            "$stack2 = new NamedClassInsideMethod$1MyMathOperation",
+            "specialinvoke $stack2.(NamedClassInsideMethod)>(l0)",
+            "l1 = $stack2",
+            "interfaceinvoke l1.()",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NativeMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NativeMethodTest.java
new file mode 100644
index 00000000000..bb75a1cf75d
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NativeMethodTest.java
@@ -0,0 +1,27 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertTrue;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class NativeMethodTest extends MinimalBytecodeTestSuiteBase {
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "returnResult", "int", Collections.singletonList("int"));
+  }
+
+  @Test
+  public void nativeMethod() {
+    SootMethod sootMethod = loadMethod(getMethodSignature());
+    assertTrue(sootMethod.isNative());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java
new file mode 100644
index 00000000000..c60452ade88
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java
@@ -0,0 +1,46 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class NewCodeBlockInMethodTest extends MinimalBytecodeTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "newCodeBlockInMethod", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * public void newCodeBlockInMethod(){
+   * {
+   * int i = 5;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: NewCodeBlockInMethod", "l1 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NoModifierClassTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NoModifierClassTest.java new file mode 100644 index 00000000000..d9ea4213db6 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NoModifierClassTest.java @@ -0,0 +1,38 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class NoModifierClassTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + JavaSootClass clazz = loadClass(getDeclaredClassSignature()); + // TODO SYNCHRONIZED modifier does not work + // assertEquals(EnumSet.noneOf(Modifier.class), clazz.getModifiers()); + assertTrue(clazz.getMethod(getMethodSignature("private").getSubSignature()).get().isPrivate()); + assertTrue( + clazz.getMethod(getMethodSignature("protected").getSubSignature()).get().isProtected()); + assertTrue(clazz.getMethod(getMethodSignature("public").getSubSignature()).get().isPublic()); + assertTrue( + clazz + .getMethod(getMethodSignature("noModifier").getSubSignature()) + .get() + .getModifiers() + .isEmpty()); + } + + public MethodSignature getMethodSignature(String modifier) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NullVariableTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NullVariableTest.java new file mode 100644 index 00000000000..d4cde6da849 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/NullVariableTest.java @@ -0,0 +1,45 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class NullVariableTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "nullVariable", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void nullVariable(){
+   * String str = null;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: NullVariable", "l1 = null", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/PublicClassTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/PublicClassTest.java new file mode 100644 index 00000000000..f540bd17a85 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/PublicClassTest.java @@ -0,0 +1,75 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.EnumSet; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class PublicClassTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertEquals(EnumSet.of(Modifier.PUBLIC, Modifier.SYNCHRONIZED), clazz.getModifiers()); + + SootMethod method; + method = clazz.getMethod(getMethodSignature("private").getSubSignature()).get(); + assertTrue(method.isPrivate()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = clazz.getMethod(getMethodSignature("protected").getSubSignature()).get(); + assertTrue(method.isProtected()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = clazz.getMethod(getMethodSignature("public").getSubSignature()).get(); + assertTrue(method.isPublic()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = clazz.getMethod(getMethodSignature("noModifier").getSubSignature()).get(); + assertTrue(method.getModifiers().isEmpty()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + public MethodSignature getMethodSignature(String modifier) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void publicMethod() {
+   *
+   * }
+   * private void privateMethod() {
+   *
+   * }
+   * protected void protectedMethod() {
+   *
+   * }
+   * void noModifierMethod() {
+   *
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: PublicClass", "return").collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java new file mode 100644 index 00000000000..edfa909cbbf --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java @@ -0,0 +1,45 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ReferenceVarDeclarationTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringVariable", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void stringVariable() {
+   * String str = "Hello World";
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: ReferenceVarDeclaration", "l1 = \"Hello World\"", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ReferencingThisTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ReferencingThisTest.java new file mode 100644 index 00000000000..32ede2e78f2 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ReferencingThisTest.java @@ -0,0 +1,69 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ReferencingThisTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "thisMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * ReferencingThis(){
+   * this(10,20);
+   * System.out.println("this() to invoke current class constructor");
+   * }
+   * ReferencingThis getObject(){
+   * System.out.println("'this' keyword to return the current class instance");
+   * return this;
+   * }
+   * void show(){
+   * System.out.println("'this' keyword as method parameter");
+   * thisDisplay(this);
+   * }
+   * void thisMethod(){
+   * System.out.println(" this keyword as an argument in the constructor call");
+   * ReferencingThis obj= new ReferencingThis(this.a, this.b);
+   * obj.show();
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: ReferencingThis", + "$stack2 = ", + "virtualinvoke $stack2.(\" this keyword as an argument in the constructor call\")", + "$stack3 = new ReferencingThis", + "$stack5 = l0.", + "$stack4 = l0.", + "specialinvoke $stack3.(int,int)>($stack5, $stack4)", + "l1 = $stack3", + "virtualinvoke l1.()", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ReflectionTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ReflectionTest.java new file mode 100644 index 00000000000..26b7090eb31 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ReflectionTest.java @@ -0,0 +1,72 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ReflectionTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "checkReflection", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public Reflection(){
+   * s="String";
+   * }
+   * public void checkReflection()  throws  NoSuchMethodException{
+   *
+   * Reflection reflection = new Reflection();
+   * Class reflectionClass = Reflection.class;
+   * System.out.println(reflectionClass);
+   * Constructor constructor = reflectionClass.getConstructor();
+   * System.out.println(constructor.getName());
+   * System.out.println(reflectionClass.getMethods().length);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: Reflection", + "$stack4 = new Reflection", + "specialinvoke $stack4.()>()", + "l1 = $stack4", + "l2 = class \"LReflection;\"", + "$stack5 = ", + "virtualinvoke $stack5.(l2)", + "$stack6 = newarray (java.lang.Class)[0]", + "l3 = virtualinvoke l2.($stack6)", + "$stack7 = ", + "$stack8 = virtualinvoke l3.()", + "virtualinvoke $stack7.($stack8)", + "$stack9 = ", + "$stack10 = virtualinvoke l2.()", + "$stack11 = lengthof $stack10", + "virtualinvoke $stack9.($stack11)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StatementEvalTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StatementEvalTest.java new file mode 100644 index 00000000000..616f78b1939 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StatementEvalTest.java @@ -0,0 +1,51 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StatementEvalTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "statementEval", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void statementEval(){
+   * int b = 1;
+   * b = b + (b = 3);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: StatementEval", + "l1 = 1", + "$stack2 = l1", + "l1 = 3", + "l1 = $stack2 + 3", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticImportTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticImportTest.java new file mode 100644 index 00000000000..e6e240f2117 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticImportTest.java @@ -0,0 +1,62 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticImportTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "mathFunctions", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + } + + /** + * + * + *
+   * public void mathFunctions(){
+   * out.println(sqrt(4));
+   * out.println(pow(2,5));
+   * out.println(ceil(5.6));
+   * out.println("Static import for System.out");
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: StaticImport", + "$stack1 = ", + "$stack2 = staticinvoke (4.0)", + "virtualinvoke $stack1.($stack2)", + "$stack3 = ", + "$stack4 = staticinvoke (2.0, 5.0)", + "virtualinvoke $stack3.($stack4)", + "$stack5 = ", + "$stack6 = staticinvoke (5.6)", + "virtualinvoke $stack5.($stack6)", + "$stack7 = ", + "virtualinvoke $stack7.(\"Static import for System.out\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticInitializerTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticInitializerTest.java new file mode 100644 index 00000000000..baf38a63e2c --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticInitializerTest.java @@ -0,0 +1,75 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticInitializerTest extends MinimalBytecodeTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodStaticInitializer", "void", Collections.emptyList()); + } + + public MethodSignature getStaticMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + + assertTrue( + clazz.getFields().stream() + .anyMatch(sootField -> sootField.getName().equals("i") && sootField.isStatic())); + + final SootMethod staticMethod = loadMethod(getStaticMethodSignature()); + assertTrue(staticMethod.isStatic()); + assertJimpleStmts(staticMethod, expectedBodyStmtsOfClinit()); + } + + public List expectedBodyStmtsOfClinit() { + return Stream.of( + " = 5", + "$stack0 = ", + "if $stack0 <= 4 goto label1", + " = 4", + "label1:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * static void methodStaticInitializer(){
+   * System.out.println(i);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "$stack1 = ", + "$stack0 = ", + "virtualinvoke $stack1.($stack0)", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticMethodInvocationTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticMethodInvocationTest.java new file mode 100644 index 00000000000..535e022bb2d --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticMethodInvocationTest.java @@ -0,0 +1,43 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticMethodInvocationTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticMethodInvocation", "void", Collections.emptyList()); + } + + /**
+   * public void staticMethodInvocation(){
+   * StaticMethodInvocation.staticmethod();
+   * }
+   * }
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: StaticMethodInvocation",
+            "staticinvoke ()",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticMethodTest.java
new file mode 100644
index 00000000000..eb9a1c721e7
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticMethodTest.java
@@ -0,0 +1,52 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertTrue;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class StaticMethodTest extends MinimalBytecodeTestSuiteBase {
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "staticMethod", "void", Collections.emptyList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method1 = loadMethod(getMethodSignature());
+    assertJimpleStmts(method1, expectedBodyStmts());
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+    assertTrue(method.isStatic());
+  }
+
+  /**
+   *
+   *
+   * 
+   * static void staticMethod(){
+   * System.out.println("static method");
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "$stack0 = ", + "virtualinvoke $stack0.(\"static method\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticVariableTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticVariableTest.java new file mode 100644 index 00000000000..ef11c4c77ea --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StaticVariableTest.java @@ -0,0 +1,59 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticVariableTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticVariable", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + element -> { + return element.getName().equals("num") && element.isStatic(); + })); + } + + /** + * + * + *
+   * public static void staticVariable(){
+   * System.out.println(num);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "$stack1 = ", + "$stack0 = ", + "virtualinvoke $stack1.($stack0)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StringConcatenationTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StringConcatenationTest.java new file mode 100644 index 00000000000..beeecb4b4ef --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StringConcatenationTest.java @@ -0,0 +1,45 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StringConcatenationTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void stringConcatenation(){
+   * String str = "the" + "string";
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: StringConcatenation", "l1 = \"thestring\"", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java new file mode 100644 index 00000000000..0ed3d5e662f --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java @@ -0,0 +1,45 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StringWithUnicodeCharTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringWithUnicodeChar", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void stringWithUnicodeChar(){
+   * String str = "\u0024"+"123";
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: StringWithUnicodeChar", "l1 = \"$123\"", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SubClassTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SubClassTest.java new file mode 100644 index 00000000000..32b7e0d7c1f --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SubClassTest.java @@ -0,0 +1,87 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SubClassTest extends MinimalBytecodeTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "subclassMethod", "void", Collections.emptyList()); + } + + /** @returns the method signature needed for second method in testCase */ + public MethodSignature getMethodSignature1() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); + } + + @Test + public void testSuperClassStmts() { + SootMethod m = loadMethod(getMethodSignature1()); + assertJimpleStmts(m, expectedBodyStmts1()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(sootClass.getSuperclass().get().getClassName().equals("SuperClass")); + } + + /** + * + * + *
+   * public void subclassMethod() {
+   * aa=10;
+   * bb=20;
+   * cc=30;
+   * dd=40;
+   * }
+   * public void superclassMethod(){
+   * super.superclassMethod();
+   * a=100;
+   * b=200;
+   * c=300;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: SubClass", + "l0. = 10", + "l0. = 20", + "l0. = 30", + "l0. = 40", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: SubClass", + "specialinvoke l0.()", + "l0. = 100", + "l0. = 200", + "l0. = 300", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SuperClassTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SuperClassTest.java new file mode 100644 index 00000000000..b5bea78becd --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SuperClassTest.java @@ -0,0 +1,53 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SuperClassTest extends MinimalBytecodeTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void superclassMethod() {
+   * a=10;
+   * b=20;
+   * c=30;
+   * d=40;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: SuperClass", + "l0. = 10", + "l0. = 20", + "l0. = 30", + "l0. = 40", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SwitchCaseStatementTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SwitchCaseStatementTest.java new file mode 100644 index 00000000000..4c391461b95 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SwitchCaseStatementTest.java @@ -0,0 +1,231 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SwitchCaseStatementTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void switchCaseStatementEnum() { + SootMethod method = loadMethod(getMethodSignature("switchCaseStatementEnum")); + assertJimpleStmts( + method, + expectedBodyStmts( + "l0 := @this: SwitchCaseStatement", + "l1 = ", + "l2 = \"\"", + "$stack3 = ", + "$stack4 = virtualinvoke l1.()", + "$stack5 = $stack3[$stack4]", + "switch($stack5)", + "case 1: goto label1", + "case 2: goto label2", + "default: goto label3", + "label1:", + "l2 = \"red\"", + "goto label4", + "label2:", + "l2 = \"green\"", + "goto label4", + "label3:", + "l2 = \"invalid\"", + "label4:", + "return")); + } + + @Test + public void testSwitchInt() { + SootMethod method = loadMethod(getMethodSignature("switchCaseStatementInt")); + assertJimpleStmts( + method, + expectedBodyStmts( + "l0 := @this: SwitchCaseStatement", + "l1 = 5", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label2", + "case 3: goto label3", + "default: goto label4", + "label1:", + "l2 = \"one\"", + "goto label5", + "label2:", + "l2 = \"two\"", + "goto label5", + "label3:", + "l2 = \"three\"", + "goto label5", + "label4:", + "l2 = \"invalid\"", + "label5:", + "return")); + } + + @Test + public void testSwitchCaseWithoutDefault() { + SootMethod method = loadMethod(getMethodSignature("switchCaseWithoutDefault")); + assertJimpleStmts( + method, + expectedBodyStmts( + "l0 := @this: SwitchCaseStatement", + "l1 = 6", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label2", + "case 3: goto label3", + "default: goto label4", + "label1:", + "l2 = \"one\"", + "goto label4", + "label2:", + "l2 = \"two\"", + "goto label4", + "label3:", + "l2 = \"three\"", + "label4:", + "return")); + } + + @Test + public void testSwitchCaseGroupedTargets() { + SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargets")); + assertJimpleStmts( + method, + expectedBodyStmts( + "l0 := @this: SwitchCaseStatement", + "l1 = 7", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label1", + "case 3: goto label2", + "default: goto label3", + "label1:", + "l2 = \"first\"", + "goto label3", + "label2:", + "l2 = \"second\"", + "label3:", + "return")); + } + + @Test + public void testSwitchCaseGroupedTargetsDefault() { + SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargetsDefault")); + assertJimpleStmts( + method, + expectedBodyStmts( + "l0 := @this: SwitchCaseStatement", + "l1 = 8", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label1", + "case 3: goto label2", + "default: goto label3", + "label1:", + "l2 = \"first\"", + "goto label4", + "label2:", + "l2 = \"second\"", + "goto label4", + "label3:", + "l2 = \"other\"", + "label4:", + "return")); + } + + @Test + public void switchCaseStatementCaseIncludingIf() { + SootMethod method = loadMethod(getMethodSignature("switchCaseStatementCaseIncludingIf")); + assertJimpleStmts( + method, + expectedBodyStmts( + "l0 := @this: SwitchCaseStatement", + "l1 = 2", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label3", + "case 3: goto label4", + "default: goto label5", + "label1:", + "l2 = 1", + "if l1 != 666 goto label2", + "l2 = 11", + "goto label6", + "label2:", + "l2 = 12", + "goto label6", + "label3:", + "l2 = 2", + "goto label6", + "label4:", + "l2 = 3", + "goto label6", + "label5:", + "l2 = -1", + "label6:", + "return")); + } + + @Test + public void switchCaseStatementCaseIncludingSwitch() { + SootMethod method = loadMethod(getMethodSignature("switchWithSwitch")); + assertJimpleStmts( + method, + expectedBodyStmts( + "l0 := @this: SwitchCaseStatement", + "l1 = 2", + "switch(l1)", + "case 1: goto label01", + "case 2: goto label05", + "case 3: goto label10", + "default: goto label11", + "label01:", + "switch(l1)", + "case 10: goto label02", + "case 20: goto label03", + "default: goto label04", + "label02:", + "l2 = 11", + "goto label04", + "label03:", + "l2 = 12", + "label04:", + "goto label12", + "label05:", + "l2 = 2", + "switch(l1)", + "case 20: goto label06", + "case 30: goto label07", + "case 40: goto label08", + "default: goto label09", + "label06:", + "l2 = 220", + "goto label09", + "label07:", + "l2 = 230", + "goto label09", + "label08:", + "l2 = 240", + "label09:", + "goto label12", + "label10:", + "l2 = 3", + "goto label12", + "label11:", + "l2 = -1", + "label12:", + "return")); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SynchronizedBlockTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SynchronizedBlockTest.java new file mode 100644 index 00000000000..17878822fc7 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SynchronizedBlockTest.java @@ -0,0 +1,68 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SynchronizedBlockTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "run", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + /**
+   * public void run()
+   * {
+   * synchronized(msg)
+   * {
+   * System.out.println(msg);
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: SynchronizedBlock",
+            "$stack3 = l0.",
+            "l1 = $stack3",
+            "entermonitor $stack3",
+            "label1:",
+            "$stack5 = ",
+            "$stack4 = l0.",
+            "virtualinvoke $stack5.($stack4)",
+            "$stack6 = l1",
+            "exitmonitor $stack6",
+            "label2:",
+            "goto label5",
+            "label3:",
+            "$stack7 := @caughtexception",
+            "l2 = $stack7",
+            "$stack8 = l1",
+            "exitmonitor $stack8",
+            "label4:",
+            "throw l2",
+            "label5:",
+            "return",
+            "catch java.lang.Throwable from label1 to label2 with label3",
+            "catch java.lang.Throwable from label3 to label4 with label3")
+        .collect(Collectors.toCollection(ArrayList::new));
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SynchronizedMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SynchronizedMethodTest.java
new file mode 100644
index 00000000000..3b968072f0a
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/SynchronizedMethodTest.java
@@ -0,0 +1,49 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertTrue;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class SynchronizedMethodTest extends MinimalBytecodeTestSuiteBase {
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "run", "void", Collections.emptyList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+    assertTrue(method.isSynchronized());
+  }
+
+  /**  
+   * public synchronized void run()
+   * {
+   * System.out.println("test");
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: SynchronizedMethod",
+            "$stack1 = ",
+            "virtualinvoke $stack1.(\"test\")",
+            "return")
+        .collect(Collectors.toCollection(ArrayList::new));
+  }
+}
diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/TernaryOperatorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/TernaryOperatorTest.java
new file mode 100644
index 00000000000..fa3609e5709
--- /dev/null
+++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/TernaryOperatorTest.java
@@ -0,0 +1,54 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class TernaryOperatorTest extends MinimalBytecodeTestSuiteBase {
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "ternaryOperatorMethod", "boolean", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * boolean ternaryOperatorMethod(){
+   * return num < 0 ? false : true;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TernaryOperator", + "$stack1 = l0.", + "if $stack1 >= 0 goto label1", + "$stack2 = 0", + "goto label2", + "label1:", + "$stack2 = 1", + "label2:", + "return $stack2") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java new file mode 100644 index 00000000000..d60d182ca4c --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java @@ -0,0 +1,73 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ThrowExceptionMethodTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "divideByZero", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * void divideByZero() throws ArithmeticException{
+   * int i=8/0;
+   * }
+   * void throwCustomException() throws CustomException {
+   * throw new CustomException("Custom Exception");
+   * }
+   * } catch( CustomException e){
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: ThrowExceptionMethod", "l1 = 8 / 0", "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public MethodSignature getMethodSignature1() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "throwCustomException", "void", Collections.emptyList()); + } + + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: ThrowExceptionMethod", + "$stack1 = new CustomException", + "specialinvoke $stack1.(java.lang.String)>(\"Custom Exception\")", + "throw $stack1") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + assertTrue( + method.getExceptionSignatures().stream() + .anyMatch(classType -> classType.getClassName().equals("ArithmeticException"))); + method = loadMethod(getMethodSignature1()); + assertJimpleStmts(method, expectedBodyStmts1()); + assertTrue( + method.getExceptionSignatures().stream() + .anyMatch(classType -> classType.getClassName().equals("CustomException"))); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/TransientVariableTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/TransientVariableTest.java new file mode 100644 index 00000000000..d4f39c3b7f6 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/TransientVariableTest.java @@ -0,0 +1,60 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class TransientVariableTest extends MinimalBytecodeTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "transientVariable", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> + sootField.getName().equals("transientVar") + && sootField.getModifiers().contains(Modifier.TRANSIENT))); + } + + /** + * + * + *
+   * public void transientVariable(){
+   * System.out.println(transientVar);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TransientVariable", + "$stack2 = ", + "$stack1 = l0.", + "virtualinvoke $stack2.($stack1)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/TryCatchFinallyTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/TryCatchFinallyTest.java new file mode 100644 index 00000000000..faada60a746 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/TryCatchFinallyTest.java @@ -0,0 +1,652 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar, Markus Schmidt */ +@Category(Java8Test.class) +public class TryCatchFinallyTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatch")); + assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatch()); + + sootMethod = loadMethod(getMethodSignature("tryCatchFinally")); + assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinally()); + } + + @Test + public void tryCatchCombined() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchCombined")); + assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchCombined()); + } + + @Test + public void tryCatchFinallyCombined() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyCombined")); + assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinallyCombined()); + } + + @Test + public void tryCatchNested() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNested")); + assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchNested()); + } + + @Test + public void tryCatchFinallyNested() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNested")); + assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinallyNested()); + } + + @Test + public void tryCatchNestedInCatch() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNestedInCatch")); + assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchNestedInCatch()); + } + + @Test + public void tryCatchFinallyNestedInCatch() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInCatch")); + assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinallyNestedInCatch()); + } + + @Test + public void tryCatchFinallyNestedInFinally() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInFinally")); + assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinallyNestedInFinally()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void tryCatch() {
+   *         String str = "";
+   *         try {
+   *             str = "try";
+   *             System.out.println(str);
+   *         } catch (Exception e) {
+   *             str = "catch";
+   *             System.out.println(str);
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsTryCatch() { + return Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"try\"", + "$stack3 = ", + "virtualinvoke $stack3.(l1)", + "label2:", + "goto label4", + "label3:", + "$stack4 := @caughtexception", + "l2 = $stack4", + "l1 = \"catch\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label4:", + "return", + "catch java.lang.Exception from label1 to label2 with label3") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void tryCatchFinally() {
+   *         String str = "";
+   *         try {
+   *             str = "try";
+   *             System.out.println(str);
+   *         } catch (Exception e) {
+   *             str = "catch";
+   *             System.out.println(str);
+   *         } finally {
+   *             str = "finally";
+   *             System.out.println(str);
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsTryCatchFinally() { + return Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label2:", + "l1 = \"finally\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "goto label6", + "label3:", + "$stack8 := @caughtexception", + "l2 = $stack8", + "l1 = \"catch\"", + "$stack9 = ", + "virtualinvoke $stack9.(l1)", + "label4:", + "l1 = \"finally\"", + "$stack10 = ", + "virtualinvoke $stack10.(l1)", + "goto label6", + "label5:", + "$stack6 := @caughtexception", + "l3 = $stack6", + "l1 = \"finally\"", + "$stack7 = ", + "virtualinvoke $stack7.(l1)", + "throw l3", + "label6:", + "return", + "catch java.lang.Exception from label1 to label2 with label3", + "catch java.lang.Throwable from label1 to label2 with label5", + "catch java.lang.Throwable from label3 to label4 with label5") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void tryCatchCombined() {
+   *         String str = "";
+   *         try {
+   *             str = "try";
+   *             System.out.println(str);
+   *         } catch (RuntimeException | StackOverflowError e) {
+   *             str = "catch";
+   *             System.out.println(str);
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsTryCatchCombined() { + return Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"try\"", + "$stack3 = ", + "virtualinvoke $stack3.(l1)", + "label2:", + "goto label4", + "label3:", + "$stack4 := @caughtexception", + "l2 = $stack4", + "l1 = \"catch\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label4:", + "return", + "catch java.lang.RuntimeException from label1 to label2 with label3", + "catch java.lang.StackOverflowError from label1 to label2 with label3") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void tryCatchFinallyCombined() {
+   *         String str = "";
+   *         try {
+   *             str = "try";
+   *             System.out.println(str);
+   *         } catch (RuntimeException | StackOverflowError e) {
+   *             str = "catch";
+   *             System.out.println(str);
+   *         } finally {
+   *             str = "finally";
+   *             System.out.println(str);
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsTryCatchFinallyCombined() { + return Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label2:", + "l1 = \"finally\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "goto label6", + "label3:", + "$stack8 := @caughtexception", + "l2 = $stack8", + "l1 = \"catch\"", + "$stack9 = ", + "virtualinvoke $stack9.(l1)", + "label4:", + "l1 = \"finally\"", + "$stack10 = ", + "virtualinvoke $stack10.(l1)", + "goto label6", + "label5:", + "$stack6 := @caughtexception", + "l3 = $stack6", + "l1 = \"finally\"", + "$stack7 = ", + "virtualinvoke $stack7.(l1)", + "throw l3", + "label6:", + "return", + "catch java.lang.RuntimeException from label1 to label2 with label3", + "catch java.lang.StackOverflowError from label1 to label2 with label3", + "catch java.lang.Throwable from label1 to label2 with label5", + "catch java.lang.Throwable from label3 to label4 with label5") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void tryCatchNested() {
+   *         String str = "";
+   *         try {
+   *             str = "1try";
+   *             System.out.println(str);
+   *             try {
+   *                 str = "2try";
+   *                 System.out.println(str);
+   *             } catch (Exception e) {
+   *                 str = "2catch";
+   *                 System.out.println(str);
+   *             }
+   *         } catch (Exception e) {
+   *             str = "1catch";
+   *             System.out.println(str);
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsTryCatchNested() { + return Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"1try\"", + "$stack3 = ", + "virtualinvoke $stack3.(l1)", + "label2:", + "l1 = \"2try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label3:", + "goto label5", + "label4:", + "$stack7 := @caughtexception", + "l2 = $stack7", + "l1 = \"2catch\"", + "$stack8 = ", + "virtualinvoke $stack8.(l1)", + "label5:", + "goto label7", + "label6:", + "$stack5 := @caughtexception", + "l2 = $stack5", + "l1 = \"1catch\"", + "$stack6 = ", + "virtualinvoke $stack6.(l1)", + "label7:", + "return", + "catch java.lang.Exception from label2 to label3 with label4", + "catch java.lang.Exception from label1 to label5 with label6") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void tryCatchFinallyNested() {
+   *         String str = "";
+   *         try {
+   *             str = "1try";
+   *             System.out.println(str);
+   *             try {
+   *                 str = "2try";
+   *                 System.out.println(str);
+   *             } catch (Exception e) {
+   *                 str = "2catch";
+   *                 System.out.println(str);
+   *             }
+   *         } catch (Exception e) {
+   *             str = "1catch";
+   *             System.out.println(str);
+   *         }finally {
+   *             str = "1finally";
+   *             System.out.println(str);
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsTryCatchFinallyNested() { + return Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"1try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label2:", + "l1 = \"2try\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label3:", + "goto label5", + "label4:", + "$stack12 := @caughtexception", + "l2 = $stack12", + "l1 = \"2catch\"", + "$stack13 = ", + "virtualinvoke $stack13.(l1)", + "label5:", + "$stack14 = \"1finally\"", + "l1 = $stack14", + "$stack6 = ", + "$stack15 = l1", + "virtualinvoke $stack6.($stack15)", + "goto label9", + "label6:", + "$stack9 := @caughtexception", + "l2 = $stack9", + "l1 = \"1catch\"", + "$stack10 = ", + "virtualinvoke $stack10.(l1)", + "label7:", + "l1 = \"1finally\"", + "$stack11 = ", + "virtualinvoke $stack11.(l1)", + "goto label9", + "label8:", + "$stack7 := @caughtexception", + "l3 = $stack7", + "l1 = \"1finally\"", + "$stack8 = ", + "virtualinvoke $stack8.(l1)", + "throw l3", + "label9:", + "return", + "catch java.lang.Exception from label2 to label3 with label4", + "catch java.lang.Exception from label1 to label5 with label6", + "catch java.lang.Throwable from label1 to label5 with label8", + "catch java.lang.Throwable from label6 to label7 with label8") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void tryCatchNestedInCatch() {
+   *         String str = "";
+   *         try {
+   *             str = "1try";
+   *             System.out.println(str);
+   *         } catch (Exception e) {
+   *             str = "1catch";
+   *             System.out.println(str);
+   *             try {
+   *                 str = "2try";
+   *                 System.out.println(str);
+   *             } catch (Exception ex) {
+   *                 str = "2catch";
+   *                 System.out.println(str);
+   *             }
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsTryCatchNestedInCatch() { + return Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"1try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label2:", + "goto label7", + "label3:", + "$stack7 := @caughtexception", + "l2 = $stack7", + "l1 = \"1catch\"", + "$stack8 = ", + "virtualinvoke $stack8.(l1)", + "label4:", + "l1 = \"2try\"", + "$stack9 = ", + "virtualinvoke $stack9.(l1)", + "label5:", + "goto label7", + "label6:", + "$stack5 := @caughtexception", + "l3 = $stack5", + "l1 = \"2catch\"", + "$stack6 = ", + "virtualinvoke $stack6.(l1)", + "label7:", + "return", + "catch java.lang.Exception from label1 to label2 with label3", + "catch java.lang.Exception from label4 to label5 with label6") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void tryCatchFinallyNestedInCatch() {
+   *         String str = "";
+   *         try {
+   *             str = "1try";
+   *             System.out.println(str);
+   *         } catch (Exception e) {
+   *             str = "1catch";
+   *             System.out.println(str);
+   *             try {
+   *                 str = "2try";
+   *                 System.out.println(str);
+   *             } catch (Exception ex) {
+   *                 str = "2catch";
+   *                 System.out.println(str);
+   *             }
+   *         }finally {
+   *             str = "1finally";
+   *             System.out.println(str);
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsTryCatchFinallyNestedInCatch() { + return Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label01:", + "l1 = \"1try\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label02:", + "l1 = \"1finally\"", + "$stack6 = ", + "virtualinvoke $stack6.(l1)", + "goto label10", + "label03:", + "$stack12 := @caughtexception", + "l2 = $stack12", + "l1 = \"1catch\"", + "$stack13 = ", + "virtualinvoke $stack13.(l1)", + "label04:", + "l1 = \"2try\"", + "$stack14 = ", + "virtualinvoke $stack14.(l1)", + "label05:", + "goto label07", + "label06:", + "$stack9 := @caughtexception", + "l3 = $stack9", + "l1 = \"2catch\"", + "$stack10 = ", + "virtualinvoke $stack10.(l1)", + "label07:", + "$stack15 = \"1finally\"", + "l1 = $stack15", + "$stack11 = ", + "$stack16 = l1", + "virtualinvoke $stack11.($stack16)", + "goto label10", + "label08:", + "$stack7 := @caughtexception", + "l4 = $stack7", + "label09:", + "l1 = \"1finally\"", + "$stack8 = ", + "virtualinvoke $stack8.(l1)", + "throw l4", + "label10:", + "return", + "catch java.lang.Exception from label01 to label02 with label03", + "catch java.lang.Exception from label04 to label05 with label06", + "catch java.lang.Throwable from label01 to label02 with label08", + "catch java.lang.Throwable from label03 to label07 with label08", + "catch java.lang.Throwable from label08 to label09 with label08") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void tryCatchFinallyNestedInFinally() {
+   *         String str = "";
+   *         try {
+   *             str = "1try";
+   *             System.out.println(str);
+   *         } catch (Exception e) {
+   *             str = "1catch";
+   *             System.out.println(str);
+   *         }finally {
+   *             str = "1finally";
+   *             System.out.println(str);
+   *             try {
+   *                 str = "2try";
+   *                 System.out.println(str);
+   *             } catch (Exception e) {
+   *                 str = "2catch";
+   *                 System.out.println(str);
+   *             }
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsTryCatchFinallyNestedInFinally() { + return Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label01:", + "l1 = \"1try\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label02:", + "l1 = \"1finally\"", + "$stack6 = ", + "virtualinvoke $stack6.(l1)", + "label03:", + "l1 = \"2try\"", + "$stack7 = ", + "virtualinvoke $stack7.(l1)", + "label04:", + "goto label16", + "label05:", + "$stack20 := @caughtexception", + "l2 = $stack20", + "l1 = \"2catch\"", + "$stack21 = ", + "virtualinvoke $stack21.(l1)", + "goto label16", + "label06:", + "$stack16 := @caughtexception", + "l2 = $stack16", + "l1 = \"1catch\"", + "$stack17 = ", + "virtualinvoke $stack17.(l1)", + "label07:", + "l1 = \"1finally\"", + "$stack18 = ", + "virtualinvoke $stack18.(l1)", + "label08:", + "l1 = \"2try\"", + "$stack19 = ", + "virtualinvoke $stack19.(l1)", + "label09:", + "goto label16", + "label10:", + "$stack14 := @caughtexception", + "l2 = $stack14", + "l1 = \"2catch\"", + "$stack15 = ", + "virtualinvoke $stack15.(l1)", + "goto label16", + "label11:", + "$stack10 := @caughtexception", + "l3 = $stack10", + "l1 = \"1finally\"", + "$stack11 = ", + "virtualinvoke $stack11.(l1)", + "label12:", + "l1 = \"2try\"", + "$stack12 = ", + "virtualinvoke $stack12.(l1)", + "label13:", + "goto label15", + "label14:", + "$stack8 := @caughtexception", + "l4 = $stack8", + "l1 = \"2catch\"", + "$stack9 = ", + "virtualinvoke $stack9.(l1)", + "label15:", + "$stack13 = l3", + "throw $stack13", + "label16:", + "return", + "catch java.lang.Exception from label03 to label04 with label05", + "catch java.lang.Exception from label01 to label02 with label06", + "catch java.lang.Exception from label08 to label09 with label10", + "catch java.lang.Throwable from label01 to label02 with label11", + "catch java.lang.Throwable from label06 to label07 with label11", + "catch java.lang.Exception from label12 to label13 with label14") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/UnaryOpIntTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/UnaryOpIntTest.java new file mode 100644 index 00000000000..2af0641beb4 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/UnaryOpIntTest.java @@ -0,0 +1,55 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class UnaryOpIntTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodUnaryOpInt", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + /** + * TODO Do we need to check the type of variable as int? + * assertTrue(getFields().stream().anyMatch(sootField -> {return + * sootField.getType().equals("int");})); + */ + } + + /** + * + * + *
+   * void methodUnaryOpInt(){
+   * int k = i+j;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: UnaryOpInt", + "$stack3 = l0.", + "$stack2 = l0.", + "l1 = $stack3 + $stack2", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/UncheckedCastTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/UncheckedCastTest.java new file mode 100644 index 00000000000..b3fe14144a7 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/UncheckedCastTest.java @@ -0,0 +1,62 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class UncheckedCastTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "uncheckedCastDisplay", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void uncheckedCastDisplay(){
+   * List list = Arrays.asList(5,8,9,6);
+   * List intList= list;
+   * System.out.println(intList);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: UncheckedCast", + "$stack3 = newarray (java.lang.Integer)[4]", + "$stack4 = staticinvoke (5)", + "$stack3[0] = $stack4", + "$stack5 = staticinvoke (8)", + "$stack3[1] = $stack5", + "$stack6 = staticinvoke (9)", + "$stack3[2] = $stack6", + "$stack7 = staticinvoke (6)", + "$stack3[3] = $stack7", + "l1 = staticinvoke ($stack3)", + "l2 = l1", + "$stack8 = ", + "virtualinvoke $stack8.(l2)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/UnicodeMethodNameTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/UnicodeMethodNameTest.java new file mode 100644 index 00000000000..aa3c8080c3e --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/UnicodeMethodNameTest.java @@ -0,0 +1,58 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class UnicodeMethodNameTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public class UnicodeMethodName {
+   *     public void αρετη(){
+   *         System.out.println("this is αρετη method");
+   *     }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: αρετη", + "$r1 = ", + "virtualinvoke $r1.(\"this is αρετη class\")", + "return") + .collect(Collectors.toList()); + } + + @Ignore + public void test() { + /** + * TODO: does only work on a Unicode filesystem + * + *

Exception in thread "main" java.nio.file.InvalidPathException: Illegal char at index + * 1: a?et?.java + */ + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + System.out.println(sootClass.getClassSource().getClassType().getClassName()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VariableDeclarationTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VariableDeclarationTest.java new file mode 100644 index 00000000000..3d9b9007142 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VariableDeclarationTest.java @@ -0,0 +1,145 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class VariableDeclarationTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("shortVariable")); + assertJimpleStmts(method, expectedBodyStmtsShortVariable()); + + method = loadMethod(getMethodSignature("byteVariable")); + assertJimpleStmts(method, expectedBodyStmtsByteVariable()); + + method = loadMethod(getMethodSignature("charVariable")); + assertJimpleStmts(method, expectedBodyStmtsCharVariable()); + + method = loadMethod(getMethodSignature("intVariable")); + assertJimpleStmts(method, expectedBodyStmtsIntVariable()); + + method = loadMethod(getMethodSignature("longVariable")); + assertJimpleStmts(method, expectedBodyStmtsLongVariable()); + + method = loadMethod(getMethodSignature("floatVariable")); + assertJimpleStmts(method, expectedBodyStmtsFloatVariable()); + + method = loadMethod(getMethodSignature("doubleVariable")); + assertJimpleStmts(method, expectedBodyStmtsDoubleVariable()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *

+   *     public void shortVariable() {
+   *         short a = 10;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsShortVariable() { + return Stream.of("l0 := @this: VariableDeclaration", "l1 = 10", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void byteVariable() {
+   *         byte b = 0;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByteVariable() { + return Stream.of("l0 := @this: VariableDeclaration", "l1 = 0", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charVariable() {
+   *         char c = 'a';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharVariable() { + return Stream.of("l0 := @this: VariableDeclaration", "l1 = 97", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void intVariable() {
+   *         int d = 512;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntVariable() { + return Stream.of("l0 := @this: VariableDeclaration", "l1 = 512", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void longVariable() {
+   *         long e = 123456789;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLongVariable() { + return Stream.of("l0 := @this: VariableDeclaration", "l1 = 123456789L", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatVariable() {
+   *         float f = 3.14f;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatVariable() { + return Stream.of("l0 := @this: VariableDeclaration", "l1 = 3.14F", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleVariable() {
+   *         double g = 1.96969654d;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleVariable() { + return Stream.of("l0 := @this: VariableDeclaration", "l1 = 1.96969654", "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VariableShadowingTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VariableShadowingTest.java new file mode 100644 index 00000000000..8faedf1b787 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VariableShadowingTest.java @@ -0,0 +1,49 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class VariableShadowingTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "variableShadowing", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void variableShadowing(){
+   * int val = num;
+   * int num = 10;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: VariableShadowing", + "l1 = l0.", + "l2 = 10", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VirtualMethodTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VirtualMethodTest.java new file mode 100644 index 00000000000..5bce461f25f --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VirtualMethodTest.java @@ -0,0 +1,70 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class VirtualMethodTest extends MinimalBytecodeTestSuiteBase { + + // @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "virtualMethodDemo", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public int getSalary(){ return salary;}
+   * public int getSalary(){
+   * return super.getSalary()+bonus;
+   * }
+   * public int getSalary(){
+   * return super.getSalary()+raise;
+   * }
+   * public void virtualMethodDemo(){
+   * Employee e1= new TempEmployee(1500,150);
+   * Employee e2= new RegEmployee(1500,500);
+   * System.out.println(e1.getSalary());
+   * System.out.println(e2.getSalary());
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: VirtualMethod", + "$stack3 = new TempEmployee", + "specialinvoke $stack3.(int,int)>(1500, 150)", + "l1 = $stack3", + "$stack4 = new RegEmployee", + "specialinvoke $stack4.(int,int)>(1500, 500)", + "l2 = $stack4", + "$stack5 = ", + "$stack6 = virtualinvoke l1.()", + "virtualinvoke $stack5.($stack6)", + "$stack7 = ", + "$stack8 = virtualinvoke l2.()", + "virtualinvoke $stack7.($stack8)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VolatileVariableTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VolatileVariableTest.java new file mode 100644 index 00000000000..91267d4e5d3 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/VolatileVariableTest.java @@ -0,0 +1,61 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class VolatileVariableTest extends MinimalBytecodeTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "increaseCounter", "int", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> { + return sootField.getName().equals("counter") + && sootField.getModifiers().contains(Modifier.VOLATILE); + })); + } + + /** + * + * + *
+   * public int increaseCounter(){
+   * return counter++;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: VolatileVariable", + "$stack1 = l0.", + "$stack2 = $stack1 + 1", + "l0. = $stack2", + "return $stack1") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/WhileLoopTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/WhileLoopTest.java new file mode 100644 index 00000000000..c4368f380a5 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/WhileLoopTest.java @@ -0,0 +1,56 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class WhileLoopTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "whileLoop", "void", Collections.emptyList()); + } + + /**
+   * public void whileLoop(){
+   * int num = 10;
+   * int i = 0;
+   * while(num>i){
+   * num--;
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "l0 := @this: WhileLoop",
+            "l1 = 10",
+            "l2 = 0",
+            "label1:",
+            "$stack4 = l1",
+            "$stack3 = l2",
+            "if $stack4 <= $stack3 goto label2",
+            "l1 = l1 + -1",
+            "goto label1",
+            "label2:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git "a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" "b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java"
new file mode 100644
index 00000000000..a6963cebacc
--- /dev/null
+++ "b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java"
@@ -0,0 +1,50 @@
+package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class αρετηTest extends MinimalBytecodeTestSuiteBase {
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * public class αρετη {
+   *     public void αρετηAsClassName(){
+   *         System.out.println("this is αρετη class");
+   *     }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7", + "$stack1 = ", + "virtualinvoke $stack1.(\"this is \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7 class\")", + "return") + .collect(Collectors.toList()); + } + + @Test + // test only works on a filesystem that supports unicode + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java new file mode 100644 index 00000000000..50503b89627 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java @@ -0,0 +1,47 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java7; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class BinaryLiteralInIntTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "binaryLiteralInInt", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void binaryLiteralInInt(){
+   * int a = 0b10100001010001011010000101000101;
+   * int b = 0b101;
+   * int c = 0B101;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: BinaryLiteralInInt", "l1 = -1589272251", "l2 = 5", "l3 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/MultiTryCatchTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/MultiTryCatchTest.java new file mode 100644 index 00000000000..2fefca3471b --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/MultiTryCatchTest.java @@ -0,0 +1,137 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java7; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MultiTryCatchTest extends MinimalBytecodeTestSuiteBase { + + @Test + public void test() { + SootMethod sootMethod = loadMethod(getMethodSignature()); + assertJimpleStmts(sootMethod, expectedBodyStmts()); + } + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void printFile() throws Exception {
+   * BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"));
+   * try {
+   * String data = "";
+   * int divisor = 10/5;
+   * System.out.println(divisor);
+   * while ((data = bufferedReader.readLine()) != null) {
+   * System.out.println(data);
+   * }
+   * }
+   * catch( IOException | NumberFormatException e){
+   *
+   * }catch (Exception e){
+   *
+   * }finally {
+   * try {
+   * bufferedReader.close();
+   * } catch (IOException e) {
+   * }
+   * }
+   * }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MultiTryCatch", + "$stack6 = new java.io.BufferedReader", + "$stack7 = new java.io.FileReader", + "specialinvoke $stack7.(java.lang.String)>(\"file.txt\")", + "specialinvoke $stack6.(java.io.Reader)>($stack7)", + "l1 = $stack6", + "label01:", + "l2 = \"\"", + "l3 = 2", + "$stack8 = ", + "virtualinvoke $stack8.(l3)", + "label02:", + "$stack11 = l1", + "$stack9 = virtualinvoke $stack11.()", + "l2 = $stack9", + "if $stack9 == null goto label03", + "$stack10 = ", + "virtualinvoke $stack10.(l2)", + "goto label02", + "label03:", + "virtualinvoke l1.()", + "label04:", + "goto label19", + "label05:", + "$stack19 := @caughtexception", + "l2 = $stack19", + "goto label19", + "label06:", + "$stack18 := @caughtexception", + "l2 = $stack18", + "label07:", + "virtualinvoke l1.()", + "label08:", + "goto label19", + "label09:", + "$stack17 := @caughtexception", + "l2 = $stack17", + "goto label19", + "label10:", + "$stack16 := @caughtexception", + "l2 = $stack16", + "label11:", + "virtualinvoke l1.()", + "label12:", + "goto label19", + "label13:", + "$stack15 := @caughtexception", + "l2 = $stack15", + "goto label19", + "label14:", + "$stack13 := @caughtexception", + "l4 = $stack13", + "label15:", + "virtualinvoke l1.()", + "label16:", + "goto label18", + "label17:", + "$stack12 := @caughtexception", + "l5 = $stack12", + "label18:", + "$stack14 = l4", + "throw $stack14", + "label19:", + "return", + "catch java.io.IOException from label03 to label04 with label05", + "catch java.io.IOException from label01 to label03 with label06", + "catch java.lang.NumberFormatException from label01 to label03 with label06", + "catch java.io.IOException from label07 to label08 with label09", + "catch java.lang.Exception from label01 to label03 with label10", + "catch java.io.IOException from label11 to label12 with label13", + "catch java.lang.Throwable from label01 to label03 with label14", + "catch java.io.IOException from label15 to label16 with label17", + "catch java.lang.Throwable from label14 to label15 with label14") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java new file mode 100644 index 00000000000..d7757770c0e --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java @@ -0,0 +1,214 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java7; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SwitchCaseStatementWithStringTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "switchCaseStatementString", "void", Collections.emptyList()); + } + + public MethodSignature getMethodSignature2() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "switchCaseStatementInt", "void", Collections.emptyList()); + } + + public MethodSignature getMethodSignature3() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "switchCaseStatementEnum", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *  public void switchCaseStatementString() {
+   *    String key = "something";
+   *    int retVal;
+   *    switch ( key ) {
+   *    case "one":
+   *      retVal = 1;
+   *      break;
+   *    case "two":
+   *      retVal = 2;
+   *      break;
+   *    case "three":
+   *      retVal = 3;
+   *      break;
+   *    default:
+   *      retVal = -1;
+   *    }
+   *  }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: SwitchCaseStatementWithString", + "l1 = \"something\"", + "l3 = l1", + "l4 = -1", + "$stack5 = virtualinvoke l3.()", + "switch($stack5)", + "case 110182: goto label1", + "case 115276: goto label2", + "case 110339486: goto label3", + "default: goto label4", + "label1:", + "$stack9 = virtualinvoke l3.(\"one\")", + "if $stack9 == 0 goto label4", + "l4 = 0", + "goto label4", + "label2:", + "$stack8 = virtualinvoke l3.(\"two\")", + "if $stack8 == 0 goto label4", + "l4 = 1", + "goto label4", + "label3:", + "$stack6 = virtualinvoke l3.(\"three\")", + "if $stack6 == 0 goto label4", + "l4 = 2", + "label4:", + "$stack7 = l4", + "switch($stack7)", + "case 0: goto label5", + "case 1: goto label6", + "case 2: goto label7", + "default: goto label8", + "label5:", + "l2 = 1", + "goto label9", + "label6:", + "l2 = 2", + "goto label9", + "label7:", + "l2 = 3", + "goto label9", + "label8:", + "l2 = -1", + "label9:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *    public void switchCaseStatementInt() {
+   *         int num = 2;
+   *         String str;
+   *         switch (num) {
+   *             case 1:
+   *                 str = "number 1 detected";
+   *                 break;
+   *             case 2:
+   *                 str = "number 2 detected";
+   *                 break;
+   *             case 3:
+   *                 str = "number 3 detected";
+   *                 break;
+   *             default:
+   *                 str = "invalid number";
+   *                 break;
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmts2() { + return Stream.of( + "l0 := @this: SwitchCaseStatementWithString", + "l1 = 2", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label2", + "case 3: goto label3", + "default: goto label4", + "label1:", + "l2 = \"number 1 detected\"", + "goto label5", + "label2:", + "l2 = \"number 2 detected\"", + "goto label5", + "label3:", + "l2 = \"number 3 detected\"", + "goto label5", + "label4:", + "l2 = \"invalid number\"", + "label5:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *       public void switchCaseStatementEnum() {
+   *         String color = "RED";
+   *         String str = "";
+   *         switch (Color.valueOf(color)) {
+   *             case RED:
+   *                 str = "color red detected";
+   *                 break;
+   *             case GREEN:
+   *                 str = "color green detected";
+   *                 break;
+   *             default:
+   *                 str = "invalid color";
+   *                 break;
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmts3() { + return Stream.of( + "l0 := @this: SwitchCaseStatementWithString", + "l1 = \"RED\"", + "l2 = \"\"", + "$stack3 = ", + "$stack4 = staticinvoke (l1)", + "$stack5 = virtualinvoke $stack4.()", + "$stack6 = $stack3[$stack5]", + "switch($stack6)", + "case 1: goto label1", + "case 2: goto label2", + "default: goto label3", + "label1:", + "l2 = \"color red detected\"", + "goto label4", + "label2:", + "l2 = \"color green detected\"", + "goto label4", + "label3:", + "l2 = \"invalid color\"", + "label4:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + + SootMethod method2 = loadMethod(getMethodSignature2()); + assertJimpleStmts(method2, expectedBodyStmts2()); + + SootMethod method3 = loadMethod(getMethodSignature3()); + assertJimpleStmts(method3, expectedBodyStmts3()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/TryWithResourcesTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/TryWithResourcesTest.java new file mode 100644 index 00000000000..439d2c869f2 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/TryWithResourcesTest.java @@ -0,0 +1,115 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java7; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class TryWithResourcesTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod sootMethod = loadMethod(getMethodSignature()); + assertJimpleStmts(sootMethod, expectedBodyStmts()); + } + + /** + * + * + *
+   * public void printFile() throws Exception{
+   * try(BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"))){
+   * String data = "";
+   * while( (data= bufferedReader.readLine()) != null ){
+   * System.out.println(data);
+   * }
+   * }
+   * }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TryWithResources", + "$stack6 = new java.io.BufferedReader", + "$stack7 = new java.io.FileReader", + "specialinvoke $stack7.(java.lang.String)>(\"file.txt\")", + "specialinvoke $stack6.(java.io.Reader)>($stack7)", + "l1 = $stack6", + "l2 = null", + "label01:", + "l3 = \"\"", + "label02:", + "$stack10 = l1", + "$stack8 = virtualinvoke $stack10.()", + "l3 = $stack8", + "if $stack8 == null goto label03", + "$stack9 = ", + "virtualinvoke $stack9.(l3)", + "goto label02", + "label03:", + "if l1 == null goto label16", + "if l2 == null goto label07", + "label04:", + "virtualinvoke l1.()", + "label05:", + "goto label16", + "label06:", + "$stack15 := @caughtexception", + "l3 = $stack15", + "virtualinvoke l2.(l3)", + "goto label16", + "label07:", + "virtualinvoke l1.()", + "goto label16", + "label08:", + "$stack14 := @caughtexception", + "l3 = $stack14", + "l2 = l3", + "throw l3", + "label09:", + "$stack12 := @caughtexception", + "l4 = $stack12", + "label10:", + "if l1 == null goto label15", + "if l2 == null goto label14", + "label11:", + "virtualinvoke l1.()", + "label12:", + "goto label15", + "label13:", + "$stack11 := @caughtexception", + "l5 = $stack11", + "virtualinvoke l2.(l5)", + "goto label15", + "label14:", + "virtualinvoke l1.()", + "label15:", + "$stack13 = l4", + "throw $stack13", + "label16:", + "return", + "catch java.lang.Throwable from label04 to label05 with label06", + "catch java.lang.Throwable from label01 to label03 with label08", + "catch java.lang.Throwable from label01 to label03 with label09", + "catch java.lang.Throwable from label11 to label12 with label13", + "catch java.lang.Throwable from label08 to label10 with label09") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/UnderscoreInIntTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/UnderscoreInIntTest.java new file mode 100644 index 00000000000..b6018a915d9 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java7/UnderscoreInIntTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java7; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class UnderscoreInIntTest extends MinimalBytecodeTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "underscoreInInt", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void underscoreInInt(){
+   * int a = 0b0111_1111_1111_1111_1111_1111_1111_1111;
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("l0 := @this: UnderscoreInInt", "l1 = 2147483647", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/CossiInputTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/CossiInputTest.java new file mode 100644 index 00000000000..25c6a290a39 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/CossiInputTest.java @@ -0,0 +1,32 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java8; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Bastian Haverkamp */ +@Category(Java8Test.class) +public class CossiInputTest extends MinimalBytecodeTestSuiteBase { + + // FIXME: [bh] convert() in AsmMethodSource does not terminate + // hint: only CossiInput$CossiInputBuilder.build(...) is broken + @Test + @Ignore("FIXME") + public void test() { + // only care if it terminates here.. + + SootClass clazz = loadClass(getDeclaredClassSignature()); + clazz.getMethods().forEach(SootMethod::getBody); + + SootClass innerClazz = + loadClass(JavaIdentifierFactory.getInstance().getClassType("CossiInput$CossiInputBuilder")); + + innerClazz.getMethod("build", Collections.emptyList()).get().getBody(); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java new file mode 100644 index 00000000000..6a6f1864757 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java @@ -0,0 +1,87 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java8; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DefaultMethodInterfaceImplTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); + } + + public MethodSignature getDefaultMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "defaultInterfaceMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method1 = loadMethod(getMethodSignature()); + assertJimpleStmts(method1, expectedBodyStmts()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getDefaultMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts1()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equalsIgnoreCase("DefaultMethodInterface"); + })); + } + + /** + * + * + *
+   * public void interfaceMethod(){
+   * System.out.println("Method interfaceMethod() is implemented");
+   * }
+   * public void defaultInterfaceMethod(){
+   *
+   * //Add this line after default methods are supported
+   *
+   * //DefaultMethodInterface.super.defaultInterfaceMethod();
+   *
+   * System.out.println("Method defaultInterfaceMethod() is implemented");
+   * };
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DefaultMethodInterfaceImpl", + "$stack1 = ", + "virtualinvoke $stack1.(\"Method interfaceMethod() is implemented\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: DefaultMethodInterfaceImpl", + "specialinvoke l0.()", + "$stack1 = ", + "virtualinvoke $stack1.(\"Method defaultInterfaceMethod() is implemented\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java new file mode 100644 index 00000000000..678980d418a --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java @@ -0,0 +1,58 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java8; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar, Bastian Haverkamp */ +@Category(Java8Test.class) +public class MethodAcceptingLamExprTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "lambdaAsParamMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + /** + * + * + *
+   * public void lambdaAsParamMethod(){
+   * //        Percentage percentageValue = (value -> value/100);
+   * //        System.out.println("Percentage : " + percentageValue.calcPercentage(45.0));
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MethodAcceptingLamExpr", + "l1 = dynamicinvoke calcPercentage () (methodtype: double __METHODTYPE__(double), handle: , methodtype: double __METHODTYPE__(double))", + "$stack3 = ", + "$stack2 = new java.lang.StringBuilder", + "specialinvoke $stack2.()>()", + "$stack5 = virtualinvoke $stack2.(\"Percentage : \")", + "$stack4 = interfaceinvoke l1.(45.0)", + "$stack6 = virtualinvoke $stack5.($stack4)", + "$stack7 = virtualinvoke $stack6.()", + "virtualinvoke $stack3.($stack7)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/MethodReferenceTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/MethodReferenceTest.java new file mode 100644 index 00000000000..907f1d86c25 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/MethodReferenceTest.java @@ -0,0 +1,56 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java8; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MethodReferenceTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodRefMethod", "void", Collections.emptyList()); + } + + /** TODO Update the source code when WALA supports lambda expression */ + + /** + * + * + *
+   * public void methodRefMethod(){
+   * System.out.println("Instance Method");
+   * MethodReference obj1 = new MethodReference();
+   * //Uncomment when WALA supports lambda expression MyInterface ref1 = obj1::methodRefMethod;
+   * //ref1.display();
+   *
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MethodReference", + "$stack1 = ", + "virtualinvoke $stack1.(\"Instance Method\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java new file mode 100644 index 00000000000..9df5dab1e7f --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java @@ -0,0 +1,43 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java8; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class RepeatingAnnotationsTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "annotaionMethod", "void", Collections.emptyList()); + } + + @Ignore + public void annotationTest() { + // TODO: after annotations are implemented + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); + } + + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: RepeatingAnnotations", "$r1 = \"\"", "$r2 = \"\"", "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java new file mode 100644 index 00000000000..319aaccecdf --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java @@ -0,0 +1,106 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java8; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticMethodInterfaceImplTest extends MinimalBytecodeTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), + "methodStaticMethodInterfaceImpl", + "void", + Collections.emptyList()); + } + + private MethodSignature getStaticMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "initStatic", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getStaticMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts1()); + SootMethod staticMethod = loadMethod(getStaticMethodSignature()); + assertJimpleStmts(staticMethod, expectedBodyStmts1()); + assertTrue(staticMethod.isStatic() && staticMethod.getName().equals("initStatic")); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue( + sootClass.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equals("StaticMethodInterface"); + })); + } + + /** + * + * + *
+   *
+   * 
+ */ + /** + * + * + *
+   * static void staticMethod(){
+   * System.out.println("static method");
+   * }
+   *
+   * 
+ */ + /** + * + * + *
+   * static public void initStatic(){
+   * System.out.println("Inside initStatic - StaticmethodInterface");
+   * }
+   *
+   * 
+ */ + /** + * + * + *
+   * static public void initStatic(){
+   * System.out.println("Inside initStatic - StaticmethodInterfaceImpl");
+   * }
+   * public void display(){
+   * System.out.println("Inside display - StaticmethodInterfaceImpl");
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "$stack0 = ", + "virtualinvoke $stack0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", + "return") + .collect(Collectors.toList()); + } + + public List expectedBodyStmts1() { + return Stream.of( + "$stack0 = ", + "virtualinvoke $stack0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java new file mode 100644 index 00000000000..eaf6fc031e8 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java @@ -0,0 +1,69 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java9; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AnonymousDiamondOperatorTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "innerClassDiamond", "int", Collections.emptyList()); + } + + /** + * + * + *
+   * public int innerClassDiamond() {
+   * MyClass obj = new MyClass<>() {
+   * Integer add(Integer x, Integer y) {
+   * return x+y;
+   * }
+   * };
+   * Integer sum = obj.add(22,23);
+   * return sum;
+   * }
+   *
+   * public static void main(String args[]){
+   * AnonymousDiamondOperator obj= new AnonymousDiamondOperator();
+   * System.out.println(obj.innerClassDiamond());
+   *
+   * }
+   *
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: AnonymousDiamondOperator", + "$stack3 = new AnonymousDiamondOperator$1", + "specialinvoke $stack3.(AnonymousDiamondOperator)>(l0)", + "l1 = $stack3", + "$stack5 = staticinvoke (22)", + "$stack4 = staticinvoke (23)", + "$stack6 = virtualinvoke l1.($stack5, $stack4)", + "l2 = (java.lang.Integer) $stack6", + "$stack7 = virtualinvoke l2.()", + "return $stack7") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/DynamicInvokeTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/DynamicInvokeTest.java new file mode 100644 index 00000000000..a71a4e048af --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/DynamicInvokeTest.java @@ -0,0 +1,37 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java9; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class DynamicInvokeTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 = \"This test\"", + "l0 = dynamicinvoke makeConcatWithConstants (l0) (\"\\u0001 is cool\")", + "$stack1 = ", + "virtualinvoke $stack1.(l0)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java new file mode 100644 index 00000000000..e1f0d944409 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java @@ -0,0 +1,83 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java9; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class PrivateMethodInterfaceImplTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodInterfaceImpl", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue( + sootClass.getInterfaces().stream() + .anyMatch( + javaClassType -> + javaClassType.getClassName().equalsIgnoreCase("PrivateMethodInterface"))); + } + + /** + * + * + *
+   *
+   * 
+ */ + /** + * + * + *
+   * public default void methodInterface(int a, int b) {
+   * add(a, b);
+   * sub(a, b);
+   * System.out.println("methodInterface() in PrivateMethodInterface");
+   * }
+   * private void add(int a, int b){
+   * System.out.println(a+b);
+   * }
+   * private static void sub(int a, int b){
+   * System.out.println(a-b);
+   * };
+   *
+   * 
+ */ + /** + * + * + *
+   * public void methodInterfaceImpl(){
+   * methodInterface(4,2);
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: PrivateMethodInterfaceImpl", + "virtualinvoke l0.(4, 2)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java new file mode 100644 index 00000000000..9e83d9b6414 --- /dev/null +++ b/de.upb.sse.sootup.java.bytecode/src/test/java/de/upb/sse/sootup/test/java/bytecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java @@ -0,0 +1,112 @@ +package de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.java9; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class TryWithResourcesConciseTest extends MinimalBytecodeTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod sootMethod = loadMethod(getMethodSignature()); + assertJimpleStmts(sootMethod, expectedBodyStmts()); + } + + /** + * + * + *
+   * public void printFile() throws Exception{
+   * try(BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"))){
+   * String data = "";
+   * while( (data= bufferedReader.readLine()) != null ){
+   * System.out.println(data);
+   * }
+   * }
+   * }
+   * }
+   * 
+ */ + /** + * + * + *
+   * public void printFile() throws Exception {
+   * final BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"));
+   * try(bufferedReader) {
+   * String data = "";
+   * while( (data= bufferedReader.readLine()) != null) {
+   * System.out.println(data);
+   * }
+   * }
+   * }
+   *
+   * public static void main(String[] args) throws  Exception{
+   * TryWithResourcesConcise tryWithResourcesConcise = new TryWithResourcesConcise();
+   * tryWithResourcesConcise.printFile();
+   * }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TryWithResourcesConcise", + "$stack5 = new java.io.BufferedReader", + "$stack6 = new java.io.FileReader", + "specialinvoke $stack6.(java.lang.String)>(\"file.txt\")", + "specialinvoke $stack5.(java.io.Reader)>($stack6)", + "l1 = $stack5", + "l2 = l1", + "label1:", + "l3 = \"\"", + "label2:", + "$stack9 = l1", + "$stack7 = virtualinvoke $stack9.()", + "l3 = $stack7", + "if $stack7 == null goto label3", + "$stack8 = ", + "virtualinvoke $stack8.(l3)", + "goto label2", + "label3:", + "if l2 == null goto label9", + "virtualinvoke l2.()", + "goto label9", + "label4:", + "$stack11 := @caughtexception", + "l3 = $stack11", + "if l2 == null goto label8", + "label5:", + "virtualinvoke l2.()", + "label6:", + "goto label8", + "label7:", + "$stack10 := @caughtexception", + "l4 = $stack10", + "virtualinvoke l3.(l4)", + "label8:", + "$stack12 = l3", + "throw $stack12", + "label9:", + "return", + "catch java.lang.Throwable from label1 to label3 with label4", + "catch java.lang.Throwable from label5 to label6 with label7") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.core/pom.xml b/de.upb.sse.sootup.java.core/pom.xml new file mode 100644 index 00000000000..d2722770130 --- /dev/null +++ b/de.upb.sse.sootup.java.core/pom.xml @@ -0,0 +1,25 @@ + + 4.0.0 + + SootUp Java Core + sootup.java.core + jar + + de.upb.sse + sootup + 1.0.0-SNAPSHOT + + + + + + de.upb.sse + sootup.core + 1.0.0-SNAPSHOT + + + + + diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/AnnotationUsage.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/AnnotationUsage.java similarity index 95% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/AnnotationUsage.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/AnnotationUsage.java index 29f38f91915..756675308c1 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/AnnotationUsage.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/AnnotationUsage.java @@ -1,6 +1,6 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; -import de.upb.swt.soot.java.core.types.AnnotationType; +import de.upb.sse.sootup.java.core.types.AnnotationType; import java.util.Collections; import java.util.HashMap; import java.util.Map; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/ConstantUtil.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/ConstantUtil.java similarity index 77% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/ConstantUtil.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/ConstantUtil.java index 2e963fb41d3..4d65e857fbf 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/ConstantUtil.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/ConstantUtil.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,15 +20,15 @@ * . * #L% */ -import de.upb.swt.soot.core.jimple.common.constant.BooleanConstant; -import de.upb.swt.soot.core.jimple.common.constant.ClassConstant; -import de.upb.swt.soot.core.jimple.common.constant.Constant; -import de.upb.swt.soot.core.jimple.common.constant.DoubleConstant; -import de.upb.swt.soot.core.jimple.common.constant.FloatConstant; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.constant.LongConstant; -import de.upb.swt.soot.core.jimple.common.constant.NullConstant; -import de.upb.swt.soot.java.core.language.JavaJimple; +import de.upb.sse.sootup.core.jimple.common.constant.BooleanConstant; +import de.upb.sse.sootup.core.jimple.common.constant.ClassConstant; +import de.upb.sse.sootup.core.jimple.common.constant.Constant; +import de.upb.sse.sootup.core.jimple.common.constant.DoubleConstant; +import de.upb.sse.sootup.core.jimple.common.constant.FloatConstant; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.constant.LongConstant; +import de.upb.sse.sootup.core.jimple.common.constant.NullConstant; +import de.upb.sse.sootup.java.core.language.JavaJimple; public class ConstantUtil { public static Constant fromObject(Object obj) { diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaAnnotationSootClass.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaAnnotationSootClass.java similarity index 93% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaAnnotationSootClass.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaAnnotationSootClass.java index 87198c22465..52e3fc0ee0c 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaAnnotationSootClass.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaAnnotationSootClass.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.core.model.SourceType; +import de.upb.sse.sootup.core.model.SourceType; import java.util.Set; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaAnnotationSootClassSource.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaAnnotationSootClassSource.java similarity index 84% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaAnnotationSootClassSource.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaAnnotationSootClassSource.java index e5e7a091d3b..912b8d7dfe1 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaAnnotationSootClassSource.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaAnnotationSootClassSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.types.ClassType; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.types.ClassType; import java.nio.file.Path; import javax.annotation.Nonnull; diff --git a/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaAnnotationSootMethod.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaAnnotationSootMethod.java new file mode 100644 index 00000000000..a2b2b40a952 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaAnnotationSootMethod.java @@ -0,0 +1,28 @@ +package de.upb.sse.sootup.java.core; + +import de.upb.sse.sootup.core.frontend.BodySource; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +public class JavaAnnotationSootMethod extends JavaSootMethod { + + public JavaAnnotationSootMethod( + @Nonnull BodySource source, + @Nonnull MethodSignature methodSignature, + @Nonnull Iterable modifiers, + @Nonnull Iterable thrownExceptions, + @Nonnull Iterable annotations, + @Nonnull Position position) { + super(source, methodSignature, modifiers, thrownExceptions, annotations, position); + } + + /** @return returns default value of annotation. May be null, if there is no default value */ + @Nullable + public Object getDefaultValue() { + return this.bodySource.resolveDefaultValue(); + } +} diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaIdentifierFactory.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaIdentifierFactory.java similarity index 91% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaIdentifierFactory.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaIdentifierFactory.java index fa49584e73e..abb11ef6750 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaIdentifierFactory.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaIdentifierFactory.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -23,21 +23,21 @@ */ import com.google.common.collect.Maps; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.FieldSubSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ArrayType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.NullType; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.java.core.types.AnnotationType; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.FieldSubSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.NullType; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.java.core.types.AnnotationType; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.nio.file.Path; import java.util.*; import java.util.regex.Matcher; @@ -362,15 +362,15 @@ private static IllegalArgumentException createInvalidMethodSignatureException() *

Soot syntax examples: * *


-   * <de.upb.soot.signatures.Remove: de.upb.soot.signatures.MethodSignature parseMethodSignature(java.lang.String)>
-   * <de.upb.soot.signatures.Remove: de.upb.soot.signatures.MethodSignature getMethodSignature(java.lang.String, de.upb.soot.types.JavaClassType)>
+   * <de.upb.sootup.signatures.Remove: de.upb.sootup.signatures.MethodSignature parseMethodSignature(java.lang.String)>
+   * <de.upb.sootup.signatures.Remove: de.upb.sootup.signatures.MethodSignature getMethodSignature(java.lang.String, de.upb.sootup.types.JavaClassType)>
    * 
* *

JavaDoc-like syntax examples: * *


-   * de.upb.soot.signatures.Remove#parseMethodSignature(java.lang.String): de.upb.soot.signatures.MethodSignature
-   * de.upb.soot.signatures.Remove#getMethodSignature(java.lang.String, de.upb.soot.types.JavaClassType): de.upb.soot.signatures.MethodSignature
+   * de.upb.sootup.signatures.Remove#parseMethodSignature(java.lang.String): de.upb.sootup.signatures.MethodSignature
+   * de.upb.sootup.signatures.Remove#getMethodSignature(java.lang.String, de.upb.sootup.types.JavaClassType): de.upb.sootup.signatures.MethodSignature
    * 
* * @param methodSignature A Soot- or JavaDoc-like method signature. @@ -460,15 +460,15 @@ private static IllegalArgumentException createInvalidMethodSubSignatureException *

Soot syntax examples: * *


-   * >de.upb.soot.signatures.MethodSignature parseMethodSignature(java.lang.String)>
-   * >de.upb.soot.signatures.MethodSignature getMethodSignature(java.lang.String, de.upb.soot.types.JavaClassType)>
+   * >de.upb.sootup.signatures.MethodSignature parseMethodSignature(java.lang.String)>
+   * >de.upb.sootup.signatures.MethodSignature getMethodSignature(java.lang.String, de.upb.sootup.types.JavaClassType)>
    * 
* *

JavaDoc-like syntax examples: * *


-   * #parseMethodSignature(java.lang.String): de.upb.soot.signatures.MethodSignature
-   * #getMethodSignature(java.lang.String, de.upb.soot.types.JavaClassType): de.upb.soot.signatures.MethodSignature
+   * #parseMethodSignature(java.lang.String): de.upb.sootup.signatures.MethodSignature
+   * #getMethodSignature(java.lang.String, de.upb.sootup.types.JavaClassType): de.upb.sootup.signatures.MethodSignature
    * 
* * @param subSignature A Soot- or Kotlin-like method sub-signature. @@ -540,13 +540,13 @@ private static IllegalArgumentException createInvalidFieldSignatureException() { *

Soot syntax examples: * *


-   * <de.upb.soot.signatures.Remove: de.upb.soot.signatures.Remove INSTANCE>
+   * <de.upb.sootup.signatures.Remove: de.upb.sootup.signatures.Remove INSTANCE>
    * 
* *

JavaDoc-like syntax examples: * *


-   * de.upb.soot.signatures.Remove#INSTANCE: de.upb.soot.signatures.Remove
+   * de.upb.sootup.signatures.Remove#INSTANCE: de.upb.sootup.signatures.Remove
    * 
* * @param fieldSignature A Soot- or JavaDoc-like field signature. @@ -629,13 +629,13 @@ private static IllegalArgumentException createInvalidFieldSubSignatureException( *

Soot syntax example: * *


-   * <de.upb.soot.signatures.Remove INSTANCE>
+   * <de.upb.sootup.signatures.Remove INSTANCE>
    * 
* *

JavaDoc-like syntax example: * *


-   * #INSTANCE: de.upb.soot.signatures.Remove
+   * #INSTANCE: de.upb.sootup.signatures.Remove
    * 
* * @param subSignature A Soot- or Kotlin-like method sub-signature. diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaModuleIdentifierFactory.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaModuleIdentifierFactory.java similarity index 97% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaModuleIdentifierFactory.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaModuleIdentifierFactory.java index 0bfba3b5112..31ed19fa069 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaModuleIdentifierFactory.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaModuleIdentifierFactory.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.signatures.*; -import de.upb.swt.soot.java.core.signatures.ModulePackageName; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.ModuleJavaClassType; +import de.upb.sse.sootup.core.signatures.*; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.ModuleJavaClassType; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaModuleInfo.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaModuleInfo.java similarity index 96% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaModuleInfo.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaModuleInfo.java index d67520cf919..77dd9c014c6 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaModuleInfo.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaModuleInfo.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.java.core.signatures.ModulePackageName; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaModuleProject.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaModuleProject.java similarity index 82% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaModuleProject.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaModuleProject.java index f383104dbee..32471b2dd73 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaModuleProject.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaModuleProject.java @@ -1,10 +1,10 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; -import de.upb.swt.soot.core.SourceTypeSpecifier; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaModuleView; +import de.upb.sse.sootup.core.SourceTypeSpecifier; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaModuleView; import java.util.List; import java.util.function.Function; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaPackageName.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaPackageName.java similarity index 89% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaPackageName.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaPackageName.java index e0da5936636..fc64a27793c 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaPackageName.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaPackageName.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.Collections; import java.util.Optional; import javax.annotation.Nonnull; @@ -36,7 +36,7 @@ public class JavaPackageName extends PackageName { /** * Internal: Constructs a Package Signature of a Java package. Instances should only be created by - * a {@link de.upb.swt.soot.core.IdentifierFactory } + * a {@link de.upb.sse.sootup.core.IdentifierFactory } * * @param packageName the package's name */ @@ -47,7 +47,7 @@ public JavaPackageName(@Nonnull String packageName) { /* * Internal: Constructs a Package Signature of a Java package. Instances should only be created by - * a {@link de.upb.swt.soot.core.IdentifierFactory } + * a {@link de.upb.sse.sootup.core.IdentifierFactory } * * @param annotations * @param packageName the package's name diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaProject.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaProject.java similarity index 89% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaProject.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaProject.java index dd972b50ce0..71ebc8a24cd 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaProject.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaProject.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -23,14 +23,14 @@ */ import com.google.common.base.Preconditions; -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.SourceTypeSpecifier; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.inputlocation.DefaultSourceTypeSpecifier; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; -import de.upb.swt.soot.java.core.views.MutableJavaView; +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.SourceTypeSpecifier; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.inputlocation.DefaultSourceTypeSpecifier; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; +import de.upb.sse.sootup.java.core.views.MutableJavaView; import java.util.ArrayList; import java.util.List; import java.util.function.Function; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootClass.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootClass.java similarity index 95% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootClass.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootClass.java index e4247628b96..6a2c8396a13 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootClass.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootClass.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,12 +22,12 @@ * #L% */ -import de.upb.swt.soot.core.model.*; -import de.upb.swt.soot.core.signatures.FieldSubSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.model.*; +import de.upb.sse.sootup.core.signatures.FieldSubSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.ArrayList; import java.util.Collection; import java.util.List; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootClassSource.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootClassSource.java similarity index 83% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootClassSource.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootClassSource.java index 3b5b2dee4d9..64bcd0623d6 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootClassSource.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootClassSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,11 +22,11 @@ * #L% */ -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.types.ClassType; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.types.ClassType; import java.nio.file.Path; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootField.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootField.java similarity index 91% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootField.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootField.java index aa967177ad0..7242a464c8f 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootField.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootField.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,11 +22,11 @@ * #L% */ -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.Collections; import java.util.Optional; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootMethod.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootMethod.java similarity index 92% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootMethod.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootMethod.java index b3628ea3b71..d6f5f7e116a 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaSootMethod.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/JavaSootMethod.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,15 +22,15 @@ * #L% */ -import de.upb.swt.soot.core.frontend.BodySource; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.frontend.BodySource; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.ArrayList; import java.util.Collections; import java.util.Optional; diff --git a/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/ModuleInfoAnalysisInputLocation.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/ModuleInfoAnalysisInputLocation.java new file mode 100644 index 00000000000..e8f77c431d8 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/ModuleInfoAnalysisInputLocation.java @@ -0,0 +1,27 @@ +package de.upb.sse.sootup.java.core; + +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import java.util.Collection; +import java.util.Optional; +import java.util.Set; +import javax.annotation.Nonnull; + +/** + * @author Markus Schmidt + *

Interface to mark AnalysisInputLocations that are capable of retreiving + * JavaModuleInformations + */ +public interface ModuleInfoAnalysisInputLocation extends AnalysisInputLocation { + + Collection> getModulesClassSources( + @Nonnull ModuleSignature moduleSignature, @Nonnull View view); + + @Nonnull + Optional getModuleInfo(ModuleSignature sig, View view); + + @Nonnull + Set getModules(View view); +} diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/ModuleModifier.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/ModuleModifier.java similarity index 95% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/ModuleModifier.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/ModuleModifier.java index b6b3309ff00..1a693e236f5 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/ModuleModifier.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/ModuleModifier.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; // Modifier for java 9 modules corresponding to the bytecodes used in module-info.class public enum ModuleModifier { diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/OverridingJavaClassSource.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/OverridingJavaClassSource.java similarity index 96% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/OverridingJavaClassSource.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/OverridingJavaClassSource.java index 9d170527a69..655243172b9 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/OverridingJavaClassSource.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/OverridingJavaClassSource.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core; +package de.upb.sse.sootup.java.core; /*- * #%L @@ -22,15 +22,15 @@ * #L% */ -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.CollectionUtils; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.CollectionUtils; import java.nio.file.Path; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/jimple/basic/JavaLocal.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/jimple/basic/JavaLocal.java similarity index 91% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/jimple/basic/JavaLocal.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/jimple/basic/JavaLocal.java index 70312af82ca..3f639f6d684 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/jimple/basic/JavaLocal.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/jimple/basic/JavaLocal.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.jimple.basic; +package de.upb.sse.sootup.java.core.jimple.basic; /*- * #%L @@ -22,9 +22,9 @@ * #L% */ -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.java.core.AnnotationUsage; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.java.core.AnnotationUsage; import java.util.Objects; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/language/JavaJimple.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/language/JavaJimple.java similarity index 77% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/language/JavaJimple.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/language/JavaJimple.java index 3969eabf25d..1b6f3437d29 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/language/JavaJimple.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/language/JavaJimple.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.language; +package de.upb.sse.sootup.java.core.language; /*- * #%L @@ -22,20 +22,20 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.common.constant.ClassConstant; -import de.upb.swt.soot.core.jimple.common.constant.EnumConstant; -import de.upb.swt.soot.core.jimple.common.constant.MethodHandle; -import de.upb.swt.soot.core.jimple.common.constant.MethodType; -import de.upb.swt.soot.core.jimple.common.constant.StringConstant; -import de.upb.swt.soot.core.jimple.common.ref.JCaughtExceptionRef; -import de.upb.swt.soot.core.jimple.common.ref.JFieldRef; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.*; -import de.upb.swt.soot.java.core.AnnotationUsage; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.jimple.basic.JavaLocal; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.common.constant.ClassConstant; +import de.upb.sse.sootup.core.jimple.common.constant.EnumConstant; +import de.upb.sse.sootup.core.jimple.common.constant.MethodHandle; +import de.upb.sse.sootup.core.jimple.common.constant.MethodType; +import de.upb.sse.sootup.core.jimple.common.constant.StringConstant; +import de.upb.sse.sootup.core.jimple.common.ref.JCaughtExceptionRef; +import de.upb.sse.sootup.core.jimple.common.ref.JFieldRef; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.*; +import de.upb.sse.sootup.java.core.AnnotationUsage; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.jimple.basic.JavaLocal; import java.util.List; /** diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/language/JavaLanguage.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/language/JavaLanguage.java similarity index 87% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/language/JavaLanguage.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/language/JavaLanguage.java index 7c7afcce879..d47148a3fc9 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/language/JavaLanguage.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/language/JavaLanguage.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.language; +package de.upb.sse.sootup.java.core.language; /*- * #%L @@ -22,10 +22,10 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.Language; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.Language; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; import javax.annotation.Nonnull; // TODO: Auto-generated Javadoc diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/signatures/CommonClassSignatures.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/signatures/CommonClassSignatures.java similarity index 87% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/signatures/CommonClassSignatures.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/signatures/CommonClassSignatures.java index 5e96246daf0..3aae770fbfb 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/signatures/CommonClassSignatures.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/signatures/CommonClassSignatures.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.signatures; +package de.upb.sse.sootup.java.core.signatures; /*- * #%L @@ -22,8 +22,8 @@ * #L% */ -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; /** * Features class signatures for commonly used standard classes from the JDK diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/signatures/ModulePackageName.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/signatures/ModulePackageName.java similarity index 94% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/signatures/ModulePackageName.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/signatures/ModulePackageName.java index 07b38a05dc7..0a6ae9ba397 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/signatures/ModulePackageName.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/signatures/ModulePackageName.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.signatures; +package de.upb.sse.sootup.java.core.signatures; /*- * #%L @@ -23,8 +23,8 @@ */ import com.google.common.base.Objects; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.java.core.JavaPackageName; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.java.core.JavaPackageName; /** Represents the signature of a Java 9 package, referencing its module. */ public class ModulePackageName extends JavaPackageName { diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/signatures/ModuleSignature.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/signatures/ModuleSignature.java similarity index 94% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/signatures/ModuleSignature.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/signatures/ModuleSignature.java index 33cc60cbb30..09f1cea455d 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/signatures/ModuleSignature.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/signatures/ModuleSignature.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.signatures; +package de.upb.sse.sootup.java.core.signatures; /*- * #%L @@ -23,7 +23,7 @@ */ import com.google.common.base.Objects; -import de.upb.swt.soot.core.signatures.Signature; +import de.upb.sse.sootup.core.signatures.Signature; // TODO Rename this too? @@ -41,7 +41,7 @@ public class ModuleSignature implements Signature { /** * Construct Module Signature of a Java 9 module. Instances should only be created a {@link - * de.upb.swt.soot.core.IdentifierFactory} + * de.upb.sse.sootup.core.IdentifierFactory} * * @param moduleName module's name */ diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/types/AnnotationType.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/types/AnnotationType.java similarity index 93% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/types/AnnotationType.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/types/AnnotationType.java index 910668368c1..fa1b9a77cd6 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/types/AnnotationType.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/types/AnnotationType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.types; +package de.upb.sse.sootup.java.core.types; /*- * #%L @@ -22,14 +22,14 @@ * #L% */ -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.java.core.JavaAnnotationSootMethod; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootMethod; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.java.core.JavaAnnotationSootMethod; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootMethod; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/types/JavaClassType.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/types/JavaClassType.java similarity index 94% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/types/JavaClassType.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/types/JavaClassType.java index 08ffb03ede0..915554dd16d 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/types/JavaClassType.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/types/JavaClassType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.types; +package de.upb.sse.sootup.java.core.types; /*- * #%L @@ -23,10 +23,10 @@ */ import com.google.common.base.Objects; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; import java.util.regex.Pattern; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/types/ModuleJavaClassType.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/types/ModuleJavaClassType.java similarity index 91% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/types/ModuleJavaClassType.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/types/ModuleJavaClassType.java index 874dbb34795..bb4c8c0c4da 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/types/ModuleJavaClassType.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/types/ModuleJavaClassType.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.types; +package de.upb.sse.sootup.java.core.types; /*- * #%L @@ -22,7 +22,7 @@ * #L% */ -import de.upb.swt.soot.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; import javax.annotation.Nonnull; public class ModuleJavaClassType extends JavaClassType { diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/views/JavaModuleView.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/views/JavaModuleView.java similarity index 92% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/views/JavaModuleView.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/views/JavaModuleView.java index 140324af174..55ed11efd56 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/views/JavaModuleView.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/views/JavaModuleView.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.views; +package de.upb.sse.sootup.java.core.views; /*- * #%L @@ -22,20 +22,22 @@ * #L% */ -import static de.upb.swt.soot.java.core.JavaModuleInfo.*; - -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.inputlocation.EmptyClassLoadingOptions; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.*; -import de.upb.swt.soot.java.core.signatures.ModulePackageName; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.inputlocation.EmptyClassLoadingOptions; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.*; +import de.upb.sse.sootup.java.core.JavaModuleInfo; +import de.upb.sse.sootup.java.core.JavaModuleProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.ModuleInfoAnalysisInputLocation; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -73,7 +75,7 @@ public JavaModuleView( classLoadingOptionsSpecifier) { super(project); this.classLoadingOptionsSpecifier = classLoadingOptionsSpecifier; - JavaModuleInfo unnamedModuleInfo = getUnnamedModuleInfo(); + JavaModuleInfo unnamedModuleInfo = JavaModuleInfo.getUnnamedModuleInfo(); moduleInfoMap.put(unnamedModuleInfo.getModuleSignature(), unnamedModuleInfo); } @@ -134,8 +136,8 @@ private boolean isPackageVisibleToModule( } // is the package exported by its module? - Collection exports = moduleInfo.exports(); - Optional filteredExportedPackages = + Collection exports = moduleInfo.exports(); + Optional filteredExportedPackages = exports.stream() .filter(packageReference -> packageReference.getPackageName().equals(packageName)) .findAny(); @@ -283,7 +285,7 @@ private boolean isTransitiveRequires( continue; } - for (ModuleReference require : moduleInfo.requires()) { + for (JavaModuleInfo.ModuleReference require : moduleInfo.requires()) { ModuleSignature requireModuleSig = require.getModuleSignature(); if (moduleSignature.equals(requireModuleSig)) { return true; @@ -422,7 +424,7 @@ private boolean isProvidedInterfaceImplementation(@Nonnull JavaClassType type) { ModulePackageName packageName = (ModulePackageName) type.getPackageName(); JavaModuleInfo moduleInfo = getModuleInfo(packageName.getModuleSignature()).get(); - for (InterfaceReference provides : moduleInfo.provides()) { + for (JavaModuleInfo.InterfaceReference provides : moduleInfo.provides()) { JavaClassType interfaceType = provides.getInterfaceType(); String packageName1 = interfaceType.getPackageName().getPackageName(); String packageName2 = type.getPackageName().getPackageName(); diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/views/JavaView.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/views/JavaView.java similarity index 86% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/views/JavaView.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/views/JavaView.java index 6c85e01a338..ac97348c405 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/views/JavaView.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/views/JavaView.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.core.views; +package de.upb.sse.sootup.java.core.views; /*- * #%L @@ -22,18 +22,18 @@ * #L% */ -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.inputlocation.EmptyClassLoadingOptions; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.AbstractView; -import de.upb.swt.soot.java.core.AnnotationUsage; -import de.upb.swt.soot.java.core.JavaAnnotationSootClass; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.types.AnnotationType; +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.inputlocation.EmptyClassLoadingOptions; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.AbstractView; +import de.upb.sse.sootup.java.core.AnnotationUsage; +import de.upb.sse.sootup.java.core.JavaAnnotationSootClass; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.types.AnnotationType; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -92,7 +92,7 @@ public List getBodyInterceptors(AnalysisInputLocation getBodyInterceptors() { // TODO add default interceptors from - // de.upb.swt.soot.java.bytecode.interceptors.BytecodeBodyInterceptors; + // de.upb.sse.sootup.java.bytecode.interceptors.BytecodeBodyInterceptors; return Collections.emptyList(); } diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/views/MutableJavaView.java b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/views/MutableJavaView.java similarity index 88% rename from de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/views/MutableJavaView.java rename to de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/views/MutableJavaView.java index 1d0fcee7c23..fc12bfc3250 100644 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/views/MutableJavaView.java +++ b/de.upb.sse.sootup.java.core/src/main/java/de/upb/sse/sootup/java/core/views/MutableJavaView.java @@ -1,13 +1,13 @@ -package de.upb.swt.soot.java.core.views; - -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.ViewChangeListener; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.MutableView; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootMethod; +package de.upb.sse.sootup.java.core.views; + +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.ViewChangeListener; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.MutableView; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootMethod; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.core/src/test/java/categories/Java8Test.java b/de.upb.sse.sootup.java.core/src/test/java/categories/Java8Test.java similarity index 100% rename from de.upb.swt.soot.java.core/src/test/java/categories/Java8Test.java rename to de.upb.sse.sootup.java.core/src/test/java/categories/Java8Test.java diff --git a/de.upb.swt.soot.java.core/src/test/java/categories/Java9Test.java b/de.upb.sse.sootup.java.core/src/test/java/categories/Java9Test.java similarity index 100% rename from de.upb.swt.soot.java.core/src/test/java/categories/Java9Test.java rename to de.upb.sse.sootup.java.core/src/test/java/categories/Java9Test.java diff --git a/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/AbstractBinopExpr.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/AbstractBinopExpr.java new file mode 100644 index 00000000000..9620d2cec82 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/AbstractBinopExpr.java @@ -0,0 +1,99 @@ +package de.upb.sse.sootup.test.core.jimple.common; + +import categories.Java8Test; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.common.expr.JEqExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JGeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JGtExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JLeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JLtExpr; +import de.upb.sse.sootup.core.types.PrimitiveType; +import org.junit.Assert; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Bastian Haverkamp */ +@Category(Java8Test.class) +public class AbstractBinopExpr { + + final JimpleComparator comparator = JimpleComparator.getInstance(); + + @Test + public void caseAbstractBinopExpr() { + Immediate b0 = Jimple.newLocal("l0", PrimitiveType.getBoolean()); + Immediate b1 = Jimple.newLocal("l1", PrimitiveType.getBoolean()); + + JEqExpr cond0_1 = Jimple.newEqExpr(b0, b1); + JEqExpr cond0_2 = Jimple.newEqExpr(b0, b1); + JEqExpr cond1 = Jimple.newEqExpr(b1, b0); + + JLtExpr lt0_1 = Jimple.newLtExpr(b0, b1); + JLtExpr lt0_2 = Jimple.newLtExpr(b0, b1); + JLtExpr lt1 = Jimple.newLtExpr(b1, b0); + + JGtExpr gt0_1 = Jimple.newGtExpr(b1, b0); + JGtExpr gt0_2 = Jimple.newGtExpr(b1, b0); + JGtExpr gt1 = Jimple.newGtExpr(b0, b1); + + JLeExpr le0_1 = Jimple.newLeExpr(b0, b1); + JLeExpr let0_2 = Jimple.newLeExpr(b0, b1); + JLeExpr le1 = Jimple.newLeExpr(b1, b0); + + JGeExpr ge0_1 = Jimple.newGeExpr(b1, b0); + JGeExpr ge0_2 = Jimple.newGeExpr(b1, b0); + JGeExpr ge1 = Jimple.newGeExpr(b0, b1); + + String wrongObject = ""; + + // a==b <=> a==b + Assert.assertTrue(comparator.caseAbstractBinopExpr(cond0_1, cond0_2)); + Assert.assertTrue(comparator.caseAbstractBinopExpr(cond0_2, cond0_1)); + // a==b <=> b==a + Assert.assertTrue(comparator.caseAbstractBinopExpr(cond0_1, cond1)); + Assert.assertTrue(comparator.caseAbstractBinopExpr(cond1, cond0_1)); + + // (b0 b1 b0 b1b1 <=> b1>b0) + Assert.assertFalse(comparator.caseAbstractBinopExpr(gt0_1, gt1)); + // (b1>b0 <=> b0>b1) + Assert.assertFalse(comparator.caseAbstractBinopExpr(gt1, gt0_1)); + // b1>b0 <=> b1>b0 + Assert.assertTrue(comparator.caseAbstractBinopExpr(gt0_1, gt0_2)); + Assert.assertTrue(comparator.caseAbstractBinopExpr(gt0_2, gt0_1)); + + // b1 b0>b1 + Assert.assertTrue(comparator.caseAbstractBinopExpr(lt0_1, gt0_1)); + Assert.assertTrue(comparator.caseAbstractBinopExpr(gt0_1, lt0_1)); + + // (b0 b1 b0 b1b1 <=> b1>b0) + Assert.assertFalse(comparator.caseAbstractBinopExpr(ge0_1, ge1)); + // (b1>b0 <=> b0>b1) + Assert.assertFalse(comparator.caseAbstractBinopExpr(ge1, ge0_1)); + // b1>b0 <=> b1>b0 + Assert.assertTrue(comparator.caseAbstractBinopExpr(ge0_1, ge0_2)); + Assert.assertTrue(comparator.caseAbstractBinopExpr(ge0_2, ge0_1)); + + // b1 b0>b1 + Assert.assertTrue(comparator.caseAbstractBinopExpr(le0_1, ge0_1)); + Assert.assertTrue(comparator.caseAbstractBinopExpr(ge0_1, le0_1)); + + Assert.assertFalse(comparator.caseAbstractBinopExpr(cond0_1, wrongObject)); + } +} diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/LocalTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/LocalTest.java similarity index 80% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/LocalTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/LocalTest.java index ed9021601ae..febcc3f8915 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/LocalTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/LocalTest.java @@ -20,18 +20,18 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common; +package de.upb.sse.sootup.test.core.jimple.common; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.IgnoreLocalNameComparator; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JBreakpointStmt; -import de.upb.swt.soot.core.types.PrimitiveType; +import de.upb.sse.sootup.core.jimple.IgnoreLocalNameComparator; +import de.upb.sse.sootup.core.jimple.basic.JimpleComparator; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JBreakpointStmt; +import de.upb.sse.sootup.core.types.PrimitiveType; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/ref/JFieldRefTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/ref/JFieldRefTest.java similarity index 77% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/ref/JFieldRefTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/ref/JFieldRefTest.java index 860ad157a89..010d7836c79 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/ref/JFieldRefTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/ref/JFieldRefTest.java @@ -1,24 +1,28 @@ -package de.upb.swt.soot.test.core.jimple.common.ref; +package de.upb.sse.sootup.test.core.jimple.common.ref; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.inputlocation.EagerInputLocation; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef; -import de.upb.swt.soot.core.jimple.common.ref.JStaticFieldRef; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.*; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.inputlocation.EagerInputLocation; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef; +import de.upb.sse.sootup.core.jimple.common.ref.JStaticFieldRef; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.*; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.OverridingJavaClassSource; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.Collections; import java.util.EnumSet; import java.util.Optional; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JAssignStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JAssignStmtTest.java similarity index 83% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JAssignStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JAssignStmtTest.java index fbc4c9081d9..3e79fad1e1e 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JAssignStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JAssignStmtTest.java @@ -20,24 +20,24 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common.stmt; +package de.upb.sse.sootup.test.core.jimple.common.stmt; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.IgnoreLocalNameComparator; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.constant.LongConstant; -import de.upb.swt.soot.core.jimple.common.expr.JAddExpr; -import de.upb.swt.soot.core.jimple.common.ref.JArrayRef; -import de.upb.swt.soot.core.jimple.common.ref.JStaticFieldRef; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; +import de.upb.sse.sootup.core.jimple.IgnoreLocalNameComparator; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.constant.LongConstant; +import de.upb.sse.sootup.core.jimple.common.expr.JAddExpr; +import de.upb.sse.sootup.core.jimple.common.ref.JArrayRef; +import de.upb.sse.sootup.core.jimple.common.ref.JStaticFieldRef; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; import java.util.Comparator; import org.junit.Assert; import org.junit.Test; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JGotoStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JGotoStmtTest.java similarity index 80% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JGotoStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JGotoStmtTest.java index 77d6ecba175..d1c0e4aac5b 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JGotoStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JGotoStmtTest.java @@ -20,15 +20,15 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common.stmt; +package de.upb.sse.sootup.test.core.jimple.common.stmt; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.JGotoStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JThrowStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.JGotoStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JThrowStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JIdentityStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JIdentityStmtTest.java similarity index 87% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JIdentityStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JIdentityStmtTest.java index fe123447f63..f443504254d 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JIdentityStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JIdentityStmtTest.java @@ -20,18 +20,18 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common.stmt; +package de.upb.sse.sootup.test.core.jimple.common.stmt; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.ref.JParameterRef; -import de.upb.swt.soot.core.jimple.common.ref.JThisRef; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.ref.JParameterRef; +import de.upb.sse.sootup.core.jimple.common.ref.JThisRef; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JIfStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JIfStmtTest.java similarity index 81% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JIfStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JIfStmtTest.java index f12a8945e3d..9743f15a2fd 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JIfStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JIfStmtTest.java @@ -20,16 +20,16 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common.stmt; +package de.upb.sse.sootup.test.core.jimple.common.stmt; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.expr.AbstractConditionExpr; -import de.upb.swt.soot.core.jimple.common.expr.JEqExpr; -import de.upb.swt.soot.core.jimple.common.stmt.JIfStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractConditionExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JEqExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.JIfStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JInvokeStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JInvokeStmtTest.java similarity index 83% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JInvokeStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JInvokeStmtTest.java index 92d709c76c8..71a8f2c4be6 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JInvokeStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JInvokeStmtTest.java @@ -20,28 +20,28 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common.stmt; +package de.upb.sse.sootup.test.core.jimple.common.stmt; import categories.Java8Test; -import de.upb.swt.soot.core.inputlocation.EagerInputLocation; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.expr.JDynamicInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JInterfaceInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JSpecialInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JStaticInvokeExpr; -import de.upb.swt.soot.core.jimple.common.stmt.JInvokeStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.OverridingJavaClassSource; -import de.upb.swt.soot.java.core.language.JavaJimple; +import de.upb.sse.sootup.core.inputlocation.EagerInputLocation; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.expr.JDynamicInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JInterfaceInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JSpecialInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JStaticInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.JInvokeStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.OverridingJavaClassSource; +import de.upb.sse.sootup.java.core.language.JavaJimple; import java.net.URI; import java.nio.file.Path; import java.nio.file.Paths; @@ -73,7 +73,7 @@ public void test() { new OverridingJavaClassSource( new EagerInputLocation(), dummyPath, - dif.getClassType("de.upb.soot.instructions.stmt.IdentityStmt"), + dif.getClassType("de.upb.sootup.instructions.stmt.IdentityStmt"), superClassSignature, new HashSet<>(), null, diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JNopStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JNopStmtTest.java similarity index 76% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JNopStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JNopStmtTest.java index bf06556d1f5..cc610ff3c72 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JNopStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JNopStmtTest.java @@ -20,16 +20,16 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common.stmt; +package de.upb.sse.sootup.test.core.jimple.common.stmt; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.ref.JParameterRef; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.types.PrimitiveType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.ref.JParameterRef; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.types.PrimitiveType; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JReturnStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JReturnStmtTest.java similarity index 81% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JReturnStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JReturnStmtTest.java index ca52e7cc478..f43b6473478 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JReturnStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JReturnStmtTest.java @@ -20,14 +20,14 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common.stmt; +package de.upb.sse.sootup.test.core.jimple.common.stmt; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JReturnVoidStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JReturnVoidStmtTest.java similarity index 77% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JReturnVoidStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JReturnVoidStmtTest.java index 524a9db5757..cc74b59d5e7 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JReturnVoidStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JReturnVoidStmtTest.java @@ -20,15 +20,15 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common.stmt; +package de.upb.sse.sootup.test.core.jimple.common.stmt; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnVoidStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnVoidStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JThrowStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JThrowStmtTest.java similarity index 83% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JThrowStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JThrowStmtTest.java index 019a0bfe215..ea80943d6da 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/stmt/JThrowStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/common/stmt/JThrowStmtTest.java @@ -20,15 +20,15 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.common.stmt; +package de.upb.sse.sootup.test.core.jimple.common.stmt; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JThrowStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JThrowStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JBreakpointStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JBreakpointStmtTest.java similarity index 84% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JBreakpointStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JBreakpointStmtTest.java index 5404c7b4517..9fcc1a27ffc 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JBreakpointStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JBreakpointStmtTest.java @@ -20,15 +20,15 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.test.core.jimple.javabytecode.stmt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JBreakpointStmt; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JBreakpointStmt; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JEnterMonitorStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JEnterMonitorStmtTest.java similarity index 85% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JEnterMonitorStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JEnterMonitorStmtTest.java index 39b4dbe21e6..cd8952b2f55 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JEnterMonitorStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JEnterMonitorStmtTest.java @@ -20,18 +20,18 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.test.core.jimple.javabytecode.stmt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JEnterMonitorStmt; -import de.upb.swt.soot.core.types.PrimitiveType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JEnterMonitorStmt; +import de.upb.sse.sootup.core.types.PrimitiveType; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JExitMonitorStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JExitMonitorStmtTest.java similarity index 85% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JExitMonitorStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JExitMonitorStmtTest.java index e196fabec53..6b80c19625c 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JExitMonitorStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JExitMonitorStmtTest.java @@ -20,18 +20,18 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.test.core.jimple.javabytecode.stmt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JExitMonitorStmt; -import de.upb.swt.soot.core.types.PrimitiveType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JExitMonitorStmt; +import de.upb.sse.sootup.core.types.PrimitiveType; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JRetStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JRetStmtTest.java similarity index 83% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JRetStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JRetStmtTest.java index a1e6b4b0f6e..0b1ac4aafca 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JRetStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JRetStmtTest.java @@ -20,17 +20,17 @@ * #L% */ -package de.upb.swt.soot.test.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.test.core.jimple.javabytecode.stmt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JRetStmt; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JRetStmt; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JSwitchStmtTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JSwitchStmtTest.java similarity index 94% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JSwitchStmtTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JSwitchStmtTest.java index 251b6d95192..3d60a3b9342 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/javabytecode/stmt/JSwitchStmtTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/jimple/javabytecode/stmt/JSwitchStmtTest.java @@ -1,15 +1,15 @@ -package de.upb.swt.soot.test.core.jimple.javabytecode.stmt; +package de.upb.sse.sootup.test.core.jimple.javabytecode.stmt; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnVoidStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnVoidStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/BlockGraphTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/BlockGraphTest.java new file mode 100644 index 00000000000..243f22dc31c --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/BlockGraphTest.java @@ -0,0 +1,424 @@ +package de.upb.sse.sootup.test.core.model; + +import static org.junit.Assert.*; + +import categories.Java8Test; +import de.upb.sse.sootup.core.graph.Block; +import de.upb.sse.sootup.core.graph.BlockGraph; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import java.util.*; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Zun Wang */ +@Category(Java8Test.class) +public class BlockGraphTest { + + // Preparation + JavaIdentifierFactory factory = JavaIdentifierFactory.getInstance(); + JavaJimple javaJimple = JavaJimple.getInstance(); + StmtPositionInfo noStmtPositionInfo = StmtPositionInfo.createNoStmtPositionInfo(); + + JavaClassType intType = factory.getClassType("int"); + JavaClassType classType = factory.getClassType("Test"); + MethodSignature methodSignature = + new MethodSignature(classType, "test", Collections.emptyList(), VoidType.getInstance()); + IdentityRef identityRef = JavaJimple.newThisRef(classType); + JavaClassType refType = factory.getClassType("ref"); + IdentityRef caughtExceptionRef = javaJimple.newCaughtExceptionRef(); + ClassType exception = factory.getClassType("Exception"); + + // build locals + Local l0 = JavaJimple.newLocal("l0", intType); + Local l1 = JavaJimple.newLocal("l1", intType); + Local l2 = JavaJimple.newLocal("l2", intType); + Local l3 = JavaJimple.newLocal("l3", intType); + Local l4 = JavaJimple.newLocal("l4", intType); + Local stack5 = JavaJimple.newLocal("stack5", refType); + Local stack6 = JavaJimple.newLocal("stack6", refType); + + Stmt startingStmt = JavaJimple.newIdentityStmt(l0, identityRef, noStmtPositionInfo); + Stmt stmt1 = JavaJimple.newAssignStmt(l1, IntConstant.getInstance(0), noStmtPositionInfo); + Stmt stmt2 = + JavaJimple.newIfStmt( + JavaJimple.newGeExpr(l1, IntConstant.getInstance(0)), noStmtPositionInfo); + Stmt stmt3 = + JavaJimple.newAssignStmt( + l1, JavaJimple.newAddExpr(l1, IntConstant.getInstance(1)), noStmtPositionInfo); + Stmt stmt4 = JavaJimple.newGotoStmt(noStmtPositionInfo); + Stmt stmt5 = + JavaJimple.newAssignStmt( + l1, JavaJimple.newSubExpr(l1, IntConstant.getInstance(1)), noStmtPositionInfo); + Stmt stmt6 = + JavaJimple.newAssignStmt( + l1, JavaJimple.newAddExpr(l1, IntConstant.getInstance(2)), noStmtPositionInfo); + Stmt ret = JavaJimple.newReturnStmt(l1, noStmtPositionInfo); + + Stmt stmt7 = JavaJimple.newAssignStmt(l4, l1, noStmtPositionInfo); + Stmt stmt8 = JavaJimple.newAssignStmt(l3, IntConstant.getInstance(10), noStmtPositionInfo); + Stmt stmt9 = + JavaJimple.newIfStmt(JavaJimple.newGeExpr(l4, l3), noStmtPositionInfo); // branch to ret + Stmt stmt10 = + JavaJimple.newAssignStmt( + l2, JavaJimple.newAddExpr(l1, IntConstant.getInstance(1)), noStmtPositionInfo); + Stmt stmt11 = + JavaJimple.newAssignStmt( + l1, JavaJimple.newAddExpr(l2, IntConstant.getInstance(1)), noStmtPositionInfo); + Stmt gotoStmt1 = JavaJimple.newGotoStmt(noStmtPositionInfo); + Stmt gotoStmt2 = JavaJimple.newGotoStmt(noStmtPositionInfo); + + Stmt stack5Stmt = JavaJimple.newIdentityStmt(stack5, caughtExceptionRef, noStmtPositionInfo); + Stmt stack6Stmt = JavaJimple.newIdentityStmt(stack6, caughtExceptionRef, noStmtPositionInfo); + + Trap trap1 = new Trap(exception, stmt1, ret, stack5Stmt); + Trap trap2 = new Trap(exception, stmt10, stmt7, stack6Stmt); + + @Test + public void testBlockGraphWithBranch() { + Body body = createBBBody(); + BlockGraph graph = new BlockGraph(body.getStmtGraph()); + + // expected Blocks in BlockGraph + Block eblock1 = new Block(startingStmt, stmt2); + Block eblock2 = new Block(stmt5, stmt6); + Block eblock3 = new Block(stmt3, stmt4); + Block eblock4 = new Block(ret, ret); + List expectedBlocks = ImmutableUtils.immutableList(eblock1, eblock2, eblock3, eblock4); + List actualBlocks = graph.getBlocks(); + + assertTrue(graph.getStartingBlock().equals(eblock1)); + assertEquals(expectedBlocks.size(), actualBlocks.size()); + + for (int i = 0; i < 4; i++) { + assertTrue(expectedBlocks.get(i).equals(actualBlocks.get(i))); + } + + List stmts = body.getStmts(); + for (int i = 0; i < stmts.size(); i++) { + Stmt stmt = stmts.get(i); + if (i < 3) { + assertTrue(graph.blockPredecessors(stmt).isEmpty()); + assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock3)); + assertTrue(graph.blockSuccessors(stmt).get(1).equals(eblock2)); + assertTrue(graph.getBlock(stmt).equals(eblock1)); + } else if (i < 5) { + assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock1)); + assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock4)); + assertTrue(graph.getBlock(stmt).equals(eblock3)); + } else if (i < 7) { + assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock1)); + assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock4)); + assertTrue(graph.getBlock(stmt).equals(eblock2)); + } else { + assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock3)); + assertTrue(graph.blockPredecessors(stmt).get(1).equals(eblock2)); + assertTrue(graph.blockSuccessors(stmt).isEmpty()); + assertTrue(graph.getBlock(stmt).equals(eblock4)); + } + } + + List expectedBlockStmts1 = ImmutableUtils.immutableList(startingStmt, stmt1, stmt2); + List expectedBlockStmts2 = ImmutableUtils.immutableList(stmt5, stmt6); + List expectedBlockStmts3 = ImmutableUtils.immutableList(stmt3, stmt4); + List expectedBlockStmts4 = ImmutableUtils.immutableList(ret); + + int i = 0; + for (Block block : graph.getBlocks()) { + List blockStmts = graph.getBlockStmts(block); + List expectedBlockStmts; + if (i == 0) { + expectedBlockStmts = expectedBlockStmts1; + } else if (i == 1) { + expectedBlockStmts = expectedBlockStmts2; + } else if (i == 2) { + expectedBlockStmts = expectedBlockStmts3; + } else { + expectedBlockStmts = expectedBlockStmts4; + } + for (int j = 0; j < expectedBlockStmts.size(); j++) { + assertTrue(blockStmts.get(j) == expectedBlockStmts.get(j)); + } + i++; + } + } + + @Test + public void testBlockGraphWithLoop() { + Body body = createLoopBody(); + BlockGraph graph = new BlockGraph(body.getStmtGraph()); + + // expected Blocks in BlockGraph + Block eblock1 = new Block(startingStmt, stmt1); + Block eblock2 = new Block(stmt7, stmt9); + Block eblock3 = new Block(ret, ret); + Block eblock4 = new Block(stmt10, stmt4); + + List expectedBlocks = ImmutableUtils.immutableList(eblock1, eblock2, eblock3, eblock4); + List actualBlocks = graph.getBlocks(); + + assertTrue(graph.getStartingBlock().equals(eblock1)); + assertEquals(expectedBlocks.size(), actualBlocks.size()); + + for (int i = 0; i < 4; i++) { + assertTrue(expectedBlocks.get(i).equals(actualBlocks.get(i))); + } + + List stmts = body.getStmts(); + for (int i = 0; i < stmts.size(); i++) { + Stmt stmt = stmts.get(i); + if (i < 2) { + assertTrue(graph.blockPredecessors(stmt).isEmpty()); + assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock2)); + assertTrue(graph.getBlock(stmt).equals(eblock1)); + } else if (i < 5) { + assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock1)); + assertTrue(graph.blockPredecessors(stmt).get(1).equals(eblock4)); + assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock4)); + assertTrue(graph.blockSuccessors(stmt).get(1).equals(eblock3)); + assertTrue(graph.getBlock(stmt).equals(eblock2)); + } else if (i < 9) { + assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock2)); + assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock2)); + assertTrue(graph.getBlock(stmt).equals(eblock4)); + } else { + assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock2)); + assertTrue(graph.blockSuccessors(stmt).isEmpty()); + assertTrue(graph.getBlock(stmt).equals(eblock3)); + } + } + List expectedBlockStmts1 = ImmutableUtils.immutableList(startingStmt, stmt1); + List expectedBlockStmts2 = ImmutableUtils.immutableList(stmt7, stmt8, stmt9); + List expectedBlockStmts3 = ImmutableUtils.immutableList(ret); + List expectedBlockStmts4 = ImmutableUtils.immutableList(stmt10, stmt11, stmt5, stmt4); + + int i = 0; + for (Block block : graph.getBlocks()) { + List blockStmts = graph.getBlockStmts(block); + List expectedBlockStmts; + if (i == 0) { + expectedBlockStmts = expectedBlockStmts1; + } else if (i == 1) { + expectedBlockStmts = expectedBlockStmts2; + } else if (i == 2) { + expectedBlockStmts = expectedBlockStmts3; + } else { + expectedBlockStmts = expectedBlockStmts4; + } + for (int j = 0; j < expectedBlockStmts.size(); j++) { + assertTrue(blockStmts.get(j) == expectedBlockStmts.get(j)); + } + i++; + } + } + + @Test + public void testAddNewPhiStmt() { + Body body = createBBBody(); + BlockGraph graph = new BlockGraph(body.getStmtGraph()); + List actualBlocks = graph.getBlocks(); + + List args = ImmutableUtils.immutableList(l1, l1); + Map argToBlock = new HashMap<>(); + argToBlock.put(l1, actualBlocks.get(1)); + argToBlock.put(l1, actualBlocks.get(2)); + Stmt phiStmt = + JavaJimple.newAssignStmt(l1, JavaJimple.newPhiExpr(args, argToBlock), noStmtPositionInfo); + + graph.addStmtOnTopOfBlock(phiStmt, actualBlocks.get(3)); + + // expected Blocks in BlockGraph + Block eblock = new Block(phiStmt, ret); + assertTrue(graph.getBlocks().get(3).equals(eblock)); + + assertTrue(graph.getStmtGraph().containsNode(phiStmt)); + assertTrue(graph.getStmtGraph().predecessors(ret).get(0) == phiStmt); + assertTrue(graph.getStmtGraph().successors(phiStmt).get(0) == ret); + + assertTrue(graph.getStmtGraph().predecessors(phiStmt).get(0) == stmt4); + assertTrue(graph.getStmtGraph().predecessors(phiStmt).get(1) == stmt6); + assertTrue(graph.getStmtGraph().successors(stmt4).get(0) == phiStmt); + assertTrue(graph.getStmtGraph().successors(stmt6).get(0) == phiStmt); + } + + @Test + public void testRepalceStmt() { + Body body = createBBBody(); + BlockGraph graph = new BlockGraph(body.getStmtGraph()); + List actualBlocks = graph.getBlocks(); + + List args = ImmutableUtils.immutableList(l1, l1); + Map argToBlock = new HashMap<>(); + argToBlock.put(l1, actualBlocks.get(1)); + argToBlock.put(l1, actualBlocks.get(2)); + Stmt phiStmt = + JavaJimple.newAssignStmt(l1, JavaJimple.newPhiExpr(args, argToBlock), noStmtPositionInfo); + + graph.replaceStmtInBlock(stmt6, phiStmt, actualBlocks.get(1)); + + // expected Blocks in BlockGraph + Block eblock = new Block(stmt5, phiStmt); + assertTrue(graph.getBlocks().get(1).equals(eblock)); + } + + /** + * bodycreater for BinaryBranches + * + *

+   *    l0 := @this Test
+   *    l1 = 0
+   *    if l1 >= 0 goto label1
+   *    l1 = l1 + 1
+   *    goto label2
+   * label1:
+   *    l1 = l1 - 1
+   *    l1 = l1 + 2
+   * label2:
+   *    return l1
+   * 
+ */ + private Body createBBBody() { + Body.BodyBuilder builder = Body.builder(); + builder.setMethodSignature(methodSignature); + + // build set locals + Set locals = ImmutableUtils.immutableSet(l0, l1); + builder.setLocals(locals); + + // set graph + builder.addFlow(startingStmt, stmt1); + builder.addFlow(stmt1, stmt2); + builder.addFlow(stmt2, stmt3); + builder.addFlow(stmt3, stmt4); + builder.addFlow(stmt4, ret); + builder.addFlow(stmt2, stmt5); + builder.addFlow(stmt5, stmt6); + builder.addFlow(stmt6, ret); + + // build startingStmt + builder.setStartingStmt(startingStmt); + + // build position + Position position = NoPositionInformation.getInstance(); + builder.setPosition(position); + + return builder.build(); + } + + /** + * + * + *
+   *    l0 := @this Test
+   *    l1 = 0
+   * label1:
+   *    l4 = l1
+   *    l3 = 10
+   *    if l4 >= l3 goto label2
+   *    l2 = l1 + 1
+   *    l1 = l2 + 1
+   *    l1 = l1 - 1
+   *    goto label1
+   * label2:
+   *    return
+   * 
+ */ + private Body createLoopBody() { + + Body.BodyBuilder builder = Body.builder(); + builder.setMethodSignature(methodSignature); + + // build set locals + Set locals = ImmutableUtils.immutableSet(l0, l1, l2, l3, l4); + + builder.setLocals(locals); + + // set graph + builder.addFlow(startingStmt, stmt1); + builder.addFlow(stmt1, stmt7); + builder.addFlow(stmt7, stmt8); + builder.addFlow(stmt8, stmt9); + builder.addFlow(stmt9, stmt10); + builder.addFlow(stmt9, ret); + builder.addFlow(stmt10, stmt11); + builder.addFlow(stmt11, stmt5); + builder.addFlow(stmt5, stmt4); + builder.addFlow(stmt4, stmt7); + + // build startingStmt + builder.setStartingStmt(startingStmt); + + // build position + Position position = NoPositionInformation.getInstance(); + builder.setPosition(position); + + return builder.build(); + } + + /** + * + * + *
+   *    l0 := @this Test
+   * label1:
+   *    l1 = 0
+   * label2
+   *    l2 = l1 + 1
+   *    l3 = 10
+   * label3
+   *    l4 = l1
+   * label4:
+   *    return
+   * label5:
+   *    stack5 := @caughtexception;
+   *    goto label4;
+   * label6:
+   *    stack6 := @caughtexception;
+   *    goto label4;
+   * 
+ */ + private Body createTrapBody() { + + Body.BodyBuilder builder = Body.builder(); + builder.setMethodSignature(methodSignature); + + // build set locals + Set locals = ImmutableUtils.immutableSet(l0, l1, l2, l3, l4, stack5, stack6); + + builder.setLocals(locals); + + // set graph + builder.addFlow(startingStmt, stmt1); + builder.addFlow(stmt1, stmt10); + builder.addFlow(stmt10, stmt8); + builder.addFlow(stmt8, stmt7); + builder.addFlow(stack5Stmt, gotoStmt1); + builder.addFlow(stack6Stmt, gotoStmt2); + builder.addFlow(gotoStmt1, ret); + builder.addFlow(gotoStmt2, ret); + builder.addFlow(stmt7, ret); + + // build startingStmt + builder.setStartingStmt(startingStmt); + + // build position + Position position = NoPositionInformation.getInstance(); + builder.setPosition(position); + + List traps = ImmutableUtils.immutableList(trap1, trap2); + builder.setTraps(traps); + + return builder.build(); + } +} diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/DominanceTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/DominanceTest.java similarity index 92% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/DominanceTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/DominanceTest.java index 070a91d9108..f29bf7a05e8 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/DominanceTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/DominanceTest.java @@ -1,25 +1,25 @@ -package de.upb.swt.soot.test.core.model; +package de.upb.sse.sootup.test.core.model; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.graph.Block; -import de.upb.swt.soot.core.graph.BlockGraph; -import de.upb.swt.soot.core.graph.DominanceFinder; -import de.upb.swt.soot.core.graph.DominanceTree; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.graph.Block; +import de.upb.sse.sootup.core.graph.BlockGraph; +import de.upb.sse.sootup.core.graph.DominanceFinder; +import de.upb.sse.sootup.core.graph.DominanceTree; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/MutableExceptionalStmtGraphTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/MutableExceptionalStmtGraphTest.java similarity index 94% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/MutableExceptionalStmtGraphTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/MutableExceptionalStmtGraphTest.java index 7e1e09881bf..481f363acfa 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/MutableExceptionalStmtGraphTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/MutableExceptionalStmtGraphTest.java @@ -1,22 +1,22 @@ -package de.upb.swt.soot.test.core.model; +package de.upb.sse.sootup.test.core.model; import static org.junit.Assert.*; -import de.upb.swt.soot.core.graph.MutableExceptionalStmtGraph; -import de.upb.swt.soot.core.graph.MutableStmtGraph; -import de.upb.swt.soot.core.graph.StmtGraph; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Trap; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.graph.MutableExceptionalStmtGraph; +import de.upb.sse.sootup.core.graph.MutableStmtGraph; +import de.upb.sse.sootup.core.graph.StmtGraph; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Trap; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; diff --git a/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/SootMethodTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/SootMethodTest.java new file mode 100644 index 00000000000..ab0eb8f13d0 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/model/SootMethodTest.java @@ -0,0 +1,106 @@ +package de.upb.sse.sootup.test.core.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.inputlocation.EagerInputLocation; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.LocalGenerator; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnVoidStmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootMethod; +import de.upb.sse.sootup.java.core.OverridingJavaClassSource; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import java.util.Collections; +import java.util.EnumSet; +import java.util.LinkedHashSet; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Linghui Luo + * @author Kaustubh Kelkar updated on 02.07.2020 + */ +@Category(Java8Test.class) +public class SootMethodTest { + + @Test + public void testCreateMethod() { + Project project = + JavaProject.builder(new JavaLanguage(8)).addInputLocation(new EagerInputLocation()).build(); + View view = project.createOnDemandView(); + ClassType type = view.getIdentifierFactory().getClassType("java.lang.String"); + + LocalGenerator generator = new LocalGenerator(new LinkedHashSet<>()); + MethodSignature methodSignature = + view.getIdentifierFactory() + .getMethodSignature("main", "dummyMain", "void", Collections.emptyList()); + Body.BodyBuilder bodyBuilder = Body.builder(); + + final JIdentityStmt firstStmt = + Jimple.newIdentityStmt( + generator.generateLocal(type), + Jimple.newParameterRef(type, 0), + StmtPositionInfo.createNoStmtPositionInfo()); + final JReturnVoidStmt returnVoidStmt = + new JReturnVoidStmt(StmtPositionInfo.createNoStmtPositionInfo()); + + Body body = + bodyBuilder + .setStartingStmt(firstStmt) + .addFlow(firstStmt, returnVoidStmt) + .setMethodSignature(methodSignature) + .setLocals(generator.getLocals()) + .setTraps(Collections.emptyList()) + .build(); + assertEquals(1, body.getLocalCount()); + + JavaSootMethod dummyMainMethod = + new JavaSootMethod( + new OverridingBodySource(methodSignature, body), + methodSignature, + EnumSet.of(Modifier.PUBLIC, Modifier.STATIC), + Collections.emptyList(), + Collections.emptyList(), + NoPositionInformation.getInstance()); + + JavaSootClass mainClass = + new JavaSootClass( + new OverridingJavaClassSource( + new EagerInputLocation(), + null, + view.getIdentifierFactory().getClassType("dummyMain"), + null, + Collections.emptySet(), + null, + Collections.emptySet(), + Collections.singleton(dummyMainMethod), + NoPositionInformation.getInstance(), + EnumSet.of(Modifier.PUBLIC), + Collections.emptyList(), + Collections.emptyList(), + Collections.emptyList()), + SourceType.Application); + + assertEquals(mainClass.getMethods().size(), 1); + + assertTrue( + mainClass + .getMethod(methodSignature.getSubSignature()) + .orElseThrow(() -> new RuntimeException("Failed getting method " + methodSignature)) + .hasBody()); + } +} diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/printer/LegacyJimplePrinterTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/printer/LegacyJimplePrinterTest.java similarity index 79% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/printer/LegacyJimplePrinterTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/printer/LegacyJimplePrinterTest.java index 433c11f6fd8..6f6c565b7a0 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/printer/LegacyJimplePrinterTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/printer/LegacyJimplePrinterTest.java @@ -1,26 +1,26 @@ -package de.upb.swt.soot.test.core.printer; - -import static org.junit.Assert.*; - -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.frontend.OverridingClassSource; -import de.upb.swt.soot.core.inputlocation.EagerInputLocation; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnVoidStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; -import de.upb.swt.soot.core.model.*; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.util.EscapedWriter; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.core.util.printer.Printer; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.language.JavaLanguage; +package de.upb.sse.sootup.test.core.printer; + +import static org.junit.Assert.assertEquals; + +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.frontend.OverridingClassSource; +import de.upb.sse.sootup.core.inputlocation.EagerInputLocation; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnVoidStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.model.*; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.util.EscapedWriter; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.core.util.printer.Printer; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.language.JavaLanguage; import java.io.PrintWriter; import java.io.StringWriter; import java.util.*; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/printer/PrinterTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/printer/PrinterTest.java similarity index 80% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/printer/PrinterTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/printer/PrinterTest.java index c547147dfac..16a54d91252 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/printer/PrinterTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/printer/PrinterTest.java @@ -1,24 +1,24 @@ -package de.upb.swt.soot.test.core.printer; +package de.upb.sse.sootup.test.core.printer; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.frontend.OverridingClassSource; -import de.upb.swt.soot.core.inputlocation.EagerInputLocation; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.JNopStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnVoidStmt; -import de.upb.swt.soot.core.model.*; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.core.util.printer.Printer; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.language.JavaLanguage; +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.frontend.OverridingClassSource; +import de.upb.sse.sootup.core.inputlocation.EagerInputLocation; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.JNopStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnVoidStmt; +import de.upb.sse.sootup.core.model.*; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.core.util.printer.Printer; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.language.JavaLanguage; import java.io.PrintWriter; import java.io.StringWriter; import java.util.*; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/signatures/JavaIdentifierFactoryTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/signatures/JavaIdentifierFactoryTest.java similarity index 97% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/signatures/JavaIdentifierFactoryTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/signatures/JavaIdentifierFactoryTest.java index 3d43085859a..61fb417ff56 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/signatures/JavaIdentifierFactoryTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/signatures/JavaIdentifierFactoryTest.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.test.core.signatures; +package de.upb.sse.sootup.test.core.signatures; /*- * #%L @@ -25,14 +25,14 @@ import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.*; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.*; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/signatures/JavaModuleIdentifierFactoryTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/signatures/JavaModuleIdentifierFactoryTest.java similarity index 94% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/signatures/JavaModuleIdentifierFactoryTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/signatures/JavaModuleIdentifierFactoryTest.java index 45e64cfabde..186332f50f7 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/signatures/JavaModuleIdentifierFactoryTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/signatures/JavaModuleIdentifierFactoryTest.java @@ -1,14 +1,14 @@ -package de.upb.swt.soot.test.core.signatures; +package de.upb.sse.sootup.test.core.signatures; import static org.junit.Assert.*; import categories.Java9Test; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.core.JavaModuleIdentifierFactory; -import de.upb.swt.soot.java.core.signatures.ModulePackageName; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.core.JavaModuleIdentifierFactory; +import de.upb.sse.sootup.java.core.signatures.ModulePackageName; +import de.upb.sse.sootup.java.core.signatures.ModuleSignature; +import de.upb.sse.sootup.java.core.types.JavaClassType; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/views/JavaViewTest.java b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/views/JavaViewTest.java similarity index 86% rename from de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/views/JavaViewTest.java rename to de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/views/JavaViewTest.java index b2204d0353a..5511c9afe7c 100644 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/views/JavaViewTest.java +++ b/de.upb.sse.sootup.java.core/src/test/java/de/upb/sse/sootup/test/core/views/JavaViewTest.java @@ -1,15 +1,15 @@ -package de.upb.swt.soot.test.core.views; +package de.upb.sse.sootup.test.core.views; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.model.AbstractClass; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.model.AbstractClass; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.Collection; import java.util.Comparator; import java.util.List; diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AddExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AddExpr.jimple new file mode 100644 index 00000000000..7df40283cbb --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AddExpr.jimple @@ -0,0 +1,54 @@ +public class de.upb.sootup.instructions.expr.AddExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.AddExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.AddExpr; + + specialinvoke r0.()>(); + + return; + } + + public void addition(int, int) + { + de.upb.sootup.instructions.expr.AddExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.AddExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 + i1; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void addAssignmentOperator(int) + { + de.upb.sootup.instructions.expr.AddExpr r0; + int i0, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.AddExpr; + + i0 := @parameter0: int; + + i2 = 0 + i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AndExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AndExpr.jimple new file mode 100644 index 00000000000..59504c59b82 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AndExpr.jimple @@ -0,0 +1,86 @@ +public class de.upb.sootup.instructions.expr.AndExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.AndExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.AndExpr; + + specialinvoke r0.()>(); + + return; + } + + public void logicalAND(boolean, boolean) + { + de.upb.sootup.instructions.expr.AndExpr r0; + boolean z0, z1, $z3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.AndExpr; + + z0 := @parameter0: boolean; + + z1 := @parameter1: boolean; + + if z0 == 0 goto label1; + + if z1 == 0 goto label1; + + $z3 = 1; + + goto label2; + + label1: + $z3 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z3); + + return; + } + + public void bitwiseAND(int, int) + { + de.upb.sootup.instructions.expr.AndExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.AndExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 & i1; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void bitwiseANDAssignment(int) + { + de.upb.sootup.instructions.expr.AndExpr r0; + int i0; + java.io.PrintStream $r1; + byte b2; + + r0 := @this: de.upb.sootup.instructions.expr.AndExpr; + + i0 := @parameter0: int; + + b2 = 0 & 2; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CastExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CastExpr.jimple new file mode 100644 index 00000000000..5847f95eafe --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CastExpr.jimple @@ -0,0 +1,105 @@ +public class de.upb.sootup.instructions.expr.CastExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.CastExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.CastExpr; + + specialinvoke r0.()>(); + + return; + } + + void number() + { + de.upb.sootup.instructions.expr.CastExpr r0; + double d0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.CastExpr; + + d0 = (double) 3; + + $r1 = ; + + virtualinvoke $r1.(d0); + + return; + } + + void numberExplicit() + { + de.upb.sootup.instructions.expr.CastExpr r0; + double d0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.CastExpr; + + d0 = (double) 3; + + $r1 = ; + + virtualinvoke $r1.(d0); + + return; + } + + void numberExplicitNeeded() + { + de.upb.sootup.instructions.expr.CastExpr r0; + int i0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.CastExpr; + + i0 = (int) 3.14; + + $r1 = ; + + virtualinvoke $r1.(i0); + + return; + } + + void nonPrimitive() + { + de.upb.sootup.instructions.expr.CastExpr r0; + java.lang.Boolean $r3; + java.io.PrintStream $r4; + + r0 := @this: de.upb.sootup.instructions.expr.CastExpr; + + $r3 = new java.lang.Boolean; + + specialinvoke $r3.(boolean)>(1); + + $r4 = ; + + virtualinvoke $r4.($r3); + + return; + } + + void nonPrimitiveExplicitNeeded() + { + de.upb.sootup.instructions.expr.CastExpr r0; + java.lang.Boolean r3, $r4; + java.io.PrintStream $r5; + + r0 := @this: de.upb.sootup.instructions.expr.CastExpr; + + $r4 = new java.lang.Boolean; + + specialinvoke $r4.(boolean)>(1); + + r3 = (java.lang.Boolean) $r4; + + $r5 = ; + + virtualinvoke $r5.(r3); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpExpr.jimple similarity index 78% rename from de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpExpr.jimple rename to de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpExpr.jimple index 0831749bccb..7f2575fecf0 100644 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpExpr.jimple +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpExpr.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.expr.CmpExpr extends java.lang.Object +public class de.upb.sootup.instructions.expr.CmpExpr extends java.lang.Object { public void () { - de.upb.soot.instructions.expr.CmpExpr r0; + de.upb.sootup.instructions.expr.CmpExpr r0; - r0 := @this: de.upb.soot.instructions.expr.CmpExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmpExpr; specialinvoke r0.()>(); @@ -14,13 +14,13 @@ public class de.upb.soot.instructions.expr.CmpExpr extends java.lang.Object public void cmpOperatorNotEqual(long, long) { - de.upb.soot.instructions.expr.CmpExpr r0; + de.upb.sootup.instructions.expr.CmpExpr r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmpExpr; l0 := @parameter0: long; @@ -47,13 +47,13 @@ public class de.upb.soot.instructions.expr.CmpExpr extends java.lang.Object public void cmpOperatorEqual(long, long) { - de.upb.soot.instructions.expr.CmpExpr r0; + de.upb.sootup.instructions.expr.CmpExpr r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmpExpr; l0 := @parameter0: long; @@ -80,13 +80,13 @@ public class de.upb.soot.instructions.expr.CmpExpr extends java.lang.Object public void cmpOperatorLower(long, long) { - de.upb.soot.instructions.expr.CmpExpr r0; + de.upb.sootup.instructions.expr.CmpExpr r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmpExpr; l0 := @parameter0: long; @@ -113,13 +113,13 @@ public class de.upb.soot.instructions.expr.CmpExpr extends java.lang.Object public void cmpOperatorLowerEqual(long, long) { - de.upb.soot.instructions.expr.CmpExpr r0; + de.upb.sootup.instructions.expr.CmpExpr r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmpExpr; l0 := @parameter0: long; @@ -146,13 +146,13 @@ public class de.upb.soot.instructions.expr.CmpExpr extends java.lang.Object public void cmpOperatorGreater(long, long) { - de.upb.soot.instructions.expr.CmpExpr r0; + de.upb.sootup.instructions.expr.CmpExpr r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmpExpr; l0 := @parameter0: long; @@ -179,13 +179,13 @@ public class de.upb.soot.instructions.expr.CmpExpr extends java.lang.Object public void cmpOperatorGreaterEqual(long, long) { - de.upb.soot.instructions.expr.CmpExpr r0; + de.upb.sootup.instructions.expr.CmpExpr r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmpExpr; l0 := @parameter0: long; diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpgExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpgExpr.jimple new file mode 100644 index 00000000000..ea766fbf63d --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpgExpr.jimple @@ -0,0 +1,80 @@ +public class de.upb.sootup.instructions.expr.CmpgExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.CmpgExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.CmpgExpr; + + specialinvoke r0.()>(); + + return; + } + + public void cmpgOperatorLower(float, float) + { + de.upb.sootup.instructions.expr.CmpgExpr r0; + float f0, f1; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.CmpgExpr; + + f0 := @parameter0: float; + + f1 := @parameter1: float; + + $b0 = f0 cmpg f1; + + if $b0 >= 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void cmpgOperatorLowerEqual(float, float) + { + de.upb.sootup.instructions.expr.CmpgExpr r0; + float f0, f1; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.CmpgExpr; + + f0 := @parameter0: float; + + f1 := @parameter1: float; + + $b0 = f0 cmpg f1; + + if $b0 > 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmplExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmplExpr.jimple similarity index 77% rename from de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmplExpr.jimple rename to de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmplExpr.jimple index d0adfb09d00..4683336c382 100644 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmplExpr.jimple +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmplExpr.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.expr.CmplExpr extends java.lang.Object +public class de.upb.sootup.instructions.expr.CmplExpr extends java.lang.Object { public void () { - de.upb.soot.instructions.expr.CmplExpr r0; + de.upb.sootup.instructions.expr.CmplExpr r0; - r0 := @this: de.upb.soot.instructions.expr.CmplExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmplExpr; specialinvoke r0.()>(); @@ -14,13 +14,13 @@ public class de.upb.soot.instructions.expr.CmplExpr extends java.lang.Object public void cmplOperatorNotEqual(float, float) { - de.upb.soot.instructions.expr.CmplExpr r0; + de.upb.sootup.instructions.expr.CmplExpr r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmplExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmplExpr; f0 := @parameter0: float; @@ -47,13 +47,13 @@ public class de.upb.soot.instructions.expr.CmplExpr extends java.lang.Object public void cmplOperatorEqual(float, float) { - de.upb.soot.instructions.expr.CmplExpr r0; + de.upb.sootup.instructions.expr.CmplExpr r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmplExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmplExpr; f0 := @parameter0: float; @@ -80,13 +80,13 @@ public class de.upb.soot.instructions.expr.CmplExpr extends java.lang.Object public void cmplOperatorGreater(float, float) { - de.upb.soot.instructions.expr.CmplExpr r0; + de.upb.sootup.instructions.expr.CmplExpr r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmplExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmplExpr; f0 := @parameter0: float; @@ -113,13 +113,13 @@ public class de.upb.soot.instructions.expr.CmplExpr extends java.lang.Object public void cmplOperatorGreaterEqual(float, float) { - de.upb.soot.instructions.expr.CmplExpr r0; + de.upb.sootup.instructions.expr.CmplExpr r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmplExpr; + r0 := @this: de.upb.sootup.instructions.expr.CmplExpr; f0 := @parameter0: float; diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DivExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DivExpr.jimple new file mode 100644 index 00000000000..7612ef428ed --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DivExpr.jimple @@ -0,0 +1,56 @@ +public class de.upb.sootup.instructions.expr.DivExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.DivExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.DivExpr; + + specialinvoke r0.()>(); + + return; + } + + public void division(int, int) + { + de.upb.sootup.instructions.expr.DivExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.DivExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 / i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void divisionAssignment(int, int) + { + de.upb.sootup.instructions.expr.DivExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.DivExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 / i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DynamicInvokeExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DynamicInvokeExpr.jimple new file mode 100644 index 00000000000..13bee6641c7 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DynamicInvokeExpr.jimple @@ -0,0 +1,64 @@ +public class de.upb.sootup.instructions.expr.DynamicInvokeExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.DynamicInvokeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.DynamicInvokeExpr; + + specialinvoke r0.()>(); + + return; + } + + java.lang.String sth() + { + de.upb.sootup.instructions.expr.DynamicInvokeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.DynamicInvokeExpr; + + return "something"; + } + + void invoke() throws java.lang.Throwable + { + de.upb.sootup.instructions.expr.DynamicInvokeExpr r0, $r5; + java.lang.invoke.MethodHandles$Lookup r1; + java.lang.invoke.MethodType r2; + java.lang.invoke.MethodHandle r3; + java.lang.String r4, $r10; + java.lang.StringBuilder $r6, $r8, $r9; + java.io.PrintStream $r7; + + r0 := @this: de.upb.sootup.instructions.expr.DynamicInvokeExpr; + + r1 = staticinvoke (); + + r2 = staticinvoke (class "Ljava/lang/String;"); + + r3 = virtualinvoke r1.(class "Lde/upb/soot/instructions/expr/DynamicInvokeExpr;", "sth", r2); + + $r5 = new de.upb.sootup.instructions.expr.DynamicInvokeExpr; + + specialinvoke $r5.()>(); + + r4 = virtualinvoke r3.($r5); + + $r7 = ; + + $r6 = new java.lang.StringBuilder; + + specialinvoke $r6.()>(); + + $r8 = virtualinvoke $r6.("dynamic invoked methodSignature returned: "); + + $r9 = virtualinvoke $r8.(r4); + + $r10 = virtualinvoke $r9.(); + + virtualinvoke $r7.($r10); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.EqExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.EqExpr.jimple new file mode 100644 index 00000000000..d3adba91261 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.EqExpr.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.EqExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.EqExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.EqExpr; + + specialinvoke r0.()>(); + + return; + } + + public void EqualTo(int, int) + { + de.upb.sootup.instructions.expr.EqExpr r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.EqExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 != i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GeExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GeExpr.jimple new file mode 100644 index 00000000000..51249f87c85 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GeExpr.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.GeExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.GeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.GeExpr; + + specialinvoke r0.()>(); + + return; + } + + public void greaterThan(int, int) + { + de.upb.sootup.instructions.expr.GeExpr r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.GeExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 < i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GtExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GtExpr.jimple new file mode 100644 index 00000000000..b816248f7cf --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GtExpr.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.GtExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.GtExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.GtExpr; + + specialinvoke r0.()>(); + + return; + } + + public void greaterThan(int, int) + { + de.upb.sootup.instructions.expr.GtExpr r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.GtExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 <= i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.IThing.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.IThing.jimple new file mode 100644 index 00000000000..11a927d4fc9 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.IThing.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.instructions.expr.IThing extends java.lang.Object +{ + + public abstract int getId(); +} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InstanceOfExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InstanceOfExpr.jimple similarity index 81% rename from de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InstanceOfExpr.jimple rename to de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InstanceOfExpr.jimple index 74e87d22773..f79c432a9f8 100644 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InstanceOfExpr.jimple +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InstanceOfExpr.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.expr.InstanceOfExpr extends java.lang.Object +public class de.upb.sootup.instructions.expr.InstanceOfExpr extends java.lang.Object { public void () { - de.upb.soot.instructions.expr.InstanceOfExpr r0; + de.upb.sootup.instructions.expr.InstanceOfExpr r0; - r0 := @this: de.upb.soot.instructions.expr.InstanceOfExpr; + r0 := @this: de.upb.sootup.instructions.expr.InstanceOfExpr; specialinvoke r0.()>(); @@ -14,14 +14,14 @@ public class de.upb.soot.instructions.expr.InstanceOfExpr extends java.lang.Obje void isObject() { - de.upb.soot.instructions.expr.InstanceOfExpr r0; + de.upb.sootup.instructions.expr.InstanceOfExpr r0; boolean z0; java.lang.Integer $r2; java.lang.StringBuilder $r3, $r5, $r6; java.io.PrintStream $r4; java.lang.String $r7; - r0 := @this: de.upb.soot.instructions.expr.InstanceOfExpr; + r0 := @this: de.upb.sootup.instructions.expr.InstanceOfExpr; $r2 = new java.lang.Integer; @@ -48,14 +48,14 @@ public class de.upb.soot.instructions.expr.InstanceOfExpr extends java.lang.Obje void isInteger() { - de.upb.soot.instructions.expr.InstanceOfExpr r0; + de.upb.sootup.instructions.expr.InstanceOfExpr r0; boolean z0; java.lang.Integer $r2; java.lang.StringBuilder $r3, $r5, $r6; java.io.PrintStream $r4; java.lang.String $r7; - r0 := @this: de.upb.soot.instructions.expr.InstanceOfExpr; + r0 := @this: de.upb.sootup.instructions.expr.InstanceOfExpr; $r2 = new java.lang.Integer; diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InterfaceInvokeExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InterfaceInvokeExpr.jimple new file mode 100644 index 00000000000..5c5211482e3 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InterfaceInvokeExpr.jimple @@ -0,0 +1,36 @@ +public class de.upb.sootup.instructions.expr.InterfaceInvokeExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.InterfaceInvokeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.InterfaceInvokeExpr; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.expr.InterfaceInvokeExpr r0; + int i0; + de.upb.sootup.instructions.expr.Pear $r2; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.instructions.expr.InterfaceInvokeExpr; + + $r2 = new de.upb.sootup.instructions.expr.Pear; + + specialinvoke $r2.()>(); + + i0 = interfaceinvoke $r2.(); + + $r3 = ; + + virtualinvoke $r3.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LeExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LeExpr.jimple new file mode 100644 index 00000000000..dc98f1de327 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LeExpr.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.LeExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.LeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.LeExpr; + + specialinvoke r0.()>(); + + return; + } + + public void lowerEqual(int, int) + { + de.upb.sootup.instructions.expr.LeExpr r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.LeExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 > i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LengthExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LengthExpr.jimple new file mode 100644 index 00000000000..6d7d86aa653 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LengthExpr.jimple @@ -0,0 +1,34 @@ +public class de.upb.sootup.instructions.expr.LengthExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.LengthExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.LengthExpr; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.expr.LengthExpr r0; + int[][] r1; + int i0; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.instructions.expr.LengthExpr; + + r1 = newmultiarray (int)[42][10]; + + i0 = lengthof r1; + + $r2 = ; + + virtualinvoke $r2.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LtExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LtExpr.jimple new file mode 100644 index 00000000000..826e4739744 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LtExpr.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.LtExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.LtExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.LtExpr; + + specialinvoke r0.()>(); + + return; + } + + public void lowerThan(int, int) + { + de.upb.sootup.instructions.expr.LtExpr r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.LtExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 >= i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.MulExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.MulExpr.jimple new file mode 100644 index 00000000000..e9083f5841b --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.MulExpr.jimple @@ -0,0 +1,56 @@ +public class de.upb.sootup.instructions.expr.MulExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.MulExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.MulExpr; + + specialinvoke r0.()>(); + + return; + } + + public void multiplication(int, int) + { + de.upb.sootup.instructions.expr.MulExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.MulExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 * i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void multiplicationAssignment(int, int) + { + de.upb.sootup.instructions.expr.MulExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.MulExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 * i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NeExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NeExpr.jimple new file mode 100644 index 00000000000..a1a52d4ca99 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NeExpr.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.NeExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.NeExpr; + + specialinvoke r0.()>(); + + return; + } + + public void notEqual(int, int) + { + de.upb.sootup.instructions.expr.NeExpr r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.NeExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 == i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NegateExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NegateExpr.jimple new file mode 100644 index 00000000000..29495f8b60e --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NegateExpr.jimple @@ -0,0 +1,31 @@ +public class de.upb.sootup.instructions.expr.NegateExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NegateExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.NegateExpr; + + specialinvoke r0.()>(); + + return; + } + + public void sth() + { + de.upb.sootup.instructions.expr.NegateExpr r0; + byte b1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.NegateExpr; + + b1 = neg 42; + + $r1 = ; + + virtualinvoke $r1.(b1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewArrayExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewArrayExpr.jimple new file mode 100644 index 00000000000..e971bc3c87f --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewArrayExpr.jimple @@ -0,0 +1,52 @@ +public class de.upb.sootup.instructions.expr.NewArrayExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NewArrayExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.NewArrayExpr; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.expr.NewArrayExpr r0; + int[] r1, r2; + double[] r3; + boolean[] r4; + char[] r5; + java.lang.String[] r6; + java.lang.Integer[] r7; + java.lang.Double[] r8; + java.lang.Boolean[] r9; + java.lang.Object[] r10; + + r0 := @this: de.upb.sootup.instructions.expr.NewArrayExpr; + + r1 = newarray (int)[123]; + + r2 = newarray (int)[2]; + + r3 = newarray (double)[3]; + + r4 = newarray (boolean)[4]; + + r5 = newarray (char)[5]; + + r6 = newarray (java.lang.String)[6]; + + r7 = newarray (java.lang.Integer)[7]; + + r8 = newarray (java.lang.Double)[8]; + + r9 = newarray (java.lang.Boolean)[9]; + + r10 = newarray (java.lang.Object)[10]; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewExpr.jimple new file mode 100644 index 00000000000..131dc46fa11 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewExpr.jimple @@ -0,0 +1,42 @@ +public class de.upb.sootup.instructions.expr.NewExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NewExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.NewExpr; + + specialinvoke r0.()>(); + + return; + } + + public void sth() + { + de.upb.sootup.instructions.expr.NewExpr r0; + java.lang.Integer $r3; + java.io.PrintStream $r4, $r6; + java.lang.Boolean $r5; + + r0 := @this: de.upb.sootup.instructions.expr.NewExpr; + + $r3 = new java.lang.Integer; + + specialinvoke $r3.(int)>(42); + + $r4 = ; + + virtualinvoke $r4.($r3); + + $r5 = new java.lang.Boolean; + + specialinvoke $r5.(boolean)>(1); + + $r6 = ; + + virtualinvoke $r6.($r5); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewMultiArrayExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewMultiArrayExpr.jimple new file mode 100644 index 00000000000..7bc78a91d3d --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewMultiArrayExpr.jimple @@ -0,0 +1,34 @@ +public class de.upb.sootup.instructions.expr.NewMultiArrayExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NewMultiArrayExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.NewMultiArrayExpr; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.expr.NewMultiArrayExpr r0; + int[][] r1; + int i0; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.instructions.expr.NewMultiArrayExpr; + + r1 = newmultiarray (int)[42][10]; + + i0 = lengthof r1; + + $r2 = ; + + virtualinvoke $r2.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.OrExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.OrExpr.jimple new file mode 100644 index 00000000000..af15b43e9ca --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.OrExpr.jimple @@ -0,0 +1,88 @@ +public class de.upb.sootup.instructions.expr.OrExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.OrExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.OrExpr; + + specialinvoke r0.()>(); + + return; + } + + public void logicalOR(boolean, boolean) + { + de.upb.sootup.instructions.expr.OrExpr r0; + boolean z0, z1, $z3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.OrExpr; + + z0 := @parameter0: boolean; + + z1 := @parameter1: boolean; + + if z0 != 0 goto label1; + + if z1 == 0 goto label2; + + label1: + $z3 = 1; + + goto label3; + + label2: + $z3 = 0; + + label3: + $r1 = ; + + virtualinvoke $r1.($z3); + + return; + } + + public void bitwiseOR(int, int) + { + de.upb.sootup.instructions.expr.OrExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.OrExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 | i1; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void bitwiseORAssignment(int, int) + { + de.upb.sootup.instructions.expr.OrExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.OrExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 | i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.Pear.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.Pear.jimple new file mode 100644 index 00000000000..4fdff5f30e5 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.Pear.jimple @@ -0,0 +1,23 @@ +class de.upb.sootup.instructions.expr.Pear extends java.lang.Object implements de.upb.sootup.instructions.expr.IThing +{ + + void () + { + de.upb.sootup.instructions.expr.Pear r0; + + r0 := @this: de.upb.sootup.instructions.expr.Pear; + + specialinvoke r0.()>(); + + return; + } + + public int getId() + { + de.upb.sootup.instructions.expr.Pear r0; + + r0 := @this: de.upb.sootup.instructions.expr.Pear; + + return 42; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.RemExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.RemExpr.jimple new file mode 100644 index 00000000000..cd5d0dbf583 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.RemExpr.jimple @@ -0,0 +1,56 @@ +public class de.upb.sootup.instructions.expr.RemExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.RemExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.RemExpr; + + specialinvoke r0.()>(); + + return; + } + + public void modulus(int, int) + { + de.upb.sootup.instructions.expr.RemExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.RemExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 % i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void modulusAssign(int, int) + { + de.upb.sootup.instructions.expr.RemExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.RemExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 % i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShlExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShlExpr.jimple new file mode 100644 index 00000000000..c7964db117a --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShlExpr.jimple @@ -0,0 +1,35 @@ +public class de.upb.sootup.instructions.expr.ShlExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.ShlExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.ShlExpr; + + specialinvoke r0.()>(); + + return; + } + + public void bitwiseLeftShift(int, int) + { + de.upb.sootup.instructions.expr.ShlExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.ShlExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 << 2; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShrExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShrExpr.jimple new file mode 100644 index 00000000000..6830e5fe86a --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShrExpr.jimple @@ -0,0 +1,35 @@ +public class de.upb.sootup.instructions.expr.ShrExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.ShrExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.ShrExpr; + + specialinvoke r0.()>(); + + return; + } + + public void bitwiseRightShift(int, int) + { + de.upb.sootup.instructions.expr.ShrExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.ShrExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 >> 2; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SpecialInvokeExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SpecialInvokeExpr.jimple new file mode 100644 index 00000000000..24872a23979 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SpecialInvokeExpr.jimple @@ -0,0 +1,78 @@ +public class de.upb.sootup.instructions.expr.SpecialInvokeExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.SpecialInvokeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExpr; + + specialinvoke r0.()>(); + + return; + } + + private double someMethod() + { + de.upb.sootup.instructions.expr.SpecialInvokeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExpr; + + return 3.14; + } + + void local() + { + de.upb.sootup.instructions.expr.SpecialInvokeExpr r0, $r2; + double d0; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExpr; + + $r2 = new de.upb.sootup.instructions.expr.SpecialInvokeExpr; + + specialinvoke $r2.()>(); + + d0 = specialinvoke $r2.(); + + $r3 = ; + + virtualinvoke $r3.(d0); + + return; + } + + void methodSignature() + { + de.upb.sootup.instructions.expr.SpecialInvokeExpr r0; + double d0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExpr; + + d0 = specialinvoke r0.(); + + $r1 = ; + + virtualinvoke $r1.(d0); + + return; + } + + void fromsuperclass() + { + de.upb.sootup.instructions.expr.SpecialInvokeExpr r0; + int i0; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExpr; + + i0 = virtualinvoke r0.(); + + $r2 = ; + + virtualinvoke $r2.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.StaticInvokeExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.StaticInvokeExpr.jimple new file mode 100644 index 00000000000..eedec6bc0b0 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.StaticInvokeExpr.jimple @@ -0,0 +1,43 @@ +public class de.upb.sootup.instructions.expr.StaticInvokeExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.StaticInvokeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.StaticInvokeExpr; + + specialinvoke r0.()>(); + + return; + } + + public static java.lang.String somethingStatic() + { + return "Polyester Shirt"; + } + + public void staticInvoke() + { + de.upb.sootup.instructions.expr.StaticInvokeExpr r0; + java.lang.String r1; + int i0; + java.io.PrintStream $r2, $r3; + + r0 := @this: de.upb.sootup.instructions.expr.StaticInvokeExpr; + + r1 = staticinvoke (); + + $r2 = ; + + virtualinvoke $r2.(r1); + + i0 = staticinvoke (-42); + + $r3 = ; + + virtualinvoke $r3.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SubExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SubExpr.jimple new file mode 100644 index 00000000000..32dd48eb7f1 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SubExpr.jimple @@ -0,0 +1,35 @@ +public class de.upb.sootup.instructions.expr.SubExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.SubExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.SubExpr; + + specialinvoke r0.()>(); + + return; + } + + public void subtraction(int, int) + { + de.upb.sootup.instructions.expr.SubExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.SubExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 - i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.UshrExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.UshrExpr.jimple new file mode 100644 index 00000000000..75997de0d14 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.UshrExpr.jimple @@ -0,0 +1,35 @@ +public class de.upb.sootup.instructions.expr.UshrExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.UshrExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.UshrExpr; + + specialinvoke r0.()>(); + + return; + } + + public void bitwiseRightShiftZerofill(int, int) + { + de.upb.sootup.instructions.expr.UshrExpr r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.UshrExpr; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 >>> 2; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.VirtualInvokeExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.VirtualInvokeExpr.jimple new file mode 100644 index 00000000000..e9e2ef1fadc --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.VirtualInvokeExpr.jimple @@ -0,0 +1,45 @@ +public class de.upb.sootup.instructions.expr.VirtualInvokeExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.VirtualInvokeExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.VirtualInvokeExpr; + + specialinvoke r0.()>(); + + return; + } + + int postalcode(int) + { + de.upb.sootup.instructions.expr.VirtualInvokeExpr r0; + int i0, $i1; + + r0 := @this: de.upb.sootup.instructions.expr.VirtualInvokeExpr; + + i0 := @parameter0: int; + + $i1 = 33100 + i0; + + return $i1; + } + + void invoke() + { + de.upb.sootup.instructions.expr.VirtualInvokeExpr r0; + int i0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.VirtualInvokeExpr; + + i0 = virtualinvoke r0.(0); + + $r1 = ; + + virtualinvoke $r1.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.XorExpr.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.XorExpr.jimple new file mode 100644 index 00000000000..974766bc95f --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.XorExpr.jimple @@ -0,0 +1,34 @@ +public class de.upb.sootup.instructions.expr.XorExpr extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.XorExpr r0; + + r0 := @this: de.upb.sootup.instructions.expr.XorExpr; + + specialinvoke r0.()>(); + + return; + } + + public void bitwiseXOR(int) + { + de.upb.sootup.instructions.expr.XorExpr r0; + int i0; + java.io.PrintStream $r1; + byte b2; + + r0 := @this: de.upb.sootup.instructions.expr.XorExpr; + + i0 := @parameter0: int; + + b2 = 0 ^ 2; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt.jimple new file mode 100644 index 00000000000..c654773ee1a --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt.jimple @@ -0,0 +1,36 @@ +public class de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmt extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmt r0; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmt; + + specialinvoke r0.()>(); + + return; + } + + public void breaker() + { + de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmt r0; + java.io.PrintStream $r1, $r2, $r3; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmt; + + $r1 = ; + + virtualinvoke $r1.("A"); + + $r2 = ; + + virtualinvoke $r2.("B"); + + $r3 = ; + + virtualinvoke $r3.("C"); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.MonitorStmts.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.MonitorStmts.jimple similarity index 76% rename from de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.MonitorStmts.jimple rename to de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.MonitorStmts.jimple index 40583cce0fd..18b4b42110f 100644 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.MonitorStmts.jimple +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.MonitorStmts.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.javabytecode.stmt.MonitorStmts extends java.lang.Object +public class de.upb.sootup.instructions.javabytecode.stmt.MonitorStmts extends java.lang.Object { public void () { - de.upb.soot.instructions.javabytecode.stmt.MonitorStmts r0; + de.upb.sootup.instructions.javabytecode.stmt.MonitorStmts r0; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.MonitorStmts; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.MonitorStmts; specialinvoke r0.()>(); @@ -14,13 +14,13 @@ public class de.upb.soot.instructions.javabytecode.stmt.MonitorStmts extends jav public void enterAndExit() { - de.upb.soot.instructions.javabytecode.stmt.MonitorStmts r0; + de.upb.sootup.instructions.javabytecode.stmt.MonitorStmts r0; java.lang.StringBuffer $r4; java.io.PrintStream $r8; java.lang.String $r9; java.lang.Throwable $r10; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.MonitorStmts; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.MonitorStmts; $r4 = new java.lang.StringBuffer; diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.RetStmt.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.RetStmt.jimple new file mode 100644 index 00000000000..da10b3a908a --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.RetStmt.jimple @@ -0,0 +1,61 @@ +public class de.upb.sootup.instructions.javabytecode.stmt.RetStmt extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmt r0; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmt; + + specialinvoke r0.()>(); + + return; + } + + int returnInt(int) + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmt r0; + int i0; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmt; + + i0 := @parameter0: int; + + return i0; + } + + double returnDouble(double) + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmt r0; + double d0; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmt; + + d0 := @parameter0: double; + + return d0; + } + + java.lang.String returnString(java.lang.String) + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmt r0; + java.lang.String r1; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmt; + + r1 := @parameter0: java.lang.String; + + return r1; + } + + de.upb.sootup.instructions.javabytecode.stmt.RetStmt returnNonPrimitive(de.upb.sootup.instructions.javabytecode.stmt.RetStmt) + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmt r0, r1; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmt; + + r1 := @parameter0: de.upb.sootup.instructions.javabytecode.stmt.RetStmt; + + return r1; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.SwitchStmts.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.SwitchStmts.jimple similarity index 87% rename from de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.SwitchStmts.jimple rename to de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.SwitchStmts.jimple index ae79e6fab28..de707e67e63 100644 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.SwitchStmts.jimple +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.SwitchStmts.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmts extends java.lang.Object +public class de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts extends java.lang.Object { public void () { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmts r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts r0; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmts; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts; specialinvoke r0.()>(); @@ -14,11 +14,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmts extends java public void tableSwitch(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmts r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmts; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts; i0 := @parameter0: int; @@ -63,11 +63,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmts extends java public void tableSwitchWithDefault(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmts r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmts; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts; i0 := @parameter0: int; @@ -116,11 +116,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmts extends java public void tableSwitchWithBreakEveryOtherCase(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmts r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmts; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts; i0 := @parameter0: int; @@ -169,11 +169,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmts extends java public void lookupSwitch(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmts r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmts; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts; i0 := @parameter0: int; @@ -212,11 +212,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmts extends java public void lookupSwitchWithDefault(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmts r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmts; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts; i0 := @parameter0: int; @@ -259,11 +259,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmts extends java public void lookupSwitchWithBreakEveryOtherCase(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmts r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmts; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmts; i0 := @parameter0: int; diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ArrayRef.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ArrayRef.jimple new file mode 100644 index 00000000000..0c40180feab --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ArrayRef.jimple @@ -0,0 +1,41 @@ +public class de.upb.sootup.instructions.ref.ArrayRef extends java.lang.Object +{ + int[] arr; + + public void () + { + de.upb.sootup.instructions.ref.ArrayRef r0; + + r0 := @this: de.upb.sootup.instructions.ref.ArrayRef; + + specialinvoke r0.()>(); + + return; + } + + boolean[] someMethod() + { + de.upb.sootup.instructions.ref.ArrayRef r0; + java.lang.String[] r1; + int[] $r2, $r3; + boolean[] $r4; + + r0 := @this: de.upb.sootup.instructions.ref.ArrayRef; + + $r2 = newarray (int)[123]; + + r0. = $r2; + + $r3 = r0.; + + $r3[100] = 42; + + r1 = newarray (java.lang.String)[2]; + + r1[0] = "zero"; + + $r4 = newarray (boolean)[0]; + + return $r4; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.CaughtExceptionRef.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.CaughtExceptionRef.jimple new file mode 100644 index 00000000000..8f62c9580bd --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.CaughtExceptionRef.jimple @@ -0,0 +1,41 @@ +public class de.upb.sootup.instructions.ref.CaughtExceptionRef extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.ref.CaughtExceptionRef r0; + + r0 := @this: de.upb.sootup.instructions.ref.CaughtExceptionRef; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.ref.CaughtExceptionRef r0; + java.lang.Exception $r2, $r3; + java.io.PrintStream $r4; + + r0 := @this: de.upb.sootup.instructions.ref.CaughtExceptionRef; + + label1: + $r2 = new java.lang.Exception; + + specialinvoke $r2.()>(); + + throw $r2; + + label2: + $r3 := @caughtexception; + + $r4 = ; + + virtualinvoke $r4.("exception"); + + return; + + catch java.lang.Exception from label1 to label2 with label2; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.InstanceFieldRef.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.InstanceFieldRef.jimple new file mode 100644 index 00000000000..af79ceb62e7 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.InstanceFieldRef.jimple @@ -0,0 +1,40 @@ +public class de.upb.sootup.instructions.ref.InstanceFieldRef extends java.lang.Object +{ + int counter; + + public void () + { + de.upb.sootup.instructions.ref.InstanceFieldRef r0; + + r0 := @this: de.upb.sootup.instructions.ref.InstanceFieldRef; + + specialinvoke r0.()>(); + + r0. = 0; + + return; + } + + void sth() + { + de.upb.sootup.instructions.ref.InstanceFieldRef r0; + int $i0, $i1, $i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.ref.InstanceFieldRef; + + $i0 = r0.; + + $i1 = $i0 + 1; + + r0. = $i1; + + $r1 = ; + + $i2 = r0.; + + virtualinvoke $r1.($i2); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ParameterRef.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ParameterRef.jimple similarity index 84% rename from de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ParameterRef.jimple rename to de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ParameterRef.jimple index 1ccba348dd7..1f407179fbe 100644 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ParameterRef.jimple +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ParameterRef.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.ref.ParameterRef extends java.lang.Object +public class de.upb.sootup.instructions.ref.ParameterRef extends java.lang.Object { public void () { - de.upb.soot.instructions.ref.ParameterRef r0; + de.upb.sootup.instructions.ref.ParameterRef r0; - r0 := @this: de.upb.soot.instructions.ref.ParameterRef; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRef; specialinvoke r0.()>(); @@ -14,10 +14,10 @@ public class de.upb.soot.instructions.ref.ParameterRef extends java.lang.Object void noParameter() { - de.upb.soot.instructions.ref.ParameterRef r0; + de.upb.sootup.instructions.ref.ParameterRef r0; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.instructions.ref.ParameterRef; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRef; $r1 = ; @@ -28,13 +28,13 @@ public class de.upb.soot.instructions.ref.ParameterRef extends java.lang.Object void oneParameter(int) { - de.upb.soot.instructions.ref.ParameterRef r0; + de.upb.sootup.instructions.ref.ParameterRef r0; int i0; java.lang.StringBuilder $r1, $r3, $r4; java.io.PrintStream $r2; java.lang.String $r5; - r0 := @this: de.upb.soot.instructions.ref.ParameterRef; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRef; i0 := @parameter0: int; @@ -57,14 +57,14 @@ public class de.upb.soot.instructions.ref.ParameterRef extends java.lang.Object void moreParameter(int, double) { - de.upb.soot.instructions.ref.ParameterRef r0; + de.upb.sootup.instructions.ref.ParameterRef r0; int i0; double d0; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6; java.io.PrintStream $r2; java.lang.String $r7; - r0 := @this: de.upb.soot.instructions.ref.ParameterRef; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRef; i0 := @parameter0: int; @@ -93,14 +93,14 @@ public class de.upb.soot.instructions.ref.ParameterRef extends java.lang.Object void moreParameter(int, double, java.lang.String) { - de.upb.soot.instructions.ref.ParameterRef r0; + de.upb.sootup.instructions.ref.ParameterRef r0; int i0; double d0; java.lang.String r1, $r10; java.lang.StringBuilder $r2, $r4, $r5, $r6, $r7, $r8, $r9; java.io.PrintStream $r3; - r0 := @this: de.upb.soot.instructions.ref.ParameterRef; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRef; i0 := @parameter0: int; diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.StaticFieldRef.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.StaticFieldRef.jimple new file mode 100644 index 00000000000..f971d95482b --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.StaticFieldRef.jimple @@ -0,0 +1,45 @@ +public class de.upb.sootup.instructions.ref.StaticFieldRef extends java.lang.Object +{ + static int globalCounter; + + public void () + { + de.upb.sootup.instructions.ref.StaticFieldRef r0; + + r0 := @this: de.upb.sootup.instructions.ref.StaticFieldRef; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.ref.StaticFieldRef r0; + int $i0, $i1, $i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.ref.StaticFieldRef; + + $i0 = ; + + $i1 = $i0 + 1; + + = $i1; + + $r1 = ; + + $i2 = ; + + virtualinvoke $r1.($i2); + + return; + } + + static void () + { + = 0; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ThisRef.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ThisRef.jimple new file mode 100644 index 00000000000..23d16f97a49 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ThisRef.jimple @@ -0,0 +1,50 @@ +public class de.upb.sootup.instructions.ref.ThisRef extends java.lang.Object +{ + int property; + + public void () + { + de.upb.sootup.instructions.ref.ThisRef r0; + + r0 := @this: de.upb.sootup.instructions.ref.ThisRef; + + specialinvoke r0.()>(); + + r0. = 0; + + return; + } + + java.lang.String someMethod() + { + de.upb.sootup.instructions.ref.ThisRef r0; + + r0 := @this: de.upb.sootup.instructions.ref.ThisRef; + + return "sth"; + } + + void caller() + { + de.upb.sootup.instructions.ref.ThisRef r0; + int $i0; + java.io.PrintStream $r1, $r2; + java.lang.String $r3; + + r0 := @this: de.upb.sootup.instructions.ref.ThisRef; + + $r1 = ; + + $i0 = r0.; + + virtualinvoke $r1.($i0); + + $r2 = ; + + $r3 = virtualinvoke r0.(); + + virtualinvoke $r2.($r3); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.AssignStmt.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.AssignStmt.jimple new file mode 100644 index 00000000000..6910a192530 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.AssignStmt.jimple @@ -0,0 +1,199 @@ +public class de.upb.sootup.instructions.stmt.AssignStmt extends java.lang.Object +{ + int field; + de.upb.sootup.basic.expr.Dummy fieldObj; + + public void () + { + de.upb.sootup.instructions.stmt.AssignStmt r0; + de.upb.sootup.basic.expr.Dummy $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmt; + + specialinvoke r0.()>(); + + r0. = 123; + + $r1 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r1.()>(); + + r0. = $r1; + + return; + } + + public void rvalue() + { + de.upb.sootup.instructions.stmt.AssignStmt r0; + int[] r2; + int i0, i1, i2, i3, $i6; + de.upb.sootup.basic.expr.Dummy $r3; + java.io.PrintStream $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmt; + + $r3 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r3.()>(); + + r2 = newarray (int)[123]; + + i0 = r0.; + + i1 = $r3.; + + i2 = r2[42]; + + $i6 = r0.; + + i3 = r2[$i6]; + + staticinvoke (-1); + + $r4 = ; + + virtualinvoke $r4.($r3); + + $r5 = ; + + virtualinvoke $r5.(r2); + + $r6 = ; + + virtualinvoke $r6.(i0); + + $r7 = ; + + virtualinvoke $r7.(i1); + + $r8 = ; + + virtualinvoke $r8.(i2); + + $r9 = ; + + virtualinvoke $r9.(i3); + + $r10 = ; + + virtualinvoke $r10.(42); + + $r11 = ; + + virtualinvoke $r11.(3); + + return; + } + + public void imm() + { + de.upb.sootup.instructions.stmt.AssignStmt r0; + de.upb.sootup.basic.expr.Dummy $r2; + java.io.PrintStream $r3, $r4, $r5; + int $i1, $i2; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmt; + + r0. = 42; + + $r2 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r2.()>(); + + $r2. = 2; + + $r3 = ; + + virtualinvoke $r3.(2); + + $r4 = ; + + $i1 = r0.; + + virtualinvoke $r4.($i1); + + $r5 = ; + + $i2 = $r2.; + + virtualinvoke $r5.($i2); + + return; + } + + public void property() + { + de.upb.sootup.instructions.stmt.AssignStmt r0; + de.upb.sootup.basic.expr.Dummy $r3, $r4, $r5, $r8; + int $i0, $i1, $i2, $i3; + java.io.PrintStream $r6, $r7, $r9; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmt; + + $r3 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r3.()>(); + + $r3. = 666; + + $r4 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r4.()>(); + + $i0 = r0.; + + $r4. = $i0; + + $r5 = r0.; + + $r5. = 42; + + $r6 = ; + + $i1 = $r3.; + + virtualinvoke $r6.($i1); + + $r7 = ; + + $i2 = $r4.; + + virtualinvoke $r7.($i2); + + $r9 = ; + + $r8 = r0.; + + $i3 = $r8.; + + virtualinvoke $r9.($i3); + + return; + } + + public void array_field() + { + de.upb.sootup.instructions.stmt.AssignStmt r0; + int[] r1; + int $i0, $i1; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmt; + + r1 = newarray (int)[123]; + + r1[0] = 1; + + r1[42] = 43; + + $i0 = staticinvoke (-1); + + r1[$i0] = -2; + + $i1 = r0.; + + r1[$i1] = 0; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.GotoStmt.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.GotoStmt.jimple new file mode 100644 index 00000000000..ad157ad60e7 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.GotoStmt.jimple @@ -0,0 +1,92 @@ +public class de.upb.sootup.instructions.stmt.GotoStmt extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.stmt.GotoStmt r0; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmt; + + specialinvoke r0.()>(); + + return; + } + + public void label() + { + de.upb.sootup.instructions.stmt.GotoStmt r0; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmt; + + label1: + goto label1; + } + + public void whileloop(int) + { + de.upb.sootup.instructions.stmt.GotoStmt r0; + int i0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmt; + + i0 := @parameter0: int; + + label1: + if i0 >= 42 goto label2; + + $r1 = ; + + virtualinvoke $r1.("A"); + + goto label1; + + label2: + return; + } + + public void forloop() + { + de.upb.sootup.instructions.stmt.GotoStmt r0; + java.io.PrintStream $r1; + int i0; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmt; + + i0 = 5; + + label1: + if i0 >= 10 goto label2; + + $r1 = ; + + virtualinvoke $r1.("A"); + + i0 = i0 + 1; + + goto label1; + + label2: + return; + } + + public void dowhileloop(int) + { + de.upb.sootup.instructions.stmt.GotoStmt r0; + int i0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmt; + + i0 := @parameter0: int; + + label1: + $r1 = ; + + virtualinvoke $r1.("A"); + + if i0 != 0 goto label1; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IThing.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IThing.jimple new file mode 100644 index 00000000000..193eec87471 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IThing.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.instructions.stmt.IThing extends java.lang.Object +{ + + public abstract void printId(); +} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IdentityStmt.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IdentityStmt.jimple similarity index 79% rename from de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IdentityStmt.jimple rename to de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IdentityStmt.jimple index 6a71ba720d7..47d90d20396 100644 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IdentityStmt.jimple +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IdentityStmt.jimple @@ -1,50 +1,50 @@ -public class de.upb.soot.instructions.stmt.IdentityStmt extends java.lang.Object +public class de.upb.sootup.instructions.stmt.IdentityStmt extends java.lang.Object { int declProperty; int initProperty; public void () { - de.upb.soot.instructions.stmt.IdentityStmt r0; + de.upb.sootup.instructions.stmt.IdentityStmt r0; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmt; specialinvoke r0.()>(); - r0. = 42; + r0. = 42; return; } public void atThis() { - de.upb.soot.instructions.stmt.IdentityStmt r0; + de.upb.sootup.instructions.stmt.IdentityStmt r0; int $i0, $i1, $i2, $i3; java.io.PrintStream $r1, $r2, $r3, $r4; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmt; $r1 = ; - $i0 = r0.; + $i0 = r0.; virtualinvoke $r1.($i0); $r2 = ; - $i1 = r0.; + $i1 = r0.; virtualinvoke $r2.($i1); $r3 = ; - $i2 = r0.; + $i2 = r0.; virtualinvoke $r3.($i2); $r4 = ; - $i3 = r0.; + $i3 = r0.; virtualinvoke $r4.($i3); @@ -53,12 +53,12 @@ public class de.upb.soot.instructions.stmt.IdentityStmt extends java.lang.Object public void atParameterPrimitive(int, boolean) { - de.upb.soot.instructions.stmt.IdentityStmt r0; + de.upb.sootup.instructions.stmt.IdentityStmt r0; int i0; boolean z0; java.io.PrintStream $r1, $r2; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmt; i0 := @parameter0: int; @@ -77,14 +77,14 @@ public class de.upb.soot.instructions.stmt.IdentityStmt extends java.lang.Object public void atParameterNonPrimitive(java.lang.Integer, java.lang.String, java.lang.Boolean, int[]) { - de.upb.soot.instructions.stmt.IdentityStmt r0; + de.upb.sootup.instructions.stmt.IdentityStmt r0; java.lang.Integer r1; java.lang.String r2; java.lang.Boolean r3; int[] r4; java.io.PrintStream $r5, $r6, $r7, $r8; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmt; r1 := @parameter0: java.lang.Integer; @@ -115,10 +115,10 @@ public class de.upb.soot.instructions.stmt.IdentityStmt extends java.lang.Object public void atExceptionThrow() throws java.lang.Exception { - de.upb.soot.instructions.stmt.IdentityStmt r0; + de.upb.sootup.instructions.stmt.IdentityStmt r0; java.lang.Exception $r1; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmt; $r1 = new java.lang.Exception; @@ -129,21 +129,21 @@ public class de.upb.soot.instructions.stmt.IdentityStmt extends java.lang.Object public void atExceptionThrowAndCatch() { - de.upb.soot.instructions.stmt.IdentityStmt r0; + de.upb.sootup.instructions.stmt.IdentityStmt r0; java.io.PrintStream $r1, $r2, $r3, $r5; int $i0, $i1, i2; java.lang.Exception $r4; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmt; label1: $r1 = ; virtualinvoke $r1.("A1"); - $i1 = r0.; + $i1 = r0.; - $i0 = r0.; + $i0 = r0.; i2 = $i1 * $i0; @@ -173,12 +173,12 @@ public class de.upb.soot.instructions.stmt.IdentityStmt extends java.lang.Object public void exceptionMultiple() { - de.upb.soot.instructions.stmt.IdentityStmt r0; + de.upb.sootup.instructions.stmt.IdentityStmt r0; java.io.PrintStream $r1, $r3, $r5, $r8; java.lang.IndexOutOfBoundsException $r2; java.lang.Exception $r4; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmt; label1: $r1 = ; @@ -217,12 +217,12 @@ public class de.upb.soot.instructions.stmt.IdentityStmt extends java.lang.Object public void exceptionFinally() { - de.upb.soot.instructions.stmt.IdentityStmt r0; + de.upb.sootup.instructions.stmt.IdentityStmt r0; java.io.PrintStream $r3, $r4, $r5, $r7, $r8, $r10; java.lang.Exception $r6; java.lang.Throwable $r9; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmt; label1: $r3 = ; diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IfStmt.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IfStmt.jimple similarity index 77% rename from de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IfStmt.jimple rename to de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IfStmt.jimple index ca90499ce9e..2048fe9f0e3 100644 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IfStmt.jimple +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IfStmt.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.stmt.IfStmt extends java.lang.Object +public class de.upb.sootup.instructions.stmt.IfStmt extends java.lang.Object { public void () { - de.upb.soot.instructions.stmt.IfStmt r0; + de.upb.sootup.instructions.stmt.IfStmt r0; - r0 := @this: de.upb.soot.instructions.stmt.IfStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmt; specialinvoke r0.()>(); @@ -14,11 +14,11 @@ public class de.upb.soot.instructions.stmt.IfStmt extends java.lang.Object public void ifcondition(int) { - de.upb.soot.instructions.stmt.IfStmt r0; + de.upb.sootup.instructions.stmt.IfStmt r0; int i0; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.instructions.stmt.IfStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmt; i0 := @parameter0: int; @@ -34,11 +34,11 @@ public class de.upb.soot.instructions.stmt.IfStmt extends java.lang.Object public void ifelsecondition(int) { - de.upb.soot.instructions.stmt.IfStmt r0; + de.upb.sootup.instructions.stmt.IfStmt r0; int i0; java.io.PrintStream $r1, $r2; - r0 := @this: de.upb.soot.instructions.stmt.IfStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmt; i0 := @parameter0: int; @@ -61,11 +61,11 @@ public class de.upb.soot.instructions.stmt.IfStmt extends java.lang.Object public void ifelseifcondition(int) { - de.upb.soot.instructions.stmt.IfStmt r0; + de.upb.sootup.instructions.stmt.IfStmt r0; int i0; java.io.PrintStream $r1, $r2, $r3; - r0 := @this: de.upb.soot.instructions.stmt.IfStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmt; i0 := @parameter0: int; @@ -97,11 +97,11 @@ public class de.upb.soot.instructions.stmt.IfStmt extends java.lang.Object public void ternary(int, int) { - de.upb.soot.instructions.stmt.IfStmt r0; + de.upb.sootup.instructions.stmt.IfStmt r0; int i0, i1, $i3; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.instructions.stmt.IfStmt; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmt; i0 := @parameter0: int; diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.InvokeStmt.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.InvokeStmt.jimple new file mode 100644 index 00000000000..af4d9de565b --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.InvokeStmt.jimple @@ -0,0 +1,99 @@ +public class de.upb.sootup.instructions.stmt.InvokeStmt extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.stmt.InvokeStmt r0; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmt; + + specialinvoke r0.()>(); + + return; + } + + private void someMethod() + { + de.upb.sootup.instructions.stmt.InvokeStmt r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmt; + + $r1 = ; + + virtualinvoke $r1.("Sth"); + + return; + } + + public static void somethingStatic() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.("Polyester Shirt"); + + return; + } + + public void specialInvoke() + { + de.upb.sootup.instructions.stmt.InvokeStmt r0, $r2; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmt; + + $r2 = new de.upb.sootup.instructions.stmt.InvokeStmt; + + specialinvoke $r2.()>(); + + specialinvoke $r2.(); + + specialinvoke r0.(); + + return; + } + + public void interfaceInvoke() + { + de.upb.sootup.instructions.stmt.InvokeStmt r0; + de.upb.sootup.instructions.stmt.Pear $r2; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmt; + + $r2 = new de.upb.sootup.instructions.stmt.Pear; + + specialinvoke $r2.()>(); + + interfaceinvoke $r2.(); + + return; + } + + public void virtualInvoke() + { + de.upb.sootup.instructions.stmt.InvokeStmt r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmt; + + $r1 = ; + + virtualinvoke $r1.("virtual invoked"); + + return; + } + + public void staticInvoke() + { + de.upb.sootup.instructions.stmt.InvokeStmt r0; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmt; + + staticinvoke (); + + staticinvoke (); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.Pear.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.Pear.jimple new file mode 100644 index 00000000000..34078e0b2ea --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.Pear.jimple @@ -0,0 +1,28 @@ +class de.upb.sootup.instructions.stmt.Pear extends java.lang.Object implements de.upb.sootup.instructions.stmt.IThing +{ + + void () + { + de.upb.sootup.instructions.stmt.Pear r0; + + r0 := @this: de.upb.sootup.instructions.stmt.Pear; + + specialinvoke r0.()>(); + + return; + } + + public void printId() + { + de.upb.sootup.instructions.stmt.Pear r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.Pear; + + $r1 = ; + + virtualinvoke $r1.("Id"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ReturnStmts.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ReturnStmts.jimple new file mode 100644 index 00000000000..9aaf088321b --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ReturnStmts.jimple @@ -0,0 +1,94 @@ +public class de.upb.sootup.instructions.stmt.ReturnStmts extends java.lang.Object +{ + + void (int) + { + de.upb.sootup.instructions.stmt.ReturnStmts r0; + int i0; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmts; + + i0 := @parameter0: int; + + specialinvoke r0.()>(); + + if i0 >= 18 goto label1; + + return; + + label1: + return; + } + + public void returnnothing() + { + de.upb.sootup.instructions.stmt.ReturnStmts r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmts; + + $r1 = ; + + virtualinvoke $r1.("A"); + + return; + } + + public void pointofnoreturn() + { + de.upb.sootup.instructions.stmt.ReturnStmts r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmts; + + $r1 = ; + + virtualinvoke $r1.("A"); + + return; + } + + public int returnA(int) + { + de.upb.sootup.instructions.stmt.ReturnStmts r0; + int i0; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmts; + + i0 := @parameter0: int; + + return i0; + } + + public int returnB() + { + de.upb.sootup.instructions.stmt.ReturnStmts r0; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmts; + + return 42; + } + + public int returnC() + { + de.upb.sootup.instructions.stmt.ReturnStmts r0; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmts; + + return 42; + } + + public java.lang.Integer returnObject() + { + de.upb.sootup.instructions.stmt.ReturnStmts r0; + java.lang.Integer $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmts; + + $r1 = new java.lang.Integer; + + specialinvoke $r1.(int)>(5); + + return $r1; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ThrowStmt.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ThrowStmt.jimple new file mode 100644 index 00000000000..08b98282e22 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ThrowStmt.jimple @@ -0,0 +1,28 @@ +public class de.upb.sootup.instructions.stmt.ThrowStmt extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.stmt.ThrowStmt r0; + + r0 := @this: de.upb.sootup.instructions.stmt.ThrowStmt; + + specialinvoke r0.()>(); + + return; + } + + public void throwsth() throws java.lang.Exception + { + de.upb.sootup.instructions.stmt.ThrowStmt r0; + java.lang.Exception $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.ThrowStmt; + + $r1 = new java.lang.Exception; + + specialinvoke $r1.(java.lang.String)>("Banana"); + + throw $r1; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.type.AllTypes.jimple b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.type.AllTypes.jimple new file mode 100644 index 00000000000..c522e294d36 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.type.AllTypes.jimple @@ -0,0 +1,47 @@ +public class de.upb.sootup.instructions.type.AllTypes extends java.lang.Object +{ + int[] arr; + boolean z; + byte b; + char c; + double d; + float f; + int i; + long l; + java.lang.Object n; + de.upb.sootup.instructions.type.AllTypes ref; + short s; + + public void () + { + de.upb.sootup.instructions.type.AllTypes r0, $r1; + + r0 := @this: de.upb.sootup.instructions.type.AllTypes; + + specialinvoke r0.()>(); + + r0. = null; + + $r1 = new de.upb.sootup.instructions.type.AllTypes; + + specialinvoke $r1.()>(); + + r0. = $r1; + + return; + } + + void methodSignature() + { + de.upb.sootup.instructions.type.AllTypes r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.type.AllTypes; + + $r1 = ; + + virtualinvoke $r1.("void"); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/README.md b/de.upb.sse.sootup.java.core/src/test/resources/README.md similarity index 100% rename from de.upb.swt.soot.java.core/src/test/resources/README.md rename to de.upb.sse.sootup.java.core/src/test/resources/README.md diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/BinaryOperations.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/BinaryOperations.jimple similarity index 100% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/BinaryOperations.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/BinaryOperations.jimple diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/ExampleInterface.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/ExampleInterface.jimple similarity index 100% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/ExampleInterface.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/ExampleInterface.jimple diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/InstanceOf.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/InstanceOf.jimple similarity index 100% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/InstanceOf.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/InstanceOf.jimple diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/InvokeSpecial.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/InvokeSpecial.jimple similarity index 100% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/InvokeSpecial.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/InvokeSpecial.jimple diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/InvokeStatic.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/InvokeStatic.jimple similarity index 100% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/InvokeStatic.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/InvokeStatic.jimple diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/InvokeVirtual.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/InvokeVirtual.jimple similarity index 100% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/InvokeVirtual.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/InvokeVirtual.jimple diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.A.jimple new file mode 100644 index 00000000000..eb511795b46 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.A.jimple @@ -0,0 +1,30 @@ +abstract class de.upb.sootup.basic.abstractClasses.A extends java.lang.Object +{ + + void () + { + de.upb.sootup.basic.abstractClasses.A r0; + + r0 := @this: de.upb.sootup.basic.abstractClasses.A; + + specialinvoke r0.()>(); + + return; + } + + abstract void print(); + + public void methodA() + { + de.upb.sootup.basic.abstractClasses.A r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.basic.abstractClasses.A; + + $r1 = ; + + virtualinvoke $r1.("method of Class A"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.AbstractClasses.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.AbstractClasses.jimple new file mode 100644 index 00000000000..5741cea09bf --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.AbstractClasses.jimple @@ -0,0 +1,31 @@ +public abstract class de.upb.sootup.basic.abstractClasses.AbstractClasses extends java.lang.Object +{ + + public void () + { + de.upb.sootup.basic.abstractClasses.AbstractClasses r0; + + r0 := @this: de.upb.sootup.basic.abstractClasses.AbstractClasses; + + specialinvoke r0.()>(); + + return; + } + + public static void abstractClasses() + { + de.upb.sootup.basic.abstractClasses.B $r1; + + $r1 = new de.upb.sootup.basic.abstractClasses.B; + + specialinvoke $r1.()>(); + + virtualinvoke $r1.(); + + virtualinvoke $r1.(); + + virtualinvoke $r1.(); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.B.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.B.jimple new file mode 100644 index 00000000000..c998290b267 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.B.jimple @@ -0,0 +1,42 @@ +class de.upb.sootup.basic.abstractClasses.B extends de.upb.sootup.basic.abstractClasses.A +{ + + void () + { + de.upb.sootup.basic.abstractClasses.B r0; + + r0 := @this: de.upb.sootup.basic.abstractClasses.B; + + specialinvoke r0.()>(); + + return; + } + + public void print() + { + de.upb.sootup.basic.abstractClasses.B r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.basic.abstractClasses.B; + + $r1 = ; + + virtualinvoke $r1.("Something"); + + return; + } + + public void methodB() + { + de.upb.sootup.basic.abstractClasses.B r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.basic.abstractClasses.B; + + $r1 = ; + + virtualinvoke $r1.("method of Class B"); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.controlStatements.ControlStatements.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.controlStatements.ControlStatements.jimple similarity index 89% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.controlStatements.ControlStatements.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.controlStatements.ControlStatements.jimple index 8b38c8f53e1..16064dd3d8c 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.controlStatements.ControlStatements.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.controlStatements.ControlStatements.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.basic.controlStatements.ControlStatements extends java.lang.Object +public class de.upb.sootup.basic.controlStatements.ControlStatements extends java.lang.Object { public void () { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; specialinvoke r0.()>(); @@ -14,13 +14,13 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void simpleIfElse(int, int, int) { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r7, $r8, $r10, $r12, $r13, $r14, $r15, $r17, $r19, $r20, $r21, $r22; java.io.PrintStream $r2, $r11, $r18; java.lang.String $r9, $r16, $r23; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -102,13 +102,13 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void simpleSwitchCase(int, int, int) { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r8, $r10, $r11, $r12, $r13, $r16, $r17, $r18, $r19, $r20; java.io.PrintStream $r2, $r9, $r15; java.lang.String $r7, $r14, $r21; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -185,13 +185,13 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void simpleSwitchBreak(int, int, int) { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r8, $r10, $r11, $r12, $r13, $r15, $r17, $r18, $r19, $r20; java.io.PrintStream $r2, $r9, $r16; java.lang.String $r7, $r14, $r21; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -273,11 +273,11 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void tableSwitch(int) { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -326,11 +326,11 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void lookupSwitch(int) { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -373,9 +373,9 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void gotoStmt() { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; label1: goto label1; @@ -383,10 +383,10 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void throwSth() throws java.lang.Exception { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; java.lang.Exception $r1; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; $r1 = new java.lang.Exception; @@ -397,11 +397,11 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void throwAndCatch() { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; java.lang.Exception $r2, $r3; java.io.PrintStream $r4; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; label1: $r2 = new java.lang.Exception; @@ -424,11 +424,11 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void simpleWhile(int, int) { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; int i0, i1; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -449,13 +449,13 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void simpleDoWhile(int, int) { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; int i0, i1; java.lang.StringBuilder $r1, $r3, $r4; java.io.PrintStream $r2; java.lang.String $r5; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -483,13 +483,13 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void simpleFor(int, int) { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4; java.io.PrintStream $r2; java.lang.String $r5; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -526,13 +526,13 @@ public class de.upb.soot.basic.controlStatements.ControlStatements extends java. public void monitor() { - de.upb.soot.basic.controlStatements.ControlStatements r0; + de.upb.sootup.basic.controlStatements.ControlStatements r0; java.lang.StringBuffer $r4; java.io.PrintStream $r8; java.lang.String $r9; java.lang.Throwable $r10; - r0 := @this: de.upb.soot.basic.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.basic.controlStatements.ControlStatements; $r4 = new java.lang.StringBuffer; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Cast.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Cast.jimple new file mode 100644 index 00000000000..119c5c203cf --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Cast.jimple @@ -0,0 +1,26 @@ +public class de.upb.sootup.basic.expr.Cast extends java.lang.Object +{ + + public void () + { + de.upb.sootup.basic.expr.Cast r0; + + r0 := @this: de.upb.sootup.basic.expr.Cast; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.basic.expr.Cast r0; + int i0; + + r0 := @this: de.upb.sootup.basic.expr.Cast; + + i0 = (int) 3.14; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Dummy.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Dummy.jimple new file mode 100644 index 00000000000..4b68b850498 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Dummy.jimple @@ -0,0 +1,24 @@ +public class de.upb.sootup.basic.expr.Dummy extends java.lang.Object +{ + public int field; + + public void () + { + de.upb.sootup.basic.expr.Dummy r0; + + r0 := @this: de.upb.sootup.basic.expr.Dummy; + + specialinvoke r0.()>(); + + return; + } + + public int method() + { + de.upb.sootup.basic.expr.Dummy r0; + + r0 := @this: de.upb.sootup.basic.expr.Dummy; + + return 42; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.InstanceOf.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.InstanceOf.jimple similarity index 79% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.InstanceOf.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.InstanceOf.jimple index 2c9826ba2fc..a382e382ba1 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.InstanceOf.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.InstanceOf.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.basic.expr.InstanceOf extends java.lang.Object +public class de.upb.sootup.basic.expr.InstanceOf extends java.lang.Object { public void () { - de.upb.soot.basic.expr.InstanceOf r0; + de.upb.sootup.basic.expr.InstanceOf r0; - r0 := @this: de.upb.soot.basic.expr.InstanceOf; + r0 := @this: de.upb.sootup.basic.expr.InstanceOf; specialinvoke r0.()>(); @@ -14,14 +14,14 @@ public class de.upb.soot.basic.expr.InstanceOf extends java.lang.Object void sth() { - de.upb.soot.basic.expr.InstanceOf r0; + de.upb.sootup.basic.expr.InstanceOf r0; boolean z0; java.lang.Integer $r2; java.lang.StringBuilder $r3, $r5, $r6; java.io.PrintStream $r4; java.lang.String $r7; - r0 := @this: de.upb.soot.basic.expr.InstanceOf; + r0 := @this: de.upb.sootup.basic.expr.InstanceOf; $r2 = new java.lang.Integer; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Length.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Length.jimple new file mode 100644 index 00000000000..7e5a545a16d --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Length.jimple @@ -0,0 +1,34 @@ +public class de.upb.sootup.basic.expr.Length extends java.lang.Object +{ + + public void () + { + de.upb.sootup.basic.expr.Length r0; + + r0 := @this: de.upb.sootup.basic.expr.Length; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.basic.expr.Length r0; + int[] r1; + int $i0; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.basic.expr.Length; + + r1 = newarray (int)[42]; + + $r2 = ; + + $i0 = lengthof r1; + + virtualinvoke $r2.($i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Negate.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Negate.jimple new file mode 100644 index 00000000000..ee7433828f8 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Negate.jimple @@ -0,0 +1,19 @@ +public class de.upb.sootup.basic.expr.Negate extends java.lang.Object +{ + + public void () + { + de.upb.sootup.basic.expr.Negate r0; + + r0 := @this: de.upb.sootup.basic.expr.Negate; + + specialinvoke r0.()>(); + + return; + } + + static void sth() + { + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewArray.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewArray.jimple new file mode 100644 index 00000000000..219cc4a8caa --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewArray.jimple @@ -0,0 +1,50 @@ +public class de.upb.sootup.basic.expr.NewArray extends java.lang.Object +{ + + public void () + { + de.upb.sootup.basic.expr.NewArray r0; + + r0 := @this: de.upb.sootup.basic.expr.NewArray; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.basic.expr.NewArray r0; + int[] r1; + double[] r2; + boolean[] r3; + char[] r4; + java.lang.String[] r5; + java.lang.Integer[] r6; + java.lang.Double[] r7; + java.lang.Boolean[] r8; + java.lang.Object[] r9; + + r0 := @this: de.upb.sootup.basic.expr.NewArray; + + r1 = newarray (int)[42]; + + r2 = newarray (double)[42]; + + r3 = newarray (boolean)[42]; + + r4 = newarray (char)[42]; + + r5 = newarray (java.lang.String)[42]; + + r6 = newarray (java.lang.Integer)[42]; + + r7 = newarray (java.lang.Double)[42]; + + r8 = newarray (java.lang.Boolean)[42]; + + r9 = newarray (java.lang.Object)[42]; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewMultiArray.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewMultiArray.jimple new file mode 100644 index 00000000000..9e8b5458abc --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewMultiArray.jimple @@ -0,0 +1,34 @@ +public class de.upb.sootup.basic.expr.NewMultiArray extends java.lang.Object +{ + + public void () + { + de.upb.sootup.basic.expr.NewMultiArray r0; + + r0 := @this: de.upb.sootup.basic.expr.NewMultiArray; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.basic.expr.NewMultiArray r0; + int[][] r1; + int $i0; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.basic.expr.NewMultiArray; + + r1 = newmultiarray (int)[42][10]; + + $r2 = ; + + $i0 = lengthof r1; + + virtualinvoke $r2.($i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.A.jimple new file mode 100644 index 00000000000..99af703780e --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.A.jimple @@ -0,0 +1,20 @@ +class de.upb.sootup.basic.fieldReference.A extends java.lang.Object +{ + int i; + java.lang.String j; + + void () + { + de.upb.sootup.basic.fieldReference.A r0; + + r0 := @this: de.upb.sootup.basic.fieldReference.A; + + specialinvoke r0.()>(); + + r0. = 15; + + r0. = "greater"; + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.FieldReference.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.FieldReference.jimple similarity index 75% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.FieldReference.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.FieldReference.jimple index 908ae93a251..2b9db3e1c64 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.FieldReference.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.FieldReference.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.basic.fieldReference.FieldReference extends java.lang.Object +public class de.upb.sootup.basic.fieldReference.FieldReference extends java.lang.Object { public void () { - de.upb.soot.basic.fieldReference.FieldReference r0; + de.upb.sootup.basic.fieldReference.FieldReference r0; - r0 := @this: de.upb.soot.basic.fieldReference.FieldReference; + r0 := @this: de.upb.sootup.basic.fieldReference.FieldReference; specialinvoke r0.()>(); @@ -17,19 +17,19 @@ public class de.upb.soot.basic.fieldReference.FieldReference extends java.lang.O java.lang.String[] r0; int i0; java.lang.String r2, $r11; - de.upb.soot.basic.fieldReference.A $r3; + de.upb.sootup.basic.fieldReference.A $r3; java.lang.StringBuilder $r4, $r6, $r7, $r8, $r9, $r10; java.io.PrintStream $r5, $r12, $r13; r0 := @parameter0: java.lang.String[]; - $r3 = new de.upb.soot.basic.fieldReference.A; + $r3 = new de.upb.sootup.basic.fieldReference.A; - specialinvoke $r3.()>(); + specialinvoke $r3.()>(); - i0 = $r3.; + i0 = $r3.; - r2 = $r3.; + r2 = $r3.; $r5 = ; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.A.jimple new file mode 100644 index 00000000000..f055898c8d4 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.A.jimple @@ -0,0 +1,32 @@ +class de.upb.sootup.basic.hierarchy.A extends de.upb.sootup.basic.hierarchy.B +{ + + void () + { + de.upb.sootup.basic.hierarchy.A r0; + + r0 := @this: de.upb.sootup.basic.hierarchy.A; + + specialinvoke r0.()>(); + + return; + } + + public java.lang.String methodA() + { + de.upb.sootup.basic.hierarchy.A r0; + + r0 := @this: de.upb.sootup.basic.hierarchy.A; + + return "Return from methodA of class A"; + } + + public int method_intA() + { + de.upb.sootup.basic.hierarchy.A r0; + + r0 := @this: de.upb.sootup.basic.hierarchy.A; + + return 7; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.B.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.B.jimple new file mode 100644 index 00000000000..e773ea312e3 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.B.jimple @@ -0,0 +1,47 @@ +class de.upb.sootup.basic.hierarchy.B extends de.upb.sootup.basic.hierarchy.C +{ + + void () + { + de.upb.sootup.basic.hierarchy.B r0; + + r0 := @this: de.upb.sootup.basic.hierarchy.B; + + specialinvoke r0.()>(); + + return; + } + + public java.lang.String methodB() + { + de.upb.sootup.basic.hierarchy.B r0, $r2; + java.lang.StringBuilder $r3, $r5, $r6; + java.io.PrintStream $r4; + int $i0; + java.lang.String $r7; + + r0 := @this: de.upb.sootup.basic.hierarchy.B; + + $r2 = new de.upb.sootup.basic.hierarchy.B; + + specialinvoke $r2.()>(); + + $r4 = ; + + $r3 = new java.lang.StringBuilder; + + specialinvoke $r3.()>(); + + $r5 = virtualinvoke $r3.("method of Class B "); + + $i0 = virtualinvoke $r2.(); + + $r6 = virtualinvoke $r5.($i0); + + $r7 = virtualinvoke $r6.(); + + virtualinvoke $r4.($r7); + + return "method of Class B"; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.C.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.C.jimple new file mode 100644 index 00000000000..ad56f2223e2 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.C.jimple @@ -0,0 +1,23 @@ +class de.upb.sootup.basic.hierarchy.C extends java.lang.Object +{ + + void () + { + de.upb.sootup.basic.hierarchy.C r0; + + r0 := @this: de.upb.sootup.basic.hierarchy.C; + + specialinvoke r0.()>(); + + return; + } + + public int methodC() + { + de.upb.sootup.basic.hierarchy.C r0; + + r0 := @this: de.upb.sootup.basic.hierarchy.C; + + return 77; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.Hierarchy.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.Hierarchy.jimple new file mode 100644 index 00000000000..bcbeecbf6e6 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.Hierarchy.jimple @@ -0,0 +1,86 @@ +public class de.upb.sootup.basic.hierarchy.Hierarchy extends de.upb.sootup.basic.hierarchy.A +{ + + public void () + { + de.upb.sootup.basic.hierarchy.Hierarchy r0; + + r0 := @this: de.upb.sootup.basic.hierarchy.Hierarchy; + + specialinvoke r0.()>(); + + return; + } + + public static void hierarchy(java.lang.String[]) + { + java.lang.String[] r0; + de.upb.sootup.basic.hierarchy.Hierarchy $r2; + java.io.PrintStream $r4; + java.lang.String $r5; + + r0 := @parameter0: java.lang.String[]; + + $r2 = new de.upb.sootup.basic.hierarchy.Hierarchy; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + $r4 = ; + + $r5 = virtualinvoke $r2.(); + + virtualinvoke $r4.($r5); + + return; + } + + public volatile int method_intA() + { + de.upb.sootup.basic.hierarchy.Hierarchy r0; + int $i0; + + r0 := @this: de.upb.sootup.basic.hierarchy.Hierarchy; + + $i0 = specialinvoke r0.(); + + return $i0; + } + + public volatile java.lang.String methodA() + { + de.upb.sootup.basic.hierarchy.Hierarchy r0; + java.lang.String $r1; + + r0 := @this: de.upb.sootup.basic.hierarchy.Hierarchy; + + $r1 = specialinvoke r0.(); + + return $r1; + } + + public volatile java.lang.String methodB() + { + de.upb.sootup.basic.hierarchy.Hierarchy r0; + java.lang.String $r1; + + r0 := @this: de.upb.sootup.basic.hierarchy.Hierarchy; + + $r1 = specialinvoke r0.(); + + return $r1; + } + + public volatile int methodC() + { + de.upb.sootup.basic.hierarchy.Hierarchy r0; + int $i0; + + r0 := @this: de.upb.sootup.basic.hierarchy.Hierarchy; + + $i0 = specialinvoke r0.(); + + return $i0; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A1.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A1.jimple new file mode 100644 index 00000000000..d84626c864a --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A1.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.basic.interfaces.A1 extends java.lang.Object +{ + + public abstract void printA1(); +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A2.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A2.jimple new file mode 100644 index 00000000000..93465ed3a5e --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A2.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.basic.interfaces.A2 extends java.lang.Object +{ + + public abstract void printA2(); +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.B.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.B.jimple new file mode 100644 index 00000000000..bebfdd7a75e --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.B.jimple @@ -0,0 +1,28 @@ +class de.upb.sootup.basic.interfaces.B extends java.lang.Object implements de.upb.sootup.basic.interfaces.A1 +{ + + void () + { + de.upb.sootup.basic.interfaces.B r0; + + r0 := @this: de.upb.sootup.basic.interfaces.B; + + specialinvoke r0.()>(); + + return; + } + + public void printA1() + { + de.upb.sootup.basic.interfaces.B r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.basic.interfaces.B; + + $r1 = ; + + virtualinvoke $r1.("Interface A1"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.C.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.C.jimple new file mode 100644 index 00000000000..a92f32a0c56 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.C.jimple @@ -0,0 +1,42 @@ +public class de.upb.sootup.basic.interfaces.C extends java.lang.Object implements de.upb.sootup.basic.interfaces.A1, de.upb.sootup.basic.interfaces.A2 +{ + + public void () + { + de.upb.sootup.basic.interfaces.C r0; + + r0 := @this: de.upb.sootup.basic.interfaces.C; + + specialinvoke r0.()>(); + + return; + } + + public void printA1() + { + de.upb.sootup.basic.interfaces.C r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.basic.interfaces.C; + + $r1 = ; + + virtualinvoke $r1.("Interface A1"); + + return; + } + + public void printA2() + { + de.upb.sootup.basic.interfaces.C r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.basic.interfaces.C; + + $r1 = ; + + virtualinvoke $r1.("Interface A2"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.Interfaces.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.Interfaces.jimple new file mode 100644 index 00000000000..86f9113013a --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.Interfaces.jimple @@ -0,0 +1,52 @@ +public class de.upb.sootup.basic.interfaces.Interfaces extends java.lang.Object +{ + + public void () + { + de.upb.sootup.basic.interfaces.Interfaces r0; + + r0 := @this: de.upb.sootup.basic.interfaces.Interfaces; + + specialinvoke r0.()>(); + + return; + } + + public void singleInterface() + { + de.upb.sootup.basic.interfaces.Interfaces r0; + de.upb.sootup.basic.interfaces.C $r2; + + r0 := @this: de.upb.sootup.basic.interfaces.Interfaces; + + $r2 = new de.upb.sootup.basic.interfaces.C; + + specialinvoke $r2.()>(); + + interfaceinvoke $r2.(); + + return; + } + + public void multipleInterface() + { + de.upb.sootup.basic.interfaces.Interfaces r0; + de.upb.sootup.basic.interfaces.C $r3, $r4; + + r0 := @this: de.upb.sootup.basic.interfaces.Interfaces; + + $r3 = new de.upb.sootup.basic.interfaces.C; + + specialinvoke $r3.()>(); + + $r4 = new de.upb.sootup.basic.interfaces.C; + + specialinvoke $r4.()>(); + + interfaceinvoke $r3.(); + + interfaceinvoke $r4.(); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.A.jimple new file mode 100644 index 00000000000..55a92989ee8 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.A.jimple @@ -0,0 +1,62 @@ +public class de.upb.sootup.basic.invoke.A extends java.lang.Object +{ + private java.lang.String name; + private int num; + + public void () + { + de.upb.sootup.basic.invoke.A r0; + + r0 := @this: de.upb.sootup.basic.invoke.A; + + specialinvoke r0.()>(); + + return; + } + + public void (java.lang.String, int) + { + de.upb.sootup.basic.invoke.A r0; + java.lang.String r1; + int i0; + + r0 := @this: de.upb.sootup.basic.invoke.A; + + r1 := @parameter0: java.lang.String; + + i0 := @parameter1: int; + + specialinvoke r0.()>(); + + r0. = r1; + + r0. = i0; + + return; + } + + public static int methodA() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.("Method A called"); + + return 0; + } + + public static int methodB(java.lang.String) + { + java.lang.String r0; + java.io.PrintStream $r1; + + r0 := @parameter0: java.lang.String; + + $r1 = ; + + virtualinvoke $r1.(r0); + + return 0; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.ReflectionInvoke.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.ReflectionInvoke.jimple similarity index 81% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.ReflectionInvoke.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.ReflectionInvoke.jimple index 902fab3f72b..993356360ea 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.ReflectionInvoke.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.ReflectionInvoke.jimple @@ -1,20 +1,20 @@ -public class de.upb.soot.basic.invoke.ReflectionInvoke extends de.upb.soot.basic.invoke.A +public class de.upb.sootup.basic.invoke.ReflectionInvoke extends de.upb.sootup.basic.invoke.A { public void () { - de.upb.soot.basic.invoke.ReflectionInvoke r0; + de.upb.sootup.basic.invoke.ReflectionInvoke r0; - r0 := @this: de.upb.soot.basic.invoke.ReflectionInvoke; + r0 := @this: de.upb.sootup.basic.invoke.ReflectionInvoke; - specialinvoke r0.()>(); + specialinvoke r0.()>(); return; } public static void ReflectionInvoke() throws java.lang.NoSuchMethodException { - staticinvoke (); + staticinvoke (); return; } diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.A.jimple new file mode 100644 index 00000000000..7ea2bde6bb1 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.A.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.basic.lambdaExpressions.A extends java.lang.Object +{ + + public abstract java.lang.String methodA(int); +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.LambdaExpressions.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.LambdaExpressions.jimple new file mode 100644 index 00000000000..1df09bb1745 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.LambdaExpressions.jimple @@ -0,0 +1,85 @@ +abstract class de.upb.sootup.basic.lambdaExpressions.LambdaExpressions extends java.lang.Object +{ + + void () + { + de.upb.sootup.basic.lambdaExpressions.LambdaExpressions r0; + + r0 := @this: de.upb.sootup.basic.lambdaExpressions.LambdaExpressions; + + specialinvoke r0.()>(); + + return; + } + + public static void lambdaTarget() + { + de.upb.sootup.basic.lambdaExpressions.A r0, r1; + java.io.PrintStream $r2, $r4; + java.lang.String $r3, $r5; + + r0 = dynamicinvoke "methodA" () (class "(I)Ljava/lang/String;", handle: , class "(I)Ljava/lang/String;"); + + r1 = dynamicinvoke "methodA" () (class "(I)Ljava/lang/String;", handle: , class "(I)Ljava/lang/String;"); + + $r2 = ; + + $r3 = interfaceinvoke r0.(7); + + virtualinvoke $r2.($r3); + + $r4 = ; + + $r5 = interfaceinvoke r1.(9); + + virtualinvoke $r4.($r5); + + return; + } + + private static java.lang.String lambda$lambdaTarget$1(int) + { + int i0; + java.lang.StringBuilder $r0, $r1, $r2, $r3; + java.lang.String $r4; + + i0 := @parameter0: int; + + $r0 = new java.lang.StringBuilder; + + specialinvoke $r0.()>(); + + $r1 = virtualinvoke $r0.("Hello "); + + $r2 = virtualinvoke $r1.(i0); + + $r3 = virtualinvoke $r2.("!"); + + $r4 = virtualinvoke $r3.(); + + return $r4; + } + + private static java.lang.String lambda$lambdaTarget$0(int) + { + int i0; + java.lang.StringBuilder $r0, $r1, $r2, $r3; + java.lang.String $r4; + + i0 := @parameter0: int; + + $r0 = new java.lang.StringBuilder; + + specialinvoke $r0.()>(); + + $r1 = virtualinvoke $r0.("Hello "); + + $r2 = virtualinvoke $r1.(i0); + + $r3 = virtualinvoke $r2.("!"); + + $r4 = virtualinvoke $r3.(); + + return $r4; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.AssignStmt.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.AssignStmt.jimple new file mode 100644 index 00000000000..ca25f1a5415 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.AssignStmt.jimple @@ -0,0 +1,67 @@ +public class de.upb.sootup.basic.locals.AssignStmt extends java.lang.Object +{ + int field; + + public void () + { + de.upb.sootup.basic.locals.AssignStmt r0; + + r0 := @this: de.upb.sootup.basic.locals.AssignStmt; + + specialinvoke r0.()>(); + + r0. = 3; + + return; + } + + void sth() + { + de.upb.sootup.basic.locals.AssignStmt r0; + int[] r2; + int i1, i2, i3, $i6, $i7, $i8, $i9; + de.upb.sootup.basic.expr.Dummy $r3; + + r0 := @this: de.upb.sootup.basic.locals.AssignStmt; + + $r3 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r3.()>(); + + r2 = newarray (int)[666]; + + i1 = $r3.; + + i2 = r2[42]; + + $i6 = r0.; + + i3 = r2[$i6]; + + staticinvoke (-1); + + r0. = 42; + + r0. = 42; + + $r3. = 666; + + $i7 = r0.; + + $r3. = $i7; + + r2[0] = 42; + + r2[42] = 123; + + $i8 = staticinvoke (-1); + + r2[$i8] = 43; + + $i9 = r0.; + + r2[$i9] = 0; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.IdentityStmt.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.IdentityStmt.jimple new file mode 100644 index 00000000000..90feb55f675 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.IdentityStmt.jimple @@ -0,0 +1,81 @@ +public class de.upb.sootup.basic.locals.IdentityStmt extends java.lang.Object +{ + int declProperty; + int initProperty; + + public void () + { + de.upb.sootup.basic.locals.IdentityStmt r0; + + r0 := @this: de.upb.sootup.basic.locals.IdentityStmt; + + specialinvoke r0.()>(); + + r0. = 42; + + return; + } + + public void atThis() + { + de.upb.sootup.basic.locals.IdentityStmt r0; + int $i0, $i1; + java.io.PrintStream $r1, $r2; + + r0 := @this: de.upb.sootup.basic.locals.IdentityStmt; + + $r1 = ; + + $i0 = r0.; + + virtualinvoke $r1.($i0); + + $r2 = ; + + $i1 = r0.; + + virtualinvoke $r2.($i1); + + return; + } + + public void atParameter(int, java.lang.String, boolean) + { + de.upb.sootup.basic.locals.IdentityStmt r0; + int i0; + java.lang.String r1; + boolean z0; + java.io.PrintStream $r2, $r3, $r4; + + r0 := @this: de.upb.sootup.basic.locals.IdentityStmt; + + i0 := @parameter0: int; + + r1 := @parameter1: java.lang.String; + + z0 := @parameter2: boolean; + + $r2 = ; + + virtualinvoke $r2.(i0); + + $r3 = ; + + virtualinvoke $r3.(r1); + + $r4 = ; + + virtualinvoke $r4.(z0); + + return; + } + + public void atException() + { + de.upb.sootup.basic.locals.IdentityStmt r0; + + r0 := @this: de.upb.sootup.basic.locals.IdentityStmt; + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nestedControlStatements.NestedControlStatements.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nestedControlStatements.NestedControlStatements.jimple similarity index 96% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nestedControlStatements.NestedControlStatements.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nestedControlStatements.NestedControlStatements.jimple index 0641ee4b488..419787ca094 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nestedControlStatements.NestedControlStatements.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nestedControlStatements.NestedControlStatements.jimple @@ -1,4 +1,4 @@ -public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements extends java.lang.Object +public class de.upb.sootup.basic.nestedControlStatements.NestedControlStatements extends java.lang.Object { int a; int b; @@ -6,30 +6,30 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void () { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; specialinvoke r0.()>(); - r0. = 10; + r0. = 10; - r0. = 20; + r0. = 20; - r0. = 30; + r0. = 30; return; } public void nestedIfElse(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r8, $r10, $r11, $r12, $r13, $r15, $r17, $r18, $r19, $r20, $r22, $r24, $r25, $r26, $r27, $r29, $r31, $r32, $r33, $r34, $r36, $r38, $r39, $r40, $r41, $r43, $r45, $r46, $r47, $r48, $r50, $r52, $r53, $r54, $r55, $r57, $r59, $r60, $r61, $r62; java.io.PrintStream $r2, $r9, $r16, $r23, $r30, $r37, $r44, $r51, $r58; java.lang.String $r7, $r14, $r21, $r28, $r35, $r42, $r49, $r56, $r63; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -230,13 +230,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedSwitchIf(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r8, $r10, $r11, $r12, $r13, $r15, $r17, $r18, $r19, $r20, $r22, $r24, $r25, $r26, $r27, $r29, $r31, $r32, $r33, $r34, $r36, $r38, $r39, $r40, $r41, $r43, $r45, $r46, $r47, $r48, $r50, $r52, $r53, $r54, $r55, $r57, $r59, $r60, $r61, $r62, $r65, $r66, $r67, $r68, $r69, $r72, $r73, $r74, $r75, $r76, $r79, $r80, $r81, $r82, $r83; java.io.PrintStream $r2, $r9, $r16, $r23, $r30, $r37, $r44, $r51, $r58, $r64, $r71, $r78; java.lang.String $r7, $r14, $r21, $r28, $r35, $r42, $r49, $r56, $r63, $r70, $r77, $r84; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -506,13 +506,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedWhileIf(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r7, $r8, $r10, $r12, $r13, $r14, $r15, $r17, $r19, $r20, $r21, $r22, $r24, $r26, $r27, $r28, $r29, $r31, $r33, $r34, $r35, $r36, $r38, $r40, $r41, $r42, $r43; java.io.PrintStream $r2, $r11, $r18, $r25, $r32, $r39; java.lang.String $r9, $r16, $r23, $r30, $r37, $r44; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -659,13 +659,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedForIf(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2, i3, i4, i5; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r7, $r8, $r10, $r12, $r13, $r15, $r17, $r18, $r19, $r20, $r22, $r24, $r25, $r27, $r29, $r30, $r31, $r32, $r34, $r36, $r37; java.io.PrintStream $r2, $r11, $r16, $r23, $r28, $r35; java.lang.String $r9, $r14, $r21, $r26, $r33, $r38; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -824,13 +824,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedSwitchSwitch(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r8, $r10, $r11, $r12, $r13, $r15, $r17, $r18, $r19, $r20, $r22, $r24, $r25, $r26, $r27, $r29, $r31, $r32, $r33, $r34, $r36, $r38, $r39, $r40, $r41, $r43, $r45, $r46, $r47, $r48, $r51, $r52, $r53, $r54, $r55, $r58, $r59, $r60, $r61, $r62, $r65, $r66, $r67, $r68, $r69, $r72, $r73, $r74, $r75, $r76, $r79, $r80, $r81, $r82, $r83; java.io.PrintStream $r2, $r9, $r16, $r23, $r30, $r37, $r44, $r50, $r57, $r64, $r71, $r78; java.lang.String $r7, $r14, $r21, $r28, $r35, $r42, $r49, $r56, $r63, $r70, $r77, $r84; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -1099,13 +1099,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedIfSwitch(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r7, $r8, $r10, $r12, $r13, $r14, $r15, $r16, $r17, $r19, $r21, $r22, $r23, $r24, $r26, $r28, $r29, $r30, $r31, $r33, $r35, $r36, $r37, $r38, $r40, $r42, $r43, $r44, $r45, $r47, $r49, $r50, $r51, $r52, $r54, $r56, $r57, $r58, $r59, $r60, $r61, $r63, $r65, $r66, $r67, $r68, $r70, $r72, $r73, $r74, $r75, $r78, $r79, $r80, $r81, $r82, $r85, $r86, $r87, $r88, $r89; java.io.PrintStream $r2, $r11, $r20, $r27, $r34, $r41, $r48, $r55, $r64, $r71, $r77, $r84; java.lang.String $r9, $r18, $r25, $r32, $r39, $r46, $r53, $r62, $r69, $r76, $r83, $r90; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -1387,13 +1387,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedWhileSwitch(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r8, $r10, $r11, $r12, $r13, $r17, $r19, $r20, $r21, $r22; java.io.PrintStream $r2, $r9, $r15, $r16, $r18, $r24; java.lang.String $r7, $r14, $r23; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -1498,13 +1498,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedForSwitch(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2, i3, i4, i5; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r8, $r10, $r11, $r12, $r13, $r15, $r17, $r18, $r20, $r22, $r23, $r25, $r27, $r28, $r29, $r30, $r32, $r34, $r35; java.io.PrintStream $r2, $r9, $r16, $r21, $r26, $r33; java.lang.String $r7, $r14, $r19, $r24, $r31, $r36; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -1657,11 +1657,11 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedWhileWhile(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2; java.io.PrintStream $r1, $r2; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -1691,13 +1691,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedIfWhile(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2; java.io.PrintStream $r1, $r3, $r12, $r19; java.lang.StringBuilder $r2, $r4, $r5, $r6, $r7, $r8, $r9, $r11, $r13, $r14, $r15, $r16, $r18, $r20, $r21, $r22, $r23; java.lang.String $r10, $r17, $r24; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -1788,13 +1788,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedSwitchWhile(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2; java.io.PrintStream $r1, $r3, $r10, $r16; java.lang.StringBuilder $r2, $r4, $r5, $r6, $r7, $r9, $r11, $r12, $r13, $r14, $r17, $r18, $r19, $r20, $r21; java.lang.String $r8, $r15, $r22; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -1881,13 +1881,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedForWhile(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2, i3; java.io.PrintStream $r1, $r3; java.lang.StringBuilder $r2, $r4, $r5; java.lang.String $r6; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -1936,13 +1936,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedForFor(int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2, i3; java.lang.StringBuilder $r1, $r3, $r4, $r6, $r8, $r9; java.io.PrintStream $r2, $r7; java.lang.String $r5, $r10; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -2005,13 +2005,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedIfFor(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2, i3; java.lang.StringBuilder $r1, $r3, $r4, $r6, $r8, $r9, $r10, $r11, $r12, $r13, $r15, $r17, $r18, $r19, $r20, $r22, $r24, $r25, $r26, $r27; java.io.PrintStream $r2, $r7, $r16, $r23; java.lang.String $r5, $r14, $r21, $r28; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -2119,13 +2119,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nested_switch_in_for(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2, i3; java.lang.StringBuilder $r1, $r3, $r4, $r6, $r8, $r9, $r10, $r11, $r13, $r15, $r16, $r17, $r18, $r21, $r22, $r23, $r24, $r25; java.io.PrintStream $r2, $r7, $r14, $r20; java.lang.String $r5, $r12, $r19, $r26; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -2228,13 +2228,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedWhileFor(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2, i3; java.lang.StringBuilder $r1, $r3, $r4; java.io.PrintStream $r2, $r6; java.lang.String $r5; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -2283,13 +2283,13 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedSwitchFor(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2, i3; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6, $r8, $r10, $r11, $r12, $r13; java.io.PrintStream $r2, $r9; java.lang.String $r7, $r14; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; @@ -2356,11 +2356,11 @@ public class de.upb.soot.basic.nestedControlStatements.NestedControlStatements e public void nestedForFor(int, int, int) { - de.upb.soot.basic.nestedControlStatements.NestedControlStatements r0; + de.upb.sootup.basic.nestedControlStatements.NestedControlStatements r0; int i0, i1, i2, i3, i4; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.nestedControlStatements.NestedControlStatements; + r0 := @this: de.upb.sootup.basic.nestedControlStatements.NestedControlStatements; i0 := @parameter0: int; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.A.jimple new file mode 100644 index 00000000000..a406d84037d --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.A.jimple @@ -0,0 +1,28 @@ +class de.upb.sootup.basic.nonPrimitiveLocals.A extends java.lang.Object +{ + + void () + { + de.upb.sootup.basic.nonPrimitiveLocals.A r0; + + r0 := @this: de.upb.sootup.basic.nonPrimitiveLocals.A; + + specialinvoke r0.()>(); + + return; + } + + public void foo() + { + de.upb.sootup.basic.nonPrimitiveLocals.A r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.basic.nonPrimitiveLocals.A; + + $r1 = ; + + virtualinvoke $r1.("Something"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals.jimple new file mode 100644 index 00000000000..56ec83c1220 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals.jimple @@ -0,0 +1,48 @@ +public class de.upb.sootup.basic.nonPrimitiveLocals.NonPrimitiveLocals extends de.upb.sootup.basic.nonPrimitiveLocals.A +{ + + public void () + { + de.upb.sootup.basic.nonPrimitiveLocals.NonPrimitiveLocals r0; + + r0 := @this: de.upb.sootup.basic.nonPrimitiveLocals.NonPrimitiveLocals; + + specialinvoke r0.()>(); + + return; + } + + public void nonPrimitiveLocalsTarget() + { + de.upb.sootup.basic.nonPrimitiveLocals.NonPrimitiveLocals r0; + int[] r1; + de.upb.sootup.basic.nonPrimitiveLocals.A $r3; + + r0 := @this: de.upb.sootup.basic.nonPrimitiveLocals.NonPrimitiveLocals; + + r1 = newarray (int)[10]; + + $r3 = new de.upb.sootup.basic.nonPrimitiveLocals.A; + + specialinvoke $r3.()>(); + + virtualinvoke $r3.(); + + r1[1] = 10; + + r1[7] = 70; + + return; + } + + public volatile void foo() + { + de.upb.sootup.basic.nonPrimitiveLocals.NonPrimitiveLocals r0; + + r0 := @this: de.upb.sootup.basic.nonPrimitiveLocals.NonPrimitiveLocals; + + specialinvoke r0.(); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.operators.Operators.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.operators.Operators.jimple similarity index 77% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.operators.Operators.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.operators.Operators.jimple index c0040e4af27..7bc332a6aed 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.operators.Operators.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.operators.Operators.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.basic.operators.Operators extends java.lang.Object +public class de.upb.sootup.basic.operators.Operators extends java.lang.Object { public void () { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; specialinvoke r0.()>(); @@ -14,11 +14,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void addition(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -35,11 +35,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void subtraction(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -56,11 +56,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void multiplication(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -77,11 +77,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void division(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -98,11 +98,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void modulus(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -119,11 +119,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void increment(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i2 := @parameter0: int; @@ -138,11 +138,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void decrement(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i2 := @parameter0: int; @@ -157,11 +157,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void simpleAssignmentOperator(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -174,11 +174,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void addAssignmentOperator(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -193,11 +193,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void subtractAssignmentOperator(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -212,11 +212,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void multiplyAssignmentOperator(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -231,11 +231,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void divideAssignmentOperator(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -250,11 +250,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void modulusAssignmentOperator(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -269,11 +269,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void leftShiftAssignmentOperator(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -288,12 +288,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void rightShiftAssignmentOperator(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0; java.io.PrintStream $r1; byte b2; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -308,12 +308,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseAND(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0; java.io.PrintStream $r1; byte b2; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -328,12 +328,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseXOR(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0; java.io.PrintStream $r1; byte b2; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -348,12 +348,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseIncORAssignmentOperator(int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0; java.io.PrintStream $r1; byte b2; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -368,12 +368,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void relationalEqualTo(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -398,12 +398,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void relationalNotEqualTo(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -428,12 +428,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void relationalGreaterThan(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -458,12 +458,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void relationalLessThan(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -488,12 +488,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void relationalGreaterThanEqualTo(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -518,12 +518,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void relationalLessThanEqualTo(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -548,11 +548,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void logicalOR(boolean, boolean) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; boolean z0, z1, $z3; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; z0 := @parameter0: boolean; @@ -580,11 +580,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void logicalAND(boolean, boolean) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; boolean z0, z1, $z3; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; z0 := @parameter0: boolean; @@ -611,11 +611,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void logicalNOT(boolean, boolean) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; boolean z0, z1, $z3; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; z0 := @parameter0: boolean; @@ -640,11 +640,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseAND(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -661,11 +661,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseOR(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -682,11 +682,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseXOR(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -703,11 +703,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseCompliment(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -724,11 +724,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseLeftShift(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -745,11 +745,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseRightShift(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -766,11 +766,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void bitwiseRightShiftZerofill(int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -787,12 +787,12 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void conditionalOperator(int, int, int) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; int i0, i1, i2; java.io.PrintStream $r1; short $s4; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; i0 := @parameter0: int; @@ -819,11 +819,11 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void instanceofOperator() { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; boolean z0; java.io.PrintStream $r2; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; z0 = "Java" instanceof java.lang.String; @@ -836,13 +836,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmpOperatorNotEqual(long, long) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; l0 := @parameter0: long; @@ -869,13 +869,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmpOperatorEqual(long, long) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; l0 := @parameter0: long; @@ -902,13 +902,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmpOperatorLower(long, long) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; l0 := @parameter0: long; @@ -935,13 +935,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmpOperatorLowerEqual(long, long) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; l0 := @parameter0: long; @@ -968,13 +968,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmpOperatorGreater(long, long) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; l0 := @parameter0: long; @@ -1001,13 +1001,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmpOperatorGreaterEqual(long, long) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; l0 := @parameter0: long; @@ -1034,13 +1034,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmplOperatorNotEqual(float, float) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; f0 := @parameter0: float; @@ -1067,13 +1067,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmplOperatorEqual(float, float) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; f0 := @parameter0: float; @@ -1100,13 +1100,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmpgOperatorLower(float, float) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; f0 := @parameter0: float; @@ -1133,13 +1133,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmpgOperatorLowerEqual(float, float) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; f0 := @parameter0: float; @@ -1166,13 +1166,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmplOperatorGreater(float, float) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; f0 := @parameter0: float; @@ -1199,13 +1199,13 @@ public class de.upb.soot.basic.operators.Operators extends java.lang.Object public void cmplOperatorGreaterEqual(float, float) { - de.upb.soot.basic.operators.Operators r0; + de.upb.sootup.basic.operators.Operators r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.basic.operators.Operators; + r0 := @this: de.upb.sootup.basic.operators.Operators; f0 := @parameter0: float; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.primitiveLocals.PrimitiveLocals.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.primitiveLocals.PrimitiveLocals.jimple new file mode 100644 index 00000000000..6cb94cd7103 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.primitiveLocals.PrimitiveLocals.jimple @@ -0,0 +1,140 @@ +public class de.upb.sootup.basic.primitiveLocals.PrimitiveLocals extends java.lang.Object +{ + + public void () + { + de.upb.sootup.basic.primitiveLocals.PrimitiveLocals r0; + + r0 := @this: de.upb.sootup.basic.primitiveLocals.PrimitiveLocals; + + specialinvoke r0.()>(); + + return; + } + + public void primitiveInt() + { + de.upb.sootup.basic.primitiveLocals.PrimitiveLocals r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.basic.primitiveLocals.PrimitiveLocals; + + $r1 = ; + + virtualinvoke $r1.(512); + + return; + } + + public void primitiveByte() + { + de.upb.sootup.basic.primitiveLocals.PrimitiveLocals r0; + java.io.PrintStream $r1; + int $i0; + byte b2; + + r0 := @this: de.upb.sootup.basic.primitiveLocals.PrimitiveLocals; + + $r1 = ; + + virtualinvoke $r1.(0); + + $i0 = 0 + 1; + + b2 = (byte) $i0; + + return; + } + + public void primitiveChar() + { + de.upb.sootup.basic.primitiveLocals.PrimitiveLocals r0; + java.io.PrintStream $r1, $r2; + + r0 := @this: de.upb.sootup.basic.primitiveLocals.PrimitiveLocals; + + $r1 = ; + + virtualinvoke $r1.(97); + + $r2 = ; + + virtualinvoke $r2.(98); + + return; + } + + public void primitiveShort() + { + de.upb.sootup.basic.primitiveLocals.PrimitiveLocals r0; + java.io.PrintStream $r1; + int $i0; + short s2; + + r0 := @this: de.upb.sootup.basic.primitiveLocals.PrimitiveLocals; + + $r1 = ; + + virtualinvoke $r1.(10); + + $i0 = 10 + 1; + + s2 = (short) $i0; + + return; + } + + public void primitiveFloat() + { + de.upb.sootup.basic.primitiveLocals.PrimitiveLocals r0; + java.io.PrintStream $r1, $r2; + + r0 := @this: de.upb.sootup.basic.primitiveLocals.PrimitiveLocals; + + $r1 = ; + + virtualinvoke $r1.(3.14F); + + $r2 = ; + + virtualinvoke $r2.(7.77F); + + return; + } + + public void primitiveLong() + { + de.upb.sootup.basic.primitiveLocals.PrimitiveLocals r0; + java.io.PrintStream $r1, $r2; + + r0 := @this: de.upb.sootup.basic.primitiveLocals.PrimitiveLocals; + + $r1 = ; + + virtualinvoke $r1.(123456789L); + + $r2 = ; + + virtualinvoke $r2.(123456777L); + + return; + } + + public void primitiveDouble() + { + de.upb.sootup.basic.primitiveLocals.PrimitiveLocals r0; + java.io.PrintStream $r1, $r2; + + r0 := @this: de.upb.sootup.basic.primitiveLocals.PrimitiveLocals; + + $r1 = ; + + virtualinvoke $r1.(1.96969654); + + $r2 = ; + + virtualinvoke $r2.(1.787777777); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.A.jimple new file mode 100644 index 00000000000..3e1578dfd45 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.A.jimple @@ -0,0 +1,36 @@ +class de.upb.sootup.basic.staticFields.A extends java.lang.Object +{ + public static int a; + public static java.lang.String b; + + void () + { + de.upb.sootup.basic.staticFields.A r0; + + r0 := @this: de.upb.sootup.basic.staticFields.A; + + specialinvoke r0.()>(); + + return; + } + + public static void methodA() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.("Static methodA"); + + return; + } + + static void () + { + = 10; + + = " is a number."; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.StaticFields.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.StaticFields.jimple new file mode 100644 index 00000000000..70189aee498 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.StaticFields.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.basic.staticFields.StaticFields extends java.lang.Object +{ + + public void () + { + de.upb.sootup.basic.staticFields.StaticFields r0; + + r0 := @this: de.upb.sootup.basic.staticFields.StaticFields; + + specialinvoke r0.()>(); + + return; + } + + public static void staticFields() + { + java.lang.StringBuilder $r0, $r2, $r4; + java.io.PrintStream $r1; + int $i0; + java.lang.String $r3, $r5; + + staticinvoke (); + + $r1 = ; + + $r0 = new java.lang.StringBuilder; + + specialinvoke $r0.()>(); + + $i0 = ; + + $r2 = virtualinvoke $r0.($i0); + + $r3 = ; + + $r4 = virtualinvoke $r2.($r3); + + $r5 = virtualinvoke $r4.(); + + virtualinvoke $r1.($r5); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.arrays.Arrays.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.arrays.Arrays.jimple similarity index 81% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.arrays.Arrays.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.arrays.Arrays.jimple index 5d69a8ba687..0dd60503cd3 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.arrays.Arrays.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.arrays.Arrays.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.concrete.arrays.Arrays extends java.lang.Object +public class de.upb.sootup.concrete.arrays.Arrays extends java.lang.Object { public void () { - de.upb.soot.concrete.arrays.Arrays r0; + de.upb.sootup.concrete.arrays.Arrays r0; - r0 := @this: de.upb.soot.concrete.arrays.Arrays; + r0 := @this: de.upb.sootup.concrete.arrays.Arrays; specialinvoke r0.()>(); @@ -14,12 +14,12 @@ public class de.upb.soot.concrete.arrays.Arrays extends java.lang.Object public void primitiveArray() { - de.upb.soot.concrete.arrays.Arrays r0; + de.upb.sootup.concrete.arrays.Arrays r0; int[] $r2; int $i0, $i1; java.io.PrintStream $r3, $r4; - r0 := @this: de.upb.soot.concrete.arrays.Arrays; + r0 := @this: de.upb.sootup.concrete.arrays.Arrays; $r2 = newarray (int)[2]; @@ -44,12 +44,12 @@ public class de.upb.soot.concrete.arrays.Arrays extends java.lang.Object public void primitiveArrayLengt() { - de.upb.soot.concrete.arrays.Arrays r0; + de.upb.sootup.concrete.arrays.Arrays r0; int[] $r2; int $i0; java.io.PrintStream $r3; - r0 := @this: de.upb.soot.concrete.arrays.Arrays; + r0 := @this: de.upb.sootup.concrete.arrays.Arrays; $r2 = newarray (int)[2]; @@ -68,12 +68,12 @@ public class de.upb.soot.concrete.arrays.Arrays extends java.lang.Object public void objectArray() { - de.upb.soot.concrete.arrays.Arrays r0; + de.upb.sootup.concrete.arrays.Arrays r0; java.lang.String[] $r2; java.lang.String $r3, $r5; java.io.PrintStream $r4, $r6; - r0 := @this: de.upb.soot.concrete.arrays.Arrays; + r0 := @this: de.upb.sootup.concrete.arrays.Arrays; $r2 = newarray (java.lang.String)[2]; @@ -98,12 +98,12 @@ public class de.upb.soot.concrete.arrays.Arrays extends java.lang.Object public void manualAssignment() { - de.upb.soot.concrete.arrays.Arrays r0; + de.upb.sootup.concrete.arrays.Arrays r0; int[] r1; int $i0; java.io.PrintStream $r2; - r0 := @this: de.upb.soot.concrete.arrays.Arrays; + r0 := @this: de.upb.sootup.concrete.arrays.Arrays; r1 = newarray (int)[1]; @@ -120,13 +120,13 @@ public class de.upb.soot.concrete.arrays.Arrays extends java.lang.Object public void twoDimensions() { - de.upb.soot.concrete.arrays.Arrays r0; + de.upb.sootup.concrete.arrays.Arrays r0; int[][] r1; int[] $r2, $r3, $r4, $r5, $r6, $r8, $r10, $r12; int $i0, $i1, $i2, $i3; java.io.PrintStream $r7, $r9, $r11, $r13; - r0 := @this: de.upb.soot.concrete.arrays.Arrays; + r0 := @this: de.upb.sootup.concrete.arrays.Arrays; r1 = newmultiarray (int)[2][2]; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.constants.Constants.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.constants.Constants.jimple new file mode 100644 index 00000000000..5ccfb93026c --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.constants.Constants.jimple @@ -0,0 +1,140 @@ +public class de.upb.sootup.concrete.constants.Constants extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.constants.Constants r0; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + specialinvoke r0.()>(); + + return; + } + + public void intConstant() + { + de.upb.sootup.concrete.constants.Constants r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + $r1 = ; + + virtualinvoke $r1.(512); + + return; + } + + public void byteConstant() + { + de.upb.sootup.concrete.constants.Constants r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + $r1 = ; + + virtualinvoke $r1.(0); + + return; + } + + public void charConstant() + { + de.upb.sootup.concrete.constants.Constants r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + $r1 = ; + + virtualinvoke $r1.(97); + + return; + } + + public void shortConstant() + { + de.upb.sootup.concrete.constants.Constants r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + $r1 = ; + + virtualinvoke $r1.(10); + + return; + } + + public void floatConstant() + { + de.upb.sootup.concrete.constants.Constants r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + $r1 = ; + + virtualinvoke $r1.(3.14F); + + return; + } + + public void longConstant() + { + de.upb.sootup.concrete.constants.Constants r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + $r1 = ; + + virtualinvoke $r1.(123456789L); + + return; + } + + public void doubleConstant() + { + de.upb.sootup.concrete.constants.Constants r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + $r1 = ; + + virtualinvoke $r1.(1.96969654); + + return; + } + + public void classConstant() + { + de.upb.sootup.concrete.constants.Constants r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + $r1 = ; + + virtualinvoke $r1.(class "Lde/upb/soot/concrete/constants/Constants;"); + + return; + } + + public void stringConstant() + { + de.upb.sootup.concrete.constants.Constants r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.constants.Constants; + + $r1 = ; + + virtualinvoke $r1.("foo"); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.controlStatements.ControlStatements.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.controlStatements.ControlStatements.jimple similarity index 81% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.controlStatements.ControlStatements.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.controlStatements.ControlStatements.jimple index 07ccff4d620..dbbfe7b6915 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.controlStatements.ControlStatements.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.controlStatements.ControlStatements.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.concrete.controlStatements.ControlStatements extends java.lang.Object +public class de.upb.sootup.concrete.controlStatements.ControlStatements extends java.lang.Object { public void () { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; specialinvoke r0.()>(); @@ -14,11 +14,11 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void simpleIfElseIfTakeThen(int, int, int) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; int i0, i1, i2; java.io.PrintStream $r1, $r2, $r3; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -54,10 +54,10 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public boolean simpleIfElse(int, int) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; int i0, i1; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -73,10 +73,10 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public boolean simpleIfElse(boolean, boolean) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; boolean z0, z1; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; z0 := @parameter0: boolean; @@ -92,10 +92,10 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public boolean simpleIf(java.lang.String) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; java.lang.String r1; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; r1 := @parameter0: java.lang.String; @@ -109,12 +109,12 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void simpleIfElseIfTakeElse(double, double, double) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; double d0, d1, d2; byte $b0, $b1; java.io.PrintStream $r1, $r2, $r3; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; d0 := @parameter0: double; @@ -154,12 +154,12 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void simpleIfElseTakeThen(float, float) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; float f0, f1; byte $b0; java.io.PrintStream $r1, $r2; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; f0 := @parameter0: float; @@ -186,11 +186,11 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void simpleIfElseTakeElse(byte, byte) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; byte b0, b1; java.io.PrintStream $r1, $r2; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; b0 := @parameter0: byte; @@ -215,11 +215,11 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void tableSwitch(int) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; int i0; java.io.PrintStream $r1, $r2, $r3; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -250,11 +250,11 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void tableSwitchDefault() { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; int i1; java.io.PrintStream $r1, $r2, $r3; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; i1 = 3 - 1; @@ -285,11 +285,11 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void tableSwitchNoDefault(int) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; int i0; java.io.PrintStream $r1, $r2, $r3; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -320,14 +320,14 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void lookupSwitch(java.lang.String) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; java.lang.String r1; int $i0; boolean $z0, $z1; java.io.PrintStream $r3, $r4, $r5; byte b1; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; r1 := @parameter0: java.lang.String; @@ -386,14 +386,14 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void lookupSwitchDefault(java.lang.String) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; java.lang.String r1; int $i0; boolean $z0, $z1; java.io.PrintStream $r3, $r4, $r5; byte b1; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; r1 := @parameter0: java.lang.String; @@ -452,14 +452,14 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void lookupSwitchNoDefault(java.lang.String) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; java.lang.String r1; int $i0; boolean $z0, $z1; java.io.PrintStream $r3, $r4, $r5; byte b1; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; r1 := @parameter0: java.lang.String; @@ -518,11 +518,11 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void simpleWhile(int, int) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; int i0, i1; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; i1 := @parameter0: int; @@ -545,11 +545,11 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void simpleDoWhile(int, int) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; int i0, i1; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; i1 := @parameter0: int; @@ -569,11 +569,11 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void simpleFor(int) { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; int i0, i1; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; i0 := @parameter0: int; @@ -596,12 +596,12 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void forIterArr() { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; int i0, i1, i2; int[] $r3; java.io.PrintStream $r4; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; $r3 = newarray (int)[3]; @@ -634,7 +634,7 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja public void forIterList() { - de.upb.soot.concrete.controlStatements.ControlStatements r0; + de.upb.sootup.concrete.controlStatements.ControlStatements r0; java.util.Iterator r2; java.lang.String r3; java.util.ArrayList $r4; @@ -642,7 +642,7 @@ public class de.upb.soot.concrete.controlStatements.ControlStatements extends ja java.lang.Object $r5; java.io.PrintStream $r6; - r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements; + r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements; $r4 = new java.util.ArrayList; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects$Foo.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects$Foo.jimple new file mode 100644 index 00000000000..8cb9216c35c --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects$Foo.jimple @@ -0,0 +1,23 @@ +final class de.upb.sootup.concrete.emulation.Objects$Foo extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.emulation.Objects$Foo r0; + + r0 := @this: de.upb.sootup.concrete.emulation.Objects$Foo; + + specialinvoke r0.()>(); + + return; + } + + public java.lang.String toString() + { + de.upb.sootup.concrete.emulation.Objects$Foo r0; + + r0 := @this: de.upb.sootup.concrete.emulation.Objects$Foo; + + return "foo"; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects.jimple new file mode 100644 index 00000000000..cb2cdd78fc6 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects.jimple @@ -0,0 +1,47 @@ +public class de.upb.sootup.concrete.emulation.Objects extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.emulation.Objects r0; + + r0 := @this: de.upb.sootup.concrete.emulation.Objects; + + specialinvoke r0.()>(); + + return; + } + + public void jObjectToJavaObject() + { + de.upb.sootup.concrete.emulation.Objects r0; + de.upb.sootup.concrete.emulation.Objects$Foo $r1; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.concrete.emulation.Objects; + + $r2 = ; + + $r1 = new de.upb.sootup.concrete.emulation.Objects$Foo; + + specialinvoke $r1.()>(); + + virtualinvoke $r2.($r1); + + return; + } + + public void systemOut() + { + de.upb.sootup.concrete.emulation.Objects r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.emulation.Objects; + + $r1 = ; + + virtualinvoke $r1.(); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.A.jimple new file mode 100644 index 00000000000..a794b5e46a5 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.A.jimple @@ -0,0 +1,20 @@ +class de.upb.sootup.concrete.fieldReference.A extends java.lang.Object +{ + int i; + public java.lang.String j; + + void () + { + de.upb.sootup.concrete.fieldReference.A r0; + + r0 := @this: de.upb.sootup.concrete.fieldReference.A; + + specialinvoke r0.()>(); + + r0. = 15; + + r0. = "greater"; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.FieldReference.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.FieldReference.jimple new file mode 100644 index 00000000000..6cb66ddd1c3 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.FieldReference.jimple @@ -0,0 +1,262 @@ +public class de.upb.sootup.concrete.fieldReference.FieldReference extends java.lang.Object +{ + private final int f; + protected java.lang.String b; + private int a; + + public void () + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + specialinvoke r0.()>(); + + r0. = 2; + + r0. = "foo"; + + r0. = 1; + + return; + } + + public void ownField() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + int $i0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $r1 = ; + + $i0 = r0.; + + virtualinvoke $r1.($i0); + + return; + } + + public void ownFieldWrite() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + int $i0, $i1, $i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $i0 = r0.; + + $i1 = $i0 + 1; + + r0. = $i1; + + $r1 = ; + + $i2 = r0.; + + virtualinvoke $r1.($i2); + + return; + } + + public void otherField() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + de.upb.sootup.concrete.fieldReference.A $r2; + int $i0; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $r2 = new de.upb.sootup.concrete.fieldReference.A; + + specialinvoke $r2.()>(); + + $r3 = ; + + $i0 = $r2.; + + virtualinvoke $r3.($i0); + + return; + } + + public void otherFieldWrite() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + de.upb.sootup.concrete.fieldReference.A $r2; + int $i0, $i1, $i2; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $r2 = new de.upb.sootup.concrete.fieldReference.A; + + specialinvoke $r2.()>(); + + $i0 = $r2.; + + $i1 = $i0 + 1; + + $r2. = $i1; + + $r3 = ; + + $i2 = $r2.; + + virtualinvoke $r3.($i2); + + return; + } + + public void otherFieldWrite2() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + de.upb.sootup.concrete.fieldReference.A $r2; + int $i1, $i2; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $r2 = new de.upb.sootup.concrete.fieldReference.A; + + specialinvoke $r2.()>(); + + $i1 = $r2.; + + $i2 = $i1 + 1; + + $r2. = $i2; + + $r3 = ; + + virtualinvoke $r3.($i1); + + return; + } + + public void ownFieldObject() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + java.lang.String $r1; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $r2 = ; + + $r1 = r0.; + + virtualinvoke $r2.($r1); + + return; + } + + public void ownFieldWriteObject() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + java.lang.String $r1; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + r0. = "new"; + + $r2 = ; + + $r1 = r0.; + + virtualinvoke $r2.($r1); + + return; + } + + public void otherFieldObject() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + de.upb.sootup.concrete.fieldReference.A $r2; + java.lang.String $r3; + java.io.PrintStream $r4; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $r2 = new de.upb.sootup.concrete.fieldReference.A; + + specialinvoke $r2.()>(); + + $r4 = ; + + $r3 = $r2.; + + virtualinvoke $r4.($r3); + + return; + } + + public void otherFieldWriteObject() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + de.upb.sootup.concrete.fieldReference.A $r2; + java.lang.String $r3; + java.io.PrintStream $r4; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $r2 = new de.upb.sootup.concrete.fieldReference.A; + + specialinvoke $r2.()>(); + + $r2. = "new"; + + $r4 = ; + + $r3 = $r2.; + + virtualinvoke $r4.($r3); + + return; + } + + public void otherFieldWrite2Object() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + java.lang.String r2; + de.upb.sootup.concrete.fieldReference.A $r3; + java.io.PrintStream $r4; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $r3 = new de.upb.sootup.concrete.fieldReference.A; + + specialinvoke $r3.()>(); + + r2 = $r3.; + + $r3. = "new"; + + $r4 = ; + + virtualinvoke $r4.(r2); + + return; + } + + public void finalField() + { + de.upb.sootup.concrete.fieldReference.FieldReference r0; + java.lang.String $r1; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.concrete.fieldReference.FieldReference; + + $r2 = ; + + $r1 = r0.; + + virtualinvoke $r2.($r1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.A.jimple new file mode 100644 index 00000000000..e243abbe501 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.A.jimple @@ -0,0 +1,41 @@ +public class de.upb.sootup.concrete.generics.A extends java.lang.Object +{ + java.lang.Object t; + + public void () + { + de.upb.sootup.concrete.generics.A r0; + + r0 := @this: de.upb.sootup.concrete.generics.A; + + specialinvoke r0.()>(); + + return; + } + + void setT(java.lang.Object) + { + de.upb.sootup.concrete.generics.A r0; + java.lang.Object r1; + + r0 := @this: de.upb.sootup.concrete.generics.A; + + r1 := @parameter0: java.lang.Object; + + r0. = r1; + + return; + } + + java.lang.Object getT() + { + de.upb.sootup.concrete.generics.A r0; + java.lang.Object $r1; + + r0 := @this: de.upb.sootup.concrete.generics.A; + + $r1 = r0.; + + return $r1; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.Generics.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.Generics.jimple new file mode 100644 index 00000000000..63bdfe91306 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.Generics.jimple @@ -0,0 +1,95 @@ +public class de.upb.sootup.concrete.generics.Generics extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.generics.Generics r0; + + r0 := @this: de.upb.sootup.concrete.generics.Generics; + + specialinvoke r0.()>(); + + return; + } + + public void list() + { + de.upb.sootup.concrete.generics.Generics r0; + java.util.ArrayList $r2; + java.io.PrintStream $r3; + java.lang.Object $r4; + java.lang.String $r5; + + r0 := @this: de.upb.sootup.concrete.generics.Generics; + + $r2 = new java.util.ArrayList; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.("foo"); + + $r3 = ; + + $r4 = virtualinvoke $r2.(0); + + $r5 = (java.lang.String) $r4; + + virtualinvoke $r3.($r5); + + return; + } + + public void boxedList() + { + de.upb.sootup.concrete.generics.Generics r0; + java.util.ArrayList $r2; + java.lang.Integer $r3; + java.io.PrintStream $r4; + java.lang.Object $r5; + + r0 := @this: de.upb.sootup.concrete.generics.Generics; + + $r2 = new java.util.ArrayList; + + specialinvoke $r2.()>(); + + $r3 = staticinvoke (1); + + virtualinvoke $r2.($r3); + + $r4 = ; + + $r5 = virtualinvoke $r2.(0); + + virtualinvoke $r4.($r5); + + return; + } + + public void nonJDK() + { + de.upb.sootup.concrete.generics.Generics r0; + de.upb.sootup.concrete.generics.A $r2; + java.io.PrintStream $r3; + java.lang.Object $r4; + java.lang.String $r5; + + r0 := @this: de.upb.sootup.concrete.generics.Generics; + + $r2 = new de.upb.sootup.concrete.generics.A; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.("foo"); + + $r3 = ; + + $r4 = virtualinvoke $r2.(); + + $r5 = (java.lang.String) $r4; + + virtualinvoke $r3.($r5); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.A.jimple new file mode 100644 index 00000000000..7bba9133d89 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.A.jimple @@ -0,0 +1,30 @@ +abstract class de.upb.sootup.concrete.inheritance.A extends java.lang.Object +{ + + void () + { + de.upb.sootup.concrete.inheritance.A r0; + + r0 := @this: de.upb.sootup.concrete.inheritance.A; + + specialinvoke r0.()>(); + + return; + } + + abstract void print(); + + public void methodA() + { + de.upb.sootup.concrete.inheritance.A r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.A; + + $r1 = ; + + virtualinvoke $r1.("eval"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.B.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.B.jimple new file mode 100644 index 00000000000..c9c678cdb40 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.B.jimple @@ -0,0 +1,48 @@ +class de.upb.sootup.concrete.inheritance.B extends de.upb.sootup.concrete.inheritance.A +{ + protected int a; + protected int b; + + void () + { + de.upb.sootup.concrete.inheritance.B r0; + + r0 := @this: de.upb.sootup.concrete.inheritance.B; + + specialinvoke r0.()>(); + + r0. = 5; + + r0. = 3; + + return; + } + + public void print() + { + de.upb.sootup.concrete.inheritance.B r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.B; + + $r1 = ; + + virtualinvoke $r1.("printB"); + + return; + } + + public void methodB() + { + de.upb.sootup.concrete.inheritance.B r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.B; + + $r1 = ; + + virtualinvoke $r1.("methodB"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.C.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.C.jimple new file mode 100644 index 00000000000..2002299395b --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.C.jimple @@ -0,0 +1,67 @@ +public class de.upb.sootup.concrete.inheritance.C extends de.upb.sootup.concrete.inheritance.B +{ + public int a; + + public void () + { + de.upb.sootup.concrete.inheritance.C r0; + + r0 := @this: de.upb.sootup.concrete.inheritance.C; + + specialinvoke r0.()>(); + + r0. = 4; + + return; + } + + public void methodA() + { + de.upb.sootup.concrete.inheritance.C r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.C; + + $r1 = ; + + virtualinvoke $r1.("methodAinC"); + + return; + } + + public void methodC() + { + de.upb.sootup.concrete.inheritance.C r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.C; + + $r1 = ; + + virtualinvoke $r1.("methodC"); + + return; + } + + public volatile void methodB() + { + de.upb.sootup.concrete.inheritance.C r0; + + r0 := @this: de.upb.sootup.concrete.inheritance.C; + + specialinvoke r0.(); + + return; + } + + public volatile void print() + { + de.upb.sootup.concrete.inheritance.C r0; + + r0 := @this: de.upb.sootup.concrete.inheritance.C; + + specialinvoke r0.(); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.D.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.D.jimple new file mode 100644 index 00000000000..73c1740ff2d --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.D.jimple @@ -0,0 +1,39 @@ +public class de.upb.sootup.concrete.inheritance.D extends de.upb.sootup.concrete.inheritance.A +{ + + public void () + { + de.upb.sootup.concrete.inheritance.D r0; + + r0 := @this: de.upb.sootup.concrete.inheritance.D; + + specialinvoke r0.()>(); + + return; + } + + void print() + { + de.upb.sootup.concrete.inheritance.D r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.D; + + $r1 = ; + + virtualinvoke $r1.("D"); + + return; + } + + public volatile void methodA() + { + de.upb.sootup.concrete.inheritance.D r0; + + r0 := @this: de.upb.sootup.concrete.inheritance.D; + + specialinvoke r0.(); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$1.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$1.jimple new file mode 100644 index 00000000000..aabe74da9d0 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$1.jimple @@ -0,0 +1,34 @@ +class de.upb.sootup.concrete.inheritance.Inheritance$1 extends de.upb.sootup.concrete.inheritance.A +{ + final de.upb.sootup.concrete.inheritance.Inheritance this$0; + + void (de.upb.sootup.concrete.inheritance.Inheritance) + { + de.upb.sootup.concrete.inheritance.Inheritance$1 r0; + de.upb.sootup.concrete.inheritance.Inheritance r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance$1; + + r1 := @parameter0: de.upb.sootup.concrete.inheritance.Inheritance; + + r0. = r1; + + specialinvoke r0.()>(); + + return; + } + + void print() + { + de.upb.sootup.concrete.inheritance.Inheritance$1 r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance$1; + + $r1 = ; + + virtualinvoke $r1.("Abstract"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$X.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$X.jimple new file mode 100644 index 00000000000..841461dd427 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$X.jimple @@ -0,0 +1,51 @@ +class de.upb.sootup.concrete.inheritance.Inheritance$X extends de.upb.sootup.concrete.inheritance.A +{ + final de.upb.sootup.concrete.inheritance.Inheritance this$0; + + private void (de.upb.sootup.concrete.inheritance.Inheritance) + { + de.upb.sootup.concrete.inheritance.Inheritance$X r0; + de.upb.sootup.concrete.inheritance.Inheritance r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance$X; + + r1 := @parameter0: de.upb.sootup.concrete.inheritance.Inheritance; + + r0. = r1; + + specialinvoke r0.()>(); + + return; + } + + void print() + { + de.upb.sootup.concrete.inheritance.Inheritance$X r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance$X; + + $r1 = ; + + virtualinvoke $r1.("X"); + + return; + } + + void (de.upb.sootup.concrete.inheritance.Inheritance, de.upb.sootup.concrete.inheritance.Inheritance$1) + { + de.upb.sootup.concrete.inheritance.Inheritance$X r0; + de.upb.sootup.concrete.inheritance.Inheritance r1; + de.upb.sootup.concrete.inheritance.Inheritance$1 r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance$X; + + r1 := @parameter0: de.upb.sootup.concrete.inheritance.Inheritance; + + r2 := @parameter1: de.upb.sootup.concrete.inheritance.Inheritance$1; + + specialinvoke r0.(de.upb.sootup.concrete.inheritance.Inheritance)>(r1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$Y.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$Y.jimple new file mode 100644 index 00000000000..cd02d5f4b16 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$Y.jimple @@ -0,0 +1,42 @@ +class de.upb.sootup.concrete.inheritance.Inheritance$Y extends de.upb.sootup.concrete.inheritance.A +{ + + private void () + { + de.upb.sootup.concrete.inheritance.Inheritance$Y r0; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance$Y; + + specialinvoke r0.()>(); + + return; + } + + void print() + { + de.upb.sootup.concrete.inheritance.Inheritance$Y r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance$Y; + + $r1 = ; + + virtualinvoke $r1.("Y"); + + return; + } + + void (de.upb.sootup.concrete.inheritance.Inheritance$1) + { + de.upb.sootup.concrete.inheritance.Inheritance$Y r0; + de.upb.sootup.concrete.inheritance.Inheritance$1 r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance$Y; + + r1 := @parameter0: de.upb.sootup.concrete.inheritance.Inheritance$1; + + specialinvoke r0.()>(); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance.jimple new file mode 100644 index 00000000000..44c9fd6ccfe --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance.jimple @@ -0,0 +1,208 @@ +public class de.upb.sootup.concrete.inheritance.Inheritance extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + specialinvoke r0.()>(); + + return; + } + + public void dynDispatch1() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.D $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.D; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } + + public void dynDispatch2() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.B $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.B; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } + + public void singleLevel() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.B $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.B; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } + + public void twoLevels() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.C $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.C; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } + + public void fieldOverwrite() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.C $r2; + int $i0, $i1, $i2; + java.io.PrintStream $r3, $r4, $r5; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.C; + + specialinvoke $r2.()>(); + + $r3 = ; + + $i0 = $r2.; + + virtualinvoke $r3.($i0); + + $r4 = ; + + $i1 = $r2.; + + virtualinvoke $r4.($i1); + + $r5 = ; + + $i2 = $r2.; + + virtualinvoke $r5.($i2); + + return; + } + + public void constructorOverwrite() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.SubConstructor $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.SubConstructor; + + specialinvoke $r2.()>(); + + return; + } + + public void constructorOverwriteArg() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.SubConstructor $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.SubConstructor; + + specialinvoke $r2.(java.lang.String)>("sup"); + + return; + } + + public void nestedClass() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.Inheritance$X $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.Inheritance$X; + + specialinvoke $r2.(de.upb.sootup.concrete.inheritance.Inheritance,de.upb.sootup.concrete.inheritance.Inheritance$1)>(r0, null); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } + + public void staticNestedClass() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.Inheritance$Y $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.Inheritance$Y; + + specialinvoke $r2.(de.upb.sootup.concrete.inheritance.Inheritance$1)>(null); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } + + public void anonymousInheritance() + { + de.upb.sootup.concrete.inheritance.Inheritance r0; + de.upb.sootup.concrete.inheritance.Inheritance$1 $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.Inheritance; + + $r2 = new de.upb.sootup.concrete.inheritance.Inheritance$1; + + specialinvoke $r2.(de.upb.sootup.concrete.inheritance.Inheritance)>(r0); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SubConstructor.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SubConstructor.jimple new file mode 100644 index 00000000000..b01d60d48a8 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SubConstructor.jimple @@ -0,0 +1,38 @@ +public class de.upb.sootup.concrete.inheritance.SubConstructor extends de.upb.sootup.concrete.inheritance.SuperConstructor +{ + + public void () + { + de.upb.sootup.concrete.inheritance.SubConstructor r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.SubConstructor; + + specialinvoke r0.()>(); + + $r1 = ; + + virtualinvoke $r1.("sub"); + + return; + } + + public void (java.lang.String) + { + de.upb.sootup.concrete.inheritance.SubConstructor r0; + java.lang.String r1; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.SubConstructor; + + r1 := @parameter0: java.lang.String; + + specialinvoke r0.(java.lang.String)>(r1); + + $r2 = ; + + virtualinvoke $r2.("sub"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SuperConstructor.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SuperConstructor.jimple new file mode 100644 index 00000000000..7be895cb326 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SuperConstructor.jimple @@ -0,0 +1,38 @@ +public class de.upb.sootup.concrete.inheritance.SuperConstructor extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.inheritance.SuperConstructor r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.inheritance.SuperConstructor; + + specialinvoke r0.()>(); + + $r1 = ; + + virtualinvoke $r1.("sup"); + + return; + } + + public void (java.lang.String) + { + de.upb.sootup.concrete.inheritance.SuperConstructor r0; + java.lang.String r1; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.concrete.inheritance.SuperConstructor; + + r1 := @parameter0: java.lang.String; + + specialinvoke r0.()>(); + + $r2 = ; + + virtualinvoke $r2.(r1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.A.jimple new file mode 100644 index 00000000000..222c9adfb90 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.A.jimple @@ -0,0 +1,39 @@ +public class de.upb.sootup.concrete.interfaces.A extends de.upb.sootup.concrete.interfaces.B implements de.upb.sootup.concrete.interfaces.I2 +{ + + public void () + { + de.upb.sootup.concrete.interfaces.A r0; + + r0 := @this: de.upb.sootup.concrete.interfaces.A; + + specialinvoke r0.()>(); + + return; + } + + public void printI2() + { + de.upb.sootup.concrete.interfaces.A r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.interfaces.A; + + $r1 = ; + + virtualinvoke $r1.("implements i2"); + + return; + } + + public volatile void printI1() + { + de.upb.sootup.concrete.interfaces.A r0; + + r0 := @this: de.upb.sootup.concrete.interfaces.A; + + specialinvoke r0.(); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.B.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.B.jimple new file mode 100644 index 00000000000..81ca84120dc --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.B.jimple @@ -0,0 +1,28 @@ +class de.upb.sootup.concrete.interfaces.B extends java.lang.Object implements de.upb.sootup.concrete.interfaces.I1 +{ + + void () + { + de.upb.sootup.concrete.interfaces.B r0; + + r0 := @this: de.upb.sootup.concrete.interfaces.B; + + specialinvoke r0.()>(); + + return; + } + + public void printI1() + { + de.upb.sootup.concrete.interfaces.B r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.interfaces.B; + + $r1 = ; + + virtualinvoke $r1.("Interface I1"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.C.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.C.jimple new file mode 100644 index 00000000000..a7ba6b40f29 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.C.jimple @@ -0,0 +1,42 @@ +public class de.upb.sootup.concrete.interfaces.C extends java.lang.Object implements de.upb.sootup.concrete.interfaces.I1, de.upb.sootup.concrete.interfaces.I2 +{ + + public void () + { + de.upb.sootup.concrete.interfaces.C r0; + + r0 := @this: de.upb.sootup.concrete.interfaces.C; + + specialinvoke r0.()>(); + + return; + } + + public void printI1() + { + de.upb.sootup.concrete.interfaces.C r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.interfaces.C; + + $r1 = ; + + virtualinvoke $r1.("Interface I1"); + + return; + } + + public void printI2() + { + de.upb.sootup.concrete.interfaces.C r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.interfaces.C; + + $r1 = ; + + virtualinvoke $r1.("Interface I2"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.D.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.D.jimple new file mode 100644 index 00000000000..b3eaf924a4d --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.D.jimple @@ -0,0 +1,28 @@ +public class de.upb.sootup.concrete.interfaces.D extends de.upb.sootup.concrete.interfaces.C +{ + + public void () + { + de.upb.sootup.concrete.interfaces.D r0; + + r0 := @this: de.upb.sootup.concrete.interfaces.D; + + specialinvoke r0.()>(); + + return; + } + + public void printI2() + { + de.upb.sootup.concrete.interfaces.D r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.interfaces.D; + + $r1 = ; + + virtualinvoke $r1.("overwrites i2"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I1.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I1.jimple new file mode 100644 index 00000000000..ed2765531f8 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I1.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.concrete.interfaces.I1 extends java.lang.Object +{ + + public abstract void printI1(); +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I2.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I2.jimple new file mode 100644 index 00000000000..1ee79af6065 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I2.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.concrete.interfaces.I2 extends java.lang.Object +{ + + public abstract void printI2(); +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces$1.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces$1.jimple new file mode 100644 index 00000000000..78f34185f06 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces$1.jimple @@ -0,0 +1,34 @@ +class de.upb.sootup.concrete.interfaces.Interfaces$1 extends java.lang.Object implements de.upb.sootup.concrete.interfaces.I2 +{ + final de.upb.sootup.concrete.interfaces.Interfaces this$0; + + void (de.upb.sootup.concrete.interfaces.Interfaces) + { + de.upb.sootup.concrete.interfaces.Interfaces$1 r0; + de.upb.sootup.concrete.interfaces.Interfaces r1; + + r0 := @this: de.upb.sootup.concrete.interfaces.Interfaces$1; + + r1 := @parameter0: de.upb.sootup.concrete.interfaces.Interfaces; + + r0. = r1; + + specialinvoke r0.()>(); + + return; + } + + public void printI2() + { + de.upb.sootup.concrete.interfaces.Interfaces$1 r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.interfaces.Interfaces$1; + + $r1 = ; + + virtualinvoke $r1.("anonymous i2"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces.jimple new file mode 100644 index 00000000000..3a308224dd5 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces.jimple @@ -0,0 +1,118 @@ +public class de.upb.sootup.concrete.interfaces.Interfaces extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.interfaces.Interfaces r0; + + r0 := @this: de.upb.sootup.concrete.interfaces.Interfaces; + + specialinvoke r0.()>(); + + return; + } + + public void singleInterface() + { + de.upb.sootup.concrete.interfaces.Interfaces r0; + de.upb.sootup.concrete.interfaces.B $r2; + + r0 := @this: de.upb.sootup.concrete.interfaces.Interfaces; + + $r2 = new de.upb.sootup.concrete.interfaces.B; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + return; + } + + public void singleInterfaceDynDispatch() + { + de.upb.sootup.concrete.interfaces.Interfaces r0; + de.upb.sootup.concrete.interfaces.B $r2; + + r0 := @this: de.upb.sootup.concrete.interfaces.Interfaces; + + $r2 = new de.upb.sootup.concrete.interfaces.B; + + specialinvoke $r2.()>(); + + interfaceinvoke $r2.(); + + return; + } + + public void multipleInterface() + { + de.upb.sootup.concrete.interfaces.Interfaces r0; + de.upb.sootup.concrete.interfaces.C $r2; + + r0 := @this: de.upb.sootup.concrete.interfaces.Interfaces; + + $r2 = new de.upb.sootup.concrete.interfaces.C; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } + + public void inheritanceAndInterface() + { + de.upb.sootup.concrete.interfaces.Interfaces r0; + de.upb.sootup.concrete.interfaces.A $r2; + + r0 := @this: de.upb.sootup.concrete.interfaces.Interfaces; + + $r2 = new de.upb.sootup.concrete.interfaces.A; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } + + public void overwriteInterfaceMethod() + { + de.upb.sootup.concrete.interfaces.Interfaces r0; + de.upb.sootup.concrete.interfaces.D $r2; + + r0 := @this: de.upb.sootup.concrete.interfaces.Interfaces; + + $r2 = new de.upb.sootup.concrete.interfaces.D; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + virtualinvoke $r2.(); + + return; + } + + public void anonymousImpl() + { + de.upb.sootup.concrete.interfaces.Interfaces r0; + de.upb.sootup.concrete.interfaces.Interfaces$1 $r2; + + r0 := @this: de.upb.sootup.concrete.interfaces.Interfaces; + + $r2 = new de.upb.sootup.concrete.interfaces.Interfaces$1; + + specialinvoke $r2.(de.upb.sootup.concrete.interfaces.Interfaces)>(r0); + + interfaceinvoke $r2.(); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.LambdaExpressions.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.LambdaExpressions.jimple new file mode 100644 index 00000000000..d3733d9932b --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.LambdaExpressions.jimple @@ -0,0 +1,194 @@ +public class de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions r0; + + r0 := @this: de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + specialinvoke r0.()>(); + + return; + } + + private static void doSomethingStatic() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.("something"); + + return; + } + + public void lambdaRet() + { + de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions r0; + de.upb.sootup.concrete.lambdaExpressions.functionalRet r1; + java.io.PrintStream $r2; + java.lang.String $r3; + + r0 := @this: de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + r1 = dynamicinvoke "eval" () (class "()Ljava/lang/String;", handle: , class "()Ljava/lang/String;"); + + $r2 = ; + + $r3 = interfaceinvoke r1.(); + + virtualinvoke $r2.($r3); + + return; + } + + public void lambdaParam() + { + de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions r0; + de.upb.sootup.concrete.lambdaExpressions.functionalArg r1; + + r0 := @this: de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + r1 = dynamicinvoke "eval" () (class "(Ljava/lang/String;)V", handle: , class "(Ljava/lang/String;)V"); + + interfaceinvoke r1.("arg"); + + return; + } + + public void lambdaVoid() + { + de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions r0; + de.upb.sootup.concrete.lambdaExpressions.functionalVoid r1; + + r0 := @this: de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + r1 = dynamicinvoke "eval" () (class "()V", handle: , class "()V"); + + interfaceinvoke r1.(); + + return; + } + + public void passToMethod() + { + de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions r0; + de.upb.sootup.concrete.lambdaExpressions.functionalVoid $r1; + + r0 := @this: de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + $r1 = dynamicinvoke "eval" () (class "()V", handle: , class "()V"); + + specialinvoke r0.($r1); + + return; + } + + private void doEval(de.upb.sootup.concrete.lambdaExpressions.functionalVoid) + { + de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions r0; + de.upb.sootup.concrete.lambdaExpressions.functionalVoid r1; + + r0 := @this: de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + r1 := @parameter0: de.upb.sootup.concrete.lambdaExpressions.functionalVoid; + + interfaceinvoke r1.(); + + return; + } + + public void functionPointer() + { + de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions r0, $r2; + de.upb.sootup.concrete.lambdaExpressions.functionalVoid $r4; + + r0 := @this: de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + $r2 = new de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + specialinvoke $r2.()>(); + + virtualinvoke $r2.(); + + $r4 = dynamicinvoke "eval" ($r2) (class "()V", handle: , class "()V"); + + specialinvoke r0.($r4); + + return; + } + + private void doSomething() + { + de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + $r1 = ; + + virtualinvoke $r1.("something"); + + return; + } + + public void functionPointerStatic() + { + de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions r0, $r2; + de.upb.sootup.concrete.lambdaExpressions.functionalVoid $r3; + + r0 := @this: de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + $r2 = new de.upb.sootup.concrete.lambdaExpressions.LambdaExpressions; + + specialinvoke $r2.()>(); + + $r3 = dynamicinvoke "eval" () (class "()V", handle: , class "()V"); + + specialinvoke r0.($r3); + + return; + } + + private static void lambda$passToMethod$3() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.("passed as param"); + + return; + } + + private static void lambda$lambdaVoid$2() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.("void"); + + return; + } + + private static void lambda$lambdaParam$1(java.lang.String) + { + java.lang.String r0; + java.io.PrintStream $r1; + + r0 := @parameter0: java.lang.String; + + $r1 = ; + + virtualinvoke $r1.(r0); + + return; + } + + private static java.lang.String lambda$lambdaRet$0() + { + return "foo"; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalArg.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalArg.jimple new file mode 100644 index 00000000000..085306c2c17 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalArg.jimple @@ -0,0 +1,5 @@ +public interface de.upb.sootup.concrete.lambdaExpressions.functionalArg extends java.lang.Object +{ + + public abstract void eval(java.lang.String); +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalRet.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalRet.jimple new file mode 100644 index 00000000000..5fdc212d27d --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalRet.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.concrete.lambdaExpressions.functionalRet extends java.lang.Object +{ + + public abstract java.lang.String eval(); +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalVoid.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalVoid.jimple new file mode 100644 index 00000000000..c6f0dfa818c --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalVoid.jimple @@ -0,0 +1,5 @@ +public interface de.upb.sootup.concrete.lambdaExpressions.functionalVoid extends java.lang.Object +{ + + public abstract void eval(); +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.nestedControlStatements.NestedControlStatements.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.nestedControlStatements.NestedControlStatements.jimple new file mode 100644 index 00000000000..54a53833a0f --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.nestedControlStatements.NestedControlStatements.jimple @@ -0,0 +1,1674 @@ +public class de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements extends java.lang.Object +{ + private int[][] permutations3; + + public void () + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[][] $r1; + int[] $r2, $r3, $r4, $r5, $r6, $r7; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + specialinvoke r0.()>(); + + $r1 = newarray (int[])[6]; + + $r2 = newarray (int)[3]; + + $r2[0] = 1; + + $r2[1] = 2; + + $r2[2] = 3; + + $r1[0] = $r2; + + $r3 = newarray (int)[3]; + + $r3[0] = 2; + + $r3[1] = 1; + + $r3[2] = 3; + + $r1[1] = $r3; + + $r4 = newarray (int)[3]; + + $r4[0] = 3; + + $r4[1] = 1; + + $r4[2] = 2; + + $r1[2] = $r4; + + $r5 = newarray (int)[3]; + + $r5[0] = 1; + + $r5[1] = 3; + + $r5[2] = 2; + + $r1[3] = $r5; + + $r6 = newarray (int)[3]; + + $r6[0] = 2; + + $r6[1] = 3; + + $r6[2] = 1; + + $r1[4] = $r6; + + $r7 = newarray (int)[3]; + + $r7[0] = 3; + + $r7[1] = 2; + + $r7[2] = 1; + + $r1[5] = $r7; + + r0. = $r1; + + return; + } + + public void nestedIfElse() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedIfElse(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2; + java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 := @parameter2: int; + + if i0 >= i1 goto label2; + + $r7 = ; + + virtualinvoke $r7.(1); + + if i1 >= i2 goto label1; + + $r9 = ; + + virtualinvoke $r9.(2); + + goto label6; + + label1: + $r8 = ; + + virtualinvoke $r8.(3); + + goto label6; + + label2: + if i0 >= i2 goto label4; + + $r4 = ; + + virtualinvoke $r4.(4); + + if i1 >= i2 goto label3; + + $r6 = ; + + virtualinvoke $r6.(5); + + goto label6; + + label3: + $r5 = ; + + virtualinvoke $r5.(6); + + goto label6; + + label4: + $r1 = ; + + virtualinvoke $r1.(7); + + if i1 >= i2 goto label5; + + $r3 = ; + + virtualinvoke $r3.(8); + + goto label6; + + label5: + $r2 = ; + + virtualinvoke $r2.(9); + + label6: + return; + } + + public void nestedSwitchIf() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedSwitchIf(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2; + java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 := @parameter2: int; + + if i0 >= i1 goto label04; + + lookupswitch(i0) + { + case 1: goto label01; + case 2: goto label02; + default: goto label03; + }; + + label01: + $r8 = ; + + virtualinvoke $r8.(1); + + label02: + $r7 = ; + + virtualinvoke $r7.(2); + + label03: + $r9 = ; + + virtualinvoke $r9.(3); + + goto label12; + + label04: + if i0 >= i2 goto label08; + + $r4 = ; + + virtualinvoke $r4.(4); + + lookupswitch(i0) + { + case 1: goto label05; + case 2: goto label06; + default: goto label07; + }; + + label05: + $r6 = ; + + virtualinvoke $r6.(5); + + label06: + $r5 = ; + + virtualinvoke $r5.(6); + + label07: + $r10 = ; + + virtualinvoke $r10.(7); + + goto label12; + + label08: + $r1 = ; + + virtualinvoke $r1.(8); + + lookupswitch(i0) + { + case 1: goto label09; + case 2: goto label10; + default: goto label11; + }; + + label09: + $r3 = ; + + virtualinvoke $r3.(9); + + label10: + $r2 = ; + + virtualinvoke $r2.(10); + + label11: + $r11 = ; + + virtualinvoke $r11.(11); + + label12: + return; + } + + public void nestedWhileIf() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedWhileIf(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2; + java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i2 := @parameter0: int; + + i0 := @parameter1: int; + + i1 := @parameter2: int; + + if i2 >= i0 goto label2; + + $r5 = ; + + virtualinvoke $r5.(1); + + label1: + if i2 >= i0 goto label6; + + $r6 = ; + + virtualinvoke $r6.(2); + + i2 = i2 + 1; + + goto label1; + + label2: + if i2 >= i1 goto label4; + + $r3 = ; + + virtualinvoke $r3.(3); + + label3: + if i2 >= i0 goto label6; + + $r4 = ; + + virtualinvoke $r4.(4); + + i2 = i2 + 1; + + goto label3; + + label4: + $r1 = ; + + virtualinvoke $r1.(5); + + label5: + if i2 >= i0 goto label6; + + $r2 = ; + + virtualinvoke $r2.(6); + + i2 = i2 + 1; + + goto label5; + + label6: + return; + } + + public void nestedForIf() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedForIf(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2, i3, i4, i5; + java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 := @parameter2: int; + + if i0 >= i1 goto label3; + + $r5 = ; + + virtualinvoke $r5.(1); + + i3 = 0; + + label1: + if i3 >= i0 goto label2; + + $r6 = ; + + virtualinvoke $r6.(2); + + i3 = i3 + 1; + + goto label1; + + label2: + goto label8; + + label3: + if i0 >= i2 goto label6; + + $r3 = ; + + virtualinvoke $r3.(3); + + i4 = 0; + + label4: + if i4 >= i0 goto label5; + + $r4 = ; + + virtualinvoke $r4.(4); + + i4 = i4 + 1; + + goto label4; + + label5: + goto label8; + + label6: + $r1 = ; + + virtualinvoke $r1.(5); + + i5 = 0; + + label7: + if i5 >= i0 goto label8; + + $r2 = ; + + virtualinvoke $r2.(6); + + i5 = i5 + 1; + + goto label7; + + label8: + return; + } + + public void nestedSwitchSwitch() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedSwitchSwitch(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2; + java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 := @parameter2: int; + + lookupswitch(i0) + { + case 1: goto label01; + case 2: goto label05; + default: goto label09; + }; + + label01: + $r5 = ; + + virtualinvoke $r5.(1); + + lookupswitch(i1) + { + case 1: goto label03; + case 5: goto label02; + default: goto label04; + }; + + label02: + $r6 = ; + + virtualinvoke $r6.(2); + + label03: + $r7 = ; + + virtualinvoke $r7.(3); + + label04: + $r8 = ; + + virtualinvoke $r8.(4); + + label05: + $r9 = ; + + virtualinvoke $r9.(5); + + lookupswitch(i1) + { + case 1: goto label07; + case 5: goto label06; + default: goto label08; + }; + + label06: + $r1 = ; + + virtualinvoke $r1.(6); + + label07: + $r2 = ; + + virtualinvoke $r2.(7); + + label08: + $r10 = ; + + virtualinvoke $r10.(8); + + label09: + $r11 = ; + + virtualinvoke $r11.(9); + + lookupswitch(i1) + { + case 1: goto label11; + case 5: goto label10; + default: goto label12; + }; + + label10: + $r3 = ; + + virtualinvoke $r3.(10); + + label11: + $r4 = ; + + virtualinvoke $r4.(11); + + label12: + $r12 = ; + + virtualinvoke $r12.(12); + + return; + } + + public void nestedIfSwitch() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedIfSwitch(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2; + java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 := @parameter2: int; + + lookupswitch(i0) + { + case 1: goto label01; + case 2: goto label04; + default: goto label07; + }; + + label01: + $r7 = ; + + virtualinvoke $r7.(1); + + if i0 >= i1 goto label02; + + $r10 = ; + + virtualinvoke $r10.(2); + + goto label04; + + label02: + if i0 >= i2 goto label03; + + $r9 = ; + + virtualinvoke $r9.(3); + + goto label04; + + label03: + $r8 = ; + + virtualinvoke $r8.(4); + + label04: + $r11 = ; + + virtualinvoke $r11.(5); + + if i0 >= i1 goto label05; + + $r6 = ; + + virtualinvoke $r6.(6); + + goto label07; + + label05: + if i0 >= i2 goto label06; + + $r5 = ; + + virtualinvoke $r5.(7); + + goto label07; + + label06: + $r1 = ; + + virtualinvoke $r1.(8); + + label07: + $r12 = ; + + virtualinvoke $r12.(9); + + if i0 >= i1 goto label08; + + $r4 = ; + + virtualinvoke $r4.(10); + + goto label10; + + label08: + if i0 >= i2 goto label09; + + $r3 = ; + + virtualinvoke $r3.(11); + + goto label10; + + label09: + $r2 = ; + + virtualinvoke $r2.(12); + + label10: + return; + } + + public void nestedWhileSwitch() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedWhileSwitch(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2; + java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i2 := @parameter0: int; + + i0 := @parameter1: int; + + i1 := @parameter2: int; + + lookupswitch(i2) + { + case 1: goto label1; + case 2: goto label3; + default: goto label5; + }; + + label1: + $r5 = ; + + virtualinvoke $r5.(1); + + label2: + if i2 >= i0 goto label3; + + i2 = i2 + 1; + + $r6 = ; + + virtualinvoke $r6.(2); + + goto label2; + + label3: + $r1 = ; + + virtualinvoke $r1.(3); + + label4: + if i2 >= i0 goto label5; + + i2 = i2 + 1; + + $r4 = ; + + virtualinvoke $r4.(4); + + goto label4; + + label5: + $r2 = ; + + virtualinvoke $r2.(5); + + label6: + if i2 >= i0 goto label7; + + i2 = i2 + 1; + + $r3 = ; + + virtualinvoke $r3.(6); + + goto label6; + + label7: + return; + } + + public void nestedForSwitch() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedForSwitch(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2, i3, i4, i5; + java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 := @parameter2: int; + + lookupswitch(i0) + { + case 1: goto label1; + case 2: goto label3; + default: goto label5; + }; + + label1: + $r5 = ; + + virtualinvoke $r5.(1); + + i3 = 0; + + label2: + if i3 >= i0 goto label3; + + $r6 = ; + + virtualinvoke $r6.(2); + + i3 = i3 + 1; + + goto label2; + + label3: + $r1 = ; + + virtualinvoke $r1.(3); + + i4 = 0; + + label4: + if i4 >= i0 goto label5; + + $r4 = ; + + virtualinvoke $r4.(4); + + i4 = i4 + 1; + + goto label4; + + label5: + $r2 = ; + + virtualinvoke $r2.(5); + + i5 = 0; + + label6: + if i5 >= i0 goto label7; + + $r3 = ; + + virtualinvoke $r3.(6); + + i5 = i5 + 1; + + goto label6; + + label7: + return; + } + + public void nestedWhileWhile() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedWhileWhile(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2; + java.io.PrintStream $r1, $r2; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i1 := @parameter0: int; + + i2 := @parameter1: int; + + i0 := @parameter2: int; + + label1: + if i1 >= i2 goto label4; + + $r1 = ; + + virtualinvoke $r1.(1); + + label2: + if i2 >= i0 goto label3; + + i2 = i2 + 1; + + $r2 = ; + + virtualinvoke $r2.(2); + + goto label2; + + label3: + i1 = i1 + 1; + + goto label1; + + label4: + return; + } + + public void nestedIfWhile() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedIfWhile(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2; + java.io.PrintStream $r1, $r2, $r3, $r4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i2 := @parameter0: int; + + i0 := @parameter1: int; + + i1 := @parameter2: int; + + label1: + if i2 >= i0 goto label5; + + $r1 = ; + + virtualinvoke $r1.(1); + + if i2 >= i0 goto label2; + + $r4 = ; + + virtualinvoke $r4.(2); + + goto label4; + + label2: + if i2 >= i1 goto label3; + + $r3 = ; + + virtualinvoke $r3.(3); + + goto label4; + + label3: + $r2 = ; + + virtualinvoke $r2.(4); + + label4: + i2 = i2 + 1; + + goto label1; + + label5: + return; + } + + public void nestedSwitchWhile() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedSwitchWhile(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2; + java.io.PrintStream $r1, $r2, $r3, $r4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i2 := @parameter0: int; + + i0 := @parameter1: int; + + i1 := @parameter2: int; + + label1: + if i2 >= i0 goto label5; + + $r1 = ; + + virtualinvoke $r1.(1); + + lookupswitch(i2) + { + case 1: goto label2; + case 2: goto label3; + default: goto label4; + }; + + label2: + $r3 = ; + + virtualinvoke $r3.(2); + + label3: + $r2 = ; + + virtualinvoke $r2.(3); + + label4: + $r4 = ; + + virtualinvoke $r4.(4); + + i2 = i2 + 1; + + goto label1; + + label5: + return; + } + + public void nestedForWhile() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedForWhile(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2, i3; + java.io.PrintStream $r1, $r2; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i2 := @parameter0: int; + + i0 := @parameter1: int; + + i1 := @parameter2: int; + + label1: + if i2 >= i0 goto label4; + + $r1 = ; + + virtualinvoke $r1.(1); + + i3 = 0; + + label2: + if i3 >= i2 goto label3; + + $r2 = ; + + virtualinvoke $r2.(2); + + i3 = i3 + 1; + + goto label2; + + label3: + i2 = i2 + 1; + + goto label1; + + label4: + return; + } + + public void nestedIfFor() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int[] r1; + int[][] $r2, $r3; + int $i0, $i1, $i2, $i3, i4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i4 = 0; + + label1: + $r2 = r0.; + + $i0 = lengthof $r2; + + if i4 >= $i0 goto label2; + + $r3 = r0.; + + r1 = $r3[i4]; + + $i3 = r1[0]; + + $i2 = r1[1]; + + $i1 = r1[2]; + + specialinvoke r0.($i3, $i2, $i1); + + i4 = i4 + 1; + + goto label1; + + label2: + return; + } + + private void nestedIfFor(int, int, int) + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int i0, i1, i2, i3; + java.io.PrintStream $r1, $r2, $r3, $r4; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 := @parameter2: int; + + i3 = 0; + + label1: + if i3 >= i0 goto label5; + + $r1 = ; + + virtualinvoke $r1.(1); + + if i0 >= i1 goto label2; + + $r4 = ; + + virtualinvoke $r4.(2); + + goto label4; + + label2: + if i0 >= i2 goto label3; + + $r3 = ; + + virtualinvoke $r3.(3); + + goto label4; + + label3: + $r2 = ; + + virtualinvoke $r2.(4); + + label4: + i3 = i3 + 1; + + goto label1; + + label5: + return; + } + + public void nested_switch_in_for() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + java.io.PrintStream $r1, $r2, $r3, $r4; + int i1, i2; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i1 = 0; + + i2 = 0; + + label1: + if i2 >= 5 goto label5; + + i1 = i1 + 1; + + $r1 = ; + + virtualinvoke $r1.(i1); + + lookupswitch(i1) + { + case 1: goto label2; + case 2: goto label3; + default: goto label4; + }; + + label2: + $r3 = ; + + virtualinvoke $r3.("a"); + + label3: + $r2 = ; + + virtualinvoke $r2.("b"); + + label4: + $r4 = ; + + virtualinvoke $r4.(i1); + + i2 = i2 + 1; + + goto label1; + + label5: + return; + } + + public void nestedWhileFor() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + java.io.PrintStream $r1, $r2; + int i1, i2; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i1 = 5; + + i2 = 0; + + label1: + if i2 >= i1 goto label4; + + $r1 = ; + + virtualinvoke $r1.(i2); + + label2: + if i1 >= 3 goto label3; + + $r2 = ; + + virtualinvoke $r2.("a is smaller than b"); + + i1 = i1 + 1; + + goto label2; + + label3: + i2 = i2 + 1; + + goto label1; + + label4: + return; + } + + public void nestedSwitchFor() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + java.io.PrintStream $r1, $r2; + int i1; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i1 = 0; + + label1: + if i1 >= 5 goto label4; + + lookupswitch(5) + { + case 1: goto label2; + default: goto label3; + }; + + label2: + $r1 = ; + + virtualinvoke $r1.("foo"); + + label3: + $r2 = ; + + virtualinvoke $r2.(5); + + i1 = i1 + 1; + + goto label1; + + label4: + return; + } + + public void nestedForFor() + { + de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements r0; + int $i1, i2, i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.nestedControlStatements.NestedControlStatements; + + i2 = 0; + + label1: + if i2 >= 5 goto label4; + + i3 = 0; + + label2: + if i3 > i2 goto label3; + + $r1 = ; + + $i1 = i2 + i3; + + virtualinvoke $r1.($i1); + + i3 = i3 + 1; + + goto label2; + + label3: + i2 = i2 + 1; + + goto label1; + + label4: + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.A.jimple new file mode 100644 index 00000000000..3c0d953da0f --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.A.jimple @@ -0,0 +1,102 @@ +public class de.upb.sootup.concrete.objects.A extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.objects.A r0; + + r0 := @this: de.upb.sootup.concrete.objects.A; + + specialinvoke r0.()>(); + + return; + } + + public void voidM() + { + de.upb.sootup.concrete.objects.A r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.objects.A; + + $r1 = ; + + virtualinvoke $r1.("foo"); + + return; + } + + public java.lang.String returnM() + { + de.upb.sootup.concrete.objects.A r0; + + r0 := @this: de.upb.sootup.concrete.objects.A; + + return "bar"; + } + + public void argsM(java.lang.String, java.lang.String) + { + de.upb.sootup.concrete.objects.A r0; + java.lang.String r1, r2; + java.io.PrintStream $r3, $r4; + + r0 := @this: de.upb.sootup.concrete.objects.A; + + r1 := @parameter0: java.lang.String; + + r2 := @parameter1: java.lang.String; + + $r3 = ; + + virtualinvoke $r3.(r1); + + $r4 = ; + + virtualinvoke $r4.(r2); + + return; + } + + public transient void argsVar(java.lang.String[]) + { + de.upb.sootup.concrete.objects.A r0; + java.lang.String[] r1; + int i0, i1; + java.lang.String r3; + java.io.PrintStream $r4; + + r0 := @this: de.upb.sootup.concrete.objects.A; + + r1 := @parameter0: java.lang.String[]; + + i0 = lengthof r1; + + i1 = 0; + + label1: + if i1 >= i0 goto label2; + + r3 = r1[i1]; + + $r4 = ; + + virtualinvoke $r4.(r3); + + i1 = i1 + 1; + + goto label1; + + label2: + return; + } + + public java.lang.String toString() + { + de.upb.sootup.concrete.objects.A r0; + + r0 := @this: de.upb.sootup.concrete.objects.A; + + return "A"; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.B.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.B.jimple new file mode 100644 index 00000000000..302b8638f39 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.B.jimple @@ -0,0 +1,28 @@ +public class de.upb.sootup.concrete.objects.B extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.objects.B r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.objects.B; + + specialinvoke r0.()>(); + + $r1 = ; + + virtualinvoke $r1.("constructor"); + + return; + } + + public java.lang.String toString() + { + de.upb.sootup.concrete.objects.B r0; + + r0 := @this: de.upb.sootup.concrete.objects.B; + + return "B"; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.Objects.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.Objects.jimple new file mode 100644 index 00000000000..d9365836efd --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.Objects.jimple @@ -0,0 +1,129 @@ +public class de.upb.sootup.concrete.objects.Objects extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.objects.Objects r0; + + r0 := @this: de.upb.sootup.concrete.objects.Objects; + + specialinvoke r0.()>(); + + return; + } + + public void emptyConstructor() + { + de.upb.sootup.concrete.objects.Objects r0; + de.upb.sootup.concrete.objects.A $r2; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.concrete.objects.Objects; + + $r2 = new de.upb.sootup.concrete.objects.A; + + specialinvoke $r2.()>(); + + $r3 = ; + + virtualinvoke $r3.("A"); + + return; + } + + public void singleConstructor() + { + de.upb.sootup.concrete.objects.Objects r0; + de.upb.sootup.concrete.objects.B $r2; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.concrete.objects.Objects; + + $r2 = new de.upb.sootup.concrete.objects.B; + + specialinvoke $r2.()>(); + + $r3 = ; + + virtualinvoke $r3.("B"); + + return; + } + + public void methodCall() + { + de.upb.sootup.concrete.objects.Objects r0; + de.upb.sootup.concrete.objects.A $r1; + + r0 := @this: de.upb.sootup.concrete.objects.Objects; + + $r1 = new de.upb.sootup.concrete.objects.A; + + specialinvoke $r1.()>(); + + virtualinvoke $r1.(); + + return; + } + + public void methodCallReturn() + { + de.upb.sootup.concrete.objects.Objects r0; + de.upb.sootup.concrete.objects.A $r1; + java.io.PrintStream $r2; + java.lang.String $r3; + + r0 := @this: de.upb.sootup.concrete.objects.Objects; + + $r2 = ; + + $r1 = new de.upb.sootup.concrete.objects.A; + + specialinvoke $r1.()>(); + + $r3 = virtualinvoke $r1.(); + + virtualinvoke $r2.($r3); + + return; + } + + public void methodCallArgs() + { + de.upb.sootup.concrete.objects.Objects r0; + de.upb.sootup.concrete.objects.A $r1; + + r0 := @this: de.upb.sootup.concrete.objects.Objects; + + $r1 = new de.upb.sootup.concrete.objects.A; + + specialinvoke $r1.()>(); + + virtualinvoke $r1.("foo", "bar"); + + return; + } + + public void methodCallVarArgs() + { + de.upb.sootup.concrete.objects.Objects r0; + de.upb.sootup.concrete.objects.A $r1; + java.lang.String[] $r2; + + r0 := @this: de.upb.sootup.concrete.objects.Objects; + + $r1 = new de.upb.sootup.concrete.objects.A; + + specialinvoke $r1.()>(); + + $r2 = newarray (java.lang.String)[2]; + + $r2[0] = "foo"; + + $r2[1] = "bar"; + + virtualinvoke $r1.($r2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.A.jimple new file mode 100644 index 00000000000..29323fa297a --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.A.jimple @@ -0,0 +1,19 @@ +public class de.upb.sootup.concrete.operators.A extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.operators.A r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.A; + + specialinvoke r0.()>(); + + $r1 = ; + + virtualinvoke $r1.("A"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.BooleanOps.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.BooleanOps.jimple new file mode 100644 index 00000000000..7eb7c2f04e5 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.BooleanOps.jimple @@ -0,0 +1,77 @@ +public class de.upb.sootup.concrete.operators.BooleanOps extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.operators.BooleanOps r0; + + r0 := @this: de.upb.sootup.concrete.operators.BooleanOps; + + specialinvoke r0.()>(); + + return; + } + + public void logicalOr() + { + de.upb.sootup.concrete.operators.BooleanOps r0; + java.io.PrintStream $r1; + boolean $z3; + + r0 := @this: de.upb.sootup.concrete.operators.BooleanOps; + + goto label1; + + label1: + $z3 = 1; + + goto label2; + + label2: + $r1 = ; + + virtualinvoke $r1.($z3); + + return; + } + + public void logicalAnd() + { + de.upb.sootup.concrete.operators.BooleanOps r0; + boolean $z3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.BooleanOps; + + $z3 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z3); + + return; + } + + public void logicalNot() + { + de.upb.sootup.concrete.operators.BooleanOps r0; + java.io.PrintStream $r1; + boolean $z2; + + r0 := @this: de.upb.sootup.concrete.operators.BooleanOps; + + $z2 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ByteOps.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ByteOps.jimple new file mode 100644 index 00000000000..86ba4461832 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ByteOps.jimple @@ -0,0 +1,382 @@ +public class de.upb.sootup.concrete.operators.ByteOps extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.operators.ByteOps r0; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + specialinvoke r0.()>(); + + return; + } + + public void addition() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $i3 = 5 + 5; + + b2 = (byte) $i3; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void subtraction() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $i3 = 5 - 5; + + b2 = (byte) $i3; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void multiplication() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $i3 = 5 * 5; + + b2 = (byte) $i3; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void division() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $i3 = 5 / 5; + + b2 = (byte) $i3; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void modulus() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $i3 = 5 % 5; + + b2 = (byte) $i3; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void simpleAssignmentOperator() + { + de.upb.sootup.concrete.operators.ByteOps r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $r1 = ; + + virtualinvoke $r1.(5); + + return; + } + + public void bitwiseAnd() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b2, $b3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $b3 = 5 & 5; + + b2 = (byte) $b3; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void bitwiseOr() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b2, $b3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $b3 = 5 | 5; + + b2 = (byte) $b3; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void bitwiseXor() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b2, $b3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $b3 = 5 ^ 5; + + b2 = (byte) $b3; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void bitwiseCompliment() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b1, $b2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $b2 = 5 ^ -1; + + b1 = (byte) $b2; + + $r1 = ; + + virtualinvoke $r1.(b1); + + return; + } + + public void bitwiseLeftShift() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b1; + int $i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $i2 = 5 << 2; + + b1 = (byte) $i2; + + $r1 = ; + + virtualinvoke $r1.(b1); + + return; + } + + public void bitwiseRightShift() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b1, $b2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $b2 = 5 >> 2; + + b1 = (byte) $b2; + + $r1 = ; + + virtualinvoke $r1.(b1); + + return; + } + + public void bitwiseRightShiftZerofill() + { + de.upb.sootup.concrete.operators.ByteOps r0; + byte b1, $b2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $b2 = 5 >>> 2; + + b1 = (byte) $b2; + + $r1 = ; + + virtualinvoke $r1.(b1); + + return; + } + + public void equals() + { + de.upb.sootup.concrete.operators.ByteOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $z1 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void notEquals() + { + de.upb.sootup.concrete.operators.ByteOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + goto label1; + + label1: + $z1 = 0; + + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greateThan() + { + de.upb.sootup.concrete.operators.ByteOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + goto label1; + + label1: + $z1 = 0; + + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessThan() + { + de.upb.sootup.concrete.operators.ByteOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + goto label1; + + label1: + $z1 = 0; + + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greaterOrEqualsThan() + { + de.upb.sootup.concrete.operators.ByteOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $z1 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessOrEqualsThan() + { + de.upb.sootup.concrete.operators.ByteOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ByteOps; + + $z1 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.DoubleOps.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.DoubleOps.jimple new file mode 100644 index 00000000000..46602be1905 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.DoubleOps.jimple @@ -0,0 +1,281 @@ +public class de.upb.sootup.concrete.operators.DoubleOps extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.operators.DoubleOps r0; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + specialinvoke r0.()>(); + + return; + } + + public void addition() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + double d2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + d2 = 1.6777217E7 + 5.0; + + $r1 = ; + + virtualinvoke $r1.(d2); + + return; + } + + public void subtraction() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + double d2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + d2 = 5.0 - 1.6777217E7; + + $r1 = ; + + virtualinvoke $r1.(d2); + + return; + } + + public void multiplication() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + double d2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + d2 = 5.0 * 1.6777217E7; + + $r1 = ; + + virtualinvoke $r1.(d2); + + return; + } + + public void division() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + double d2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + d2 = 5.0 / 1.6777217E7; + + $r1 = ; + + virtualinvoke $r1.(d2); + + return; + } + + public void modulus() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + double d2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + d2 = 5.0 % 1.6777217E7; + + $r1 = ; + + virtualinvoke $r1.(d2); + + return; + } + + public void simpleAssignmentOperator() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + $r1 = ; + + virtualinvoke $r1.(1.6777217E7); + + return; + } + + public void equals() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + $b0 = 1.6777217E7 cmpl 5.0; + + if $b0 != 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void notEquals() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + $b0 = 1.6777217E7 cmpl 5.0; + + if $b0 == 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greateThan() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + $b0 = 1.6777217E7 cmpl 5.0; + + if $b0 <= 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessThan() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + $b0 = 1.6777217E7 cmpg 5.0; + + if $b0 >= 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greaterOrEqualsThan() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + $b0 = 1.6777217E7 cmpl 5.0; + + if $b0 < 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessOrEqualsThan() + { + de.upb.sootup.concrete.operators.DoubleOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.DoubleOps; + + $b0 = 1.6777217E7 cmpg 5.0; + + if $b0 > 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.FloatOps.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.FloatOps.jimple new file mode 100644 index 00000000000..c756fb47ef7 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.FloatOps.jimple @@ -0,0 +1,281 @@ +public class de.upb.sootup.concrete.operators.FloatOps extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.operators.FloatOps r0; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + specialinvoke r0.()>(); + + return; + } + + public void addition() + { + de.upb.sootup.concrete.operators.FloatOps r0; + float f2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + f2 = 5.5F + 5.0F; + + $r1 = ; + + virtualinvoke $r1.(f2); + + return; + } + + public void subtraction() + { + de.upb.sootup.concrete.operators.FloatOps r0; + float f2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + f2 = 5.0F - 5.5F; + + $r1 = ; + + virtualinvoke $r1.(f2); + + return; + } + + public void multiplication() + { + de.upb.sootup.concrete.operators.FloatOps r0; + float f2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + f2 = 5.0F * 5.5F; + + $r1 = ; + + virtualinvoke $r1.(f2); + + return; + } + + public void division() + { + de.upb.sootup.concrete.operators.FloatOps r0; + float f2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + f2 = 5.0F / 5.5F; + + $r1 = ; + + virtualinvoke $r1.(f2); + + return; + } + + public void modulus() + { + de.upb.sootup.concrete.operators.FloatOps r0; + float f2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + f2 = 5.0F % 5.5F; + + $r1 = ; + + virtualinvoke $r1.(f2); + + return; + } + + public void simpleAssignmentOperator() + { + de.upb.sootup.concrete.operators.FloatOps r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + $r1 = ; + + virtualinvoke $r1.(5.5F); + + return; + } + + public void equals() + { + de.upb.sootup.concrete.operators.FloatOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + $b0 = 5.5F cmpl 5.0F; + + if $b0 != 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void notEquals() + { + de.upb.sootup.concrete.operators.FloatOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + $b0 = 5.5F cmpl 5.0F; + + if $b0 == 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greateThan() + { + de.upb.sootup.concrete.operators.FloatOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + $b0 = 5.5F cmpl 5.0F; + + if $b0 <= 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessThan() + { + de.upb.sootup.concrete.operators.FloatOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + $b0 = 5.5F cmpg 5.0F; + + if $b0 >= 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greaterOrEqualsThan() + { + de.upb.sootup.concrete.operators.FloatOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + $b0 = 5.5F cmpl 5.0F; + + if $b0 < 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessOrEqualsThan() + { + de.upb.sootup.concrete.operators.FloatOps r0; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.FloatOps; + + $b0 = 5.5F cmpg 5.0F; + + if $b0 > 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.IntOps.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.IntOps.jimple new file mode 100644 index 00000000000..f7da17bdc1e --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.IntOps.jimple @@ -0,0 +1,352 @@ +public class de.upb.sootup.concrete.operators.IntOps extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.operators.IntOps r0; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + specialinvoke r0.()>(); + + return; + } + + public void addition() + { + de.upb.sootup.concrete.operators.IntOps r0; + int i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + i2 = 5 + 5; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void subtraction() + { + de.upb.sootup.concrete.operators.IntOps r0; + int i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + i2 = 5 - 5; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void multiplication() + { + de.upb.sootup.concrete.operators.IntOps r0; + int i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + i2 = 5 * 5; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void division() + { + de.upb.sootup.concrete.operators.IntOps r0; + int i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + i2 = 5 / 5; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void modulus() + { + de.upb.sootup.concrete.operators.IntOps r0; + int i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + i2 = 5 % 5; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void simpleAssignmentOperator() + { + de.upb.sootup.concrete.operators.IntOps r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + $r1 = ; + + virtualinvoke $r1.(5); + + return; + } + + public void bitwiseAnd() + { + de.upb.sootup.concrete.operators.IntOps r0; + byte b2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + b2 = 5 & 5; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void bitwiseOr() + { + de.upb.sootup.concrete.operators.IntOps r0; + byte b2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + b2 = 5 | 5; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void bitwiseXor() + { + de.upb.sootup.concrete.operators.IntOps r0; + byte b2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + b2 = 5 ^ 5; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } + + public void bitwiseCompliment() + { + de.upb.sootup.concrete.operators.IntOps r0; + byte b1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + b1 = 5 ^ -1; + + $r1 = ; + + virtualinvoke $r1.(b1); + + return; + } + + public void bitwiseLeftShift() + { + de.upb.sootup.concrete.operators.IntOps r0; + int i1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + i1 = 5 << 2; + + $r1 = ; + + virtualinvoke $r1.(i1); + + return; + } + + public void bitwiseRightShift() + { + de.upb.sootup.concrete.operators.IntOps r0; + byte b1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + b1 = 5 >> 2; + + $r1 = ; + + virtualinvoke $r1.(b1); + + return; + } + + public void bitwiseRightShiftZerofill() + { + de.upb.sootup.concrete.operators.IntOps r0; + byte b1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + b1 = 5 >>> 2; + + $r1 = ; + + virtualinvoke $r1.(b1); + + return; + } + + public void equals() + { + de.upb.sootup.concrete.operators.IntOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + $z1 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void notEquals() + { + de.upb.sootup.concrete.operators.IntOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + goto label1; + + label1: + $z1 = 0; + + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greateThan() + { + de.upb.sootup.concrete.operators.IntOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + goto label1; + + label1: + $z1 = 0; + + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessThan() + { + de.upb.sootup.concrete.operators.IntOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + goto label1; + + label1: + $z1 = 0; + + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greaterOrEqualsThan() + { + de.upb.sootup.concrete.operators.IntOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + $z1 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessOrEqualsThan() + { + de.upb.sootup.concrete.operators.IntOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.IntOps; + + $z1 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.LongOps.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.LongOps.jimple new file mode 100644 index 00000000000..32220190f82 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.LongOps.jimple @@ -0,0 +1,400 @@ +public class de.upb.sootup.concrete.operators.LongOps extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.operators.LongOps r0; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + specialinvoke r0.()>(); + + return; + } + + public void addition() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l2 = 2147483648L + 5L; + + $r1 = ; + + virtualinvoke $r1.(l2); + + return; + } + + public void subtraction() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l2 = 5L - 2147483648L; + + $r1 = ; + + virtualinvoke $r1.(l2); + + return; + } + + public void multiplication() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l2 = 5L * 2147483648L; + + $r1 = ; + + virtualinvoke $r1.(l2); + + return; + } + + public void division() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l2 = 5L / 2147483648L; + + $r1 = ; + + virtualinvoke $r1.(l2); + + return; + } + + public void modulus() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l2 = 5L % 2147483648L; + + $r1 = ; + + virtualinvoke $r1.(l2); + + return; + } + + public void simpleAssignmentOperator() + { + de.upb.sootup.concrete.operators.LongOps r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + $r1 = ; + + virtualinvoke $r1.(2147483648L); + + return; + } + + public void bitwiseAnd() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l2 = 2147483648L & 5L; + + $r1 = ; + + virtualinvoke $r1.(l2); + + return; + } + + public void bitwiseOr() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l2 = 2147483648L | 5L; + + $r1 = ; + + virtualinvoke $r1.(l2); + + return; + } + + public void bitwiseXor() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l2 = 2147483648L ^ 5L; + + $r1 = ; + + virtualinvoke $r1.(l2); + + return; + } + + public void bitwiseCompliment() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l1 = 2147483648L ^ -1L; + + $r1 = ; + + virtualinvoke $r1.(l1); + + return; + } + + public void bitwiseLeftShift() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l1 = 2147483648L << 2; + + $r1 = ; + + virtualinvoke $r1.(l1); + + return; + } + + public void bitwiseRightShift() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l1 = 2147483648L >> 2; + + $r1 = ; + + virtualinvoke $r1.(l1); + + return; + } + + public void bitwiseRightShiftZerofill() + { + de.upb.sootup.concrete.operators.LongOps r0; + long l1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + l1 = 2147483648L >>> 2; + + $r1 = ; + + virtualinvoke $r1.(l1); + + return; + } + + public void equals() + { + de.upb.sootup.concrete.operators.LongOps r0; + byte $b2; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + $b2 = 2147483648L cmp 5L; + + if $b2 != 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void notEquals() + { + de.upb.sootup.concrete.operators.LongOps r0; + byte $b2; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + $b2 = 2147483648L cmp 5L; + + if $b2 == 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greateThan() + { + de.upb.sootup.concrete.operators.LongOps r0; + byte $b2; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + $b2 = 2147483648L cmp 5L; + + if $b2 <= 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessThan() + { + de.upb.sootup.concrete.operators.LongOps r0; + byte $b2; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + $b2 = 2147483648L cmp 5L; + + if $b2 >= 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greaterOrEqualsThan() + { + de.upb.sootup.concrete.operators.LongOps r0; + byte $b2; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + $b2 = 2147483648L cmp 5L; + + if $b2 < 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessOrEqualsThan() + { + de.upb.sootup.concrete.operators.LongOps r0; + byte $b2; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.LongOps; + + $b2 = 2147483648L cmp 5L; + + if $b2 > 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.MiscOps.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.MiscOps.jimple new file mode 100644 index 00000000000..7a187662cba --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.MiscOps.jimple @@ -0,0 +1,73 @@ +public class de.upb.sootup.concrete.operators.MiscOps extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.operators.MiscOps r0; + + r0 := @this: de.upb.sootup.concrete.operators.MiscOps; + + specialinvoke r0.()>(); + + return; + } + + public void instanceofOperator() + { + de.upb.sootup.concrete.operators.MiscOps r0; + boolean z0; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.concrete.operators.MiscOps; + + z0 = "Java" instanceof java.lang.String; + + $r2 = ; + + virtualinvoke $r2.(z0); + + return; + } + + public void instanceofOperator2() + { + de.upb.sootup.concrete.operators.MiscOps r0; + boolean z0; + de.upb.sootup.concrete.operators.A $r2; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.concrete.operators.MiscOps; + + $r2 = new de.upb.sootup.concrete.operators.A; + + specialinvoke $r2.()>(); + + z0 = $r2 instanceof de.upb.sootup.concrete.operators.A; + + $r3 = ; + + virtualinvoke $r3.(z0); + + return; + } + + public void ternaryOperator() + { + de.upb.sootup.concrete.operators.MiscOps r0; + java.io.PrintStream $r2; + java.lang.String $r3; + + r0 := @this: de.upb.sootup.concrete.operators.MiscOps; + + $r3 = "foo"; + + goto label1; + + label1: + $r2 = ; + + virtualinvoke $r2.($r3); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ShortOps.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ShortOps.jimple new file mode 100644 index 00000000000..71e06662404 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ShortOps.jimple @@ -0,0 +1,388 @@ +public class de.upb.sootup.concrete.operators.ShortOps extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.operators.ShortOps r0; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + specialinvoke r0.()>(); + + return; + } + + public void addition() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $i3 = 5 + 5; + + s2 = (short) $i3; + + $r1 = ; + + virtualinvoke $r1.(s2); + + return; + } + + public void subtraction() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $i3 = 5 - 5; + + s2 = (short) $i3; + + $r1 = ; + + virtualinvoke $r1.(s2); + + return; + } + + public void multiplication() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $i3 = 5 * 5; + + s2 = (short) $i3; + + $r1 = ; + + virtualinvoke $r1.(s2); + + return; + } + + public void division() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $i3 = 5 / 5; + + s2 = (short) $i3; + + $r1 = ; + + virtualinvoke $r1.(s2); + + return; + } + + public void modulus() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s2; + int $i3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $i3 = 5 % 5; + + s2 = (short) $i3; + + $r1 = ; + + virtualinvoke $r1.(s2); + + return; + } + + public void simpleAssignmentOperator() + { + de.upb.sootup.concrete.operators.ShortOps r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $r1 = ; + + virtualinvoke $r1.(5); + + return; + } + + public void bitwiseAnd() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s2; + byte $b3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $b3 = 5 & 5; + + s2 = (short) $b3; + + $r1 = ; + + virtualinvoke $r1.(s2); + + return; + } + + public void bitwiseOr() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s2; + byte $b3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $b3 = 5 | 5; + + s2 = (short) $b3; + + $r1 = ; + + virtualinvoke $r1.(s2); + + return; + } + + public void bitwiseXor() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s2; + byte $b3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $b3 = 5 ^ 5; + + s2 = (short) $b3; + + $r1 = ; + + virtualinvoke $r1.(s2); + + return; + } + + public void bitwiseCompliment() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s1; + byte $b2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $b2 = 5 ^ -1; + + s1 = (short) $b2; + + $r1 = ; + + virtualinvoke $r1.(s1); + + return; + } + + public void bitwiseLeftShift() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s1; + int $i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $i2 = 5 << 2; + + s1 = (short) $i2; + + $r1 = ; + + virtualinvoke $r1.(s1); + + return; + } + + public void bitwiseRightShift() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s1; + byte $b2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $b2 = 5 >> 2; + + s1 = (short) $b2; + + $r1 = ; + + virtualinvoke $r1.(s1); + + return; + } + + public void bitwiseRightShiftZerofill() + { + de.upb.sootup.concrete.operators.ShortOps r0; + short s1; + byte $b2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $b2 = 5 >>> 2; + + s1 = (short) $b2; + + $r1 = ; + + virtualinvoke $r1.(s1); + + return; + } + + public void equals() + { + de.upb.sootup.concrete.operators.ShortOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $z1 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void notEquals() + { + de.upb.sootup.concrete.operators.ShortOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + goto label1; + + label1: + $z1 = 0; + + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greateThan() + { + de.upb.sootup.concrete.operators.ShortOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + goto label1; + + label1: + $z1 = 0; + + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessThan() + { + de.upb.sootup.concrete.operators.ShortOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + goto label1; + + label1: + $z1 = 0; + + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void greaterOrEqualsThan() + { + de.upb.sootup.concrete.operators.ShortOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $z1 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void lessOrEqualsThan() + { + de.upb.sootup.concrete.operators.ShortOps r0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.concrete.operators.ShortOps; + + $z1 = 1; + + goto label1; + + label1: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.A.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.A.jimple new file mode 100644 index 00000000000..0cb8f0e6ba4 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.A.jimple @@ -0,0 +1,25 @@ +public class de.upb.sootup.concrete.reflection.A extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.reflection.A r0; + + r0 := @this: de.upb.sootup.concrete.reflection.A; + + specialinvoke r0.()>(); + + return; + } + + public static void staticFoo() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.("foo"); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.Reflection.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.Reflection.jimple similarity index 87% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.Reflection.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.Reflection.jimple index b263ad865ea..592f0f3be2f 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.Reflection.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.Reflection.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.concrete.reflection.Reflection extends java.lang.Object +public class de.upb.sootup.concrete.reflection.Reflection extends java.lang.Object { public void () { - de.upb.soot.concrete.reflection.Reflection r0; + de.upb.sootup.concrete.reflection.Reflection r0; - r0 := @this: de.upb.soot.concrete.reflection.Reflection; + r0 := @this: de.upb.sootup.concrete.reflection.Reflection; specialinvoke r0.()>(); diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticFields.StaticFields.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticFields.StaticFields.jimple new file mode 100644 index 00000000000..259730dc320 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticFields.StaticFields.jimple @@ -0,0 +1,70 @@ +public class de.upb.sootup.concrete.staticFields.StaticFields extends java.lang.Object +{ + private static final int finalInt; + private static int nonFinalInt; + + public void () + { + de.upb.sootup.concrete.staticFields.StaticFields r0; + + r0 := @this: de.upb.sootup.concrete.staticFields.StaticFields; + + specialinvoke r0.()>(); + + return; + } + + public static void finalField() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.(10); + + return; + } + + public static void nonFinalField() + { + int $i0; + java.io.PrintStream $r0; + + $r0 = ; + + $i0 = ; + + virtualinvoke $r0.($i0); + + return; + } + + public static void nonFinalFieldAltered() + { + int $i0, $i1, $i2; + java.io.PrintStream $r0; + + $i0 = ; + + $i1 = $i0 + 1; + + = $i1; + + $r0 = ; + + $i2 = ; + + virtualinvoke $r0.($i2); + + return; + } + + static void () + { + = 10; + + = 5; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticInvoke.StaticInvoke.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticInvoke.StaticInvoke.jimple new file mode 100644 index 00000000000..23ee461856f --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticInvoke.StaticInvoke.jimple @@ -0,0 +1,32 @@ +public class de.upb.sootup.concrete.staticInvoke.StaticInvoke extends java.lang.Object +{ + + public void () + { + de.upb.sootup.concrete.staticInvoke.StaticInvoke r0; + + r0 := @this: de.upb.sootup.concrete.staticInvoke.StaticInvoke; + + specialinvoke r0.()>(); + + return; + } + + public static void staticInvoke() + { + staticinvoke (); + + return; + } + + private static void callee() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.("foo"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AddExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AddExprTest.jimple new file mode 100644 index 00000000000..b4f19964ea3 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AddExprTest.jimple @@ -0,0 +1,54 @@ +public class de.upb.sootup.instructions.expr.AddExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.AddExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.AddExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void addition(int, int) + { + de.upb.sootup.instructions.expr.AddExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.AddExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 + i1; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void addAssignmentOperator(int) + { + de.upb.sootup.instructions.expr.AddExprTest r0; + int i0, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.AddExprTest; + + i0 := @parameter0: int; + + i2 = 0 + i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AndExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AndExprTest.jimple new file mode 100644 index 00000000000..8013e991928 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AndExprTest.jimple @@ -0,0 +1,86 @@ +public class de.upb.sootup.instructions.expr.AndExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.AndExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.AndExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void logicalAND(boolean, boolean) + { + de.upb.sootup.instructions.expr.AndExprTest r0; + boolean z0, z1, $z3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.AndExprTest; + + z0 := @parameter0: boolean; + + z1 := @parameter1: boolean; + + if z0 == 0 goto label1; + + if z1 == 0 goto label1; + + $z3 = 1; + + goto label2; + + label1: + $z3 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z3); + + return; + } + + public void bitwiseAND(int, int) + { + de.upb.sootup.instructions.expr.AndExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.AndExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 & i1; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void bitwiseANDAssignment(int) + { + de.upb.sootup.instructions.expr.AndExprTest r0; + int i0; + java.io.PrintStream $r1; + byte b2; + + r0 := @this: de.upb.sootup.instructions.expr.AndExprTest; + + i0 := @parameter0: int; + + b2 = 0 & 2; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CastExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CastExprTest.jimple new file mode 100644 index 00000000000..e9dfa972f58 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CastExprTest.jimple @@ -0,0 +1,105 @@ +public class de.upb.sootup.instructions.expr.CastExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.CastExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.CastExprTest; + + specialinvoke r0.()>(); + + return; + } + + void number() + { + de.upb.sootup.instructions.expr.CastExprTest r0; + double d0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.CastExprTest; + + d0 = (double) 3; + + $r1 = ; + + virtualinvoke $r1.(d0); + + return; + } + + void numberExplicit() + { + de.upb.sootup.instructions.expr.CastExprTest r0; + double d0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.CastExprTest; + + d0 = (double) 3; + + $r1 = ; + + virtualinvoke $r1.(d0); + + return; + } + + void numberExplicitNeeded() + { + de.upb.sootup.instructions.expr.CastExprTest r0; + int i0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.CastExprTest; + + i0 = (int) 3.14; + + $r1 = ; + + virtualinvoke $r1.(i0); + + return; + } + + void nonPrimitive() + { + de.upb.sootup.instructions.expr.CastExprTest r0; + java.lang.Boolean $r3; + java.io.PrintStream $r4; + + r0 := @this: de.upb.sootup.instructions.expr.CastExprTest; + + $r3 = new java.lang.Boolean; + + specialinvoke $r3.(boolean)>(1); + + $r4 = ; + + virtualinvoke $r4.($r3); + + return; + } + + void nonPrimitiveExplicitNeeded() + { + de.upb.sootup.instructions.expr.CastExprTest r0; + java.lang.Boolean r3, $r4; + java.io.PrintStream $r5; + + r0 := @this: de.upb.sootup.instructions.expr.CastExprTest; + + $r4 = new java.lang.Boolean; + + specialinvoke $r4.(boolean)>(1); + + r3 = (java.lang.Boolean) $r4; + + $r5 = ; + + virtualinvoke $r5.(r3); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpExprTest.jimple similarity index 77% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpExprTest.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpExprTest.jimple index 6fdc47eaaba..93b21bc06a5 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpExprTest.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpExprTest.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.expr.CmpExprTest extends java.lang.Object +public class de.upb.sootup.instructions.expr.CmpExprTest extends java.lang.Object { public void () { - de.upb.soot.instructions.expr.CmpExprTest r0; + de.upb.sootup.instructions.expr.CmpExprTest r0; - r0 := @this: de.upb.soot.instructions.expr.CmpExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmpExprTest; specialinvoke r0.()>(); @@ -14,13 +14,13 @@ public class de.upb.soot.instructions.expr.CmpExprTest extends java.lang.Object public void cmpOperatorNotEqual(long, long) { - de.upb.soot.instructions.expr.CmpExprTest r0; + de.upb.sootup.instructions.expr.CmpExprTest r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmpExprTest; l0 := @parameter0: long; @@ -47,13 +47,13 @@ public class de.upb.soot.instructions.expr.CmpExprTest extends java.lang.Object public void cmpOperatorEqual(long, long) { - de.upb.soot.instructions.expr.CmpExprTest r0; + de.upb.sootup.instructions.expr.CmpExprTest r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmpExprTest; l0 := @parameter0: long; @@ -80,13 +80,13 @@ public class de.upb.soot.instructions.expr.CmpExprTest extends java.lang.Object public void cmpOperatorLower(long, long) { - de.upb.soot.instructions.expr.CmpExprTest r0; + de.upb.sootup.instructions.expr.CmpExprTest r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmpExprTest; l0 := @parameter0: long; @@ -113,13 +113,13 @@ public class de.upb.soot.instructions.expr.CmpExprTest extends java.lang.Object public void cmpOperatorLowerEqual(long, long) { - de.upb.soot.instructions.expr.CmpExprTest r0; + de.upb.sootup.instructions.expr.CmpExprTest r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmpExprTest; l0 := @parameter0: long; @@ -146,13 +146,13 @@ public class de.upb.soot.instructions.expr.CmpExprTest extends java.lang.Object public void cmpOperatorGreater(long, long) { - de.upb.soot.instructions.expr.CmpExprTest r0; + de.upb.sootup.instructions.expr.CmpExprTest r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmpExprTest; l0 := @parameter0: long; @@ -179,13 +179,13 @@ public class de.upb.soot.instructions.expr.CmpExprTest extends java.lang.Object public void cmpOperatorGreaterEqual(long, long) { - de.upb.soot.instructions.expr.CmpExprTest r0; + de.upb.sootup.instructions.expr.CmpExprTest r0; long l0, l1; byte $b2; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmpExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmpExprTest; l0 := @parameter0: long; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpgExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpgExprTest.jimple new file mode 100644 index 00000000000..fb27014f6b6 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpgExprTest.jimple @@ -0,0 +1,80 @@ +public class de.upb.sootup.instructions.expr.CmpgExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.CmpgExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.CmpgExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void cmpgOperatorLower(float, float) + { + de.upb.sootup.instructions.expr.CmpgExprTest r0; + float f0, f1; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.CmpgExprTest; + + f0 := @parameter0: float; + + f1 := @parameter1: float; + + $b0 = f0 cmpg f1; + + if $b0 >= 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } + + public void cmpgOperatorLowerEqual(float, float) + { + de.upb.sootup.instructions.expr.CmpgExprTest r0; + float f0, f1; + byte $b0; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.CmpgExprTest; + + f0 := @parameter0: float; + + f1 := @parameter1: float; + + $b0 = f0 cmpg f1; + + if $b0 > 0 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmplExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmplExprTest.jimple similarity index 76% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmplExprTest.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmplExprTest.jimple index 53961cab89c..eb6493ed1f0 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmplExprTest.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmplExprTest.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.expr.CmplExprTest extends java.lang.Object +public class de.upb.sootup.instructions.expr.CmplExprTest extends java.lang.Object { public void () { - de.upb.soot.instructions.expr.CmplExprTest r0; + de.upb.sootup.instructions.expr.CmplExprTest r0; - r0 := @this: de.upb.soot.instructions.expr.CmplExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmplExprTest; specialinvoke r0.()>(); @@ -14,13 +14,13 @@ public class de.upb.soot.instructions.expr.CmplExprTest extends java.lang.Object public void cmplOperatorNotEqual(float, float) { - de.upb.soot.instructions.expr.CmplExprTest r0; + de.upb.sootup.instructions.expr.CmplExprTest r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmplExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmplExprTest; f0 := @parameter0: float; @@ -47,13 +47,13 @@ public class de.upb.soot.instructions.expr.CmplExprTest extends java.lang.Object public void cmplOperatorEqual(float, float) { - de.upb.soot.instructions.expr.CmplExprTest r0; + de.upb.sootup.instructions.expr.CmplExprTest r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmplExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmplExprTest; f0 := @parameter0: float; @@ -80,13 +80,13 @@ public class de.upb.soot.instructions.expr.CmplExprTest extends java.lang.Object public void cmplOperatorGreater(float, float) { - de.upb.soot.instructions.expr.CmplExprTest r0; + de.upb.sootup.instructions.expr.CmplExprTest r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmplExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmplExprTest; f0 := @parameter0: float; @@ -113,13 +113,13 @@ public class de.upb.soot.instructions.expr.CmplExprTest extends java.lang.Object public void cmplOperatorGreaterEqual(float, float) { - de.upb.soot.instructions.expr.CmplExprTest r0; + de.upb.sootup.instructions.expr.CmplExprTest r0; float f0, f1; byte $b0; java.io.PrintStream $r1; boolean $z1; - r0 := @this: de.upb.soot.instructions.expr.CmplExprTest; + r0 := @this: de.upb.sootup.instructions.expr.CmplExprTest; f0 := @parameter0: float; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DivExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DivExprTest.jimple new file mode 100644 index 00000000000..8e14bb0a52a --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DivExprTest.jimple @@ -0,0 +1,56 @@ +public class de.upb.sootup.instructions.expr.DivExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.DivExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.DivExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void division(int, int) + { + de.upb.sootup.instructions.expr.DivExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.DivExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 / i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void divisionAssignment(int, int) + { + de.upb.sootup.instructions.expr.DivExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.DivExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 / i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DynamicInvokeExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DynamicInvokeExprTest.jimple new file mode 100644 index 00000000000..c46be377cba --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DynamicInvokeExprTest.jimple @@ -0,0 +1,64 @@ +public class de.upb.sootup.instructions.expr.DynamicInvokeExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.DynamicInvokeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.DynamicInvokeExprTest; + + specialinvoke r0.()>(); + + return; + } + + java.lang.String sth() + { + de.upb.sootup.instructions.expr.DynamicInvokeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.DynamicInvokeExprTest; + + return "something"; + } + + void invoke() throws java.lang.Throwable + { + de.upb.sootup.instructions.expr.DynamicInvokeExprTest r0, $r5; + java.lang.invoke.MethodHandles$Lookup r1; + java.lang.invoke.MethodType r2; + java.lang.invoke.MethodHandle r3; + java.lang.String r4, $r10; + java.lang.StringBuilder $r6, $r8, $r9; + java.io.PrintStream $r7; + + r0 := @this: de.upb.sootup.instructions.expr.DynamicInvokeExprTest; + + r1 = staticinvoke (); + + r2 = staticinvoke (class "Ljava/lang/String;"); + + r3 = virtualinvoke r1.(class "Lde/upb/soot/instructions/expr/DynamicInvokeExprTest;", "sth", r2); + + $r5 = new de.upb.sootup.instructions.expr.DynamicInvokeExprTest; + + specialinvoke $r5.()>(); + + r4 = virtualinvoke r3.($r5); + + $r7 = ; + + $r6 = new java.lang.StringBuilder; + + specialinvoke $r6.()>(); + + $r8 = virtualinvoke $r6.("dynamic invoked method returned: "); + + $r9 = virtualinvoke $r8.(r4); + + $r10 = virtualinvoke $r9.(); + + virtualinvoke $r7.($r10); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.EqExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.EqExprTest.jimple new file mode 100644 index 00000000000..db5489ba9fa --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.EqExprTest.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.EqExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.EqExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.EqExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void EqualTo(int, int) + { + de.upb.sootup.instructions.expr.EqExprTest r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.EqExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 != i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GeExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GeExprTest.jimple new file mode 100644 index 00000000000..7ff212fc2bc --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GeExprTest.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.GeExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.GeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.GeExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void greaterThan(int, int) + { + de.upb.sootup.instructions.expr.GeExprTest r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.GeExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 < i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GtExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GtExprTest.jimple new file mode 100644 index 00000000000..f9e02496919 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GtExprTest.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.GtExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.GtExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.GtExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void greaterThan(int, int) + { + de.upb.sootup.instructions.expr.GtExprTest r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.GtExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 <= i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.IThing.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.IThing.jimple new file mode 100644 index 00000000000..11a927d4fc9 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.IThing.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.instructions.expr.IThing extends java.lang.Object +{ + + public abstract int getId(); +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InstanceOfExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InstanceOfExprTest.jimple similarity index 80% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InstanceOfExprTest.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InstanceOfExprTest.jimple index ebc8a82f7a9..fb6f49663f0 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InstanceOfExprTest.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InstanceOfExprTest.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.expr.InstanceOfExprTest extends java.lang.Object +public class de.upb.sootup.instructions.expr.InstanceOfExprTest extends java.lang.Object { public void () { - de.upb.soot.instructions.expr.InstanceOfExprTest r0; + de.upb.sootup.instructions.expr.InstanceOfExprTest r0; - r0 := @this: de.upb.soot.instructions.expr.InstanceOfExprTest; + r0 := @this: de.upb.sootup.instructions.expr.InstanceOfExprTest; specialinvoke r0.()>(); @@ -14,14 +14,14 @@ public class de.upb.soot.instructions.expr.InstanceOfExprTest extends java.lang. void isObject() { - de.upb.soot.instructions.expr.InstanceOfExprTest r0; + de.upb.sootup.instructions.expr.InstanceOfExprTest r0; boolean z0; java.lang.Integer $r2; java.lang.StringBuilder $r3, $r5, $r6; java.io.PrintStream $r4; java.lang.String $r7; - r0 := @this: de.upb.soot.instructions.expr.InstanceOfExprTest; + r0 := @this: de.upb.sootup.instructions.expr.InstanceOfExprTest; $r2 = new java.lang.Integer; @@ -48,14 +48,14 @@ public class de.upb.soot.instructions.expr.InstanceOfExprTest extends java.lang. void isInteger() { - de.upb.soot.instructions.expr.InstanceOfExprTest r0; + de.upb.sootup.instructions.expr.InstanceOfExprTest r0; boolean z0; java.lang.Integer $r2; java.lang.StringBuilder $r3, $r5, $r6; java.io.PrintStream $r4; java.lang.String $r7; - r0 := @this: de.upb.soot.instructions.expr.InstanceOfExprTest; + r0 := @this: de.upb.sootup.instructions.expr.InstanceOfExprTest; $r2 = new java.lang.Integer; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InterfaceInvokeExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InterfaceInvokeExprTest.jimple new file mode 100644 index 00000000000..5ed9502d694 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InterfaceInvokeExprTest.jimple @@ -0,0 +1,36 @@ +public class de.upb.sootup.instructions.expr.InterfaceInvokeExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.InterfaceInvokeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.InterfaceInvokeExprTest; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.expr.InterfaceInvokeExprTest r0; + int i0; + de.upb.sootup.instructions.expr.Pear $r2; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.instructions.expr.InterfaceInvokeExprTest; + + $r2 = new de.upb.sootup.instructions.expr.Pear; + + specialinvoke $r2.()>(); + + i0 = interfaceinvoke $r2.(); + + $r3 = ; + + virtualinvoke $r3.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LeExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LeExprTest.jimple new file mode 100644 index 00000000000..78c1b58704c --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LeExprTest.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.LeExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.LeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.LeExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void lowerEqual(int, int) + { + de.upb.sootup.instructions.expr.LeExprTest r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.LeExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 > i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LengthExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LengthExprTest.jimple new file mode 100644 index 00000000000..7e4a84ee563 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LengthExprTest.jimple @@ -0,0 +1,34 @@ +public class de.upb.sootup.instructions.expr.LengthExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.LengthExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.LengthExprTest; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.expr.LengthExprTest r0; + int[][] r1; + int i0; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.instructions.expr.LengthExprTest; + + r1 = newmultiarray (int)[42][10]; + + i0 = lengthof r1; + + $r2 = ; + + virtualinvoke $r2.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LtExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LtExprTest.jimple new file mode 100644 index 00000000000..e568e8275d4 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LtExprTest.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.LtExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.LtExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.LtExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void lowerThan(int, int) + { + de.upb.sootup.instructions.expr.LtExprTest r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.LtExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 >= i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.MulExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.MulExprTest.jimple new file mode 100644 index 00000000000..f64171b75c7 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.MulExprTest.jimple @@ -0,0 +1,56 @@ +public class de.upb.sootup.instructions.expr.MulExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.MulExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.MulExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void multiplication(int, int) + { + de.upb.sootup.instructions.expr.MulExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.MulExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 * i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void multiplicationAssignment(int, int) + { + de.upb.sootup.instructions.expr.MulExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.MulExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 * i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NeExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NeExprTest.jimple new file mode 100644 index 00000000000..0e6c60c4fd0 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NeExprTest.jimple @@ -0,0 +1,44 @@ +public class de.upb.sootup.instructions.expr.NeExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.NeExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void notEqual(int, int) + { + de.upb.sootup.instructions.expr.NeExprTest r0; + int i0, i1; + java.io.PrintStream $r1; + boolean $z1; + + r0 := @this: de.upb.sootup.instructions.expr.NeExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + if i0 == i1 goto label1; + + $z1 = 1; + + goto label2; + + label1: + $z1 = 0; + + label2: + $r1 = ; + + virtualinvoke $r1.($z1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NegateExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NegateExprTest.jimple new file mode 100644 index 00000000000..a03c625f835 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NegateExprTest.jimple @@ -0,0 +1,31 @@ +public class de.upb.sootup.instructions.expr.NegateExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NegateExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.NegateExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void sth() + { + de.upb.sootup.instructions.expr.NegateExprTest r0; + byte b1; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.NegateExprTest; + + b1 = neg 42; + + $r1 = ; + + virtualinvoke $r1.(b1); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewArrayExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewArrayExprTest.jimple new file mode 100644 index 00000000000..2d30f481173 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewArrayExprTest.jimple @@ -0,0 +1,52 @@ +public class de.upb.sootup.instructions.expr.NewArrayExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NewArrayExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.NewArrayExprTest; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.expr.NewArrayExprTest r0; + int[] r1, r2; + double[] r3; + boolean[] r4; + char[] r5; + java.lang.String[] r6; + java.lang.Integer[] r7; + java.lang.Double[] r8; + java.lang.Boolean[] r9; + java.lang.Object[] r10; + + r0 := @this: de.upb.sootup.instructions.expr.NewArrayExprTest; + + r1 = newarray (int)[123]; + + r2 = newarray (int)[2]; + + r3 = newarray (double)[3]; + + r4 = newarray (boolean)[4]; + + r5 = newarray (char)[5]; + + r6 = newarray (java.lang.String)[6]; + + r7 = newarray (java.lang.Integer)[7]; + + r8 = newarray (java.lang.Double)[8]; + + r9 = newarray (java.lang.Boolean)[9]; + + r10 = newarray (java.lang.Object)[10]; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewExprTest.jimple new file mode 100644 index 00000000000..ad7518059b6 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewExprTest.jimple @@ -0,0 +1,42 @@ +public class de.upb.sootup.instructions.expr.NewExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NewExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.NewExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void sth() + { + de.upb.sootup.instructions.expr.NewExprTest r0; + java.lang.Integer $r3; + java.io.PrintStream $r4, $r6; + java.lang.Boolean $r5; + + r0 := @this: de.upb.sootup.instructions.expr.NewExprTest; + + $r3 = new java.lang.Integer; + + specialinvoke $r3.(int)>(42); + + $r4 = ; + + virtualinvoke $r4.($r3); + + $r5 = new java.lang.Boolean; + + specialinvoke $r5.(boolean)>(1); + + $r6 = ; + + virtualinvoke $r6.($r5); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewMultiArrayExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewMultiArrayExprTest.jimple new file mode 100644 index 00000000000..2cdffe7a4a1 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewMultiArrayExprTest.jimple @@ -0,0 +1,57 @@ +public class de.upb.sootup.instructions.expr.NewMultiArrayExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.NewMultiArrayExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.NewMultiArrayExprTest; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.expr.NewMultiArrayExprTest r0; + int[][] r1; + int i0; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.instructions.expr.NewMultiArrayExprTest; + + r1 = newmultiarray (int)[42][10]; + + i0 = lengthof r1; + + $r2 = ; + + virtualinvoke $r2.(i0); + + return; + } + + void nonPrimitive() + { + de.upb.sootup.instructions.expr.NewMultiArrayExprTest r0; + java.lang.String[][] r1; + int i0; + java.lang.String[] $r2; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.instructions.expr.NewMultiArrayExprTest; + + r1 = newmultiarray (java.lang.String)[3][10]; + + $r2 = r1[0]; + + i0 = lengthof $r2; + + $r3 = ; + + virtualinvoke $r3.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.OrExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.OrExprTest.jimple new file mode 100644 index 00000000000..d77c8960ef7 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.OrExprTest.jimple @@ -0,0 +1,88 @@ +public class de.upb.sootup.instructions.expr.OrExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.OrExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.OrExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void logicalOR(boolean, boolean) + { + de.upb.sootup.instructions.expr.OrExprTest r0; + boolean z0, z1, $z3; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.OrExprTest; + + z0 := @parameter0: boolean; + + z1 := @parameter1: boolean; + + if z0 != 0 goto label1; + + if z1 == 0 goto label2; + + label1: + $z3 = 1; + + goto label3; + + label2: + $z3 = 0; + + label3: + $r1 = ; + + virtualinvoke $r1.($z3); + + return; + } + + public void bitwiseOR(int, int) + { + de.upb.sootup.instructions.expr.OrExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.OrExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 | i1; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void bitwiseORAssignment(int, int) + { + de.upb.sootup.instructions.expr.OrExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.OrExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 | i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.Pear.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.Pear.jimple new file mode 100644 index 00000000000..4fdff5f30e5 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.Pear.jimple @@ -0,0 +1,23 @@ +class de.upb.sootup.instructions.expr.Pear extends java.lang.Object implements de.upb.sootup.instructions.expr.IThing +{ + + void () + { + de.upb.sootup.instructions.expr.Pear r0; + + r0 := @this: de.upb.sootup.instructions.expr.Pear; + + specialinvoke r0.()>(); + + return; + } + + public int getId() + { + de.upb.sootup.instructions.expr.Pear r0; + + r0 := @this: de.upb.sootup.instructions.expr.Pear; + + return 42; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.RemExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.RemExprTest.jimple new file mode 100644 index 00000000000..f935754bf23 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.RemExprTest.jimple @@ -0,0 +1,56 @@ +public class de.upb.sootup.instructions.expr.RemExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.RemExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.RemExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void modulus(int, int) + { + de.upb.sootup.instructions.expr.RemExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.RemExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 % i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } + + public void modulusAssign(int, int) + { + de.upb.sootup.instructions.expr.RemExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.RemExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 % i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShlExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShlExprTest.jimple new file mode 100644 index 00000000000..e763dfb749d --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShlExprTest.jimple @@ -0,0 +1,35 @@ +public class de.upb.sootup.instructions.expr.ShlExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.ShlExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.ShlExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void bitwiseLeftShift(int, int) + { + de.upb.sootup.instructions.expr.ShlExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.ShlExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 << 2; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShrExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShrExprTest.jimple new file mode 100644 index 00000000000..1d82fde5b16 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShrExprTest.jimple @@ -0,0 +1,35 @@ +public class de.upb.sootup.instructions.expr.ShrExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.ShrExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.ShrExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void bitwiseRightShift(int, int) + { + de.upb.sootup.instructions.expr.ShrExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.ShrExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 >> 2; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SpecialInvokeExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SpecialInvokeExprTest.jimple new file mode 100644 index 00000000000..a9543f890cb --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SpecialInvokeExprTest.jimple @@ -0,0 +1,78 @@ +public class de.upb.sootup.instructions.expr.SpecialInvokeExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.SpecialInvokeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExprTest; + + specialinvoke r0.()>(); + + return; + } + + private double someMethod() + { + de.upb.sootup.instructions.expr.SpecialInvokeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExprTest; + + return 3.14; + } + + void local() + { + de.upb.sootup.instructions.expr.SpecialInvokeExprTest r0, $r2; + double d0; + java.io.PrintStream $r3; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExprTest; + + $r2 = new de.upb.sootup.instructions.expr.SpecialInvokeExprTest; + + specialinvoke $r2.()>(); + + d0 = specialinvoke $r2.(); + + $r3 = ; + + virtualinvoke $r3.(d0); + + return; + } + + void method() + { + de.upb.sootup.instructions.expr.SpecialInvokeExprTest r0; + double d0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExprTest; + + d0 = specialinvoke r0.(); + + $r1 = ; + + virtualinvoke $r1.(d0); + + return; + } + + void fromsuperclass() + { + de.upb.sootup.instructions.expr.SpecialInvokeExprTest r0; + int i0; + java.io.PrintStream $r2; + + r0 := @this: de.upb.sootup.instructions.expr.SpecialInvokeExprTest; + + i0 = virtualinvoke r0.(); + + $r2 = ; + + virtualinvoke $r2.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.StaticInvokeExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.StaticInvokeExprTest.jimple new file mode 100644 index 00000000000..6f5f53c47a0 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.StaticInvokeExprTest.jimple @@ -0,0 +1,43 @@ +public class de.upb.sootup.instructions.expr.StaticInvokeExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.StaticInvokeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.StaticInvokeExprTest; + + specialinvoke r0.()>(); + + return; + } + + public static java.lang.String somethingStatic() + { + return "Polyester Shirt"; + } + + public void staticInvoke() + { + de.upb.sootup.instructions.expr.StaticInvokeExprTest r0; + java.lang.String r1; + int i0; + java.io.PrintStream $r2, $r3; + + r0 := @this: de.upb.sootup.instructions.expr.StaticInvokeExprTest; + + r1 = staticinvoke (); + + $r2 = ; + + virtualinvoke $r2.(r1); + + i0 = staticinvoke (-42); + + $r3 = ; + + virtualinvoke $r3.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SubExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SubExprTest.jimple new file mode 100644 index 00000000000..8932bef1cf2 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SubExprTest.jimple @@ -0,0 +1,35 @@ +public class de.upb.sootup.instructions.expr.SubExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.SubExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.SubExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void subtraction(int, int) + { + de.upb.sootup.instructions.expr.SubExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.SubExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i1 - i0; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.UshrExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.UshrExprTest.jimple new file mode 100644 index 00000000000..b4338a23d67 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.UshrExprTest.jimple @@ -0,0 +1,35 @@ +public class de.upb.sootup.instructions.expr.UshrExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.UshrExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.UshrExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void bitwiseRightShiftZerofill(int, int) + { + de.upb.sootup.instructions.expr.UshrExprTest r0; + int i0, i1, i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.UshrExprTest; + + i0 := @parameter0: int; + + i1 := @parameter1: int; + + i2 = i0 >>> 2; + + $r1 = ; + + virtualinvoke $r1.(i2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.VirtualInvokeExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.VirtualInvokeExprTest.jimple new file mode 100644 index 00000000000..f9f17ab8b10 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.VirtualInvokeExprTest.jimple @@ -0,0 +1,45 @@ +public class de.upb.sootup.instructions.expr.VirtualInvokeExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.VirtualInvokeExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.VirtualInvokeExprTest; + + specialinvoke r0.()>(); + + return; + } + + int postalcode(int) + { + de.upb.sootup.instructions.expr.VirtualInvokeExprTest r0; + int i0, $i1; + + r0 := @this: de.upb.sootup.instructions.expr.VirtualInvokeExprTest; + + i0 := @parameter0: int; + + $i1 = 33100 + i0; + + return $i1; + } + + void invoke() + { + de.upb.sootup.instructions.expr.VirtualInvokeExprTest r0; + int i0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.expr.VirtualInvokeExprTest; + + i0 = virtualinvoke r0.(0); + + $r1 = ; + + virtualinvoke $r1.(i0); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.XorExprTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.XorExprTest.jimple new file mode 100644 index 00000000000..daf8a5cc168 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.XorExprTest.jimple @@ -0,0 +1,34 @@ +public class de.upb.sootup.instructions.expr.XorExprTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.expr.XorExprTest r0; + + r0 := @this: de.upb.sootup.instructions.expr.XorExprTest; + + specialinvoke r0.()>(); + + return; + } + + public void bitwiseXOR(int) + { + de.upb.sootup.instructions.expr.XorExprTest r0; + int i0; + java.io.PrintStream $r1; + byte b2; + + r0 := @this: de.upb.sootup.instructions.expr.XorExprTest; + + i0 := @parameter0: int; + + b2 = 0 ^ 2; + + $r1 = ; + + virtualinvoke $r1.(b2); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest.jimple new file mode 100644 index 00000000000..580cc7d0819 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest.jimple @@ -0,0 +1,36 @@ +public class de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmtTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmtTest r0; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmtTest; + + specialinvoke r0.()>(); + + return; + } + + public void breaker() + { + de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmtTest r0; + java.io.PrintStream $r1, $r2, $r3; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.BreakPointStmtTest; + + $r1 = ; + + virtualinvoke $r1.("A"); + + $r2 = ; + + virtualinvoke $r2.("B"); + + $r3 = ; + + virtualinvoke $r3.("C"); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest.jimple similarity index 75% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest.jimple index 5849c0a5fa8..343a359c965 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest extends java.lang.Object +public class de.upb.sootup.instructions.javabytecode.stmt.MonitorStmtsTest extends java.lang.Object { public void () { - de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest r0; + de.upb.sootup.instructions.javabytecode.stmt.MonitorStmtsTest r0; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.MonitorStmtsTest; specialinvoke r0.()>(); @@ -14,13 +14,13 @@ public class de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest extends public void enterAndExit() { - de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest r0; + de.upb.sootup.instructions.javabytecode.stmt.MonitorStmtsTest r0; java.lang.StringBuilder $r4; java.io.PrintStream $r8; java.lang.String $r9; java.lang.Throwable $r10; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.MonitorStmtsTest; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.MonitorStmtsTest; $r4 = new java.lang.StringBuilder; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.RetStmtTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.RetStmtTest.jimple new file mode 100644 index 00000000000..3236808613a --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.RetStmtTest.jimple @@ -0,0 +1,61 @@ +public class de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest r0; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest; + + specialinvoke r0.()>(); + + return; + } + + int returnInt(int) + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest r0; + int i0; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest; + + i0 := @parameter0: int; + + return i0; + } + + double returnDouble(double) + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest r0; + double d0; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest; + + d0 := @parameter0: double; + + return d0; + } + + java.lang.String returnString(java.lang.String) + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest r0; + java.lang.String r1; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest; + + r1 := @parameter0: java.lang.String; + + return r1; + } + + de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest returnNonPrimitive(de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest) + { + de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest r0, r1; + + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest; + + r1 := @parameter0: de.upb.sootup.instructions.javabytecode.stmt.RetStmtTest; + + return r1; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest.jimple similarity index 86% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest.jimple index 20be4283bee..83a541a231c 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest extends java.lang.Object +public class de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest extends java.lang.Object { public void () { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest r0; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest; specialinvoke r0.()>(); @@ -14,11 +14,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest extends public void tableSwitch(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest; i0 := @parameter0: int; @@ -63,11 +63,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest extends public void tableSwitchWithDefault(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest; i0 := @parameter0: int; @@ -116,11 +116,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest extends public void tableSwitchWithBreakEveryOtherCase(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest; i0 := @parameter0: int; @@ -169,11 +169,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest extends public void lookupSwitch(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest; i0 := @parameter0: int; @@ -212,11 +212,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest extends public void lookupSwitchWithDefault(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest; i0 := @parameter0: int; @@ -259,11 +259,11 @@ public class de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest extends public void lookupSwitchWithBreakEveryOtherCase(int) { - de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest r0; + de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest r0; int i0; java.io.PrintStream $r1, $r2, $r3, $r4, $r5; - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.SwitchStmtsTest; + r0 := @this: de.upb.sootup.instructions.javabytecode.stmt.SwitchStmtsTest; i0 := @parameter0: int; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ArrayRefTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ArrayRefTest.jimple new file mode 100644 index 00000000000..e3f438b90d1 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ArrayRefTest.jimple @@ -0,0 +1,41 @@ +public class de.upb.sootup.instructions.ref.ArrayRefTest extends java.lang.Object +{ + int[] arr; + + public void () + { + de.upb.sootup.instructions.ref.ArrayRefTest r0; + + r0 := @this: de.upb.sootup.instructions.ref.ArrayRefTest; + + specialinvoke r0.()>(); + + return; + } + + boolean[] someMethod() + { + de.upb.sootup.instructions.ref.ArrayRefTest r0; + java.lang.String[] r1; + int[] $r2, $r3; + boolean[] $r4; + + r0 := @this: de.upb.sootup.instructions.ref.ArrayRefTest; + + $r2 = newarray (int)[123]; + + r0. = $r2; + + $r3 = r0.; + + $r3[100] = 42; + + r1 = newarray (java.lang.String)[2]; + + r1[0] = "zero"; + + $r4 = newarray (boolean)[0]; + + return $r4; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.CaughtExceptionRefTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.CaughtExceptionRefTest.jimple new file mode 100644 index 00000000000..4caa66eb2fc --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.CaughtExceptionRefTest.jimple @@ -0,0 +1,55 @@ +public class de.upb.sootup.instructions.ref.CaughtExceptionRefTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.ref.CaughtExceptionRefTest r0; + + r0 := @this: de.upb.sootup.instructions.ref.CaughtExceptionRefTest; + + specialinvoke r0.()>(); + + return; + } + + void throwExceptionAndCatch() + { + de.upb.sootup.instructions.ref.CaughtExceptionRefTest r0; + java.lang.Exception $r2, $r3; + java.io.PrintStream $r4; + + r0 := @this: de.upb.sootup.instructions.ref.CaughtExceptionRefTest; + + label1: + $r2 = new java.lang.Exception; + + specialinvoke $r2.()>(); + + throw $r2; + + label2: + $r3 := @caughtexception; + + $r4 = ; + + virtualinvoke $r4.("exception"); + + return; + + catch java.lang.Exception from label1 to label2 with label2; + } + + void throwException() throws java.lang.Exception + { + de.upb.sootup.instructions.ref.CaughtExceptionRefTest r0; + java.lang.Exception $r1; + + r0 := @this: de.upb.sootup.instructions.ref.CaughtExceptionRefTest; + + $r1 = new java.lang.Exception; + + specialinvoke $r1.()>(); + + throw $r1; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.InstanceFieldRefTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.InstanceFieldRefTest.jimple new file mode 100644 index 00000000000..f6badc573b1 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.InstanceFieldRefTest.jimple @@ -0,0 +1,40 @@ +public class de.upb.sootup.instructions.ref.InstanceFieldRefTest extends java.lang.Object +{ + int counter; + + public void () + { + de.upb.sootup.instructions.ref.InstanceFieldRefTest r0; + + r0 := @this: de.upb.sootup.instructions.ref.InstanceFieldRefTest; + + specialinvoke r0.()>(); + + r0. = 0; + + return; + } + + void sth() + { + de.upb.sootup.instructions.ref.InstanceFieldRefTest r0; + int $i0, $i1, $i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.ref.InstanceFieldRefTest; + + $i0 = r0.; + + $i1 = $i0 + 1; + + r0. = $i1; + + $r1 = ; + + $i2 = r0.; + + virtualinvoke $r1.($i2); + + return; + } +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ParameterRefTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ParameterRefTest.jimple similarity index 83% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ParameterRefTest.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ParameterRefTest.jimple index 1e4210fe706..0e0a2cf0cff 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ParameterRefTest.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ParameterRefTest.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.ref.ParameterRefTest extends java.lang.Object +public class de.upb.sootup.instructions.ref.ParameterRefTest extends java.lang.Object { public void () { - de.upb.soot.instructions.ref.ParameterRefTest r0; + de.upb.sootup.instructions.ref.ParameterRefTest r0; - r0 := @this: de.upb.soot.instructions.ref.ParameterRefTest; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRefTest; specialinvoke r0.()>(); @@ -14,10 +14,10 @@ public class de.upb.soot.instructions.ref.ParameterRefTest extends java.lang.Obj void noParameter() { - de.upb.soot.instructions.ref.ParameterRefTest r0; + de.upb.sootup.instructions.ref.ParameterRefTest r0; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.instructions.ref.ParameterRefTest; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRefTest; $r1 = ; @@ -28,13 +28,13 @@ public class de.upb.soot.instructions.ref.ParameterRefTest extends java.lang.Obj void oneParameter(int) { - de.upb.soot.instructions.ref.ParameterRefTest r0; + de.upb.sootup.instructions.ref.ParameterRefTest r0; int i0; java.lang.StringBuilder $r1, $r3, $r4; java.io.PrintStream $r2; java.lang.String $r5; - r0 := @this: de.upb.soot.instructions.ref.ParameterRefTest; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRefTest; i0 := @parameter0: int; @@ -57,14 +57,14 @@ public class de.upb.soot.instructions.ref.ParameterRefTest extends java.lang.Obj void moreParameter(int, double) { - de.upb.soot.instructions.ref.ParameterRefTest r0; + de.upb.sootup.instructions.ref.ParameterRefTest r0; int i0; double d0; java.lang.StringBuilder $r1, $r3, $r4, $r5, $r6; java.io.PrintStream $r2; java.lang.String $r7; - r0 := @this: de.upb.soot.instructions.ref.ParameterRefTest; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRefTest; i0 := @parameter0: int; @@ -93,14 +93,14 @@ public class de.upb.soot.instructions.ref.ParameterRefTest extends java.lang.Obj void moreParameter(int, double, java.lang.String) { - de.upb.soot.instructions.ref.ParameterRefTest r0; + de.upb.sootup.instructions.ref.ParameterRefTest r0; int i0; double d0; java.lang.String r1, $r10; java.lang.StringBuilder $r2, $r4, $r5, $r6, $r7, $r8, $r9; java.io.PrintStream $r3; - r0 := @this: de.upb.soot.instructions.ref.ParameterRefTest; + r0 := @this: de.upb.sootup.instructions.ref.ParameterRefTest; i0 := @parameter0: int; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.StaticFieldRefTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.StaticFieldRefTest.jimple new file mode 100644 index 00000000000..162164ad3e9 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.StaticFieldRefTest.jimple @@ -0,0 +1,45 @@ +public class de.upb.sootup.instructions.ref.StaticFieldRefTest extends java.lang.Object +{ + static int globalCounter; + + public void () + { + de.upb.sootup.instructions.ref.StaticFieldRefTest r0; + + r0 := @this: de.upb.sootup.instructions.ref.StaticFieldRefTest; + + specialinvoke r0.()>(); + + return; + } + + void sth() + { + de.upb.sootup.instructions.ref.StaticFieldRefTest r0; + int $i0, $i1, $i2; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.ref.StaticFieldRefTest; + + $i0 = ; + + $i1 = $i0 + 1; + + = $i1; + + $r1 = ; + + $i2 = ; + + virtualinvoke $r1.($i2); + + return; + } + + static void () + { + = 0; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ThisRefTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ThisRefTest.jimple new file mode 100644 index 00000000000..690a15c9b7f --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ThisRefTest.jimple @@ -0,0 +1,50 @@ +public class de.upb.sootup.instructions.ref.ThisRefTest extends java.lang.Object +{ + int property; + + public void () + { + de.upb.sootup.instructions.ref.ThisRefTest r0; + + r0 := @this: de.upb.sootup.instructions.ref.ThisRefTest; + + specialinvoke r0.()>(); + + r0. = 0; + + return; + } + + java.lang.String someMethod() + { + de.upb.sootup.instructions.ref.ThisRefTest r0; + + r0 := @this: de.upb.sootup.instructions.ref.ThisRefTest; + + return "sth"; + } + + void caller() + { + de.upb.sootup.instructions.ref.ThisRefTest r0; + int $i0; + java.io.PrintStream $r1, $r2; + java.lang.String $r3; + + r0 := @this: de.upb.sootup.instructions.ref.ThisRefTest; + + $r1 = ; + + $i0 = r0.; + + virtualinvoke $r1.($i0); + + $r2 = ; + + $r3 = virtualinvoke r0.(); + + virtualinvoke $r2.($r3); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.AssignStmtTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.AssignStmtTest.jimple new file mode 100644 index 00000000000..f42aa53d88f --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.AssignStmtTest.jimple @@ -0,0 +1,199 @@ +public class de.upb.sootup.instructions.stmt.AssignStmtTest extends java.lang.Object +{ + int field; + de.upb.sootup.basic.expr.Dummy fieldObj; + + public void () + { + de.upb.sootup.instructions.stmt.AssignStmtTest r0; + de.upb.sootup.basic.expr.Dummy $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmtTest; + + specialinvoke r0.()>(); + + r0. = 123; + + $r1 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r1.()>(); + + r0. = $r1; + + return; + } + + public void rvalue() + { + de.upb.sootup.instructions.stmt.AssignStmtTest r0; + int[] r2; + int i0, i1, i2, i3, $i6; + de.upb.sootup.basic.expr.Dummy $r3; + java.io.PrintStream $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmtTest; + + $r3 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r3.()>(); + + r2 = newarray (int)[123]; + + i0 = r0.; + + i1 = $r3.; + + i2 = r2[42]; + + $i6 = r0.; + + i3 = r2[$i6]; + + staticinvoke (-1); + + $r4 = ; + + virtualinvoke $r4.($r3); + + $r5 = ; + + virtualinvoke $r5.(r2); + + $r6 = ; + + virtualinvoke $r6.(i0); + + $r7 = ; + + virtualinvoke $r7.(i1); + + $r8 = ; + + virtualinvoke $r8.(i2); + + $r9 = ; + + virtualinvoke $r9.(i3); + + $r10 = ; + + virtualinvoke $r10.(42); + + $r11 = ; + + virtualinvoke $r11.(3); + + return; + } + + public void imm() + { + de.upb.sootup.instructions.stmt.AssignStmtTest r0; + de.upb.sootup.basic.expr.Dummy $r2; + java.io.PrintStream $r3, $r4, $r5; + int $i1, $i2; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmtTest; + + r0. = 42; + + $r2 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r2.()>(); + + $r2. = 2; + + $r3 = ; + + virtualinvoke $r3.(2); + + $r4 = ; + + $i1 = r0.; + + virtualinvoke $r4.($i1); + + $r5 = ; + + $i2 = $r2.; + + virtualinvoke $r5.($i2); + + return; + } + + public void property() + { + de.upb.sootup.instructions.stmt.AssignStmtTest r0; + de.upb.sootup.basic.expr.Dummy $r3, $r4, $r5, $r8; + int $i0, $i1, $i2, $i3; + java.io.PrintStream $r6, $r7, $r9; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmtTest; + + $r3 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r3.()>(); + + $r3. = 666; + + $r4 = new de.upb.sootup.basic.expr.Dummy; + + specialinvoke $r4.()>(); + + $i0 = r0.; + + $r4. = $i0; + + $r5 = r0.; + + $r5. = 42; + + $r6 = ; + + $i1 = $r3.; + + virtualinvoke $r6.($i1); + + $r7 = ; + + $i2 = $r4.; + + virtualinvoke $r7.($i2); + + $r9 = ; + + $r8 = r0.; + + $i3 = $r8.; + + virtualinvoke $r9.($i3); + + return; + } + + public void array_field() + { + de.upb.sootup.instructions.stmt.AssignStmtTest r0; + int[] r1; + int $i0, $i1; + + r0 := @this: de.upb.sootup.instructions.stmt.AssignStmtTest; + + r1 = newarray (int)[123]; + + r1[0] = 1; + + r1[42] = 43; + + $i0 = staticinvoke (-1); + + r1[$i0] = -2; + + $i1 = r0.; + + r1[$i1] = 0; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.GotoStmtTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.GotoStmtTest.jimple new file mode 100644 index 00000000000..446e1b46baa --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.GotoStmtTest.jimple @@ -0,0 +1,92 @@ +public class de.upb.sootup.instructions.stmt.GotoStmtTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.stmt.GotoStmtTest r0; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmtTest; + + specialinvoke r0.()>(); + + return; + } + + public void label() + { + de.upb.sootup.instructions.stmt.GotoStmtTest r0; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmtTest; + + label1: + goto label1; + } + + public void whileloop(int) + { + de.upb.sootup.instructions.stmt.GotoStmtTest r0; + int i0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmtTest; + + i0 := @parameter0: int; + + label1: + if i0 >= 42 goto label2; + + $r1 = ; + + virtualinvoke $r1.("A"); + + goto label1; + + label2: + return; + } + + public void forloop() + { + de.upb.sootup.instructions.stmt.GotoStmtTest r0; + java.io.PrintStream $r1; + int i0; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmtTest; + + i0 = 5; + + label1: + if i0 >= 10 goto label2; + + $r1 = ; + + virtualinvoke $r1.("A"); + + i0 = i0 + 1; + + goto label1; + + label2: + return; + } + + public void dowhileloop(int) + { + de.upb.sootup.instructions.stmt.GotoStmtTest r0; + int i0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.GotoStmtTest; + + i0 := @parameter0: int; + + label1: + $r1 = ; + + virtualinvoke $r1.("A"); + + if i0 != 0 goto label1; + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IThing.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IThing.jimple new file mode 100644 index 00000000000..193eec87471 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IThing.jimple @@ -0,0 +1,5 @@ +interface de.upb.sootup.instructions.stmt.IThing extends java.lang.Object +{ + + public abstract void printId(); +} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IdentityStmtTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IdentityStmtTest.jimple similarity index 78% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IdentityStmtTest.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IdentityStmtTest.jimple index 55b500319f4..92be4aaf753 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IdentityStmtTest.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IdentityStmtTest.jimple @@ -1,50 +1,50 @@ -public class de.upb.soot.instructions.stmt.IdentityStmtTest extends java.lang.Object +public class de.upb.sootup.instructions.stmt.IdentityStmtTest extends java.lang.Object { int declProperty; int initProperty; public void () { - de.upb.soot.instructions.stmt.IdentityStmtTest r0; + de.upb.sootup.instructions.stmt.IdentityStmtTest r0; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmtTest; specialinvoke r0.()>(); - r0. = 42; + r0. = 42; return; } public void atThis() { - de.upb.soot.instructions.stmt.IdentityStmtTest r0; + de.upb.sootup.instructions.stmt.IdentityStmtTest r0; int $i0, $i1, $i2, $i3; java.io.PrintStream $r1, $r2, $r3, $r4; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmtTest; $r1 = ; - $i0 = r0.; + $i0 = r0.; virtualinvoke $r1.($i0); $r2 = ; - $i1 = r0.; + $i1 = r0.; virtualinvoke $r2.($i1); $r3 = ; - $i2 = r0.; + $i2 = r0.; virtualinvoke $r3.($i2); $r4 = ; - $i3 = r0.; + $i3 = r0.; virtualinvoke $r4.($i3); @@ -53,12 +53,12 @@ public class de.upb.soot.instructions.stmt.IdentityStmtTest extends java.lang.Ob public void atParameterPrimitive(int, boolean) { - de.upb.soot.instructions.stmt.IdentityStmtTest r0; + de.upb.sootup.instructions.stmt.IdentityStmtTest r0; int i0; boolean z0; java.io.PrintStream $r1, $r2; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmtTest; i0 := @parameter0: int; @@ -77,14 +77,14 @@ public class de.upb.soot.instructions.stmt.IdentityStmtTest extends java.lang.Ob public void atParameterNonPrimitive(java.lang.Integer, java.lang.String, java.lang.Boolean, int[]) { - de.upb.soot.instructions.stmt.IdentityStmtTest r0; + de.upb.sootup.instructions.stmt.IdentityStmtTest r0; java.lang.Integer r1; java.lang.String r2; java.lang.Boolean r3; int[] r4; java.io.PrintStream $r5, $r6, $r7, $r8; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmtTest; r1 := @parameter0: java.lang.Integer; @@ -115,10 +115,10 @@ public class de.upb.soot.instructions.stmt.IdentityStmtTest extends java.lang.Ob public void atExceptionThrow() throws java.lang.Exception { - de.upb.soot.instructions.stmt.IdentityStmtTest r0; + de.upb.sootup.instructions.stmt.IdentityStmtTest r0; java.lang.Exception $r1; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmtTest; $r1 = new java.lang.Exception; @@ -129,21 +129,21 @@ public class de.upb.soot.instructions.stmt.IdentityStmtTest extends java.lang.Ob public void atExceptionThrowAndCatch() { - de.upb.soot.instructions.stmt.IdentityStmtTest r0; + de.upb.sootup.instructions.stmt.IdentityStmtTest r0; java.io.PrintStream $r1, $r2, $r3, $r5; int $i0, $i1, i2; java.lang.Exception $r4; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmtTest; label1: $r1 = ; virtualinvoke $r1.("A1"); - $i1 = r0.; + $i1 = r0.; - $i0 = r0.; + $i0 = r0.; i2 = $i1 * $i0; @@ -173,12 +173,12 @@ public class de.upb.soot.instructions.stmt.IdentityStmtTest extends java.lang.Ob public void exceptionMultiple() { - de.upb.soot.instructions.stmt.IdentityStmtTest r0; + de.upb.sootup.instructions.stmt.IdentityStmtTest r0; java.io.PrintStream $r1, $r3, $r5, $r8; java.lang.Exception $r2; java.lang.IndexOutOfBoundsException $r4; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmtTest; label1: $r1 = ; @@ -217,12 +217,12 @@ public class de.upb.soot.instructions.stmt.IdentityStmtTest extends java.lang.Ob public void exceptionFinally() { - de.upb.soot.instructions.stmt.IdentityStmtTest r0; + de.upb.sootup.instructions.stmt.IdentityStmtTest r0; java.io.PrintStream $r3, $r4, $r5, $r7, $r8, $r10; java.lang.Exception $r6; java.lang.Throwable $r9; - r0 := @this: de.upb.soot.instructions.stmt.IdentityStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IdentityStmtTest; label1: $r3 = ; diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IfStmtTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IfStmtTest.jimple similarity index 76% rename from de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IfStmtTest.jimple rename to de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IfStmtTest.jimple index 7f7f40c2837..7f564e0c3f7 100644 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IfStmtTest.jimple +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IfStmtTest.jimple @@ -1,11 +1,11 @@ -public class de.upb.soot.instructions.stmt.IfStmtTest extends java.lang.Object +public class de.upb.sootup.instructions.stmt.IfStmtTest extends java.lang.Object { public void () { - de.upb.soot.instructions.stmt.IfStmtTest r0; + de.upb.sootup.instructions.stmt.IfStmtTest r0; - r0 := @this: de.upb.soot.instructions.stmt.IfStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmtTest; specialinvoke r0.()>(); @@ -14,11 +14,11 @@ public class de.upb.soot.instructions.stmt.IfStmtTest extends java.lang.Object public void ifcondition(int) { - de.upb.soot.instructions.stmt.IfStmtTest r0; + de.upb.sootup.instructions.stmt.IfStmtTest r0; int i0; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.instructions.stmt.IfStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmtTest; i0 := @parameter0: int; @@ -34,11 +34,11 @@ public class de.upb.soot.instructions.stmt.IfStmtTest extends java.lang.Object public void ifelsecondition(int) { - de.upb.soot.instructions.stmt.IfStmtTest r0; + de.upb.sootup.instructions.stmt.IfStmtTest r0; int i0; java.io.PrintStream $r1, $r2; - r0 := @this: de.upb.soot.instructions.stmt.IfStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmtTest; i0 := @parameter0: int; @@ -61,11 +61,11 @@ public class de.upb.soot.instructions.stmt.IfStmtTest extends java.lang.Object public void ifelseifcondition(int) { - de.upb.soot.instructions.stmt.IfStmtTest r0; + de.upb.sootup.instructions.stmt.IfStmtTest r0; int i0; java.io.PrintStream $r1, $r2, $r3; - r0 := @this: de.upb.soot.instructions.stmt.IfStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmtTest; i0 := @parameter0: int; @@ -97,11 +97,11 @@ public class de.upb.soot.instructions.stmt.IfStmtTest extends java.lang.Object public void ternary(int, int) { - de.upb.soot.instructions.stmt.IfStmtTest r0; + de.upb.sootup.instructions.stmt.IfStmtTest r0; int i0, i1, $i3; java.io.PrintStream $r1; - r0 := @this: de.upb.soot.instructions.stmt.IfStmtTest; + r0 := @this: de.upb.sootup.instructions.stmt.IfStmtTest; i0 := @parameter0: int; diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.InvokeStmtTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.InvokeStmtTest.jimple new file mode 100644 index 00000000000..3263e8ee716 --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.InvokeStmtTest.jimple @@ -0,0 +1,99 @@ +public class de.upb.sootup.instructions.stmt.InvokeStmtTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.stmt.InvokeStmtTest r0; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmtTest; + + specialinvoke r0.()>(); + + return; + } + + private void someMethod() + { + de.upb.sootup.instructions.stmt.InvokeStmtTest r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmtTest; + + $r1 = ; + + virtualinvoke $r1.("Sth"); + + return; + } + + public static void somethingStatic() + { + java.io.PrintStream $r0; + + $r0 = ; + + virtualinvoke $r0.("Polyester Shirt"); + + return; + } + + public void specialInvoke() + { + de.upb.sootup.instructions.stmt.InvokeStmtTest r0, $r2; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmtTest; + + $r2 = new de.upb.sootup.instructions.stmt.InvokeStmtTest; + + specialinvoke $r2.()>(); + + specialinvoke $r2.(); + + specialinvoke r0.(); + + return; + } + + public void interfaceInvoke() + { + de.upb.sootup.instructions.stmt.InvokeStmtTest r0; + de.upb.sootup.instructions.stmt.Pear $r2; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmtTest; + + $r2 = new de.upb.sootup.instructions.stmt.Pear; + + specialinvoke $r2.()>(); + + interfaceinvoke $r2.(); + + return; + } + + public void virtualInvoke() + { + de.upb.sootup.instructions.stmt.InvokeStmtTest r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmtTest; + + $r1 = ; + + virtualinvoke $r1.("virtual invoked"); + + return; + } + + public void staticInvoke() + { + de.upb.sootup.instructions.stmt.InvokeStmtTest r0; + + r0 := @this: de.upb.sootup.instructions.stmt.InvokeStmtTest; + + staticinvoke (); + + staticinvoke (); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.Pear.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.Pear.jimple new file mode 100644 index 00000000000..34078e0b2ea --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.Pear.jimple @@ -0,0 +1,28 @@ +class de.upb.sootup.instructions.stmt.Pear extends java.lang.Object implements de.upb.sootup.instructions.stmt.IThing +{ + + void () + { + de.upb.sootup.instructions.stmt.Pear r0; + + r0 := @this: de.upb.sootup.instructions.stmt.Pear; + + specialinvoke r0.()>(); + + return; + } + + public void printId() + { + de.upb.sootup.instructions.stmt.Pear r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.Pear; + + $r1 = ; + + virtualinvoke $r1.("Id"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ReturnStmtsTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ReturnStmtsTest.jimple new file mode 100644 index 00000000000..071fd2a7c1d --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ReturnStmtsTest.jimple @@ -0,0 +1,94 @@ +public class de.upb.sootup.instructions.stmt.ReturnStmtsTest extends java.lang.Object +{ + + void (int) + { + de.upb.sootup.instructions.stmt.ReturnStmtsTest r0; + int i0; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmtsTest; + + i0 := @parameter0: int; + + specialinvoke r0.()>(); + + if i0 >= 18 goto label1; + + return; + + label1: + return; + } + + public void returnnothing() + { + de.upb.sootup.instructions.stmt.ReturnStmtsTest r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmtsTest; + + $r1 = ; + + virtualinvoke $r1.("A"); + + return; + } + + public void pointofnoreturn() + { + de.upb.sootup.instructions.stmt.ReturnStmtsTest r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmtsTest; + + $r1 = ; + + virtualinvoke $r1.("A"); + + return; + } + + public int returnA(int) + { + de.upb.sootup.instructions.stmt.ReturnStmtsTest r0; + int i0; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmtsTest; + + i0 := @parameter0: int; + + return i0; + } + + public int returnB() + { + de.upb.sootup.instructions.stmt.ReturnStmtsTest r0; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmtsTest; + + return 42; + } + + public char returnC() + { + de.upb.sootup.instructions.stmt.ReturnStmtsTest r0; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmtsTest; + + return 99; + } + + public java.lang.Integer returnObject() + { + de.upb.sootup.instructions.stmt.ReturnStmtsTest r0; + java.lang.Integer $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.ReturnStmtsTest; + + $r1 = new java.lang.Integer; + + specialinvoke $r1.(int)>(5); + + return $r1; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ThrowStmtTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ThrowStmtTest.jimple new file mode 100644 index 00000000000..f9d7b42bbfe --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ThrowStmtTest.jimple @@ -0,0 +1,28 @@ +public class de.upb.sootup.instructions.stmt.ThrowStmtTest extends java.lang.Object +{ + + public void () + { + de.upb.sootup.instructions.stmt.ThrowStmtTest r0; + + r0 := @this: de.upb.sootup.instructions.stmt.ThrowStmtTest; + + specialinvoke r0.()>(); + + return; + } + + public void throwsth() throws java.lang.Exception + { + de.upb.sootup.instructions.stmt.ThrowStmtTest r0; + java.lang.Exception $r1; + + r0 := @this: de.upb.sootup.instructions.stmt.ThrowStmtTest; + + $r1 = new java.lang.Exception; + + specialinvoke $r1.(java.lang.String)>("Banana"); + + throw $r1; + } +} diff --git a/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.type.AllTypesTest.jimple b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.type.AllTypesTest.jimple new file mode 100644 index 00000000000..73e492c427c --- /dev/null +++ b/de.upb.sse.sootup.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.type.AllTypesTest.jimple @@ -0,0 +1,47 @@ +public class de.upb.sootup.instructions.type.AllTypesTest extends java.lang.Object +{ + int[] arr; + boolean z; + byte b; + char c; + double d; + float f; + int i; + long l; + java.lang.Object n; + de.upb.sootup.instructions.type.AllTypesTest ref; + short s; + + public void () + { + de.upb.sootup.instructions.type.AllTypesTest r0, $r1; + + r0 := @this: de.upb.sootup.instructions.type.AllTypesTest; + + specialinvoke r0.()>(); + + r0. = null; + + $r1 = new de.upb.sootup.instructions.type.AllTypesTest; + + specialinvoke $r1.()>(); + + r0. = $r1; + + return; + } + + void method() + { + de.upb.sootup.instructions.type.AllTypesTest r0; + java.io.PrintStream $r1; + + r0 := @this: de.upb.sootup.instructions.type.AllTypesTest; + + $r1 = ; + + virtualinvoke $r1.("void"); + + return; + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/pom.xml b/de.upb.sse.sootup.java.sourcecode/pom.xml new file mode 100644 index 00000000000..c62146bc89d --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/pom.xml @@ -0,0 +1,179 @@ + + 4.0.0 + + SootUp Java Sourcecode Frontend + sootup.java.sourcecode + jar + + de.upb.sse + sootup + 1.0.0-SNAPSHOT + + + + 1.5.7 + + + + + + + com.ibm.wala + com.ibm.wala.core + ${wala.version} + pom + import + + + com.ibm.wala + com.ibm.wala.util + ${wala.version} + pom + import + + + com.ibm.wala + com.ibm.wala.cast.java + ${wala.version} + pom + import + + + com.ibm.wala + com.ibm.wala.cast.java.ecj + ${wala.version} + pom + import + + + com.ibm.wala + com.ibm.wala.shrike + ${wala.version} + pom + import + + + com.ibm.wala + com.ibm.wala.dalvik + ${wala.version} + pom + import + + + + + + + + de.upb.sse + sootup.core + 1.0.0-SNAPSHOT + + + de.upb.sse + sootup.java.core + 1.0.0-SNAPSHOT + + + + com.ibm.wala + com.ibm.wala.core + ${wala.version} + + + com.ibm.wala + com.ibm.wala.cast + ${wala.version} + + + com.ibm.wala + com.ibm.wala.cast.java + ${wala.version} + + + com.ibm.wala + com.ibm.wala.cast.java.ecj + ${wala.version} + + + org.eclipse.platform + org.eclipse.core.runtime + + + org.eclipse.jdt + org.eclipse.jdt.core + + + org.eclipse.platform + org.eclipse.osgi + + + org.eclipse.platform + org.eclipse.core.jobs + + + + + + + org.eclipse.platform + org.eclipse.core.runtime + (,3.15) + runtime + + + org.eclipse.jdt + org.eclipse.jdt.core + (,3.15) + runtime + + + org.eclipse.platform + org.eclipse.equinox.preferences + + + + + org.eclipse.platform + org.eclipse.equinox.preferences + (,3.10) + runtime + + + org.eclipse.platform + org.eclipse.osgi + (,3.15) + runtime + + + org.eclipse.platform + org.eclipse.core.jobs + (,3.10) + runtime + + + org.eclipse.platform + org.eclipse.core.contenttype + (,3.8) + runtime + + + + com.ibm.wala + com.ibm.wala.util + ${wala.version} + + + com.ibm.wala + com.ibm.wala.shrike + ${wala.version} + + + com.ibm.wala + com.ibm.wala.dalvik + ${wala.version} + + + diff --git a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/WalaClassLoaderTestUtils.java b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/WalaClassLoaderTestUtils.java similarity index 82% rename from de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/WalaClassLoaderTestUtils.java rename to de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/WalaClassLoaderTestUtils.java index 6d1c46e8150..608a13624a5 100644 --- a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/WalaClassLoaderTestUtils.java +++ b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/WalaClassLoaderTestUtils.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.sourcecode; +package de.upb.sse.sootup.java.sourcecode; /*- * #%L @@ -22,11 +22,11 @@ * #L% */ -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.util.Optional; public class WalaClassLoaderTestUtils { diff --git a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/InstructionConverter.java b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/InstructionConverter.java similarity index 97% rename from de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/InstructionConverter.java rename to de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/InstructionConverter.java index b01d8182838..00ebb119c10 100644 --- a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/InstructionConverter.java +++ b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/InstructionConverter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.sourcecode.frontend; +package de.upb.sse.sootup.java.sourcecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -64,27 +64,27 @@ import com.ibm.wala.types.FieldReference; import com.ibm.wala.types.MethodReference; import com.ibm.wala.types.TypeReference; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.*; -import de.upb.swt.soot.core.jimple.common.expr.*; -import de.upb.swt.soot.core.jimple.common.ref.JArrayRef; -import de.upb.swt.soot.core.jimple.common.ref.JCaughtExceptionRef; -import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef; -import de.upb.swt.soot.core.jimple.common.ref.JStaticFieldRef; -import de.upb.swt.soot.core.jimple.common.stmt.*; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.*; -import de.upb.swt.soot.java.core.ConstantUtil; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.*; +import de.upb.sse.sootup.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.ref.JArrayRef; +import de.upb.sse.sootup.core.jimple.common.ref.JCaughtExceptionRef; +import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef; +import de.upb.sse.sootup.core.jimple.common.ref.JStaticFieldRef; +import de.upb.sse.sootup.core.jimple.common.stmt.*; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.*; +import de.upb.sse.sootup.java.core.ConstantUtil; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; /** diff --git a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/WalaIRToJimpleConverter.java b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/WalaIRToJimpleConverter.java similarity index 91% rename from de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/WalaIRToJimpleConverter.java rename to de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/WalaIRToJimpleConverter.java index 2d848aeb76f..247d7d8bb4b 100644 --- a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/WalaIRToJimpleConverter.java +++ b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/WalaIRToJimpleConverter.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.sourcecode.frontend; +package de.upb.sse.sootup.java.sourcecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -35,35 +35,39 @@ import com.ibm.wala.ssa.*; import com.ibm.wala.types.TypeReference; import com.ibm.wala.util.collections.HashSetFactory; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.frontend.OverridingClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.LocalGenerator; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnVoidStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JThrowStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootField; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.NullType; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.java.core.*; -import de.upb.swt.soot.java.core.types.AnnotationType; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.frontend.OverridingClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.LocalGenerator; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnVoidStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JThrowStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootField; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.NullType; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.java.core.*; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootClassSource; +import de.upb.sse.sootup.java.core.OverridingJavaClassSource; +import de.upb.sse.sootup.java.core.types.AnnotationType; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; import java.net.URL; import java.nio.file.Path; import java.nio.file.Paths; @@ -625,7 +629,7 @@ private Body createBody( * soot-format: java.lang.String. * * @param className in wala-format - * @return className in soot.format + * @return className in sootup.format */ public String convertClassNameFromWala(String className) { String cl = className.intern(); @@ -696,8 +700,9 @@ protected void addSootField(SootField field) { /* * converts Wala Position to Soots Position * */ - public static de.upb.swt.soot.core.model.Position convertPosition(Position instructionPosition) { - return new de.upb.swt.soot.core.model.Position( + public static de.upb.sse.sootup.core.model.Position convertPosition( + Position instructionPosition) { + return new de.upb.sse.sootup.core.model.Position( instructionPosition.getFirstLine(), instructionPosition.getFirstCol(), instructionPosition.getLastLine(), @@ -710,18 +715,18 @@ public static StmtPositionInfo convertPositionInfo( if (operandPosition == null) { return new StmtPositionInfo(convertPosition(instructionPosition), null); } - de.upb.swt.soot.core.model.Position[] operandPos = + de.upb.sse.sootup.core.model.Position[] operandPos = Arrays.stream(operandPosition) .map( instrPos -> instrPos == null ? null - : new de.upb.swt.soot.core.model.Position( + : new de.upb.sse.sootup.core.model.Position( instrPos.getFirstLine(), instrPos.getFirstCol(), instrPos.getLastLine(), instrPos.getLastCol())) - .toArray(de.upb.swt.soot.core.model.Position[]::new); + .toArray(de.upb.sse.sootup.core.model.Position[]::new); return new StmtPositionInfo(convertPosition(instructionPosition), operandPos); } diff --git a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/WalaJavaClassProvider.java b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/WalaJavaClassProvider.java similarity index 95% rename from de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/WalaJavaClassProvider.java rename to de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/WalaJavaClassProvider.java index 104f5535bdf..0132d7ed263 100644 --- a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/WalaJavaClassProvider.java +++ b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/WalaJavaClassProvider.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.sourcecode.frontend; +package de.upb.sse.sootup.java.sourcecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -37,17 +37,17 @@ import com.ibm.wala.types.TypeName; import com.ibm.wala.util.config.FileOfClasses; import com.ibm.wala.util.warnings.Warnings; -import de.upb.swt.soot.core.SourceTypeSpecifier; -import de.upb.swt.soot.core.frontend.ClassProvider; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.FileType; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.SourceTypeSpecifier; +import de.upb.sse.sootup.core.frontend.ClassProvider; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.FileType; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.io.*; import java.nio.file.Path; import java.util.*; diff --git a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/WalaSootMethod.java b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/WalaSootMethod.java similarity index 87% rename from de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/WalaSootMethod.java rename to de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/WalaSootMethod.java index 34747083764..e25fa9f3ab0 100644 --- a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/frontend/WalaSootMethod.java +++ b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/frontend/WalaSootMethod.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.sourcecode.frontend; +package de.upb.sse.sootup.java.sourcecode.frontend; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,14 +21,14 @@ * #L% */ import com.ibm.wala.cast.loader.AstMethod.DebuggingInformation; -import de.upb.swt.soot.core.frontend.BodySource; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.JavaSootMethod; +import de.upb.sse.sootup.core.frontend.BodySource; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.JavaSootMethod; import java.util.Collections; import java.util.function.Function; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/inputlocation/JavaSourcePathAnalysisInputLocation.java b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/inputlocation/JavaSourcePathAnalysisInputLocation.java similarity index 91% rename from de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/inputlocation/JavaSourcePathAnalysisInputLocation.java rename to de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/inputlocation/JavaSourcePathAnalysisInputLocation.java index c7b91be99fd..b7132ec4bda 100644 --- a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/inputlocation/JavaSourcePathAnalysisInputLocation.java +++ b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/inputlocation/JavaSourcePathAnalysisInputLocation.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.sourcecode.inputlocation; +package de.upb.sse.sootup.java.sourcecode.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -21,15 +21,15 @@ * #L% */ -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.nio.file.Paths; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/inputlocation/SourcecodeClassLoadingOptions.java b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/inputlocation/SourcecodeClassLoadingOptions.java similarity index 87% rename from de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/inputlocation/SourcecodeClassLoadingOptions.java rename to de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/inputlocation/SourcecodeClassLoadingOptions.java index dbf806c36a9..09d0d5a6ce4 100644 --- a/de.upb.swt.soot.java.sourcecode/src/main/java/de/upb/swt/soot/java/sourcecode/inputlocation/SourcecodeClassLoadingOptions.java +++ b/de.upb.sse.sootup.java.sourcecode/src/main/java/de/upb/sse/sootup/java/sourcecode/inputlocation/SourcecodeClassLoadingOptions.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.java.sourcecode.inputlocation; +package de.upb.sse.sootup.java.sourcecode.inputlocation; /*- * #%L * Soot - a J*va Optimization Framework @@ -20,8 +20,8 @@ * . * #L% */ -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.transform.BodyInterceptor; import java.util.Collections; import java.util.List; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/categories/Java8Test.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/categories/Java8Test.java similarity index 100% rename from de.upb.swt.soot.java.sourcecode/src/test/java/categories/Java8Test.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/categories/Java8Test.java diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/categories/Java9Test.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/categories/Java9Test.java similarity index 100% rename from de.upb.swt.soot.java.sourcecode/src/test/java/categories/Java9Test.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/categories/Java9Test.java diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/BinaryOpInstructionConversionTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/BinaryOpInstructionConversionTest.java similarity index 96% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/BinaryOpInstructionConversionTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/BinaryOpInstructionConversionTest.java index 979679140bb..c1fd61452bd 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/BinaryOpInstructionConversionTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/BinaryOpInstructionConversionTest.java @@ -1,49 +1,49 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; +package de.upb.sse.sootup.test.java.sourcecode.frontend; -import static de.upb.swt.soot.core.util.Utils.assertEquiv; -import static de.upb.swt.soot.core.util.Utils.assertInstanceOfSatisfying; +import static de.upb.sse.sootup.core.util.Utils.assertEquiv; +import static de.upb.sse.sootup.core.util.Utils.assertInstanceOfSatisfying; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.common.constant.BooleanConstant; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.expr.JAddExpr; -import de.upb.swt.soot.core.jimple.common.expr.JAndExpr; -import de.upb.swt.soot.core.jimple.common.expr.JCastExpr; -import de.upb.swt.soot.core.jimple.common.expr.JDivExpr; -import de.upb.swt.soot.core.jimple.common.expr.JEqExpr; -import de.upb.swt.soot.core.jimple.common.expr.JGeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JGtExpr; -import de.upb.swt.soot.core.jimple.common.expr.JLeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JLtExpr; -import de.upb.swt.soot.core.jimple.common.expr.JMulExpr; -import de.upb.swt.soot.core.jimple.common.expr.JNeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JNegExpr; -import de.upb.swt.soot.core.jimple.common.expr.JOrExpr; -import de.upb.swt.soot.core.jimple.common.expr.JRemExpr; -import de.upb.swt.soot.core.jimple.common.expr.JShlExpr; -import de.upb.swt.soot.core.jimple.common.expr.JShrExpr; -import de.upb.swt.soot.core.jimple.common.expr.JSubExpr; -import de.upb.swt.soot.core.jimple.common.expr.JUshrExpr; -import de.upb.swt.soot.core.jimple.common.expr.JXorExpr; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JGotoStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JIfStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.WalaClassLoaderTestUtils; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.common.constant.BooleanConstant; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.expr.JAddExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JAndExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JCastExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JDivExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JEqExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JGeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JGtExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JLeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JLtExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JMulExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JNeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JNegExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JOrExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JRemExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JShlExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JShrExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JSubExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JUshrExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JXorExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JGotoStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JIfStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.WalaClassLoaderTestUtils; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/GetInstructionConversionTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/GetInstructionConversionTest.java new file mode 100644 index 00000000000..fcdb0c65c4f --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/GetInstructionConversionTest.java @@ -0,0 +1,105 @@ +package de.upb.sse.sootup.test.java.sourcecode.frontend; + +import static de.upb.sse.sootup.core.util.Utils.assertEquiv; +import static de.upb.sse.sootup.core.util.Utils.assertInstanceOfSatisfying; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.WalaClassLoaderTestUtils; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Linghui Luo */ +@Category(Java8Test.class) +public class GetInstructionConversionTest { + + private WalaJavaClassProvider loader; + private JavaIdentifierFactory typeFactory; + private JavaClassType declareClassSig; + + @Before + public void loadClassesWithWala() { + String srcDir = "../shared-test-resources/wala-tests/"; + loader = new WalaJavaClassProvider(srcDir); + typeFactory = JavaIdentifierFactory.getInstance(); + declareClassSig = typeFactory.getClassType("alreadywalaunittests.InnerClassAA"); + } + + @Test + public void test() { + Optional m = + WalaClassLoaderTestUtils.getSootMethod( + loader, + typeFactory.getMethodSignature( + declareClassSig, "getA_X", "int", Collections.emptyList())); + assertTrue(m.isPresent()); + SootMethod method = m.get(); + + Body body = method.getBody(); + assertNotNull(body); + + List stmts = body.getStmts(); + assertEquals(3, stmts.size()); + + assertInstanceOfSatisfying( + stmts.get(0), + JIdentityStmt.class, + stmt -> { + assertEquiv( + new Local("r0", typeFactory.getClassType("alreadywalaunittests.InnerClassAA")), + stmt.getLeftOp()); + assertEquiv( + Jimple.newThisRef(typeFactory.getClassType("alreadywalaunittests.InnerClassAA")), + stmt.getRightOp()); + }); + + assertInstanceOfSatisfying( + stmts.get(1), + JAssignStmt.class, + stmt -> { + assertEquiv(new Local("$i0", PrimitiveType.getInt()), stmt.getLeftOp()); + assertInstanceOfSatisfying( + stmt.getRightOp(), + JInstanceFieldRef.class, + JFieldRef -> { + assertEquiv( + new Local("r0", typeFactory.getClassType("alreadywalaunittests.InnerClassAA")), + JFieldRef.getBase()); + + FieldSignature fieldSig = JFieldRef.getFieldSignature(); + assertNotNull(fieldSig); + assertEquals("a_x", fieldSig.getName()); + Assert.assertEquals(PrimitiveType.getInt(), fieldSig.getType()); + Assert.assertEquals( + typeFactory.getClassType("alreadywalaunittests.InnerClassAA"), + fieldSig.getDeclClassType()); + }); + }); + + assertInstanceOfSatisfying( + stmts.get(2), + JReturnStmt.class, + stmt -> assertEquiv(new Local("$i0", PrimitiveType.getInt()), stmt.getOp())); + } +} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/IfInstructionConversionTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/IfInstructionConversionTest.java similarity index 89% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/IfInstructionConversionTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/IfInstructionConversionTest.java index ad8b51f4258..ce34073e5e4 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/IfInstructionConversionTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/IfInstructionConversionTest.java @@ -1,17 +1,17 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; +package de.upb.sse.sootup.test.java.sourcecode.frontend; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.WalaClassLoaderTestUtils; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.WalaClassLoaderTestUtils; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -38,7 +38,7 @@ public void loadClassesWithWala() { loader = new WalaJavaClassProvider(srcDir); typeFactory = JavaIdentifierFactory.getInstance(); declareClassSig = - typeFactory.getClassType("de.upb.soot.concrete.controlStatements.ControlStatements"); + typeFactory.getClassType("de.upb.sootup.concrete.controlStatements.ControlStatements"); } @Test @@ -61,7 +61,7 @@ public void test1() { List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$i0 := @parameter0: int", "$i1 := @parameter1: int", "$i2 := @parameter2: int", @@ -103,7 +103,7 @@ public void test2() { List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$i0 := @parameter0: int", "$i1 := @parameter1: int", "$z0 = $i0 == $i1", @@ -133,7 +133,7 @@ public void test3() { List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$z0 := @parameter0: boolean", "$z1 := @parameter1: boolean", "$i0 = (int) $z0", @@ -168,7 +168,7 @@ public void test4() { List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$r1 := @parameter0: java.lang.String", "$z0 = $r1 == null", "if $z0 == 0 goto label1", @@ -199,7 +199,7 @@ public void test5() { List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$d0 := @parameter0: double", "$d1 := @parameter1: double", "$d2 := @parameter2: double", diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/InstanceofInstructionConversionTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/InstanceofInstructionConversionTest.java similarity index 80% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/InstanceofInstructionConversionTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/InstanceofInstructionConversionTest.java index 1b1d419b624..6adbe9acbbd 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/InstanceofInstructionConversionTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/InstanceofInstructionConversionTest.java @@ -1,17 +1,17 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; +package de.upb.sse.sootup.test.java.sourcecode.frontend; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.WalaClassLoaderTestUtils; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.WalaClassLoaderTestUtils; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/InvokeTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/InvokeTest.java similarity index 96% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/InvokeTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/InvokeTest.java index b0a4124e441..7d354822048 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/InvokeTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/InvokeTest.java @@ -1,17 +1,17 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; +package de.upb.sse.sootup.test.java.sourcecode.frontend; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.WalaClassLoaderTestUtils; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.WalaClassLoaderTestUtils; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/Java7EnhancementsTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/Java7EnhancementsTest.java similarity index 89% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/Java7EnhancementsTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/Java7EnhancementsTest.java index dae58323a08..cd60e04b1ac 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/Java7EnhancementsTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/Java7EnhancementsTest.java @@ -1,13 +1,13 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; +package de.upb.sse.sootup.test.java.sourcecode.frontend; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.util.Optional; import org.junit.Before; import org.junit.Test; diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/SelectedInstructionConversionTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/SelectedInstructionConversionTest.java similarity index 97% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/SelectedInstructionConversionTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/SelectedInstructionConversionTest.java index 5aa60da7d7f..24962696c9a 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/SelectedInstructionConversionTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/SelectedInstructionConversionTest.java @@ -1,18 +1,18 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; +package de.upb.sse.sootup.test.java.sourcecode.frontend; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.WalaClassLoaderTestUtils; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.WalaClassLoaderTestUtils; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/StmtPositionInfoTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/StmtPositionInfoTest.java similarity index 98% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/StmtPositionInfoTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/StmtPositionInfoTest.java index 1d45d864f52..f681251c371 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/StmtPositionInfoTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/StmtPositionInfoTest.java @@ -1,17 +1,17 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; +package de.upb.sse.sootup.test.java.sourcecode.frontend; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.WalaClassLoaderTestUtils; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.WalaClassLoaderTestUtils; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/SwitchConversionTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/SwitchConversionTest.java similarity index 91% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/SwitchConversionTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/SwitchConversionTest.java index 0e954d8df8c..0c68c48df1d 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/SwitchConversionTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/SwitchConversionTest.java @@ -1,16 +1,16 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; +package de.upb.sse.sootup.test.java.sourcecode.frontend; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.WalaClassLoaderTestUtils; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.WalaClassLoaderTestUtils; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -33,7 +33,7 @@ public void loadClassesWithWala() { loader = new WalaJavaClassProvider(srcDir); typeFactory = JavaIdentifierFactory.getInstance(); declareClassSig = - typeFactory.getClassType("de.upb.soot.concrete.controlStatements.ControlStatements"); + typeFactory.getClassType("de.upb.sootup.concrete.controlStatements.ControlStatements"); } /** @@ -69,7 +69,7 @@ public void test1() { List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$i0 := @parameter0: int", "switch($i0)", "case 1: goto label2", @@ -127,7 +127,7 @@ public void test2() { List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$i0 = 3", "$i1 = $i0 - 1", "switch($i1)", @@ -184,7 +184,7 @@ public void test3() { List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$i0 := @parameter0: int", "switch($i0)", "case 1: goto label2", @@ -245,7 +245,7 @@ public void test4() { // FIXME: [bh] values of $i0 and $i1 are missing (foo and bar) List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$r1 := @parameter0: java.lang.String", "if $r1 == $i0 goto label1", "if $r1 == $i1 goto label2", @@ -303,7 +303,7 @@ public void test5() { // FIXME: [bh] values of $i0 and $i1 are missing (foo and bar) List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$r1 := @parameter0: java.lang.String", "if $r1 == $i0 goto label1", "if $r1 == $i1 goto label2", @@ -359,7 +359,7 @@ public void test6() { // FIXME: [bh] values of $i0 and $i1 are missing (foo and bar) List expectedStmts = Stream.of( - "r0 := @this: de.upb.soot.concrete.controlStatements.ControlStatements", + "r0 := @this: de.upb.sootup.concrete.controlStatements.ControlStatements", "$r1 := @parameter0: java.lang.String", "if $r1 == $i0 goto label1", "if $r1 == $i1 goto label2", diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/WalaIRToJimpleConverterTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/WalaIRToJimpleConverterTest.java similarity index 94% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/WalaIRToJimpleConverterTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/WalaIRToJimpleConverterTest.java index 9e2abe083a1..2c8e3a42a70 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/WalaIRToJimpleConverterTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/WalaIRToJimpleConverterTest.java @@ -1,9 +1,9 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; +package de.upb.sse.sootup.test.java.sourcecode.frontend; import static org.junit.Assert.assertEquals; import categories.Java8Test; -import de.upb.swt.soot.java.sourcecode.frontend.WalaIRToJimpleConverter; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaIRToJimpleConverter; import java.util.Collections; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/WalaJavaClassProviderTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/WalaJavaClassProviderTest.java new file mode 100644 index 00000000000..10cc57eb345 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/frontend/WalaJavaClassProviderTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.test.java.sourcecode.frontend; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import categories.Java8Test; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import java.nio.file.Paths; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class WalaJavaClassProviderTest { + + @Test + public void testCreateClassSource() { + // TODO It's not ideal that we need to pass exclusionFilePath twice + + String srcDir = "../shared-test-resources/wala-tests/"; + String exclusionFilePath = srcDir + "WalaExclusions.txt"; + JavaSourcePathAnalysisInputLocation inputLocation = + new JavaSourcePathAnalysisInputLocation( + ImmutableUtils.immutableSet(srcDir), exclusionFilePath); + JavaClassType type = new JavaClassType("Array1", PackageName.DEFAULT_PACKAGE); + + WalaJavaClassProvider provider = new WalaJavaClassProvider(srcDir, exclusionFilePath); + SootClassSource classSource = + provider.createClassSource(inputLocation, Paths.get(srcDir), type); + + assertEquals(type, classSource.getClassType()); + + SootClassSource content = classSource; + assertNotNull(content); + assertEquals(3, content.resolveMethods().size()); + assertEquals(0, content.resolveFields().size()); + + assertEquals(content, (classSource)); + } +} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/inputlocation/JavaSourcePathNamespaceTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/inputlocation/JavaSourcePathNamespaceTest.java similarity index 78% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/inputlocation/JavaSourcePathNamespaceTest.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/inputlocation/JavaSourcePathNamespaceTest.java index eb7cdfe592f..3a1469dee92 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/inputlocation/JavaSourcePathNamespaceTest.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/inputlocation/JavaSourcePathNamespaceTest.java @@ -1,23 +1,23 @@ -package de.upb.swt.soot.test.java.sourcecode.inputlocation; +package de.upb.sse.sootup.test.java.sourcecode.inputlocation; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; import java.util.Collection; import java.util.Optional; import java.util.stream.Collectors; diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/MinimalSourceTestSuiteBase.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/MinimalSourceTestSuiteBase.java similarity index 86% rename from de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/MinimalSourceTestSuiteBase.java rename to de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/MinimalSourceTestSuiteBase.java index df513211f22..33a37a35ad1 100644 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/MinimalSourceTestSuiteBase.java +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/MinimalSourceTestSuiteBase.java @@ -1,20 +1,20 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite; +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; import java.io.File; import java.util.List; import java.util.Optional; diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java10/TypeInferenceTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java10/TypeInferenceTest.java new file mode 100644 index 00000000000..7c8758ad031 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java10/TypeInferenceTest.java @@ -0,0 +1,67 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java10; + +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class TypeInferenceTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + @Ignore + public void ignoreTest() { + /** TODO Java 10 is not supported in WALA, feature can not be tested */ + } + + /** + * + * + *
+   *     public void printFile() throws Exception{
+   * var fileName="file.txt";
+   * var data = "";
+   * var fileReader= new FileReader(fileName);
+   * var bufferedReader= new BufferedReader(fileReader);
+   * while( (data= bufferedReader.readLine()) != null ){
+   * System.out.println(data);
+   * }
+   * bufferedReader.close();
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: TryWithResourcesConcise", + "$r1 = new java.io.BufferedReader", + "$r2 = new java.io.FileReader", + "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", + "specialinvoke $r1.(java.io.Reader)>($r2)", + "$r3 = \"\"", + "label1:", + "$r4 = virtualinvoke $r1.()", + "goto label2", + "$r5 := @caughtexception", + "throw $r5", + "label2:", + "$r3 = $r4", + "$z0 = $r4 != null", + "if $z0 == 0 goto label3", + "$r6 = ", + "virtualinvoke $r6.($r3)", + "goto label1", + "label3:", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AbstractClassTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AbstractClassTest.java new file mode 100644 index 00000000000..71423939851 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AbstractClassTest.java @@ -0,0 +1,58 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class AbstractClassTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + SootClass clazz = loadClass(getDeclaredClassSignature()); + // The SuperClass is the abstract one + System.out.println(clazz.getSuperclass()); + SootClass superClazz = loadClass(clazz.getSuperclass().get()); + assertTrue(superClazz.isAbstract()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "abstractClass", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void abstractClass(){
+   *         A obj = new AbstractClass();
+   *         obj.a();
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: AbstractClass", + "$r1 = new AbstractClass", + "specialinvoke $r1.()>()", + "virtualinvoke $r1.()", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AccessArraysTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AccessArraysTest.java new file mode 100644 index 00000000000..d6b6b9aa16e --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AccessArraysTest.java @@ -0,0 +1,248 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.*; +import org.junit.Ignore; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class AccessArraysTest extends MinimalSourceTestSuiteBase { + + @Ignore + public void test() { + + // FIXME [ms] see InstructionConverter.convertUnaryOpInstruction(...) + // TODO split into multiple test cases + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: AccessArrays", + "$r1 = newarray (int[])[3]", + "$r1[0] = 1", + "$r1[1] = 2", + "$r1[2] = 3", + "$i0 = 0", + "$r2 = $r1", + "$i1 = 0", + "label1:", + "$i2 = lengthof $r2", + "$z0 = $i1 < $i2", + "if $z0 == 0 goto label2", + "$r3 = $r2[$i1]", + "$i0 = $r3", + "$i3 = $i1", + "$i4 = $i1 + 1", + "$i1 = $i4", + "goto label1", + "label2:", + "return")); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: AccessArrays", + "$r1 = newarray (byte[])[3]", + "$r1[0] = 4", + "$r1[1] = 5", + "$r1[2] = 6", + "$i0 = 0", + "$r2 = $r1", + "$i1 = 0", + "label1:", + "$i2 = lengthof $r2", + "$z0 = $i1 < $i2", + "if $z0 == 0 goto label2", + "$r3 = $r2[$i1]", + "$i0 = $r3", + "$i3 = $i1", + "$i4 = $i1 + 1", + "$i1 = $i4", + "goto label1", + "label2:", + "return")); + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: AccessArrays", + "$r1 = newarray (short[])[3]", + "$r1[0] = 10", + "$r1[1] = 20", + "$r1[2] = 30", + "$i0 = 0", + "$r2 = $r1", + "$i1 = 0", + "label1:", + "$i2 = lengthof $r2", + "$z0 = $i1 < $i2", + "if $z0 == 0 goto label2", + "$r3 = $r2[$i1]", + "$i0 = $r3", + "$i3 = $i1", + "$i4 = $i1 + 1", + "$i1 = $i4", + "goto label1", + "label2:", + "return")); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: AccessArrays", + "$r1 = newarray (long[])[3]", + "$r1[0] = 547087L", + "$r1[1] = 564645L", + "$r1[2] = 654786L", + "$i0 = 0", + "$r2 = $r1", + "$i1 = 0", + "label1:", + "$i2 = lengthof $r2", + "$z0 = $i1 < $i2", + "if $z0 == 0 goto label2", + "$r3 = $r2[$i1]", + "$i0 = $r3", + "$i3 = $i1", + "$i4 = $i1 + 1", + "$i1 = $i4", + "goto label1", + "label2:", + "return")); + + method = loadMethod(getMethodSignature("floatArrays")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: AccessArrays", + "$r1 = newarray (float[])[4]", + "$r1[0] = 3.14F", + "$r1[1] = 5.46F", + "$r1[2] = 2.987F", + "$r1[3] = 4.87F", + "$d0 = 0.0", + "$r2 = $r1", + "$i0 = 0", + "label1:", + "$i1 = lengthof $r2", + "$z0 = $i0 < $i1", + "if $z0 == 0 goto label2", + "$r3 = $r2[$i0]", + "$d0 = $r3", + "$i2 = $i0", + "$i3 = $i0 + 1", + "$i0 = $i3", + "goto label1", + "label2:", + "return")); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: AccessArrays", + "$r1 = newarray (double[])[2]", + "$r1[0] = 6.765414", + "$r1[1] = 9.676565646", + "$d0 = 0.0", + "$r2 = $r1", + "$i0 = 0", + "label1:", + "$i1 = lengthof $r2", + "$z0 = $i0 < $i1", + "if $z0 == 0 goto label2", + "$r3 = $r2[$i0]", + "$d0 = $r3", + "$i2 = $i0", + "$i3 = $i0 + 1", + "$i0 = $i3", + "goto label1", + "label2:", + "return")); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: AccessArrays", + "$r1 = newarray (boolean[])[2]", + "$r1[0] = 1", + "$r1[1] = 0", + "$l2 = null", // TODO:[ms] CHECK! should this be null? --> "boolean val;" + "$r3 = $r1", + "$i0 = 0", + "label1:", + "$i1 = lengthof $r3", + "$z0 = $i0 < $i1", + "if $z0 == 0 goto label2", + "$r4 = $r3[$i0]", + "$r2 = $r4", + "$i2 = $i0", + "$i3 = $i0 + 1", + "$i0 = $i3", + "goto label1", + "label2:", + "return")); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: AccessArrays", + "$r1 = newarray (char[])[3]", + "$r1[0] = 65", + "$r1[1] = 98", + "$r1[2] = 38", + "$i0 = 0", + "$r2 = $r1", + "$i1 = 0", + "label1:", + "$i2 = lengthof $r2", + "$z0 = $i1 < $i2", + "if $z0 == 0 goto label2", + "$r3 = $r2[$i1]", + "$i0 = $r3", + "$i3 = $i1", + "$i4 = $i1 + 1", + "$i1 = $i4", + "goto label1", + "label2:", + "return")); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: AccessArrays", + "$r1 = newarray (java.lang.String[])[2]", + "$r1[0] = \"Hello World\"", + "$r1[1] = \"Greetings\"", + "$r2 = null", + "$r3 = $r1", + "$i0 = 0", + "label1:", + "$i1 = lengthof $r3", + "$z0 = $i0 < $i1", + "if $z0 == 0 goto label2", + "$r4 = $r3[$i0]", + "$r2 = $r4", + "$i2 = $i0", + "$i3 = $i0 + 1", + "$i0 = $i3", + "goto label1", + "label2:", + "return")); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AnnotationLibraryTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AnnotationLibraryTest.java new file mode 100644 index 00000000000..653d01d327f --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AnnotationLibraryTest.java @@ -0,0 +1,19 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import org.junit.Ignore; + +public class AnnotationLibraryTest extends MinimalSourceTestSuiteBase { + + @Ignore + public void testAnnotation() { + // TODO: [ms] annotations are not implemented yet + System.out.println(getDeclaredClassSignature()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java new file mode 100644 index 00000000000..a6ff4a450e3 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java @@ -0,0 +1,61 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class AnonymousClassInsideMethodTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "anonymousClassInsideMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *
+   * public void anonymousClassInsideMethod() {
+   *
+   * MathOperation myMathOperation = new MathOperation() {
+   * int i = 0;
+   *
+   * @Override
+   * public void addition() {
+   * i++;
+   * }
+   * };
+   *
+   * myMathOperation.addition();
+   *
+   * }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: AnonymousClassInsideMethod", + "$r1 = new AnonymousClassInsideMethod$1", + "specialinvoke $r1.()>()", + "interfaceinvoke $r1.()", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AssertStatementTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AssertStatementTest.java new file mode 100644 index 00000000000..a2135c315c9 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AssertStatementTest.java @@ -0,0 +1,137 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class AssertStatementTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "assertStatement", "void", Collections.emptyList()); + } + + public MethodSignature getMethodSignatureExtend() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "assertStatementExtend", "void", Collections.emptyList()); + } + + public MethodSignature getMethodSignatureExtend2() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "assertStatementExtend2", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void assertStatement() {
+   *         assert "" != null;
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: AssertStatement", + "$z0 = \"\" != null", + "$z1 = ", + "if $z1 == 1 goto label1", + "if $z0 == 1 goto label1", + "$r1 = new java.lang.AssertionError", + "specialinvoke $r1.()>()", + "throw $r1", + "label1:", + "nop", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void assertStatementExtend() {
+   *         assert "" != null;
+   *         int x = 4;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsExtend() { + return Stream.of( + "r0 := @this: AssertStatement", + "$z0 = \"\" != null", + "$z1 = ", + "if $z1 == 1 goto label1", + "if $z0 == 1 goto label1", + "$r1 = new java.lang.AssertionError", + "specialinvoke $r1.()>()", + "throw $r1", + "label1:", + "nop", + "$i0 = 4", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void assertStatementExtend2() {
+   *         assert "first" != null;
+   *         int x = 1;
+   *         assert "second" != null;
+   *         x = 2;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsExtend2() { + return Stream.of( + "r0 := @this: AssertStatement", + "$z0 = \"first\" != null", + "$z1 = ", + "if $z1 == 1 goto label1", + "if $z0 == 1 goto label1", + "$r1 = new java.lang.AssertionError", + "specialinvoke $r1.()>()", + "throw $r1", + "label1:", + "nop", + "$i0 = 1", + "$z2 = \"second\" != null", + "$z3 = ", + "if $z3 == 1 goto label2", + "if $z2 == 1 goto label2", + "$r2 = new java.lang.AssertionError", + "specialinvoke $r2.()>()", + "throw $r2", + "label2:", + "nop", + "$i0 = 2", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getMethodSignatureExtend()); + assertJimpleStmts(method, expectedBodyStmtsExtend()); + method = loadMethod(getMethodSignatureExtend2()); + assertJimpleStmts(method, expectedBodyStmtsExtend2()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AutoboxingTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AutoboxingTest.java new file mode 100644 index 00000000000..6b22a350875 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AutoboxingTest.java @@ -0,0 +1,52 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class AutoboxingTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "autoboxing", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void autoboxing(){
+   * int i = 5;
+   * i++;
+   * Integer j = i;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: Autoboxing", + "$i0 = 5", + "$i1 = $i0", + "$i2 = $i0 + 1", + "$i0 = $i2", + "$i3 = $i0", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AutomaticWideningTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AutomaticWideningTest.java new file mode 100644 index 00000000000..a2c68232d8c --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/AutomaticWideningTest.java @@ -0,0 +1,44 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class AutomaticWideningTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "automaticWidening", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void automaticWidening(){
+   * int x = 10;
+   * long y = x;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: AutomaticWidening", "$i0 = 10", "$i1 = $i0", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java new file mode 100644 index 00000000000..7a4c9f27d70 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java @@ -0,0 +1,173 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class BitwiseOperationsIntTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("bitwiseOpAnd")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpAnd()); + + method = loadMethod(getMethodSignature("bitwiseOpOr")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpOr()); + + method = loadMethod(getMethodSignature("bitwiseOpXor")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpXor()); + + method = loadMethod(getMethodSignature("bitwiseOpComplement")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpComplement()); + + method = loadMethod(getMethodSignature("bitwiseOpSignedRightShift")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpSignedRightShift()); + + method = loadMethod(getMethodSignature("bitwiseOpLeftShift")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpLeftShift()); + + method = loadMethod(getMethodSignature("bitwiseOpUnsignedRightShift")); + assertJimpleStmts(method, expectedBodyStmtsBitwiseOpUnsignedRightShift()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void bitwiseOpAnd(){
+   *         int a = 70;
+   *         int b = 20;
+   *         int c = a&b;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpAnd() { + return Stream.of( + "r0 := @this: BitwiseOperationsInt", + "$i0 = 70", + "$i1 = 20", + "$i2 = $i0 & $i1", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpOr(){
+   *         int a = 70;
+   *         int b = 20;
+   *         int c = a|b;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpOr() { + return Stream.of( + "r0 := @this: BitwiseOperationsInt", + "$i0 = 70", + "$i1 = 20", + "$i2 = $i0 | $i1", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpXor(){
+   *         int a = 70;
+   *         int b = 20;
+   *         int c = a^b;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpXor() { + return Stream.of( + "r0 := @this: BitwiseOperationsInt", + "$i0 = 70", + "$i1 = 20", + "$i2 = $i0 ^ $i1", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpComplement(){
+   *         int a = 70;
+   *         int b = ~a;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpComplement() { + return Stream.of("r0 := @this: BitwiseOperationsInt", "$i0 = 70", "$i1 = neg $i0", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpSignedRightShift(){
+   *         int a = 70;
+   *         int b = a >> 5;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpSignedRightShift() { + return Stream.of("r0 := @this: BitwiseOperationsInt", "$i0 = 70", "$i1 = $i0 >> 5", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpLeftShift(){
+   *         int a = 70;
+   *         int b = a << 5;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpLeftShift() { + return Stream.of("r0 := @this: BitwiseOperationsInt", "$i0 = 70", "$i1 = $i0 << 5", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void bitwiseOpUnsignedRightShift(){
+   *         int a = 70;
+   *         int b = a >>> 5;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBitwiseOpUnsignedRightShift() { + return Stream.of("r0 := @this: BitwiseOperationsInt", "$i0 = 70", "$i1 = $i0 >>> 5", "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/BooleanOperatorsTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/BooleanOperatorsTest.java new file mode 100644 index 00000000000..68d3a30cac9 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/BooleanOperatorsTest.java @@ -0,0 +1,549 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class BooleanOperatorsTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("relationalOpEqual")); + assertJimpleStmts(method, expectedBodyStmtsRelationalOpEqual()); + + method = loadMethod(getMethodSignature("relationalOpNotEqual")); + assertJimpleStmts(method, expectedBodyStmtsRelationalOpNotEqual()); + + method = loadMethod(getMethodSignature("complementOp")); + assertJimpleStmts(method, expectedBodyStmtsComplementOp()); + + method = loadMethod(getMethodSignature("logicalOpAnd")); + assertJimpleStmts(method, expectedBodyStmtsLogicalOpAnd()); + + method = loadMethod(getMethodSignature("logicalOpOr")); + + assertJimpleStmts(method, expectedBodyStmtsLogicalOpOr()); + + method = loadMethod(getMethodSignature("logicalOpXor")); + assertJimpleStmts(method, expectedBodyStmtsLogicalOpXor()); + + method = loadMethod(getMethodSignature("ConditionalOpAnd")); + assertJimpleStmts(method, expectedBodyStmtsConditionalOpAnd()); + method = loadMethod(getMethodSignature("conditionalOpOr")); + assertJimpleStmts(method, expectedBodyStmtsConditionalOpOr()); + method = loadMethod(getMethodSignature("conditionalOp")); + assertJimpleStmts(method, expectedBodyStmtsConditionalOp()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void relationalOpEqual(){
+   *         int i =  0;
+   *         while (i<=10){
+   *             i++;
+   *             if (i==5){
+   *                 break;
+   *             }
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsRelationalOpEqual() { + return Stream.of( + "r0 := @this: BooleanOperators", + "$i0 = 0", + "label1:", + "$z0 = $i0 <= 10", + "if $z0 == 0 goto label3", + "$i1 = $i0", + "$i2 = $i0 + 1", + "$i0 = $i2", + "$z1 = $i0 == 5", + "if $z1 == 0 goto label2", + "goto label3", + "label2:", + "goto label1", + "label3:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void relationalOpNotEqual(){
+   *         int i =  0;
+   *         String str = "";
+   *         while (i<10){
+   *             i++;
+   *             if (i!=5){
+   *                 str = "i != 5";
+   *             }
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsRelationalOpNotEqual() { + return Stream.of( + "r0 := @this: BooleanOperators", + "$i0 = 0", + "$r1 = \"\"", + "label1:", + "$z0 = $i0 < 10", + "if $z0 == 0 goto label3", + "$i1 = $i0", + "$i2 = $i0 + 1", + "$i0 = $i2", + "$z1 = $i0 != 5", + "if $z1 == 0 goto label2", + "$r1 = \"i != 5\"", + "goto label2", + "label2:", + "goto label1", + "label3:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void complementOp(){
+   *         boolean b = true;
+   *         if(b){
+   *             b = !b;
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsComplementOp() { + return Stream.of( + "r0 := @this: BooleanOperators", + "$z0 = 1", + "if $z0 == 0 goto label1", + "$z1 = neg $z0", + "$z0 = $z1", + "goto label1", + "label1:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void logicalOpAnd(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a & b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c & d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a & c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d & b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLogicalOpAnd() { + return Stream.of( + "r0 := @this: BooleanOperators", + "$z0 = 1", + "$z1 = 1", + "$z2 = 0", + "$z3 = 0", + "$r1 = \"\"", + "$i0 = (int) $z0", + "$i1 = (int) $z1", + "$i2 = $i0 & $i1", + "if $i2 == 0 goto label1", + "$r1 = \"A\"", + "goto label1", + "label1:", + "$i3 = (int) $z2", + "$i4 = (int) $z3", + "$i5 = $i3 & $i4", + "if $i5 == 0 goto label2", + "$r1 = \"B\"", + "goto label2", + "label2:", + "$i6 = (int) $z0", + "$i7 = (int) $z2", + "$i8 = $i6 & $i7", + "if $i8 == 0 goto label3", + "$r1 = \"C\"", + "goto label3", + "label3:", + "$i9 = (int) $z3", + "$i10 = (int) $z1", + "$i11 = $i9 & $i10", + "if $i11 == 0 goto label4", + "$r1 = \"D\"", + "goto label4", + "label4:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void logicalOpOr(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a | b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c | d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a | c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d | b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLogicalOpOr() { + return Stream.of( + "r0 := @this: BooleanOperators", + "$z0 = 1", + "$z1 = 1", + "$z2 = 0", + "$z3 = 0", + "$r1 = \"\"", + "$i0 = (int) $z0", + "$i1 = (int) $z1", + "$i2 = $i0 | $i1", + "if $i2 == 0 goto label1", + "$r1 = \"A\"", + "goto label1", + "label1:", + "$i3 = (int) $z2", + "$i4 = (int) $z3", + "$i5 = $i3 | $i4", + "if $i5 == 0 goto label2", + "$r1 = \"B\"", + "goto label2", + "label2:", + "$i6 = (int) $z0", + "$i7 = (int) $z2", + "$i8 = $i6 | $i7", + "if $i8 == 0 goto label3", + "$r1 = \"C\"", + "goto label3", + "label3:", + "$i9 = (int) $z3", + "$i10 = (int) $z1", + "$i11 = $i9 | $i10", + "if $i11 == 0 goto label4", + "$r1 = \"D\"", + "goto label4", + "label4:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void logicalOpXor(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a ^ b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c ^ d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a ^ c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d ^ b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLogicalOpXor() { + return Stream.of( + "r0 := @this: BooleanOperators", + "$z0 = 1", + "$z1 = 1", + "$z2 = 0", + "$z3 = 0", + "$r1 = \"\"", + "$i0 = (int) $z0", + "$i1 = (int) $z1", + "$i2 = $i0 ^ $i1", + "if $i2 == 0 goto label1", + "$r1 = \"A\"", + "goto label1", + "label1:", + "$i3 = (int) $z2", + "$i4 = (int) $z3", + "$i5 = $i3 ^ $i4", + "if $i5 == 0 goto label2", + "$r1 = \"B\"", + "goto label2", + "label2:", + "$i6 = (int) $z0", + "$i7 = (int) $z2", + "$i8 = $i6 ^ $i7", + "if $i8 == 0 goto label3", + "$r1 = \"C\"", + "goto label3", + "label3:", + "$i9 = (int) $z3", + "$i10 = (int) $z1", + "$i11 = $i9 ^ $i10", + "if $i11 == 0 goto label4", + "$r1 = \"D\"", + "goto label4", + "label4:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void ConditionalOpAnd(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a && b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c && d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a && c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d && b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsConditionalOpAnd() { + return Stream.of( + "r0 := @this: BooleanOperators", + "$z0 = 1", + "$z1 = 1", + "$z2 = 0", + "$z3 = 0", + "$r1 = \"\"", + "if $z0 == 0 goto label01", + "$z4 = $z1", + "goto label02", + "label01:", + "$z4 = 0", + "label02:", + "if $z4 == 0 goto label03", + "$r1 = \"A\"", + "goto label03", + "label03:", + "if $z2 == 0 goto label04", + "$z5 = $z3", + "goto label05", + "label04:", + "$z5 = 0", + "label05:", + "if $z5 == 0 goto label06", + "$r1 = \"B\"", + "goto label06", + "label06:", + "if $z0 == 0 goto label07", + "$z6 = $z2", + "goto label08", + "label07:", + "$z6 = 0", + "label08:", + "if $z6 == 0 goto label09", + "$r1 = \"C\"", + "goto label09", + "label09:", + "if $z3 == 0 goto label10", + "$z7 = $z1", + "goto label11", + "label10:", + "$z7 = 0", + "label11:", + "if $z7 == 0 goto label12", + "$r1 = \"D\"", + "goto label12", + "label12:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void conditionalOpOr(){
+   *         boolean a = true;
+   *         boolean b = true;
+   *         boolean c = false;
+   *         boolean d = false;
+   *         String str = "";
+   *
+   *         if(a || b){
+   *             str = "A";
+   *         }
+   *
+   *         if (c || d){
+   *             str = "B";
+   *         }
+   *
+   *         if (a || c){
+   *             str = "C";
+   *         }
+   *
+   *         if (d || b){
+   *             str = "D";
+   *         }
+   *     }
+   * 
+ */ + public List expectedBodyStmtsConditionalOpOr() { + return Stream.of( + "r0 := @this: BooleanOperators", + "$z0 = 1", + "$z1 = 1", + "$z2 = 0", + "$z3 = 0", + "$r1 = \"\"", + "if $z0 == 0 goto label01", + "$z4 = 1", + "goto label02", + "label01:", + "$z4 = $z1", + "label02:", + "if $z4 == 0 goto label03", + "$r1 = \"A\"", + "goto label03", + "label03:", + "if $z2 == 0 goto label04", + "$z5 = 1", + "goto label05", + "label04:", + "$z5 = $z3", + "label05:", + "if $z5 == 0 goto label06", + "$r1 = \"B\"", + "goto label06", + "label06:", + "if $z0 == 0 goto label07", + "$z6 = 1", + "goto label08", + "label07:", + "$z6 = $z2", + "label08:", + "if $z6 == 0 goto label09", + "$r1 = \"C\"", + "goto label09", + "label09:", + "if $z3 == 0 goto label10", + "$z7 = 1", + "goto label11", + "label10:", + "$z7 = $z1", + "label11:", + "if $z7 == 0 goto label12", + "$r1 = \"D\"", + "goto label12", + "label12:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void conditionalOp(){
+   *         int i = 5;
+   *         String str = "";
+   *         str = i <10 ? "i less than 10" : "i greater than 10";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsConditionalOp() { + return Stream.of( + "r0 := @this: BooleanOperators", + "$i0 = 5", + "$r1 = \"\"", + "$z0 = $i0 < 10", + "if $z0 == 0 goto label1", + "$r2 = \"i less than 10\"", + "goto label2", + "label1:", + "$r2 = \"i greater than 10\"", + "label2:", + "$r1 = $r2", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/BreakInWhileLoopTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/BreakInWhileLoopTest.java new file mode 100644 index 00000000000..c4e84715bed --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/BreakInWhileLoopTest.java @@ -0,0 +1,64 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class BreakInWhileLoopTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "breakInWhileLoop", "void", Collections.emptyList()); + } + + /**
+   * public void breakInWhileLoop() {
+   * int num = 10;
+   * int i = 5;
+   * while (num > 0) {
+   * num--;
+   * if (num == i) {
+   * break;
+   * }
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: BreakInWhileLoop",
+            "$i0 = 10",
+            "$i1 = 5",
+            "label1:",
+            "$z0 = $i0 > 0",
+            "if $z0 == 0 goto label3",
+            "$i2 = $i0",
+            "$i3 = $i0 - 1",
+            "$i0 = $i3",
+            "$z1 = $i0 == $i1",
+            "if $z1 == 0 goto label2",
+            "goto label3",
+            "label2:",
+            "goto label1",
+            "label3:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/CastingInNumTypesTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/CastingInNumTypesTest.java
new file mode 100644
index 00000000000..e907e4bbc45
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/CastingInNumTypesTest.java
@@ -0,0 +1,108 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+
+public class CastingInNumTypesTest extends MinimalSourceTestSuiteBase {
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "displayNum", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   *     public void displayNum(){
+   * byte num1 =1;
+   * short num2=2;
+   * int num3= 3;
+   * long num4=4551598461l;
+   * float num5= 5.4f;
+   * double num6= 4551595484654646464654684664646846713431.265;
+   *
+   * System.out.println(num1);
+   * System.out.println((byte)num3);
+   * System.out.println((double)num2);
+   * System.out.println((short)num4);
+   * System.out.println((double)num5);
+   * System.out.println((int)num4);
+   * System.out.println((float) num6);
+   * System.out.println(num6);
+   *
+   * double d = 4786777867867868654674678346734763478673478654478967.77;
+   * System.out.println((float)d);
+   * System.out.println((long)d);
+   * System.out.println((int)d);
+   * System.out.println((short)d);
+   * System.out.println((byte)d);
+   *
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: CastingInNumTypes", + "$i0 = 1", + "$i1 = 2", + "$i2 = 3", + "$l0 = 4551598461L", + "$f0 = 5.4F", + "$d0 = 4.5515954846546467E39", + "$r1 = ", + "virtualinvoke $r1.($i0)", + "$r2 = ", + "$b0 = (byte) $i2", + "virtualinvoke $r2.($b0)", + "$r3 = ", + "$d1 = (double) $i1", + "virtualinvoke $r3.($d1)", + "$r4 = ", + "$s0 = (short) $l0", + "virtualinvoke $r4.($s0)", + "$r5 = ", + "$d2 = (double) $f0", + "virtualinvoke $r5.($d2)", + "$r6 = ", + "$i3 = (int) $l0", + "virtualinvoke $r6.($i3)", + "$r7 = ", + "$f1 = (float) $d0", + "virtualinvoke $r7.($f1)", + "$r8 = ", + "virtualinvoke $r8.($d0)", + "$d3 = 4.7867778678678685E51", + "$r9 = ", + "$f2 = (float) $d3", + "virtualinvoke $r9.($f2)", + "$r10 = ", + "$l1 = (long) $d3", + "virtualinvoke $r10.($l1)", + "$r11 = ", + "$i4 = (int) $d3", + "virtualinvoke $r11.($i4)", + "$r12 = ", + "$s1 = (short) $d3", + "virtualinvoke $r12.($s1)", + "$r13 = ", + "$b1 = (byte) $d3", + "virtualinvoke $r13.($b1)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/CharLiteralsTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/CharLiteralsTest.java new file mode 100644 index 00000000000..eb17f92644f --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/CharLiteralsTest.java @@ -0,0 +1,144 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class CharLiteralsTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("charCharacter")); + assertJimpleStmts(method, expectedBodyStmtsCharCharacter()); + + method = loadMethod(getMethodSignature("charSymbol")); + assertJimpleStmts(method, expectedBodyStmtsCharSymbol()); + + method = loadMethod(getMethodSignature("charBackslashT")); + assertJimpleStmts(method, expectedBodyStmtsCharBackslashT()); + + method = loadMethod(getMethodSignature("charBackslash")); + assertJimpleStmts(method, expectedBodyStmtsCharBackslash()); + + method = loadMethod(getMethodSignature("charSingleQuote")); + assertJimpleStmts(method, expectedBodyStmtsCharSingleQuote()); + + method = loadMethod(getMethodSignature("charUnicode")); + assertJimpleStmts(method, expectedBodyStmtsCharUnicode()); + + method = loadMethod(getMethodSignature("specialChar")); + assertJimpleStmts(method, expectedBodyStmtsSpecialChar()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void charCharacter(){
+   *         char val = 'a';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharCharacter() { + return Stream.of("r0 := @this: CharLiterals", "$i0 = 97", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charSymbol(){
+   *         char val = '%';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharSymbol() { + return Stream.of("r0 := @this: CharLiterals", "$i0 = 37", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void charBackslashT(){ char val = '\t'; }
+   * 
+ */ + public List expectedBodyStmtsCharBackslashT() { + return Stream.of("r0 := @this: CharLiterals", "$i0 = 9", "return").collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charBackslash(){
+   *         char val = '\\';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharBackslash() { + return Stream.of("r0 := @this: CharLiterals", "$i0 = 92", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charSingleQuote(){
+   *         char val = '\'';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharSingleQuote() { + return Stream.of("r0 := @this: CharLiterals", "$i0 = 39", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charUnicode(){
+   *         char val = '\u03a9';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharUnicode() { + return Stream.of("r0 := @this: CharLiterals", "$i0 = 937", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void specialChar(){
+   *         char val = '™';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsSpecialChar() { + return Stream.of("r0 := @this: CharLiterals", "$i0 = 8482", "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java new file mode 100644 index 00000000000..cc46ccc7c43 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java @@ -0,0 +1,67 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class ContinueInWhileLoopTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "continueInWhileLoop", "void", Collections.emptyList()); + } + + /**
+   * public void continueInWhileLoop(){
+   * int num = 0;
+   * while (num < 10) {
+   * if (num == 5) {
+   * num++;
+   * continue;
+   * }
+   * num++;
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: ContinueInWhileLoop",
+            "$i0 = 0",
+            "label1:",
+            "$z0 = $i0 < 10",
+            "if $z0 == 0 goto label4",
+            "$z1 = $i0 == 5",
+            "if $z1 == 0 goto label2",
+            "$i1 = $i0",
+            "$i2 = $i0 + 1",
+            "$i0 = $i2",
+            "goto label3",
+            "label2:",
+            "$i3 = $i0",
+            "$i4 = $i0 + 1",
+            "$i0 = $i4",
+            "label3:",
+            "goto label1",
+            "label4:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/CreateNewInstanceTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/CreateNewInstanceTest.java
new file mode 100644
index 00000000000..167e559e027
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/CreateNewInstanceTest.java
@@ -0,0 +1,48 @@
+/** @author: Hasitha Rajapakse */
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(Java8Test.class)
+public class CreateNewInstanceTest extends MinimalSourceTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "createNewInstance", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   *     public void createNewInstance(){
+   * Person person = new Person(20);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: CreateNewInstance", + "$r1 = new Person", + "specialinvoke $r1.(int)>(20)", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareConstructorTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareConstructorTest.java new file mode 100644 index 00000000000..0c6fe7fe891 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareConstructorTest.java @@ -0,0 +1,77 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class DeclareConstructorTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignatureInitOneParam() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Collections.singletonList("int")); + } + + public MethodSignature getMethodSignatureInitTwoParam() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Arrays.asList("int", "int")); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignatureInitOneParam()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getMethodSignatureInitTwoParam()); + assertJimpleStmts(method, expectedBodyStmts1()); + } + + /** + * + * + *
+   * public DeclareConstructor(int var1){
+   *         this.var1=var1;
+   *         this.var2=0;
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: DeclareConstructor", + "$i0 := @parameter0: int", + "specialinvoke r0.()>()", + "r0. = $i0", + "r0. = 0", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public DeclareConstructor(int var1, int var2){
+   *         this.var1=var1;
+   *         this.var2=var2;
+   *     }
+   * 
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "r0 := @this: DeclareConstructor", + "$i0 := @parameter0: int", + "$i1 := @parameter1: int", + "specialinvoke r0.()>()", + "r0. = $i0", + "r0. = $i1", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumTest.java new file mode 100644 index 00000000000..30adeef0ebf --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumTest.java @@ -0,0 +1,64 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class DeclareEnumTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + SootClass sc = + loadClass( + identifierFactory.getClassType( + getDeclaredClassSignature().getFullyQualifiedName() + "$Type")); + assertTrue(sc.isEnum()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareEnum", "void", Collections.emptyList()); + } + + /**
+   * public void declareEnum(){
+   * for(Type type:Type.values()){
+   * System.out.println(type);
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return super.expectedBodyStmts(
+        "r0 := @this: DeclareEnum",
+        "$r1 = staticinvoke ()",
+        "$i0 = 0",
+        "label1:",
+        "$i1 = lengthof $r1",
+        "$z0 = $i0 < $i1",
+        "if $z0 == 0 goto label2",
+        "$r2 = $r1[$i0]",
+        "$r3 = ",
+        "virtualinvoke $r3.($r2)",
+        "$i2 = $i0",
+        "$i3 = $i0 + 1",
+        "$i0 = $i3",
+        "goto label1",
+        "label2:",
+        "return");
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java
new file mode 100644
index 00000000000..cd75354a011
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java
@@ -0,0 +1,174 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertTrue;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootClass;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class DeclareEnumWithConstructorTest extends MinimalSourceTestSuiteBase {
+
+  public MethodSignature getInitMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "", "void", Collections.emptyList());
+  }
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "getValue", "int", Collections.emptyList());
+  }
+
+  public MethodSignature getMainMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(),
+        "main",
+        "void",
+        Collections.singletonList("java.lang.String[]"));
+  }
+
+  public MethodSignature getEnumConstructorSignature() {
+    return identifierFactory.getMethodSignature(
+        identifierFactory.getClassType("DeclareEnumWithConstructor$Number"),
+        "",
+        "void",
+        Collections.emptyList());
+  }
+
+  public MethodSignature getEnumGetValueSignature() {
+    return identifierFactory.getMethodSignature(
+        identifierFactory.getClassType("DeclareEnumWithConstructor$Number"),
+        "getValue",
+        "int",
+        Collections.emptyList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod sootMethod = loadMethod(getInitMethodSignature());
+    assertJimpleStmts(sootMethod, expectedBodyStmts());
+
+    sootMethod = loadMethod(getMainMethodSignature());
+    assertJimpleStmts(sootMethod, expectedMainBodyStmts());
+
+    sootMethod = loadMethod(getEnumConstructorSignature());
+    assertJimpleStmts(sootMethod, expectedEnumConstructorStmts());
+
+    sootMethod = loadMethod(getEnumGetValueSignature());
+    assertJimpleStmts(sootMethod, expectedGetValueStmts());
+
+    SootClass sootClass =
+        loadClass(identifierFactory.getClassType("DeclareEnumWithConstructor$Number"));
+    System.out.println(sootClass.getModifiers());
+    assertTrue(sootClass.isEnum());
+  }
+
+  /**
+   *
+   *
+   * 
+   *
+   * private int getValue() {
+   * return value;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: DeclareEnumWithConstructor", + "specialinvoke r0.()>()", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public static void main(String[] args) {
+   *         Number number = Number.ONE;
+   *         System.out.println(number.getValue());
+   *     }
+   * 
+ */ + public List expectedMainBodyStmts() { + return Stream.of( + "$r0 := @parameter0: java.lang.String[]", + "$r1 = ", + "$r2 = $r1", + "$r3 = ", + "$i0 = specialinvoke $r2.()", + "virtualinvoke $r3.($i0)", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public enum Number{
+   *         ZERO(0),
+   *         ONE(1),
+   *         TWO(2),
+   *         THREE(3);
+   *         private int value;
+   *         Number(int value){
+   *             this.value=value;
+   *         }
+   *  }
+   * 
+ */ + public List expectedEnumConstructorStmts() { + return Stream.of( + "$r0 = new DeclareEnumWithConstructor$Number", + "specialinvoke $r0.(java.lang.String,int,int)>(\"ZERO\", 0, 0)", + " = $r0", + "$r1 = new DeclareEnumWithConstructor$Number", + "specialinvoke $r1.(java.lang.String,int,int)>(\"ONE\", 1, 1)", + " = $r1", + "$r2 = new DeclareEnumWithConstructor$Number", + "specialinvoke $r2.(java.lang.String,int,int)>(\"TWO\", 2, 2)", + " = $r2", + "$r3 = new DeclareEnumWithConstructor$Number", + "specialinvoke $r3.(java.lang.String,int,int)>(\"THREE\", 3, 3)", + " = $r3", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public enum Number{
+   *         ZERO(0),
+   *         ONE(1),
+   *         TWO(2),
+   *         THREE(3);
+   *         private int value;
+   *
+   *     private int getValue() {
+   *             return value;
+   *         }
+   *         }
+   * 
+ */ + public List expectedGetValueStmts() { + return Stream.of( + "r0 := @this: DeclareEnumWithConstructor$Number", + "$i0 = r0.", + "return $i0") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareFieldTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareFieldTest.java new file mode 100644 index 00000000000..d0682712bf6 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareFieldTest.java @@ -0,0 +1,95 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** @author Kaustubh Kelkar */ +public class DeclareFieldTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "display", "void", Collections.emptyList()); + } + + public MethodSignature getStaticMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticDisplay", "void", Collections.emptyList()); + } + + @org.junit.Test + public void test() { + SootMethod method1 = loadMethod(getMethodSignature()); + assertJimpleStmts(method1, expectedBodyStmts()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getStaticMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts1()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> { + return sootField.getModifiers().contains(Modifier.PRIVATE) + && sootField.getModifiers().contains(Modifier.STATIC) + && sootField.getName().equals("i"); + })); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> { + return sootField.getModifiers().contains(Modifier.PUBLIC) + && sootField.getModifiers().contains(Modifier.FINAL) + && sootField.getName().equals("s"); + })); + } + + /** + * + * + *
+   *     public void display(){
+   *         System.out.println(s);
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: DeclareField", + "$r1 = ", + "$r2 = r0.", + "virtualinvoke $r1.(\"Java\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void staticDisplay(){
+   *         System.out.println(i);
+   *     }
+   * 
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "r0 := @this: DeclareField", + "$r1 = ", + "$i0 = ", + "virtualinvoke $r1.($i0)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareFloatTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareFloatTest.java new file mode 100644 index 00000000000..f9a37299505 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareFloatTest.java @@ -0,0 +1,49 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class DeclareFloatTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareFloatMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     void declareFloatMethod(){
+   * System.out.println(f1);
+   * System.out.println(f2);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: DeclareFloat", + "$r1 = ", + "$f0 = r0.", + "virtualinvoke $r1.($f0)", + "$r2 = ", + "$f1 = r0.", + "virtualinvoke $r2.($f1)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareInnerClassTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareInnerClassTest.java new file mode 100644 index 00000000000..c4774c6da1c --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareInnerClassTest.java @@ -0,0 +1,80 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareInnerClassTest extends MinimalSourceTestSuiteBase { + + final JavaClassType innerClassType = + JavaIdentifierFactory.getInstance() + .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$InnerClass"); + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodDisplayOuter", "void", Collections.emptyList()); + } + + public MethodSignature getInnerMethodSignature() { + return identifierFactory.getMethodSignature( + innerClassType, "methodDisplayInner", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = loadMethod(getInnerMethodSignature()); + assertJimpleStmts(method, expectedInnerClassBodyStmts()); + } + + /** + * + * + *
+   *     public void methodDisplayOuter(){
+   *         System.out.println("methodDisplayOuter");
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: DeclareInnerClass", + "$r1 = ", + "virtualinvoke $r1.(\"methodDisplayOuter\")", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void methodDisplayInner(){
+   *             System.out.println("methodDisplayInner");
+   *         }
+   * 
+ */ + public List expectedInnerClassBodyStmts() { + return Stream.of( + "r0 := @this: DeclareInnerClass$InnerClass", + "$r1 = ", + "virtualinvoke $r1.(\"methodDisplayInner\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareIntTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareIntTest.java new file mode 100644 index 00000000000..f05d9c3f342 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareIntTest.java @@ -0,0 +1,53 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class DeclareIntTest extends MinimalSourceTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareIntMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     void declareIntMethod(){
+   * System.out.println(dec);
+   * System.out.println(hex);
+   * System.out.println(oct);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: DeclareInt", + "$r1 = ", + "$i0 = r0.", + "virtualinvoke $r1.($i0)", + "$r2 = ", + "$i1 = r0.", + "virtualinvoke $r2.($i1)", + "$r3 = ", + "$i2 = r0.", + "virtualinvoke $r3.($i2)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareLongTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareLongTest.java new file mode 100644 index 00000000000..aac73689476 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DeclareLongTest.java @@ -0,0 +1,49 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class DeclareLongTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareLongMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     void declareLongMethod(){
+   * System.out.println(l1);
+   * System.out.println(l2);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: DeclareLong", + "$r1 = ", + "$l0 = r0.", + "virtualinvoke $r1.($l0)", + "$r2 = ", + "$l1 = r0.", + "virtualinvoke $r2.($l1)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DoWhileLoopTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DoWhileLoopTest.java new file mode 100644 index 00000000000..44f6dc26bf4 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/DoWhileLoopTest.java @@ -0,0 +1,55 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class DoWhileLoopTest extends MinimalSourceTestSuiteBase { + // TODO extends MinimalTestSuiteBase + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "doWhileLoop", "void", Collections.emptyList()); + } + + /**
+   * public void doWhileLoop() {
+   * int num = 10;
+   * int i = 0;
+   * do {
+   * i++;
+   * } while (num > i);
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: DoWhileLoop",
+            "$i0 = 10",
+            "$i1 = 0",
+            "label1:",
+            "$i2 = $i1",
+            "$i3 = $i1 + 1",
+            "$i1 = $i3",
+            "$z0 = $i0 > $i1",
+            "if $z0 != 0 goto label1",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/EmptyStatementTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/EmptyStatementTest.java
new file mode 100644
index 00000000000..64f553168d5
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/EmptyStatementTest.java
@@ -0,0 +1,44 @@
+/** @author: Hasitha Rajapakse */
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(Java8Test.class)
+public class EmptyStatementTest extends MinimalSourceTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "emptyStatement", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   *     public void emptyStatement(){
+   * int num  = 5;;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: EmptyStatement", "$i0 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java new file mode 100644 index 00000000000..08484830486 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java @@ -0,0 +1,185 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class EscapeSequencesInStringTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("escapeBackslashB")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashB()); + + method = loadMethod(getMethodSignature("escapeBackslashT")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashT()); + + method = loadMethod(getMethodSignature("escapeBackslashN")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashN()); + + method = loadMethod(getMethodSignature("escapeBackslashF")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashF()); + + method = loadMethod(getMethodSignature("escapeBackslashR")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashR()); + + method = loadMethod(getMethodSignature("escapeDoubleQuotes")); + assertJimpleStmts(method, expectedBodyStmtsEscapeDoubleQuotes()); + + method = loadMethod(getMethodSignature("escapeSingleQuote")); + assertJimpleStmts(method, expectedBodyStmtsEscapeSingleQuote()); + + method = loadMethod(getMethodSignature("escapeBackslash")); + assertJimpleStmts(method, expectedBodyStmtsEscapeBackslash()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void escapeBackslashB(){
+   *         String str = "This escapes backslash b \b";
+   *     }
+   *     
+ */ + public List expectedBodyStmtsEscapeBackslashB() { + return Stream.of( + "r0 := @this: EscapeSequencesInString", + "$r1 = \"This escapes backslash b \\u0008\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeBackslashT(){
+   *         String str = "This escapes backslash t \t";
+   *     }
+ */ + public List expectedBodyStmtsEscapeBackslashT() { + return Stream.of( + "r0 := @this: EscapeSequencesInString", + "$r1 = \"This escapes backslash t \\t\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeBackslashN(){
+   *         String str = "This escapes backslash n \n";
+   *     }
+ */ + public List expectedBodyStmtsEscapeBackslashN() { + return Stream.of( + "r0 := @this: EscapeSequencesInString", + "$r1 = \"This escapes backslash n \\n\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeBackslashF(){
+   *         String str = "This escapes backslash f \f";
+   *     }
+   *     
+ */ + public List expectedBodyStmtsEscapeBackslashF() { + return Stream.of( + "r0 := @this: EscapeSequencesInString", + "$r1 = \"This escapes backslash f \\f\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void escapeBackslashR(){
+   *         String str = "This escapes backslash r \r";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsEscapeBackslashR() { + return Stream.of( + "r0 := @this: EscapeSequencesInString", + "$r1 = \"This escapes backslash r \\r\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeDoubleQuotes(){
+   *         String str = "This escapes double quotes \"";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsEscapeDoubleQuotes() { + return Stream.of( + "r0 := @this: EscapeSequencesInString", + "$r1 = \"This escapes double quotes \\\"\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeSingleQuote(){
+   *         String str = "This escapes single quote \'";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsEscapeSingleQuote() { + return Stream.of( + "r0 := @this: EscapeSequencesInString", + "$r1 = \"This escapes single quote \\\'\"", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void escapeBackslash(){
+   *         String str = "This escapes backslash \\";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsEscapeBackslash() { + return Stream.of( + "r0 := @this: EscapeSequencesInString", + "$r1 = \"This escapes backslash \\\\\"", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java new file mode 100644 index 00000000000..50b73fbcd25 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java @@ -0,0 +1,48 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class EvaluationOrderWithParenthesesTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), + "evaluationOrderWithParentheses", + "void", + Collections.emptyList()); + } + + /** + * + * + *
+   *     public void evaluationOrderWithParentheses(){
+   * int b = ((1 + 2) * 3);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: EvaluationOrderWithParentheses", "$i0 = 1 + 2", "$i1 = $i0 * 3", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/FinalMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/FinalMethodTest.java new file mode 100644 index 00000000000..eb56cc467af --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/FinalMethodTest.java @@ -0,0 +1,51 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class FinalMethodTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + assertTrue(method.isFinal()); + } + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "finalMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     final void finalMethod(){
+   * System.out.println("final method");
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: FinalMethod", + "$r1 = ", + "virtualinvoke $r1.(\"final method\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/FinalVariableTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/FinalVariableTest.java new file mode 100644 index 00000000000..53d8c5b355f --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/FinalVariableTest.java @@ -0,0 +1,44 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class FinalVariableTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "finalVariable", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void finalVariable() {
+   * final int num = 5;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: FinalVariable", "$i0 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ForEachLoopTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ForEachLoopTest.java new file mode 100644 index 00000000000..13955b55c5c --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ForEachLoopTest.java @@ -0,0 +1,73 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class ForEachLoopTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "forEachLoop", "void", Collections.emptyList()); + } + + /**
+   * public void forEachLoop(){
+   * int[] numArray = {10,20,30,40,50,60,71,80,90};
+   * int count = 0;
+   * for (int item :numArray) {
+   * count++;
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: ForEachLoop",
+            "$r1 = newarray (int)[9]",
+            "$r1[0] = 10",
+            "$r1[1] = 20",
+            "$r1[2] = 30",
+            "$r1[3] = 40",
+            "$r1[4] = 50",
+            "$r1[5] = 60",
+            "$r1[6] = 71",
+            "$r1[7] = 80",
+            "$r1[8] = 90",
+            "$i0 = 0",
+            "$r2 = $r1",
+            "$i1 = 0",
+            "label1:",
+            "$i2 = lengthof $r2",
+            "$z0 = $i1 < $i2",
+            "if $z0 == 0 goto label2",
+            "$r3 = $r2[$i1]",
+            "$i3 = $i0",
+            "$i4 = $i0 + 1",
+            "$i0 = $i4",
+            "$i5 = $i1",
+            "$i6 = $i1 + 1",
+            "$i1 = $i6",
+            "goto label1",
+            "label2:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ForLoopTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ForLoopTest.java
new file mode 100644
index 00000000000..d4493adf938
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ForLoopTest.java
@@ -0,0 +1,61 @@
+/** @author: Hasitha Rajapakse */
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(Java8Test.class)
+public class ForLoopTest extends MinimalSourceTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "forLoop", "void", Collections.emptyList());
+  }
+
+  /**  
+   * public void forLoop(){
+   * int j = 10;
+   * int num = 0;
+   * for(int i=0; i*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: ForLoop",
+            "$i0 = 10",
+            "$i1 = 0",
+            "$i2 = 0",
+            "label1:",
+            "$z0 = $i2 < $i0",
+            "if $z0 == 0 goto label2",
+            "$i3 = $i1",
+            "$i4 = $i1 + 1",
+            "$i1 = $i4",
+            "$i5 = $i2",
+            "$i6 = $i2 + 1",
+            "$i2 = $i6",
+            "goto label1",
+            "label2:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/GenTypeParamTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/GenTypeParamTest.java
new file mode 100644
index 00000000000..c09b9d45407
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/GenTypeParamTest.java
@@ -0,0 +1,62 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+
+public class GenTypeParamTest extends MinimalSourceTestSuiteBase {
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "geneTypeParamDisplay", "void", Collections.emptyList());
+  }
+
+  /** Jimple code will change when Generics are incorporated */
+
+  /**
+   *
+   *
+   * 
+   *    public void geneTypeParamDisplay(){
+   * List output = new ArrayList< Object >(3);
+   * List input = Arrays.asList(1,2,3);
+   * GenTypeParam genTypeParam= new GenTypeParam();
+   * genTypeParam.copy(output,input);
+   * System.out.println(genTypeParam.largestNum(2,8,3));
+   * }
+   * 
+   */
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: GenTypeParam",
+            "$r1 = new java.util.ArrayList",
+            "specialinvoke $r1.(int)>(3)",
+            "$r2 = newarray (java.lang.Object)[3]",
+            "$r2[0] = 1",
+            "$r2[1] = 2",
+            "$r2[2] = 3",
+            "$r3 = staticinvoke ($r2)",
+            "$r4 = new GenTypeParam",
+            "specialinvoke $r4.()>()",
+            "virtualinvoke $r4.($r1, $r3)",
+            "$r5 = ",
+            "$r6 = virtualinvoke $r4.(2, 8, 3)",
+            "$r7 = (java.lang.Integer) $r6",
+            "virtualinvoke $r5.($r7)",
+            "return")
+        .collect(Collectors.toCollection(ArrayList::new));
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java
new file mode 100644
index 00000000000..c1ca71e99c0
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java
@@ -0,0 +1,52 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/** @author: Hasitha Rajapakse * */
+@Category(Java8Test.class)
+public class GenericTypeParamOnClassTest extends MinimalSourceTestSuiteBase {
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "genericTypeParamOnClass", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * public void genericTypeParamOnClass() {
+   * A a = new A();
+   * a.set(5);
+   * int x = a.get();
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: GenericTypeParamOnClass", + "$r1 = new GenericTypeParamOnClass$A", + "specialinvoke $r1.()>()", + "specialinvoke $r1.(5)", + "$r2 = virtualinvoke $r1.()", + "$r3 = (java.lang.Integer) $r2", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java new file mode 100644 index 00000000000..142854bf819 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java @@ -0,0 +1,46 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author: Hasitha Rajapakse * */ +@Category(Java8Test.class) +public class GenericTypeParamOnMethodTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "genericTypeParamOnMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void genericTypeParamOnMethod() {
+   * a("Hello World");
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: GenericTypeParamOnMethod", + "virtualinvoke r0.(\"Hello World\")", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/IfElseStatementTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/IfElseStatementTest.java new file mode 100644 index 00000000000..b8788a30be0 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/IfElseStatementTest.java @@ -0,0 +1,318 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class IfElseStatementTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("ifStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfStatement()); + + method = loadMethod(getMethodSignature("ifElseStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseStatement()); + + method = loadMethod(getMethodSignature("ifElseIfStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseIfStatement()); + + method = loadMethod(getMethodSignature("ifElseCascadingStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingStatement()); + + method = loadMethod(getMethodSignature("ifElseCascadingInElseStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingInElseStatement()); + + method = loadMethod(getMethodSignature("ifElseCascadingElseIfStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingElseIfStatement()); + + method = loadMethod(getMethodSignature("ifElseCascadingElseIfInElseStatement")); + assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingElseIfInElseStatement()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "int", Collections.singletonList("int")); + } + + /** + * + * + *
+   *     public int ifStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfStatement() { + return Stream.of( + "r0 := @this: IfElseStatement", + "$i0 := @parameter0: int", + "$i1 = 0", + "$z0 = $i0 < 42", + "if $z0 == 0 goto label1", + "$i1 = 1", + "goto label1", + "label1:", + "return $i1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *  public int ifElseStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }else{
+   *             val = 2;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseStatement() { + return Stream.of( + "r0 := @this: IfElseStatement", + "$i0 := @parameter0: int", + "$i1 = 0", + "$z0 = $i0 < 42", + "if $z0 == 0 goto label1", + "$i1 = 1", + "goto label2", + "label1:", + "$i1 = 2", + "label2:", + "return $i1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseIfStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }else if( a > 123){
+   *             val = 2;
+   *         }else{
+   *             val = 3;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseIfStatement() { + return Stream.of( + "r0 := @this: IfElseStatement", + "$i0 := @parameter0: int", + "$i1 = 0", + "$z0 = $i0 < 42", + "if $z0 == 0 goto label1", + "$i1 = 1", + "goto label3", + "label1:", + "$z1 = $i0 > 123", + "if $z1 == 0 goto label2", + "$i1 = 2", + "goto label3", + "label2:", + "$i1 = 3", + "label3:", + "return $i1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseCascadingStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             if(a < 42){
+   *                 val = 11;
+   *             }else{
+   *                 val = 12;
+   *             }
+   *         }else{
+   *             val = 3;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseCascadingStatement() { + return Stream.of( + "r0 := @this: IfElseStatement", + "$i0 := @parameter0: int", + "$i1 = 0", + "$z0 = $i0 < 42", + "if $z0 == 0 goto label3", + "$z1 = $i0 < 42", + "if $z1 == 0 goto label1", + "$i1 = 11", + "goto label2", + "label1:", + "$i1 = 12", + "label2:", + "goto label4", + "label3:", + "$i1 = 3", + "label4:", + "return $i1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseCascadingInElseStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }else{
+   *             if(a < 42){
+   *                 val = 21;
+   *             }else{
+   *                 val = 22;
+   *             }
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseCascadingInElseStatement() { + return Stream.of( + "r0 := @this: IfElseStatement", + "$i0 := @parameter0: int", + "$i1 = 0", + "$z0 = $i0 < 42", + "if $z0 == 0 goto label1", + "$i1 = 1", + "goto label3", + "label1:", + "$z1 = $i0 < 42", + "if $z1 == 0 goto label2", + "$i1 = 21", + "goto label3", + "label2:", + "$i1 = 22", + "label3:", + "return $i1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseCascadingElseIfStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             if(a < 42){
+   *                 val = 11;
+   *             }else if(a > 123){
+   *                 val = 12;
+   *             }else{
+   *                 val = 13;
+   *             }
+   *         }else{
+   *             val = 2;
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseCascadingElseIfStatement() { + return Stream.of( + "r0 := @this: IfElseStatement", + "$i0 := @parameter0: int", + "$i1 = 0", + "$z0 = $i0 < 42", + "if $z0 == 0 goto label4", + "$z1 = $i0 < 42", + "if $z1 == 0 goto label1", + "$i1 = 11", + "goto label3", + "label1:", + "$z2 = $i0 > 123", + "if $z2 == 0 goto label2", + "$i1 = 12", + "goto label3", + "label2:", + "$i1 = 13", + "label3:", + "goto label5", + "label4:", + "$i1 = 2", + "label5:", + "return $i1") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public int ifElseCascadingElseIfInElseStatement(int a){
+   *         int val = 0;
+   *         if(a < 42){
+   *             val = 1;
+   *         }else{
+   *             if(a < 42){
+   *                 val = 21;
+   *             }else if(a > 123){
+   *                 val = 22;
+   *             }else{
+   *                 val = 23;
+   *             }
+   *         }
+   *         return val;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIfElseCascadingElseIfInElseStatement() { + return Stream.of( + "r0 := @this: IfElseStatement", + "$i0 := @parameter0: int", + "$i1 = 0", + "$z0 = $i0 < 42", + "if $z0 == 0 goto label1", + "$i1 = 1", + "goto label4", + "label1:", + "$z1 = $i0 < 42", + "if $z1 == 0 goto label2", + "$i1 = 21", + "goto label4", + "label2:", + "$z2 = $i0 > 123", + "if $z2 == 0 goto label3", + "$i1 = 22", + "goto label4", + "label3:", + "$i1 = 23", + "label4:", + "return $i1") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InfiniteLoopTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InfiniteLoopTest.java new file mode 100644 index 00000000000..d01dfaf9079 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InfiniteLoopTest.java @@ -0,0 +1,47 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Markus Schmidt */ +@Category(Java8Test.class) +// FIXME: [ms] rename test (and in bytecodefrontend too) +public class InfiniteLoopTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stmtLoop", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *   void stmtLoop(){
+   * infloop:
+   * break infloop;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: InfiniteLoop", "goto label1", "label1:", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + Utils.printJimpleForTest(method); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java new file mode 100644 index 00000000000..877e53e769c --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java @@ -0,0 +1,395 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class Initialize3DimensionalArraysTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts(method, expectedBodyStmtsIntArrays()); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts(method, expectedBodyStmtsByteArrays()); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts(method, expectedBodyStmtsShortArrays()); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts(method, expectedBodyStmtsLongArrays()); + + method = loadMethod(getMethodSignature("floatArrays")); + assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts(method, expectedBodyStmtsCharArrays()); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts(method, expectedBodyStmtsStringArrays()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void intArrays(){
+   *         int[][][] intArray3D = {{{1, 2, 3},{5, 6}},{{7, 8, 9},{10,11}}};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntArrays() { + return Stream.of( + "r0 := @this: Initialize3DimensionalArrays", + "$r1 = newarray (int[][])[2]", + "$r2 = newarray (int[])[2]", + "$r3 = newarray (int)[3]", + "$r3[0] = 1", + "$r3[1] = 2", + "$r3[2] = 3", + "$r2[0] = $r3", + "$r4 = newarray (int)[2]", + "$r4[0] = 5", + "$r4[1] = 6", + "$r2[1] = $r4", + "$r1[0] = $r2", + "$r5 = newarray (int[])[2]", + "$r6 = newarray (int)[3]", + "$r6[0] = 7", + "$r6[1] = 8", + "$r6[2] = 9", + "$r5[0] = $r6", + "$r7 = newarray (int)[2]", + "$r7[0] = 10", + "$r7[1] = 11", + "$r5[1] = $r7", + "$r1[1] = $r5", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void byteArrays(){
+   *         byte[][][] byteArray3D = {{{7, 8, 9},{10,11}},{{1, 2, 3},{5, 6}}};;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByteArrays() { + return Stream.of( + "r0 := @this: Initialize3DimensionalArrays", + "$r1 = newarray (byte[][])[2]", + "$r2 = newarray (byte[])[2]", + "$r3 = newarray (byte)[3]", + "$r3[0] = 7", + "$r3[1] = 8", + "$r3[2] = 9", + "$r2[0] = $r3", + "$r4 = newarray (byte)[2]", + "$r4[0] = 10", + "$r4[1] = 11", + "$r2[1] = $r4", + "$r1[0] = $r2", + "$r5 = newarray (byte[])[2]", + "$r6 = newarray (byte)[3]", + "$r6[0] = 1", + "$r6[1] = 2", + "$r6[2] = 3", + "$r5[0] = $r6", + "$r7 = newarray (byte)[2]", + "$r7[0] = 5", + "$r7[1] = 6", + "$r5[1] = $r7", + "$r1[1] = $r5", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void shortArrays(){
+   *         short[][][] shortArray3D = {{{10,20},{40,85}},{{56,59},{95,35}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsShortArrays() { + return Stream.of( + "r0 := @this: Initialize3DimensionalArrays", + "$r1 = newarray (short[][])[2]", + "$r2 = newarray (short[])[2]", + "$r3 = newarray (short)[2]", + "$r3[0] = 10", + "$r3[1] = 20", + "$r2[0] = $r3", + "$r4 = newarray (short)[2]", + "$r4[0] = 40", + "$r4[1] = 85", + "$r2[1] = $r4", + "$r1[0] = $r2", + "$r5 = newarray (short[])[2]", + "$r6 = newarray (short)[2]", + "$r6[0] = 56", + "$r6[1] = 59", + "$r5[0] = $r6", + "$r7 = newarray (short)[2]", + "$r7[0] = 95", + "$r7[1] = 35", + "$r5[1] = $r7", + "$r1[1] = $r5", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void longArrays(){
+   *         long[][][] longArray3D = {{{547087L, 654786L},{547287L, 864645L, 6533786L}},{{34565L,234L},{9851L,63543L}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLongArrays() { + return Stream.of( + "r0 := @this: Initialize3DimensionalArrays", + "$r1 = newarray (long[][])[2]", + "$r2 = newarray (long[])[2]", + "$r3 = newarray (long)[2]", + "$r3[0] = 547087L", + "$r3[1] = 654786L", + "$r2[0] = $r3", + "$r4 = newarray (long)[3]", + "$r4[0] = 547287L", + "$r4[1] = 864645L", + "$r4[2] = 6533786L", + "$r2[1] = $r4", + "$r1[0] = $r2", + "$r5 = newarray (long[])[2]", + "$r6 = newarray (long)[2]", + "$r6[0] = 34565L", + "$r6[1] = 234L", + "$r5[0] = $r6", + "$r7 = newarray (long)[2]", + "$r7[0] = 9851L", + "$r7[1] = 63543L", + "$r5[1] = $r7", + "$r1[1] = $r5", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatArrays(){
+   *         float[][][] floatrray3D = {{{3.14f, 5.46f}, {2.987f, 4.87f}},{{65.15f,854.18f},{16.51f,58.14f}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatArrays() { + return Stream.of( + "r0 := @this: Initialize3DimensionalArrays", + "$r1 = newarray (float[][])[2]", + "$r2 = newarray (float[])[2]", + "$r3 = newarray (float)[2]", + "$r3[0] = 3.14F", + "$r3[1] = 5.46F", + "$r2[0] = $r3", + "$r4 = newarray (float)[2]", + "$r4[0] = 2.987F", + "$r4[1] = 4.87F", + "$r2[1] = $r4", + "$r1[0] = $r2", + "$r5 = newarray (float[])[2]", + "$r6 = newarray (float)[2]", + "$r6[0] = 65.15F", + "$r6[1] = 854.18F", + "$r5[0] = $r6", + "$r7 = newarray (float)[2]", + "$r7[0] = 16.51F", + "$r7[1] = 58.14F", + "$r5[1] = $r7", + "$r1[1] = $r5", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleArrays(){
+   *         double[][][] doubleArray3D = {{{6.765414d, 9.676565646d},{45.345435d}},{{3.5656d,68.234234d},{68416.651d,65416.5d}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleArrays() { + return Stream.of( + "r0 := @this: Initialize3DimensionalArrays", + "$r1 = newarray (double[][])[2]", + "$r2 = newarray (double[])[2]", + "$r3 = newarray (double)[2]", + "$r3[0] = 6.765414", + "$r3[1] = 9.676565646", + "$r2[0] = $r3", + "$r4 = newarray (double)[1]", + "$r4[0] = 45.345435", + "$r2[1] = $r4", + "$r1[0] = $r2", + "$r5 = newarray (double[])[2]", + "$r6 = newarray (double)[2]", + "$r6[0] = 3.5656", + "$r6[1] = 68.234234", + "$r5[0] = $r6", + "$r7 = newarray (double)[2]", + "$r7[0] = 68416.651", + "$r7[1] = 65416.5", + "$r5[1] = $r7", + "$r1[1] = $r5", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void booleanArrays(){
+   *         boolean[][][] boolArray3D = {{{true, false},{true}},{{false,false},{true}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBooleanArrays() { + return Stream.of( + "r0 := @this: Initialize3DimensionalArrays", + "$r1 = newarray (boolean[][])[2]", + "$r2 = newarray (boolean[])[2]", + "$r3 = newarray (boolean)[2]", + "$r3[0] = 1", + "$r3[1] = 0", + "$r2[0] = $r3", + "$r4 = newarray (boolean)[1]", + "$r4[0] = 1", + "$r2[1] = $r4", + "$r1[0] = $r2", + "$r5 = newarray (boolean[])[2]", + "$r6 = newarray (boolean)[2]", + "$r6[0] = 0", + "$r6[1] = 0", + "$r5[0] = $r6", + "$r7 = newarray (boolean)[1]", + "$r7[0] = 1", + "$r5[1] = $r7", + "$r1[1] = $r5", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charArrays(){
+   *         char[][][] charArray3D = {{{'A', 'b', '&'},{'c','$'}},{{'2','G'},{'a','%'}}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharArrays() { + return Stream.of( + "r0 := @this: Initialize3DimensionalArrays", + "$r1 = newarray (char[][])[2]", + "$r2 = newarray (char[])[2]", + "$r3 = newarray (char)[3]", + "$r3[0] = 65", + "$r3[1] = 98", + "$r3[2] = 38", + "$r2[0] = $r3", + "$r4 = newarray (char)[2]", + "$r4[0] = 99", + "$r4[1] = 36", + "$r2[1] = $r4", + "$r1[0] = $r2", + "$r5 = newarray (char[])[2]", + "$r6 = newarray (char)[2]", + "$r6[0] = 50", + "$r6[1] = 71", + "$r5[0] = $r6", + "$r7 = newarray (char)[2]", + "$r7[0] = 97", + "$r7[1] = 37", + "$r5[1] = $r7", + "$r1[1] = $r5", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void stringArrays() {
+   *         String[][][] stringArray3D = {{{"Hello World"}, {"Greetings", "Welcome"}}, {{"Future","Soot"},{"UPB","HNI"}}};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsStringArrays() { + return Stream.of( + "r0 := @this: Initialize3DimensionalArrays", + "$r1 = newarray (java.lang.String[][])[2]", + "$r2 = newarray (java.lang.String[])[2]", + "$r3 = newarray (java.lang.String)[1]", + "$r3[0] = \"Hello World\"", + "$r2[0] = $r3", + "$r4 = newarray (java.lang.String)[2]", + "$r4[0] = \"Greetings\"", + "$r4[1] = \"Welcome\"", + "$r2[1] = $r4", + "$r1[0] = $r2", + "$r5 = newarray (java.lang.String[])[2]", + "$r6 = newarray (java.lang.String)[2]", + "$r6[0] = \"Future\"", + "$r6[1] = \"Soot\"", + "$r5[0] = $r6", + "$r7 = newarray (java.lang.String)[2]", + "$r7[0] = \"UPB\"", + "$r7[1] = \"HNI\"", + "$r5[1] = $r7", + "$r1[1] = $r5", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java new file mode 100644 index 00000000000..fb919bbf50c --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java @@ -0,0 +1,236 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class InitializeArraysWhileDeclarationTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts(method, expectedBodyStmtsIntArrays()); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts(method, expectedBodyStmtsByteArrays()); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts(method, expectedBodyStmtsShortArrays()); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts(method, expectedBodyStmtsLongArrays()); + + method = loadMethod(getMethodSignature("floatArrays")); + assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts(method, expectedBodyStmtsCharArrays()); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts(method, expectedBodyStmtsStringArrays()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void intArrays(){
+   *         int[] anArrayOfInts = {1, 2, 3};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWhileDeclaration", + "$r1 = newarray (int)[3]", + "$r1[0] = 1", + "$r1[1] = 2", + "$r1[2] = 3", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void byteArrays(){
+   *         byte[] anArrayOfBytes = {4, 5, 6};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByteArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWhileDeclaration", + "$r1 = newarray (byte)[3]", + "$r1[0] = 4", + "$r1[1] = 5", + "$r1[2] = 6", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void shortArrays(){
+   *         short[] anArrayOfShorts = {10, 20, 30};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsShortArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWhileDeclaration", + "$r1 = newarray (short)[3]", + "$r1[0] = 10", + "$r1[1] = 20", + "$r1[2] = 30", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void longArrays(){
+   *         long[] anArrayOfLongs = {547087L, 564645L, 654786L};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLongArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWhileDeclaration", + "$r1 = newarray (long)[3]", + "$r1[0] = 547087L", + "$r1[1] = 564645L", + "$r1[2] = 654786L", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatArrays(){
+   *         float[] anArrayOfFloats = {3.14f, 5.46f, 2.987f, 4.87f};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWhileDeclaration", + "$r1 = newarray (float)[4]", + "$r1[0] = 3.14F", + "$r1[1] = 5.46F", + "$r1[2] = 2.987F", + "$r1[3] = 4.87F", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleArrays(){
+   *         double[] anArrayOfDoubles = {6.765414d, 9.676565646d};
+   *
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWhileDeclaration", + "$r1 = newarray (double)[2]", + "$r1[0] = 6.765414", + "$r1[1] = 9.676565646", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void booleanArrays(){
+   *         boolean[] anArrayOfBooleans = {true, false};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBooleanArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWhileDeclaration", + "$r1 = newarray (boolean)[2]", + "$r1[0] = 1", + "$r1[1] = 0", + "return") + .collect(Collectors.toList()); + } + + /** + * public void charArrays(){ char[] anArrayOfChars = {'A', 'b', '&'}; + * + *

} + */ + public List expectedBodyStmtsCharArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWhileDeclaration", + "$r1 = newarray (char)[3]", + "$r1[0] = 65", + "$r1[1] = 98", + "$r1[2] = 38", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *

+   *     public void stringArrays(){
+   *         String[] anArrayOfStrings = {"Hello World", "Greetings"};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsStringArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWhileDeclaration", + "$r1 = newarray (java.lang.String)[2]", + "$r1[0] = \"Hello World\"", + "$r1[1] = \"Greetings\"", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java new file mode 100644 index 00000000000..5fe861e4bc2 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java @@ -0,0 +1,267 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class InitializeArraysWithIndexTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts(method, expectedBodyStmtsIntArrays()); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts(method, expectedBodyStmtsByteArrays()); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts(method, expectedBodyStmtsShortArrays()); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts(method, expectedBodyStmtsLongArrays()); + + method = loadMethod(getMethodSignature("floatArrays")); + + assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts(method, expectedBodyStmtsCharArrays()); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts(method, expectedBodyStmtsStringArrays()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *    public void intArrays(){
+   *         int[] anArrayOfInts = new int[3];
+   *         anArrayOfInts[0] = 1;
+   *         anArrayOfInts[1] = 2;
+   *         anArrayOfInts[2] = 3;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWithIndex", + "$r1 = newarray (int)[3]", + "$r1[0] = 1", + "$r1[1] = 2", + "$r1[2] = 3", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void byteArrays(){
+   *         byte[] anArrayOfBytes = new byte[3];
+   *         anArrayOfBytes[0] = 4;
+   *         anArrayOfBytes[1] = 5;
+   *         anArrayOfBytes[2] = 6;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByteArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWithIndex", + "$r1 = newarray (byte)[3]", + "$r1[0] = 4", + "$r1[1] = 5", + "$r1[2] = 6", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void shortArrays(){
+   *         short[] anArrayOfShorts = new short[3];
+   *         anArrayOfShorts[0] = 10;
+   *         anArrayOfShorts[1] = 20;
+   *         anArrayOfShorts[2] = 30;
+   *
+   *     }
+ */ + public List expectedBodyStmtsShortArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWithIndex", + "$r1 = newarray (short)[3]", + "$r1[0] = 10", + "$r1[1] = 20", + "$r1[2] = 30", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void longArrays(){
+   *         long[] anArrayOfLongs = new long[3];
+   *         anArrayOfLongs[0] = 547087L;
+   *         anArrayOfLongs[1] = 564645L;
+   *         anArrayOfLongs[2] = 654786L;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLongArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWithIndex", + "$r1 = newarray (long)[3]", + "$r1[0] = 547087L", + "$r1[1] = 564645L", + "$r1[2] = 654786L", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatArrays(){
+   *         float[] anArrayOfFloats = new float[4];
+   *         anArrayOfFloats[0] = 3.14f;
+   *         anArrayOfFloats[1] = 5.46f;
+   *         anArrayOfFloats[2] = 2.987f;
+   *         anArrayOfFloats[3] = 4.87f;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWithIndex", + "$r1 = newarray (float)[4]", + "$r1[0] = 3.14F", + "$r1[1] = 5.46F", + "$r1[2] = 2.987F", + "$r1[3] = 4.87F", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleArrays(){
+   *         double[] anArrayOfDoubles = new double[2];
+   *         anArrayOfDoubles[0] = 6.765414d;
+   *         anArrayOfDoubles[1] = 9.676565646d;
+   *
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWithIndex", + "$r1 = newarray (double)[2]", + "$r1[0] = 6.765414", + "$r1[1] = 9.676565646", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void booleanArrays(){
+   *         boolean[] anArrayOfBooleans = new boolean[2];
+   *         anArrayOfBooleans[0] = true;
+   *         anArrayOfBooleans[1] = false;
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsBooleanArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWithIndex", + "$r1 = newarray (boolean)[2]", + "$r1[0] = 1", + "$r1[1] = 0", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charArrays(){
+   *         char[] anArrayOfChars = new char[3];
+   *         anArrayOfChars[0] = 'A';
+   *         anArrayOfChars[1] = 'b';
+   *         anArrayOfChars[2] = '&';
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWithIndex", + "$r1 = newarray (char)[3]", + "$r1[0] = 65", + "$r1[1] = 98", + "$r1[2] = 38", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void stringArrays(){
+   *         String[] anArrayOfStrings = new String[2];
+   *         anArrayOfStrings[0] = "Hello World";
+   *         anArrayOfStrings[1] = "Greetings";
+   *     }
+   * 
+ */ + public List expectedBodyStmtsStringArrays() { + return Stream.of( + "r0 := @this: InitializeArraysWithIndex", + "$r1 = newarray (java.lang.String)[2]", + "$r1[0] = \"Hello World\"", + "$r1[1] = \"Greetings\"", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java new file mode 100644 index 00000000000..ac06ddcb099 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java @@ -0,0 +1,299 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class InitializeMultidimensionalArraysTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts(method, expectedBodyStmtsIntArrays()); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts(method, expectedBodyStmtsByteArrays()); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts(method, expectedBodyStmtsShortArrays()); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts(method, expectedBodyStmtsLongArrays()); + + method = loadMethod(getMethodSignature("floatArrays")); + assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts(method, expectedBodyStmtsCharArrays()); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts(method, expectedBodyStmtsStringArrays()); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void intArrays(){
+   *         int[][] anArrayOfInts = {{1, 2, 3},{5, 6},{7, 8, 9}};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntArrays() { + return Stream.of( + "r0 := @this: InitializeMultidimensionalArrays", + "$r1 = newarray (int[])[3]", + "$r2 = newarray (int)[3]", + "$r2[0] = 1", + "$r2[1] = 2", + "$r2[2] = 3", + "$r1[0] = $r2", + "$r3 = newarray (int)[2]", + "$r3[0] = 5", + "$r3[1] = 6", + "$r1[1] = $r3", + "$r4 = newarray (int)[3]", + "$r4[0] = 7", + "$r4[1] = 8", + "$r4[2] = 9", + "$r1[2] = $r4", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void byteArrays(){
+   *         byte[][] anArrayOfBytes = {{4, 5},{2}};
+   *
+   *     }
+ */ + public List expectedBodyStmtsByteArrays() { + return Stream.of( + "r0 := @this: InitializeMultidimensionalArrays", + "$r1 = newarray (byte[])[2]", + "$r2 = newarray (byte)[2]", + "$r2[0] = 4", + "$r2[1] = 5", + "$r1[0] = $r2", + "$r3 = newarray (byte)[1]", + "$r3[0] = 2", + "$r1[1] = $r3", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
public void shortArrays(){
+   *         short[][] anArrayOfShorts = {{10, 20, 30},{40}};
+   *
+   *     }
+ */ + public List expectedBodyStmtsShortArrays() { + return Stream.of( + "r0 := @this: InitializeMultidimensionalArrays", + "$r1 = newarray (short[])[2]", + "$r2 = newarray (short)[3]", + "$r2[0] = 10", + "$r2[1] = 20", + "$r2[2] = 30", + "$r1[0] = $r2", + "$r3 = newarray (short)[1]", + "$r3[0] = 40", + "$r1[1] = $r3", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
public void longArrays(){
+   *         long[][] anArrayOfLongs = {{547087L, 654786L},{547287L, 864645L, 6533786L},{34565L,234L}};
+   *
+   *     }
+ */ + public List expectedBodyStmtsLongArrays() { + return Stream.of( + "r0 := @this: InitializeMultidimensionalArrays", + "$r1 = newarray (long[])[3]", + "$r2 = newarray (long)[2]", + "$r2[0] = 547087L", + "$r2[1] = 654786L", + "$r1[0] = $r2", + "$r3 = newarray (long)[3]", + "$r3[0] = 547287L", + "$r3[1] = 864645L", + "$r3[2] = 6533786L", + "$r1[1] = $r3", + "$r4 = newarray (long)[2]", + "$r4[0] = 34565L", + "$r4[1] = 234L", + "$r1[2] = $r4", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatArrays(){
+   *         float[][] anArrayOfFloats = {{3.14f, 5.46f}, {2.987f, 4.87f}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatArrays() { + return Stream.of( + "r0 := @this: InitializeMultidimensionalArrays", + "$r1 = newarray (float[])[2]", + "$r2 = newarray (float)[2]", + "$r2[0] = 3.14F", + "$r2[1] = 5.46F", + "$r1[0] = $r2", + "$r3 = newarray (float)[2]", + "$r3[0] = 2.987F", + "$r3[1] = 4.87F", + "$r1[1] = $r3", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleArrays(){
+   *         double[][] anArrayOfDoubles = {{6.765414d, 9.676565646d},{45.345435d},{3.5656d,68.234234d}};
+   *
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleArrays() { + return Stream.of( + "r0 := @this: InitializeMultidimensionalArrays", + "$r1 = newarray (double[])[3]", + "$r2 = newarray (double)[2]", + "$r2[0] = 6.765414", + "$r2[1] = 9.676565646", + "$r1[0] = $r2", + "$r3 = newarray (double)[1]", + "$r3[0] = 45.345435", + "$r1[1] = $r3", + "$r4 = newarray (double)[2]", + "$r4[0] = 3.5656", + "$r4[1] = 68.234234", + "$r1[2] = $r4", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void booleanArrays(){
+   *         boolean[][] anArrayOfBooleans = {{true, false},{true}};
+   *
+   *     }
+ */ + public List expectedBodyStmtsBooleanArrays() { + return Stream.of( + "r0 := @this: InitializeMultidimensionalArrays", + "$r1 = newarray (boolean[])[2]", + "$r2 = newarray (boolean)[2]", + "$r2[0] = 1", + "$r2[1] = 0", + "$r1[0] = $r2", + "$r3 = newarray (boolean)[1]", + "$r3[0] = 1", + "$r1[1] = $r3", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charArrays(){
+   *         char[][] anArrayOfChars = {{'A', 'b', '&'},{'c','$'},{'2','G'}};
+   *
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharArrays() { + return Stream.of( + "r0 := @this: InitializeMultidimensionalArrays", + "$r1 = newarray (char[])[3]", + "$r2 = newarray (char)[3]", + "$r2[0] = 65", + "$r2[1] = 98", + "$r2[2] = 38", + "$r1[0] = $r2", + "$r3 = newarray (char)[2]", + "$r3[0] = 99", + "$r3[1] = 36", + "$r1[1] = $r3", + "$r4 = newarray (char)[2]", + "$r4[0] = 50", + "$r4[1] = 71", + "$r1[2] = $r4", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void stringArrays(){
+   *         String[][] anArrayOfStrings = {{"Hello World"}, {"Greetings", "Welcome"}};
+   *     }
+   * 
+ */ + public List expectedBodyStmtsStringArrays() { + return Stream.of( + "r0 := @this: InitializeMultidimensionalArrays", + "$r1 = newarray (java.lang.String[])[2]", + "$r2 = newarray (java.lang.String)[1]", + "$r2[0] = \"Hello World\"", + "$r1[0] = $r2", + "$r3 = newarray (java.lang.String)[2]", + "$r3[0] = \"Greetings\"", + "$r3[1] = \"Welcome\"", + "$r1[1] = $r3", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InstanceOfCheckTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InstanceOfCheckTest.java new file mode 100644 index 00000000000..454b74f03d3 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InstanceOfCheckTest.java @@ -0,0 +1,53 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** @author Kaustubh Kelkar */ +public class InstanceOfCheckTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "instanceOfCheckMethod", "void", Collections.emptyList()); + } + + @org.junit.Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(sootClass.getSuperclass().get().getClassName().equals("InstanceOfCheckSuper")); + } + + /** + * + * + *
+   *     public void instanceOfCheckMethod(){
+   * InstanceOfCheck obj= new InstanceOfCheck();
+   * System.out.println(obj instanceof InstanceOfCheckSuper);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: InstanceOfCheck", + "$r1 = new InstanceOfCheck", + "specialinvoke $r1.()>()", + "$r2 = ", + "$z0 = $r1 instanceof InstanceOfCheckSuper", + "virtualinvoke $r2.($z0)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InterfaceImplClassTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InterfaceImplClassTest.java new file mode 100644 index 00000000000..493ca2d19b3 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/InterfaceImplClassTest.java @@ -0,0 +1,61 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class InterfaceImplClassTest extends MinimalSourceTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equalsIgnoreCase("InterfaceImpl"); + })); + } + + /** + * + * + *
+   *     public void interfaceMethod(){
+   * System.out.print("Method from InterfaceImpl is implemented");
+   * System.out.println("Variable from InterfaceImpl is "+a);
+   * };
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: InterfaceImplClass", + "$r1 = ", + "virtualinvoke $r1.(\"Method from InterfaceImpl is implemented\")", + "$r2 = ", + "$r4 = new java.lang.StringBuilder", + "specialinvoke $r4.(java.lang.String)>(\"Variable from InterfaceImpl is \")", + "$r5 = virtualinvoke $r4.(10)", + "$r3 = virtualinvoke $r5.()", + "virtualinvoke $r2.($r3)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/LabelStatementTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/LabelStatementTest.java new file mode 100644 index 00000000000..6428648869e --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/LabelStatementTest.java @@ -0,0 +1,66 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class LabelStatementTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "labelStatement", "void", Collections.emptyList()); + } + + /**
+   * public void labelStatement(){
+   * int num = 20;
+   * int i = 1;
+   * start:
+   * while (i*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: LabelStatement",
+            "$i0 = 20",
+            "$i1 = 1",
+            "label1:",
+            "$z0 = $i1 < $i0",
+            "if $z0 == 0 goto label3",
+            "$i2 = $i1 % 10",
+            "$z1 = $i2 == 0",
+            "if $z1 == 0 goto label2",
+            "goto label3",
+            "label2:",
+            "$i3 = $i1",
+            "$i4 = $i1 + 1",
+            "$i1 = $i4",
+            "goto label1",
+            "label3:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/LabelledLoopBreakTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/LabelledLoopBreakTest.java
new file mode 100644
index 00000000000..6db7eadd5ed
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/LabelledLoopBreakTest.java
@@ -0,0 +1,72 @@
+/** @author: Hasitha Rajapakse */
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(Java8Test.class)
+public class LabelledLoopBreakTest extends MinimalSourceTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "labelledLoopBreak", "void", Collections.emptyList());
+  }
+
+  /**  
+   * public void labelledLoopBreak() {
+   * start:
+   * for (int i = 0; i < 5; i++) {
+   * for (int j = 0; j < 5; j++) {
+   * if (i == 1) {
+   * break start;
+   * }
+   * }
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: LabelledLoopBreak",
+            "$i0 = 0",
+            "label1:",
+            "$z0 = $i0 < 5",
+            "if $z0 == 0 goto label5",
+            "$i1 = 0",
+            "label2:",
+            "$z1 = $i1 < 5",
+            "if $z1 == 0 goto label4",
+            "$z2 = $i0 == 1",
+            "if $z2 == 0 goto label3",
+            "goto label5",
+            "label3:",
+            "$i2 = $i1",
+            "$i3 = $i1 + 1",
+            "$i1 = $i3",
+            "goto label2",
+            "label4:",
+            "$i4 = $i0",
+            "$i5 = $i0 + 1",
+            "$i0 = $i5",
+            "goto label1",
+            "label5:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/LocalClassShadowTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/LocalClassShadowTest.java
new file mode 100644
index 00000000000..e65db636886
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/LocalClassShadowTest.java
@@ -0,0 +1,79 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertEquals;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.jimple.basic.Local;
+import de.upb.sse.sootup.core.jimple.basic.Value;
+import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef;
+import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt;
+import de.upb.sse.sootup.core.jimple.common.stmt.Stmt;
+import de.upb.sse.sootup.core.model.Body;
+import de.upb.sse.sootup.core.model.SootClass;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.core.types.ClassType;
+import de.upb.sse.sootup.core.types.Type;
+import de.upb.sse.sootup.java.core.types.JavaClassType;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(Java8Test.class)
+public class LocalClassShadowTest extends MinimalSourceTestSuiteBase {
+
+  JavaClassType localClass =
+      identifierFactory.getClassType(
+          getClassName(customTestWatcher.getClassPath()) + "1$LocalClass");
+  SootClass sootLocalClass = loadClass(localClass);
+
+  /** Test: OuterClass of LocalClass is LocalClassShadow */
+  @Test
+  public void testOuterClass() {
+    assertEquals(getDeclaredClassSignature(), sootLocalClass.getOuterClass().get());
+  }
+
+  /** Test: How many Locals with ClassType {@link java.lang.String} */
+  @Test
+  public void testNumOfLocalsWithString() {
+    SootMethod method = sootLocalClass.getMethod(getMethodSignature().getSubSignature()).get();
+    Body methodBody = method.getBody();
+    Set locals = methodBody.getLocals();
+    Set stringLocals =
+        locals.stream()
+            .filter(local -> local.getType().toString().equals("java.lang.String"))
+            .collect(Collectors.toSet());
+    assertEquals(3, stringLocals.size());
+  }
+
+  /** Test: Locals--info are from different classes */
+  @Test
+  public void testClassesOfStringLocalAreDifferent() {
+    SootMethod method = sootLocalClass.getMethod(getMethodSignature().getSubSignature()).get();
+    Body methodBody = method.getBody();
+    List stmts = methodBody.getStmts();
+    Set classTypes = new HashSet();
+    for (Stmt stmt : stmts) {
+      if (stmt instanceof JAssignStmt) {
+        final Value rightOp = ((JAssignStmt) stmt).getRightOp();
+        if (rightOp instanceof JInstanceFieldRef) {
+          final ClassType declClassType =
+              ((JInstanceFieldRef) rightOp).getFieldSignature().getDeclClassType();
+          classTypes.add(declClassType);
+        }
+      }
+    }
+    assertEquals(2, classTypes.size());
+  }
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        localClass, "printInfo", "void", Collections.singletonList("java.lang.String"));
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodAcceptingVarTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodAcceptingVarTest.java
new file mode 100644
index 00000000000..586dea90fa4
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodAcceptingVarTest.java
@@ -0,0 +1,177 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+/**
+ * @author Hasitha Rajapakse
+ * @author Kaustubh Kelkar
+ */
+@Category(Java8Test.class)
+public class MethodAcceptingVarTest extends MinimalSourceTestSuiteBase {
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature("short"));
+    assertJimpleStmts(method, expectedBodyStmtsShort());
+
+    method = loadMethod(getMethodSignature("byte"));
+    assertJimpleStmts(method, expectedBodyStmtsByte());
+
+    method = loadMethod(getMethodSignature("char"));
+    assertJimpleStmts(method, expectedBodyStmtsChar());
+
+    method = loadMethod(getMethodSignature("int"));
+    assertJimpleStmts(method, expectedBodyStmtsInt());
+
+    method = loadMethod(getMethodSignature("long"));
+    assertJimpleStmts(method, expectedBodyStmtsLong());
+
+    method = loadMethod(getMethodSignature("float"));
+    assertJimpleStmts(method, expectedBodyStmtsFloat());
+
+    method = loadMethod(getMethodSignature("double"));
+    assertJimpleStmts(method, expectedBodyStmtsDouble());
+  }
+
+  public MethodSignature getMethodSignature(String datatype) {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(),
+        datatype + "Variable",
+        "void",
+        Collections.singletonList(datatype));
+  }
+
+  /**
+   *
+   *
+   * 
+   *    public void shortVariable(short a) {
+   *        a++;
+   * }
+   * 
+ */ + public List expectedBodyStmtsShort() { + return Stream.of( + "r0 := @this: MethodAcceptingVar", + "$s0 := @parameter0: short", + "$s1 = $s0", + "$s2 = $s0 + 1", + "$s0 = $s2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void byteVariable(byte b) {
+   *     b++;
+   * }
+   * 
+ */ + public List expectedBodyStmtsByte() { + return Stream.of( + "r0 := @this: MethodAcceptingVar", + "$b0 := @parameter0: byte", + "$b1 = $b0", + "$b2 = $b0 + 1", + "$b0 = $b2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void charVariable(char c) {
+   *    c = 'a';
+   * }
+   * 
+ */ + public List expectedBodyStmtsChar() { + return Stream.of( + "r0 := @this: MethodAcceptingVar", "$c0 := @parameter0: char", "$c0 = 97", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void intVariable(int d) {
+   *    d++;
+   * }
+   * 
+ */ + public List expectedBodyStmtsInt() { + return Stream.of( + "r0 := @this: MethodAcceptingVar", + "$i0 := @parameter0: int", + "$i1 = $i0", + "$i2 = $i0 + 1", + "$i0 = $i2", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void longVariable(long e) {
+   *     e = 123456777;
+   * }
+   * 
+ */ + public List expectedBodyStmtsLong() { + return Stream.of( + "r0 := @this: MethodAcceptingVar", + "$l0 := @parameter0: long", + "$l0 = 123456777", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void floatVariable(float f) {
+   *         f = 7.77f;
+   * }
+   * 
+ */ + public List expectedBodyStmtsFloat() { + return Stream.of( + "r0 := @this: MethodAcceptingVar", "$f0 := @parameter0: float", "$f0 = 7.77F", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public void doubleVariable(double g) {
+   *     g = 1.787777777;
+   * }
+   * 
+ */ + public List expectedBodyStmtsDouble() { + return Stream.of( + "r0 := @this: MethodAcceptingVar", + "$d0 := @parameter0: double", + "$d0 = 1.787777777", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodOverloadingTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodOverloadingTest.java new file mode 100644 index 00000000000..fb90eb4e581 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodOverloadingTest.java @@ -0,0 +1,89 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class MethodOverloadingTest extends MinimalSourceTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "calculate", "int", Arrays.asList("int", "int")); + } + /** @returns the method signature needed for second method in testCase */ + public MethodSignature getMethodSignatureSingleParam() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "calculate", "int", Collections.singletonList("int")); + } + + public MethodSignature getMethodSignatureInit() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = loadMethod(getMethodSignatureSingleParam()); + assertJimpleStmts(method, expectedBodyStmts1()); + + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(sootClass.getMethod(getMethodSignature().getSubSignature()).isPresent()); + assertTrue(sootClass.getMethod(getMethodSignatureSingleParam().getSubSignature()).isPresent()); + assertTrue(sootClass.getMethod(getMethodSignatureInit().getSubSignature()).isPresent()); + assertEquals(3, sootClass.getMethods().size()); + } + + /** + * + * + *
+   *     int calculate(int a, int b){
+   *         return a+b;
+   *
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: MethodOverloading", + "$i0 := @parameter0: int", + "$i1 := @parameter1: int", + "$i2 = $i0 + $i1", + "return $i2") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   * int calculate(int a){
+   *         return a+a;
+   *
+   *     }
+   *     
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "r0 := @this: MethodOverloading", + "$i0 := @parameter0: int", + "$i1 = $i0 + $i0", + "return $i1") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodOverridingTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodOverridingTest.java new file mode 100644 index 00000000000..7bbabe2e7df --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodOverridingTest.java @@ -0,0 +1,49 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class MethodOverridingTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignature() { + + return identifierFactory.getMethodSignature( + identifierFactory.getClassType("MethodOverridingSubclass"), + "calculateArea", + "void", + Collections.emptyList()); + } + + /** + * + * + *
+   *     public void calculateArea(){
+   * System.out.println("Inside MethodOverriding-calculateArea()");
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: MethodOverridingSubclass", + "$r1 = ", + "virtualinvoke $r1.(\"Inside MethodOverridingSubclass-calculateArea()\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodReturningVarTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodReturningVarTest.java new file mode 100644 index 00000000000..4964dfadc75 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MethodReturningVarTest.java @@ -0,0 +1,154 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class MethodReturningVarTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("short")); + assertJimpleStmts(method, expectedBodyStmtsShort()); + + method = loadMethod(getMethodSignature("byte")); + assertJimpleStmts(method, expectedBodyStmtsByte()); + + method = loadMethod(getMethodSignature("char")); + assertJimpleStmts(method, expectedBodyStmtsChar()); + + method = loadMethod(getMethodSignature("int")); + assertJimpleStmts(method, expectedBodyStmtsInt()); + + method = loadMethod(getMethodSignature("long")); + assertJimpleStmts(method, expectedBodyStmtsLong()); + + method = loadMethod(getMethodSignature("float")); + assertJimpleStmts(method, expectedBodyStmtsFloat()); + + method = loadMethod(getMethodSignature("double")); + assertJimpleStmts(method, expectedBodyStmtsDouble()); + } + + public MethodSignature getMethodSignature(String datatype) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), datatype + "Variable", datatype, Collections.emptyList()); + } + + /** + * + * + *
+   * public short shortVariable() {
+   *         short a = 10;
+   *         return a;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsShort() { + return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 10", "return $i0") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public byte byteVariable() {
+   *         byte b = 0;
+   *         return b;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByte() { + return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 0", "return $i0") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public char charVariable() {
+   *         char c = 'a';
+   *         return c;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsChar() { + return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 97", "return $i0") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public int intVariable() {
+   *         int d = 512;
+   *         return d;
+   *     }
+   *     
+ */ + public List expectedBodyStmtsInt() { + return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 512", "return $i0") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   * public long longVariable() {
+   *         long e = 123456789;
+   *         return e;
+   *
+   *     }
+   *     
+ */ + public List expectedBodyStmtsLong() { + return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 123456789", "return $i0") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public float floatVariable() {
+   *         float f = 3.14f;
+   *         return f;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloat() { + return Stream.of("r0 := @this: MethodReturningVar", "$f0 = 3.14F", "return $f0") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public double doubleVariable() {
+   *         double g = 1.96969654d;
+   *         return g;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDouble() { + return Stream.of("r0 := @this: MethodReturningVar", "$d0 = 1.96969654", "return $d0") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java new file mode 100644 index 00000000000..d150540755e --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java @@ -0,0 +1,61 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class MultiInterfaceImplClassTest extends MinimalSourceTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equals("InterfaceImplDummy"); + })); + } + + /** + * /** + * + *
+   *     public void interfaceMethod(){
+   * System.out.print("Method from InterfaceImpl is implemented");
+   * System.out.println("Variable from InterfaceImpl is "+a);
+   * };
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: MultiInterfaceImplClass", + "$r1 = ", + "virtualinvoke $r1.(\"Method from InterfaceImpl is implemented\")", + "$r2 = ", + "$r4 = new java.lang.StringBuilder", + "specialinvoke $r4.(java.lang.String)>(\"Variable from InterfaceImpl is \")", + "$r5 = virtualinvoke $r4.(10)", + "$r3 = virtualinvoke $r5.()", + "virtualinvoke $r2.($r3)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java new file mode 100644 index 00000000000..979734549f0 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java @@ -0,0 +1,55 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class NamedClassInsideMethodTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "namedClassInsideMethod", "void", Collections.emptyList()); + } + + /**
+   * public void namedClassInsideMethod() {
+   *
+   * class MyMathOperation implements MathOperation {
+   * int i = 0;
+   * public void addition() {
+   * i++;
+   * }
+   * }
+   *
+   * MathOperation myMathOperation = new MyMathOperation();
+   * myMathOperation.addition();
+   *
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: NamedClassInsideMethod",
+            "$r1 = new NamedClassInsideMethod1$MyMathOperation",
+            "specialinvoke $r1.()>()",
+            "interfaceinvoke $r1.()",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NativeMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NativeMethodTest.java
new file mode 100644
index 00000000000..bba82f392ee
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NativeMethodTest.java
@@ -0,0 +1,23 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertTrue;
+
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import org.junit.Test;
+
+public class NativeMethodTest extends MinimalSourceTestSuiteBase {
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "returnResult", "int", Collections.singletonList("int"));
+  }
+
+  @Test
+  public void nativeMethod() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertTrue(method.isNative());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NestedClassShadowTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NestedClassShadowTest.java
new file mode 100644
index 00000000000..181b21e4989
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NestedClassShadowTest.java
@@ -0,0 +1,79 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertEquals;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.jimple.basic.Local;
+import de.upb.sse.sootup.core.jimple.basic.Value;
+import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef;
+import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt;
+import de.upb.sse.sootup.core.jimple.common.stmt.Stmt;
+import de.upb.sse.sootup.core.model.Body;
+import de.upb.sse.sootup.core.model.SootClass;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.core.types.ClassType;
+import de.upb.sse.sootup.core.types.Type;
+import de.upb.sse.sootup.java.core.types.JavaClassType;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(Java8Test.class)
+public class NestedClassShadowTest extends MinimalSourceTestSuiteBase {
+
+  JavaClassType nestedClass =
+      identifierFactory.getClassType(
+          getClassName(customTestWatcher.getClassPath()) + "$NestedClass");
+  SootClass sootNestedClass = loadClass(nestedClass);
+
+  /** Test: OuterClass of NestedClass is NestedClassShadow */
+  @Test
+  public void testOuterClass() {
+    assertEquals(getDeclaredClassSignature(), sootNestedClass.getOuterClass().get());
+  }
+
+  /** Test: How many Locals with ClassType {@link java.lang.String} */
+  @Test
+  public void testNumOfLocalsWithString() {
+    SootMethod method = sootNestedClass.getMethod(getMethodSignature().getSubSignature()).get();
+    Body methodBody = method.getBody();
+    Set locals = methodBody.getLocals();
+    Set stringLocals =
+        locals.stream()
+            .filter(local -> local.getType().toString().equals("java.lang.String"))
+            .collect(Collectors.toSet());
+    assertEquals(3, stringLocals.size());
+  }
+
+  /** Test: Locals--info are from different classes */
+  @Test
+  public void testClassesOfStringLocalAreDifferent() {
+    SootMethod method = sootNestedClass.getMethod(getMethodSignature().getSubSignature()).get();
+    Body methodBody = method.getBody();
+    List stmts = methodBody.getStmts();
+    Set classTypes = new HashSet();
+    for (Stmt stmt : stmts) {
+      if (stmt instanceof JAssignStmt) {
+        final Value rightOp = ((JAssignStmt) stmt).getRightOp();
+        if (rightOp instanceof JInstanceFieldRef) {
+          final ClassType declClassType =
+              ((JInstanceFieldRef) rightOp).getFieldSignature().getDeclClassType();
+          classTypes.add(declClassType);
+        }
+      }
+    }
+    assertEquals(2, classTypes.size());
+  }
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        nestedClass, "printInfo", "void", Collections.singletonList("java.lang.String"));
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java
new file mode 100644
index 00000000000..3bccf174ce2
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java
@@ -0,0 +1,45 @@
+/** @author: Hasitha Rajapakse */
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
+@Category(Java8Test.class)
+public class NewCodeBlockInMethodTest extends MinimalSourceTestSuiteBase {
+
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "newCodeBlockInMethod", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   *     public void newCodeBlockInMethod(){
+   * {
+   * int i = 5;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: NewCodeBlockInMethod", "$i0 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NoModifierClassTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NoModifierClassTest.java new file mode 100644 index 00000000000..494c4f81d7b --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NoModifierClassTest.java @@ -0,0 +1,41 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.*; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author: Hasitha Rajapakse */ +@Category(Java8Test.class) +public class NoModifierClassTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + JavaSootClass clazz = loadClass(getDeclaredClassSignature()); + assertEquals(EnumSet.noneOf(Modifier.class), clazz.getModifiers()); + + assertTrue(clazz.getMethod(getMethodSignature("private").getSubSignature()).get().isPrivate()); + assertTrue( + clazz.getMethod(getMethodSignature("protected").getSubSignature()).get().isProtected()); + assertTrue(clazz.getMethod(getMethodSignature("public").getSubSignature()).get().isPublic()); + assertTrue( + clazz + .getMethod(getMethodSignature("noModifier").getSubSignature()) + .get() + .getModifiers() + .isEmpty()); + } + + public MethodSignature getMethodSignature(String modifier) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NullVariableTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NullVariableTest.java new file mode 100644 index 00000000000..1bc0eb97086 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/NullVariableTest.java @@ -0,0 +1,51 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertEquals; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class NullVariableTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "nullVariable", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void nullVariable(){
+   * String str = null;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: NullVariable", "$r1 = null", "return") + .collect(Collectors.toList()); + } + + @Ignore + public void test() { + // FIXME see InstructionConverter.convertUnaryOpInstruction(...) + SootMethod method = loadMethod(getMethodSignature()); + assertEquals( + "[java.lang.String $r1, NullVariable r0, r0 := @this: NullVariable, $r1 = null, return]", + Utils.filterJimple(method.getBody().toString())); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/PublicClassTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/PublicClassTest.java new file mode 100644 index 00000000000..83ca5c14bfe --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/PublicClassTest.java @@ -0,0 +1,72 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author: Hasitha Rajapakse */ +@Category(Java8Test.class) +public class PublicClassTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertEquals(EnumSet.of(Modifier.PUBLIC), clazz.getModifiers()); + + SootMethod method; + method = clazz.getMethod(getMethodSignature("private").getSubSignature()).get(); + assertTrue(method.isPrivate()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = clazz.getMethod(getMethodSignature("protected").getSubSignature()).get(); + assertTrue(method.isProtected()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = clazz.getMethod(getMethodSignature("public").getSubSignature()).get(); + assertTrue(method.isPublic()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = clazz.getMethod(getMethodSignature("noModifier").getSubSignature()).get(); + assertTrue(method.getModifiers().isEmpty()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + public MethodSignature getMethodSignature(String modifier) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void publicMethod() {
+   *
+   * }
+   * private void privateMethod() {
+   *
+   * }
+   * protected void protectedMethod() {
+   *
+   * }
+   * void noModifierMethod() {
+   *
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: PublicClass", "return").collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java new file mode 100644 index 00000000000..ed6f098ff80 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java @@ -0,0 +1,44 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class ReferenceVarDeclarationTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringVariable", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void stringVariable() {
+   * String str = "Hello World";
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: ReferenceVarDeclaration", "$r1 = \"Hello World\"", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ReferencingThisTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ReferencingThisTest.java new file mode 100644 index 00000000000..eea7b233b26 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ReferencingThisTest.java @@ -0,0 +1,51 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class ReferencingThisTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "thisMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * void thisMethod(){
+   * System.out.println(" this keyword as an argument in the constructor call");
+   * ReferencingThis obj= new ReferencingThis(this.a, this.b);
+   * obj.show();
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: ReferencingThis", + "$r1 = ", + "virtualinvoke $r1.(\" this keyword as an argument in the constructor call\")", + "$r2 = new ReferencingThis", + "$i0 = r0.", + "$i1 = r0.", + "specialinvoke $r2.(int,int)>($i0, $i1)", + "virtualinvoke $r2.()", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ReflectionTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ReflectionTest.java new file mode 100644 index 00000000000..fce5d309134 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ReflectionTest.java @@ -0,0 +1,64 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class ReflectionTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "checkReflection", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void checkReflection()  throws  NoSuchMethodException{
+   *
+   * Reflection reflection = new Reflection();
+   * Class reflectionClass = Reflection.class;
+   * System.out.println(reflectionClass);
+   * Constructor constructor = reflectionClass.getConstructor();
+   * System.out.println(constructor.getName());
+   * System.out.println(reflectionClass.getMethods().length);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: Reflection", + "$r1 = new Reflection", + "specialinvoke $r1.()>()", + // TODO: [ms] check whether this representation of the class is like intended/correct + "$r2 = class \"Ljava/lang/Class\"", + "$r3 = ", + "virtualinvoke $r3.($r2)", + "$r4 = newarray (java.lang.Class)[0]", + "$r5 = virtualinvoke $r2.($r4)", + "$r6 = ", + "$r7 = virtualinvoke $r5.()", + "virtualinvoke $r6.($r7)", + "$r8 = ", + "$r9 = virtualinvoke $r2.()", + "$i0 = lengthof $r9", + "virtualinvoke $r8.($i0)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StatementEvalTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StatementEvalTest.java new file mode 100644 index 00000000000..e2eff9330fe --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StatementEvalTest.java @@ -0,0 +1,50 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class StatementEvalTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "statementEval", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void statementEval(){
+   * int b = 1;
+   * b = b + (b = 3);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: StatementEval", + "$i0 = 1", + "$i0 = 3", + "$i1 = $i0 + 3", + "$i0 = $i1", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticImportTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticImportTest.java new file mode 100644 index 00000000000..7a7be1454a7 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticImportTest.java @@ -0,0 +1,57 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class StaticImportTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "mathFunctions", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + } + + /** + * + * + *
+   *     public void mathFunctions(){
+   * out.println(sqrt(4));
+   * out.println(pow(2,5));
+   * out.println(ceil(5.6));
+   * out.println("Static import for System.out");
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: StaticImport", + "$r1 = ", + "$d0 = staticinvoke (4)", + "virtualinvoke $r1.($d0)", + "$r2 = ", + "$d1 = staticinvoke (2, 5)", + "virtualinvoke $r2.($d1)", + "$r3 = ", + "$d2 = staticinvoke (5.6)", + "virtualinvoke $r3.($d2)", + "$r4 = ", + "virtualinvoke $r4.(\"Static import for System.out\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticInitializerTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticInitializerTest.java new file mode 100644 index 00000000000..99f72fd3824 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticInitializerTest.java @@ -0,0 +1,86 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class StaticInitializerTest extends MinimalSourceTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodStaticInitializer", "void", Collections.emptyList()); + } + + public MethodSignature getStaticMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch(sootField -> sootField.getName().equals("i") && sootField.isStatic())); + + final SootMethod staticMethod = loadMethod(getStaticMethodSignature()); + assertTrue(staticMethod.isStatic()); + assertJimpleStmts(staticMethod, expectedBodyStmtsOfClinit()); + } + + /** + * + * + *
+   * static int i=5;
+   *
+   *     static{
+   *         if(i>4)
+   *         {
+   *             i=4;
+   *         }
+   *     }
+   *    
+ */ + public List expectedBodyStmtsOfClinit() { + return Stream.of( + " = 5", + "$i0 = ", + "$z0 = $i0 > 4", + "if $z0 == 0 goto label1", + " = 4", + "goto label1", + "label1:", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     static void methodStaticInitializer(){
+   * System.out.println(i);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "$r0 = ", + "$i0 = ", + "virtualinvoke $r0.($i0)", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticMethodInvocationTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticMethodInvocationTest.java new file mode 100644 index 00000000000..5d355eb88a3 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticMethodInvocationTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author: Hasitha Rajapakse * */ +@Category(Java8Test.class) +public class StaticMethodInvocationTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticMethodInvocation", "void", Collections.emptyList()); + } + + /** + *
+   * public void staticMethodInvocation(){
+   * StaticMethodInvocation.staticmethod();
+   * }
+   * }
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: StaticMethodInvocation",
+            "staticinvoke ()",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticMethodTest.java
new file mode 100644
index 00000000000..07fe01cd5af
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticMethodTest.java
@@ -0,0 +1,50 @@
+/*Author Kaustubh Kelkar*/
+
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertTrue;
+
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+
+/** @author Kaustubh Kelkar */
+public class StaticMethodTest extends MinimalSourceTestSuiteBase {
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "staticMethod", "void", Collections.emptyList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method1 = loadMethod(getMethodSignature());
+    assertJimpleStmts(method1, expectedBodyStmts());
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+    assertTrue(method.isStatic());
+  }
+
+  /**
+   *
+   *
+   * 
+   *     static void staticMethod(){
+   * System.out.println("static method");
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "$r0 = ", + "virtualinvoke $r0.(\"static method\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticVariableTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticVariableTest.java new file mode 100644 index 00000000000..4468bdffcd1 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StaticVariableTest.java @@ -0,0 +1,55 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class StaticVariableTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticVariable", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + element -> { + return element.getName().equals("num") && element.isStatic(); + })); + } + + /** + * + * + *
+   *     public static void staticVariable(){
+   * System.out.println(num);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "$r0 = ", + "$i0 = ", + "virtualinvoke $r0.($i0)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StringConcatenationTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StringConcatenationTest.java new file mode 100644 index 00000000000..d013275a14d --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StringConcatenationTest.java @@ -0,0 +1,50 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class StringConcatenationTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void stringConcatenation(){
+   * String str = "the" + "string";
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: StringConcatenation", + "$r2 = new java.lang.StringBuilder", + "specialinvoke $r2.(java.lang.String)>(\"the\")", + "$r3 = virtualinvoke $r2.(\"string\")", + "$r1 = virtualinvoke $r3.()", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java new file mode 100644 index 00000000000..5ff132349c4 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java @@ -0,0 +1,50 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class StringWithUnicodeCharTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringWithUnicodeChar", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void stringWithUnicodeChar(){
+   * String str = "\u0024"+"123";
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: StringWithUnicodeChar", + "$r2 = new java.lang.StringBuilder", + "specialinvoke $r2.(java.lang.String)>(\"$\")", + "$r3 = virtualinvoke $r2.(\"123\")", + "$r1 = virtualinvoke $r3.()", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SubClassShadowingTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SubClassShadowingTest.java new file mode 100644 index 00000000000..fd8a83b2929 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SubClassShadowingTest.java @@ -0,0 +1,67 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertEquals; + +import categories.Java8Test; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.ref.JInstanceFieldRef; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class SubClassShadowingTest extends MinimalSourceTestSuiteBase { + + SootMethod sootMethod = loadMethod(getMethodSignature()); + Body methodBody = sootMethod.getBody(); + + /** Test: How many Locals with ClassType {@link java.lang.String} */ + @Test + public void testNumOfLocalsWithString() { + Set locals = methodBody.getLocals(); + Set stringLocals = + locals.stream() + .filter(local -> local.getType().toString().equals("java.lang.String")) + .collect(Collectors.toSet()); + assertEquals(3, stringLocals.size()); + } + + /** Test: Locals--info are from different class */ + @Test + public void testClassesOfStringLocalAreDifferent() { + List stmts = methodBody.getStmts(); + Set classTypes = new HashSet(); + for (Stmt stmt : stmts) { + if (stmt instanceof JAssignStmt) { + final Value rightOp = ((JAssignStmt) stmt).getRightOp(); + if (rightOp instanceof JInstanceFieldRef) { + final ClassType declClassType = + ((JInstanceFieldRef) rightOp).getFieldSignature().getDeclClassType(); + classTypes.add(declClassType); + } + } + } + assertEquals(2, classTypes.size()); + } + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), + "printInfo", + "void", + Collections.singletonList("java.lang.String")); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SubClassTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SubClassTest.java new file mode 100644 index 00000000000..73127a07212 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SubClassTest.java @@ -0,0 +1,85 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class SubClassTest extends MinimalSourceTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "subclassMethod", "void", Collections.emptyList()); + } + + /** @returns the method signature needed for second method in testCase */ + public MethodSignature getMethodSignature1() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void subclassMethod() {
+   *         aa=10;
+   *         bb=20;
+   *         cc=30;
+   *         dd=40;
+   *     }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: SubClass", + "r0. = 10", + "r0. = 20", + "r0. = 30", + "r0. = 40", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   *     public void superclassMethod(){
+   *         super.superclassMethod();
+   *         a=100;
+   *         b=200;
+   *         c=300;
+   *    }
+   * 
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "r0 := @this: SubClass", + "specialinvoke r0.()", + "r0. = 100", + "r0. = 200", + "r0. = 300", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getMethodSignature1()); + assertJimpleStmts(method, expectedBodyStmts1()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(sootClass.getSuperclass().get().getClassName().equals("SuperClass")); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SuperClassTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SuperClassTest.java new file mode 100644 index 00000000000..08c1f0eb839 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SuperClassTest.java @@ -0,0 +1,49 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class SuperClassTest extends MinimalSourceTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void superclassMethod() {
+   * a=10;
+   * b=20;
+   * c=30;
+   * d=40;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: SuperClass", + "r0. = 10", + "r0. = 20", + "r0. = 30", + "r0. = 40", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SwitchCaseStatementTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SwitchCaseStatementTest.java new file mode 100644 index 00000000000..9b2b296514f --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SwitchCaseStatementTest.java @@ -0,0 +1,281 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; +import org.junit.experimental.categories.Category; + +/** + * @author Hasitha Rajapakse + * @author Kaustubh Kelkar + */ +@Category(Java8Test.class) +public class SwitchCaseStatementTest extends MinimalSourceTestSuiteBase { + + @Ignore + // FIXME: [ms] only 3 successor flows from switch but 4 needed + public void switchCaseStatementEnumKey() { + SootMethod method = loadMethod(getMethodSignature("switchCaseStatementEnum")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: SwitchCaseStatement", + "$r1 = ", + "$r2 = \"\"", + "$r3 = ", + "if $r1 == $r3 goto label1", + "$r4 = ", + "if $r1 == $r4 goto label2", + "goto label3", + "label1:", + "$r5 = ", + "$r2 = \"red\"", + "goto label4", + "label2:", + "$r6 = ", + "$r2 = \"green\"", + "goto label4", + "label3:", + "$r2 = \"invalid\"", + "goto label4", + "label4:", + "return")); + } + + @Ignore + public void testSwitchWithInt() { + // FIXME: [ms] Jimple is not correct + // 1. multiple goto labels are null + // 2. default label is missing + // 3. order of statements is not correct: the assignment of case 2 is after *goto label* and + // before another label + // 4. $r1 = null (refers to "String str;" ) is NullType; current state: set it to UnknownType + + SootMethod method = loadMethod(getMethodSignature("switchCaseStatementInt")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: SwitchCaseStatement", + "$i0 = 5", + "$u0 = null", + "switch($i0)", + "case 1: goto label1", + "case 2: goto label2", + "case 3: goto label3", + "default: goto label4", + "label1:", + "$u0 = \"one\"", + "goto label5", + "label2:", + "$u0 = \"two\"", + "goto label5", + "label3:", + "$u0 = \"three\"", + "goto label5", + "label4:", + "$u0 = \"invalid\"", + "label5:", + "return")); + } + + @Ignore + public void testSwitchCaseWithoutDefault() { + // FIXME: [ms] Jimple is not correct: target labels are wrong and jumped code has an offset by 1 + // another stmt + SootMethod method = loadMethod(getMethodSignature("switchCaseWithoutDefault")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: SwitchCaseStatement", + "$i0 = 6", + "$u0 = null", + "switch($i0)", + "case 1: goto label1", + "case 2: goto label2", + "case 3: goto label3", + "default: goto label4", + "label1:", + "$u0 = \"one\"", + "goto label4", + "label2:", + "$u0 = \"two\"", + "goto label4", + "label3:", + "$u0 = \"three\"", + "label4:", + "return")); + } + + @Ignore + public void testSwitchCaseGroupedTargets() { + // FIXME: [ms] Jimple is not correct; stmt in case as well as the target labels have an offset + // by one + SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargets")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: SwitchCaseStatement", + "$i0 = 7", + "$u0 = null", + "switch($i0)", + "case 1: goto label1", + "case 2: goto label1", + "case 3: goto label2", + "default: goto label3", + "label1:", + "$u0 = \"first\"", + "goto label4", + "label2:", + "$u0 = \"second\"", + "goto label4", + "label4:", + "return")); + } + + @Ignore + public void testSwitchCaseGroupedTargetsDefault() { + SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargetsDefault")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: SwitchCaseStatement", + "$i0 = 8", + "$u0 = null", + "switch($i0)", + "case 1: goto label1", + "case 2: goto label1", + "case 3: goto label2", + "default: goto label3", + "label1:", + "$u0 = \"first\"", + "goto label4", + "label2:", + "$u0 = \"second\"", + "goto label4", + "label3:", + "$u0 = \"other\"", + "label4:", + "return")); + } + + @Ignore + // FIXME:[ms] buggy jimple from sourcecodefrontend + public void switchCaseStatementCaseIncludingIf() { + SootMethod method = loadMethod(getMethodSignature("switchCaseStatementCaseIncludingIf")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: SwitchCaseStatement", + "$i0 = 2", + "$i1 = 0", + "switch($i0)", + "case 1: goto label4", + "case 2: goto [?= null]", + "case 3: goto [?= null]", + "default: goto label1", + "label1:", + "$i1 = 1", + "$z0 = $i0 == 666", + "if $z0 == 0 goto label2", + "$i1 = 11", + "goto label3", + "label2:", + "$i1 = 12", + "label3:", + "goto label5", + "$i1 = 2", + "goto label5", + "$i1 = 3", + "label4:", + "goto label5", + "label5:", + "return")); + } + + @Ignore + // FIXME:[ms] buggy jimple from sourcecodefrontend + public void switchCaseStatementCaseIncludingSwitch() { + SootMethod method = loadMethod(getMethodSignature("switchWithSwitch")); + assertJimpleStmts( + method, + expectedBodyStmts( + "r0 := @this: SwitchCaseStatement", + "$i0 = 2", + "$i1 = 0", + "switch($i0)", + "case 1: goto label2", + "case 2: goto [?= null]", + "case 3: goto [?= null]", + "default: goto label1", + "label1:", + "switch($i0)", + "case 10: goto label4", + "case 20: goto [?= null]", + "default: goto label3", + "label2:", + "$i1 = 11", + "label3:", + "goto label4", + "$i1 = 12", + "goto label4", + "label4:", + "goto label8", + "$i1 = 2", + "switch($i0)", + "case 20: goto label6", + "case 30: goto [?= null]", + "case 40: goto [?= null]", + "default: goto label5", + "$i1 = 220", + "goto label7", + "label5:", + "$i1 = 230", + "goto label7", + "$i1 = 240", + "label6:", + "goto label7", + "label7:", + "goto label8", + "$i1 = 3", + "goto label8", + "label8:", + "return")); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + public List expectedBodyStmtsSwitchCaseStatementEnum() { + return Stream.of( + "r0 := @this: SwitchCaseStatement", + "$r1 = \"RED\"", + "$r2 = \"\"", + "$r3 = staticinvoke ($r1)", + "$r4 = ", + "if $r3 == $r4 goto label1", + "$r5 = ", + "if $r3 == $r5 goto label2", + "goto label3", + "label1:", + "$r6 = ", + "$r2 = \"color red detected\"", + "goto label4", + "label2:", + "$r7 = ", + "$r2 = \"color green detected\"", + "goto label4", + "label3:", + "$r2 = \"invalid color\"", + "goto label4", + "label4:", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SynchronizedBlockTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SynchronizedBlockTest.java new file mode 100644 index 00000000000..854cfd7af45 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SynchronizedBlockTest.java @@ -0,0 +1,57 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class SynchronizedBlockTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "run", "void", Collections.emptyList()); + } + + /**
+   * public void run()
+   * {
+   * synchronized(msg)
+   * {
+   * System.out.println(msg);
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: SynchronizedBlock",
+            "label1:",
+            "$r1 = r0.",
+            "entermonitor $r1",
+            "$r2 = ",
+            "$r3 = r0.",
+            "virtualinvoke $r2.($r3)",
+            "goto label3",
+            "label2:",
+            "$r4 := @caughtexception",
+            "exitmonitor $r1",
+            "throw $r4",
+            "label3:",
+            "exitmonitor $r1",
+            "return",
+            "catch java.lang.Throwable from label1 to label2 with label2")
+        .collect(Collectors.toCollection(ArrayList::new));
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SynchronizedMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SynchronizedMethodTest.java
new file mode 100644
index 00000000000..36d5b14a2cd
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/SynchronizedMethodTest.java
@@ -0,0 +1,45 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import static org.junit.Assert.assertTrue;
+
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+
+public class SynchronizedMethodTest extends MinimalSourceTestSuiteBase {
+
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "run", "void", Collections.emptyList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+    assertTrue(method.isSynchronized());
+  }
+
+  /**  
+   * public synchronized void run()
+   * {
+   * System.out.println("test");
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: SynchronizedMethod",
+            "$r1 = ",
+            "virtualinvoke $r1.(\"test\")",
+            "return")
+        .collect(Collectors.toCollection(ArrayList::new));
+  }
+}
diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/TernaryOperatorTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/TernaryOperatorTest.java
new file mode 100644
index 00000000000..3aa0d4255a0
--- /dev/null
+++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/TernaryOperatorTest.java
@@ -0,0 +1,51 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Test;
+
+/** @author Kaustubh Kelkar */
+public class TernaryOperatorTest extends MinimalSourceTestSuiteBase {
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "ternaryOperatorMethod", "boolean", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   *     boolean ternaryOperatorMethod(){
+   * return num < 0 ? false : true;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: TernaryOperator", + "$i0 = r0.", + "$z0 = $i0 < 0", + "if $z0 == 0 goto label1", + "$z1 = 0", + "goto label2", + "label1:", + "$z1 = 1", + "label2:", + "return $z1") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java new file mode 100644 index 00000000000..6b1aba009a2 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java @@ -0,0 +1,79 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class ThrowExceptionMethodTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "divideByZero", "void", Collections.emptyList()); + } + + public MethodSignature getThrowCustomExceptionSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "throwCustomException", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     void divideByZero() throws ArithmeticException{
+   * 			int i=8/0;
+   *        }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: ThrowExceptionMethod", "$i0 = 8 / 0", "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public MethodSignature getMethodSignature1() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "throwCustomException", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     void throwCustomException() throws CustomException {
+   * 		throw new CustomException("Custom Exception");
+   *        }
+   * 
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "r0 := @this: ThrowExceptionMethod", + "$r1 = new CustomException", + "specialinvoke $r1.(java.lang.String)>(\"Custom Exception\")", + "throw $r1") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Ignore + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + assertTrue( + method.getExceptionSignatures().stream() + .anyMatch(classType -> classType.getClassName().equals("ArithmeticException"))); + method = loadMethod(getMethodSignature1()); + assertJimpleStmts(method, expectedBodyStmts1()); + assertTrue( + method.getExceptionSignatures().stream() + .anyMatch(classType -> classType.getClassName().equals("CustomException"))); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/TransientVariableTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/TransientVariableTest.java new file mode 100644 index 00000000000..efa7e293f9f --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/TransientVariableTest.java @@ -0,0 +1,53 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class TransientVariableTest extends MinimalSourceTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "transientVariable", "void", Collections.emptyList()); + } + + @Ignore + public void testTransientVar() { + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> + sootField.getName().equals("transientVar") + && sootField.getModifiers().contains(Modifier.TRANSIENT))); + } + + /** + * + * + *
+   *     public void transientVariable(){
+   * System.out.println(transientVar);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: TransientVariable", + "$r1 = ", + "$i0 = r0.", + "virtualinvoke $r1.($i0)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/TryCatchFinallyTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/TryCatchFinallyTest.java new file mode 100644 index 00000000000..d5870d5c488 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/TryCatchFinallyTest.java @@ -0,0 +1,366 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Hasitha Rajapakse */ +@Category(Java8Test.class) +public class TryCatchFinallyTest extends MinimalSourceTestSuiteBase { + + @Test + public void tryCatch() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatch")); + assertJimpleStmts( + sootMethod, + expectedBodyStmts( + "r0 := @this: TryCatchFinally", + "label1:", + "$r1 = \"\"", + "$r1 = \"try\"", + "$r2 = ", + "virtualinvoke $r2.($r1)", + "goto label3", + "label2:", + "$r3 := @caughtexception", + "$r4 = $r3", + "$r1 = \"catch\"", + "$r5 = ", + "virtualinvoke $r5.($r1)", + "label3:", + "return", + "catch java.lang.Exception from label1 to label2 with label2")); + } + + @Test + public void tryCatchFinally() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinally")); + assertJimpleStmts( + sootMethod, + expectedBodyStmts( + "r0 := @this: TryCatchFinally", + "label1:", + "$r1 = \"\"", + "$r1 = \"try\"", + "$r2 = ", + "virtualinvoke $r2.($r1)", + "goto label4", + "label2:", + "$r3 := @caughtexception", + "$r4 = $r3", + "$r1 = \"catch\"", + "$r5 = ", + "virtualinvoke $r5.($r1)", + "goto label4", + "label3:", + "$r6 := @caughtexception", + "$r1 = \"finally\"", + "$r7 = ", + "virtualinvoke $r7.($r1)", + "throw $r6", + "label4:", + "$r1 = \"finally\"", + "$r8 = ", + "virtualinvoke $r8.($r1)", + "return", + "catch java.lang.Exception from label1 to label2 with label2", + "catch java.lang.Throwable from label1 to label3 with label3")); + } + + @Test + public void tryCatchCombined() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchCombined")); + assertJimpleStmts( + sootMethod, + expectedBodyStmts( + "r0 := @this: TryCatchFinally", + "label1:", + "$r1 = \"\"", + "$r1 = \"try\"", + "$r2 = ", + "virtualinvoke $r2.($r1)", + "goto label3", + "label2:", + "$r3 := @caughtexception", + "$r4 = $r3", + "$r1 = \"catch\"", + "$r5 = ", + "virtualinvoke $r5.($r1)", + "label3:", + "return", + "catch java.lang.RuntimeException from label1 to label2 with label2", + "catch java.lang.StackOverflowError from label1 to label2 with label2")); + } + + @Test + public void tryCatchFinallyCombined() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyCombined")); + assertJimpleStmts( + sootMethod, + expectedBodyStmts( + "r0 := @this: TryCatchFinally", + "label1:", + "$r1 = \"\"", + "$r1 = \"try\"", + "$r2 = ", + "virtualinvoke $r2.($r1)", + "goto label4", + "label2:", + "$r3 := @caughtexception", + "$r4 = $r3", + "$r1 = \"catch\"", + "$r5 = ", + "virtualinvoke $r5.($r1)", + "goto label4", + "label3:", + "$r6 := @caughtexception", + "$r1 = \"finally\"", + "$r7 = ", + "virtualinvoke $r7.($r1)", + "throw $r6", + "label4:", + "$r1 = \"finally\"", + "$r8 = ", + "virtualinvoke $r8.($r1)", + "return", + "catch java.lang.RuntimeException from label1 to label2 with label2", + "catch java.lang.StackOverflowError from label1 to label2 with label2", + "catch java.lang.Throwable from label1 to label3 with label3")); + } + + @Test + public void tryCatchNested() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNested")); + assertJimpleStmts( + sootMethod, + expectedBodyStmts( + "r0 := @this: TryCatchFinally", + "$r1 = \"\"", + "$r1 = \"1try\"", + "$r2 = ", + "virtualinvoke $r2.($r1)", + "label1:", + "$r1 = \"2try\"", + "$r3 = ", + "virtualinvoke $r3.($r1)", + "goto label3", + "label2:", + "$r4 := @caughtexception", + "$r5 = $r4", + "$r1 = \"2catch\"", + "$r6 = ", + "virtualinvoke $r6.($r1)", + "label3:", + "goto label5", + "label4:", + "$r7 := @caughtexception", + "$r8 = $r7", + "$r1 = \"1catch\"", + "$r9 = ", + "virtualinvoke $r9.($r1)", + "label5:", + "return", + "catch java.lang.Exception from label1 to label2 with label2", + "catch java.lang.Exception from label1 to label4 with label4")); + } + + @Test + public void tryCatchFinallyNested() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNested")); + assertJimpleStmts( + sootMethod, + expectedBodyStmts( + "r0 := @this: TryCatchFinally", + "$r1 = \"\"", + "$r1 = \"1try\"", + "$r2 = ", + "virtualinvoke $r2.($r1)", + "label1:", + "$r1 = \"2try\"", + "$r3 = ", + "virtualinvoke $r3.($r1)", + "goto label3", + "label2:", + "$r4 := @caughtexception", + "$r5 = $r4", + "$r1 = \"2catch\"", + "$r6 = ", + "virtualinvoke $r6.($r1)", + "label3:", + "goto label6", + "label4:", + "$r7 := @caughtexception", + "$r8 = $r7", + "$r1 = \"1catch\"", + "$r9 = ", + "virtualinvoke $r9.($r1)", + "goto label6", + "label5:", + "$r10 := @caughtexception", + "$r1 = \"1finally\"", + "$r11 = ", + "virtualinvoke $r11.($r1)", + "throw $r10", + "label6:", + "$r1 = \"1finally\"", + "$r12 = ", + "virtualinvoke $r12.($r1)", + "return", + "catch java.lang.Exception from label1 to label2 with label2", + "catch java.lang.Exception from label1 to label4 with label4", + "catch java.lang.Throwable from label1 to label5 with label5")); + } + + @Test + public void tryCatchNestedInCatch() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNestedInCatch")); + assertJimpleStmts( + sootMethod, + expectedBodyStmts( + "r0 := @this: TryCatchFinally", + "label1:", + "$r1 = \"\"", + "$r1 = \"1try\"", + "$r2 = ", + "virtualinvoke $r2.($r1)", + "goto label5", + "label2:", + "$r3 := @caughtexception", + "$r4 = $r3", + "$r1 = \"1catch\"", + "$r5 = ", + "virtualinvoke $r5.($r1)", + "label3:", + "$r1 = \"2try\"", + "$r6 = ", + "virtualinvoke $r6.($r1)", + "goto label5", + "label4:", + "$r7 := @caughtexception", + "$r8 = $r7", + "$r1 = \"2catch\"", + "$r9 = ", + "virtualinvoke $r9.($r1)", + "label5:", + "return", + "catch java.lang.Exception from label1 to label2 with label2", + "catch java.lang.Exception from label3 to label4 with label4")); + } + + @Test + public void tryCatchFinallyNestedInCatch() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInCatch")); + assertJimpleStmts( + sootMethod, + expectedBodyStmts( + "r0 := @this: TryCatchFinally", + "label1:", + "$r1 = \"\"", + "$r1 = \"1try\"", + "$r2 = ", + "virtualinvoke $r2.($r1)", + "goto label5", + "label2:", + "$r3 := @caughtexception", + "$r4 = $r3", + "$r1 = \"1catch\"", + "$r5 = ", + "virtualinvoke $r5.($r1)", + "goto label6", + "label3:", + "$r6 := @caughtexception", + "$r1 = \"1finally\"", + "$r7 = ", + "virtualinvoke $r7.($r1)", + "throw $r6", + "label4:", + "$r9 := @caughtexception", + "$r10 = $r9", + "$r1 = \"2catch\"", + "$r11 = ", + "virtualinvoke $r11.($r1)", + "label5:", + "$r1 = \"1finally\"", + "$r12 = ", + "virtualinvoke $r12.($r1)", + "return", + "label6:", + "$r1 = \"2try\"", + "$r8 = ", + "virtualinvoke $r8.($r1)", + "goto label5", + "catch java.lang.Exception from label1 to label2 with label2", + "catch java.lang.Throwable from label1 to label3 with label3", + "catch java.lang.Exception from label6 to label4 with label4")); + } + + @Test + public void tryCatchFinallyNestedInFinally() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInFinally")); + assertJimpleStmts( + sootMethod, + expectedBodyStmts( + "r0 := @this: TryCatchFinally", + "label01:", + "$r1 = \"\"", + "$r1 = \"1try\"", + "$r2 = ", + "virtualinvoke $r2.($r1)", + "goto label09", + "label02:", + "$r3 := @caughtexception", + "$r4 = $r3", + "$r1 = \"1catch\"", + "$r5 = ", + "virtualinvoke $r5.($r1)", + "goto label09", + "label03:", + "$r6 := @caughtexception", + "$r1 = \"1finally\"", + "$r7 = ", + "virtualinvoke $r7.($r1)", + "label04:", + "$r1 = \"2try\"", + "$r8 = ", + "virtualinvoke $r8.($r1)", + "goto label06", + "label05:", + "$r9 := @caughtexception", + "$r10 = $r9", + "$r1 = \"2catch\"", + "$r11 = ", + "virtualinvoke $r11.($r1)", + "label06:", + "throw $r6", + "label07:", + "$r14 := @caughtexception", + "$r15 = $r14", + "$r1 = \"2catch\"", + "$r16 = ", + "virtualinvoke $r16.($r1)", + "label08:", + "return", + "label09:", + "$r1 = \"1finally\"", + "$r12 = ", + "virtualinvoke $r12.($r1)", + "label10:", + "$r1 = \"2try\"", + "$r13 = ", + "virtualinvoke $r13.($r1)", + "goto label08", + "catch java.lang.Exception from label01 to label02 with label02", + "catch java.lang.Throwable from label01 to label03 with label03", + "catch java.lang.Throwable from label04 to label05 with label05", + "catch java.lang.Exception from label10 to label07 with label07")); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/UnaryOpIntTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/UnaryOpIntTest.java new file mode 100644 index 00000000000..37d0407a781 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/UnaryOpIntTest.java @@ -0,0 +1,50 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class UnaryOpIntTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodUnaryOpInt", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + /** + * TODO Do we need to check the type of variable as int? + * assertTrue(getFields().stream().anyMatch(sootField -> {return + * sootField.getType().equals("int");})); + */ + } + + /** + * + * + *
+   *     void methodUnaryOpInt(){
+   * int k = i+j;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: UnaryOpInt", + "$i0 = r0.", + "$i1 = r0.", + "$i2 = $i0 + $i1", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/UncheckedCastTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/UncheckedCastTest.java new file mode 100644 index 00000000000..7441dd88065 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/UncheckedCastTest.java @@ -0,0 +1,53 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class UncheckedCastTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "uncheckedCastDisplay", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void uncheckedCastDisplay(){
+   * List list = Arrays.asList(5,8,9,6);
+   * List intList= list;
+   * System.out.println(intList);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: UncheckedCast", + "$r1 = newarray (java.lang.Object)[4]", + "$r1[0] = 5", + "$r1[1] = 8", + "$r1[2] = 9", + "$r1[3] = 6", + "$r2 = staticinvoke ($r1)", + "$r3 = $r2", + "$r4 = ", + "virtualinvoke $r4.($r3)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/UnicodeMethodNameTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/UnicodeMethodNameTest.java new file mode 100644 index 00000000000..1c70ff28265 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/UnicodeMethodNameTest.java @@ -0,0 +1,51 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class UnicodeMethodNameTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public class UnicodeMethodName {
+   *     public void αρετη(){
+   *         System.out.println("this is αρετη method");
+   *     }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: αρετη", + "$r1 = ", + "virtualinvoke $r1.(\"this is αρετη class\")", + "return") + .collect(Collectors.toList()); + } + + @Ignore + public void test() { + // this only works on Unicode filesystems + /** + * Exception in thread "main" java.nio.file.InvalidPathException: Illegal char at index 1: + * a?et?.java + */ + SootClass sootClass = loadClass(getDeclaredClassSignature()); + System.out.println(sootClass.getClassSource().getClassType().getClassName()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VariableDeclarationTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VariableDeclarationTest.java new file mode 100644 index 00000000000..bdaa587fe28 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VariableDeclarationTest.java @@ -0,0 +1,170 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static de.upb.sse.sootup.core.util.Utils.filterJimple; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class VariableDeclarationTest extends MinimalSourceTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("shortVariable")); + assertJimpleStmts(method, expectedBodyStmtsShortVariable()); + + method = loadMethod(getMethodSignature("byteVariable")); + assertJimpleStmts(method, expectedBodyStmtsByteVariable()); + + method = loadMethod(getMethodSignature("charVariable")); + assertJimpleStmts(method, expectedBodyStmtsCharVariable()); + + method = loadMethod(getMethodSignature("intVariable")); + assertJimpleStmts(method, expectedBodyStmtsIntVariable()); + + method = loadMethod(getMethodSignature("longVariable")); + assertJimpleStmts(method, expectedBodyStmtsLongVariable()); + + method = loadMethod(getMethodSignature("floatVariable")); + assertJimpleStmts(method, expectedBodyStmtsFloatVariable()); + + method = loadMethod(getMethodSignature("doubleVariable")); + assertJimpleStmts(method, expectedBodyStmtsDoubleVariable()); + } + + @Ignore + public void classTypeDefWithoutAssignment() { + // TODO: [ms] fix: Type of Local $r1 is should be (java.lang.)String + // TODO [kk]: Actual :[unknown $u0, VariableDeclaration r0, r0 := @this: VariableDeclaration, + // $u0 = null, return] + SootMethod method = loadMethod(getMethodSignature("classTypeDefWithoutAssignment")); + Body body = method.getBody(); + assertNotNull(body); + + List actualStmts = filterJimple(body.toString()); + assertEquals( + expectedBodyStmts( + "java.lang.String $r1", + "VariableDeclaration r0", + "r0 := @this: VariableDeclaration", + "$r1 = null", + "return"), + actualStmts); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void shortVariable() {
+   *         short a = 10;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsShortVariable() { + return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 10", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void byteVariable() {
+   *         byte b = 0;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsByteVariable() { + return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 0", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void charVariable() {
+   *         char c = 'a';
+   *     }
+   * 
+ */ + public List expectedBodyStmtsCharVariable() { + return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 97", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void intVariable() {
+   *         int d = 512;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsIntVariable() { + return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 512", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void longVariable() {
+   *         long e = 123456789;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsLongVariable() { + return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 123456789", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void floatVariable() {
+   *         float f = 3.14f;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsFloatVariable() { + return Stream.of("r0 := @this: VariableDeclaration", "$f0 = 3.14F", "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     public void doubleVariable() {
+   *         double g = 1.96969654d;
+   *     }
+   * 
+ */ + public List expectedBodyStmtsDoubleVariable() { + return Stream.of("r0 := @this: VariableDeclaration", "$d0 = 1.96969654", "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VariableShadowingTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VariableShadowingTest.java new file mode 100644 index 00000000000..233de461a27 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VariableShadowingTest.java @@ -0,0 +1,48 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class VariableShadowingTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "variableShadowing", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void variableShadowing(){
+   * int val = num;
+   * int num = 10;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: VariableShadowing", + "$i0 = r0.", + "$i1 = 10", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VirtualMethodTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VirtualMethodTest.java new file mode 100644 index 00000000000..eed1fb10561 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VirtualMethodTest.java @@ -0,0 +1,57 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class VirtualMethodTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "virtualMethodDemo", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void virtualMethodDemo(){
+   * Employee e1= new TempEmployee(1500,150);
+   * Employee e2= new RegEmployee(1500,500);
+   * System.out.println(e1.getSalary());
+   * System.out.println(e2.getSalary());
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: VirtualMethod", + "$r1 = new TempEmployee", + "specialinvoke $r1.(int,int)>(1500, 150)", + "$r2 = new RegEmployee", + "specialinvoke $r2.(int,int)>(1500, 500)", + "$r3 = ", + "$i0 = virtualinvoke $r1.()", + "virtualinvoke $r3.($i0)", + "$r4 = ", + "$i1 = virtualinvoke $r2.()", + "virtualinvoke $r4.($i1)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VolatileVariableTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VolatileVariableTest.java new file mode 100644 index 00000000000..cd2fa290cb1 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/VolatileVariableTest.java @@ -0,0 +1,57 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class VolatileVariableTest extends MinimalSourceTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "increaseCounter", "int", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> { + return sootField.getName().equals("counter") + && sootField.getModifiers().contains(Modifier.VOLATILE); + })); + } + + /** + * + * + *
+   *     public int increaseCounter(){
+   * return counter++;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: VolatileVariable", + "$i0 = r0.", + "$i1 = $i0 + 1", + "r0. = $i1", + "return $i0") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/WhileLoopTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/WhileLoopTest.java new file mode 100644 index 00000000000..4bdb4b96a3d --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/WhileLoopTest.java @@ -0,0 +1,57 @@ +/** @author: Hasitha Rajapakse */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class WhileLoopTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "whileLoop", "void", Collections.emptyList()); + } + + /**
+   * public void whileLoop(){
+   * int num = 10;
+   * int i = 0;
+   * while(num>i){
+   * num--;
+   * }
+   * }
+   *
+   * 
*/
+  @Override
+  public List expectedBodyStmts() {
+    return Stream.of(
+            "r0 := @this: WhileLoop",
+            "$i0 = 10",
+            "$i1 = 0",
+            "label1:",
+            "$z0 = $i0 > $i1",
+            "if $z0 == 0 goto label2",
+            "$i2 = $i0",
+            "$i3 = $i0 - 1",
+            "$i0 = $i3",
+            "goto label1",
+            "label2:",
+            "return")
+        .collect(Collectors.toList());
+  }
+
+  @Test
+  public void test() {
+    SootMethod method = loadMethod(getMethodSignature());
+    assertJimpleStmts(method, expectedBodyStmts());
+  }
+}
diff --git "a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" "b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java"
new file mode 100644
index 00000000000..5eff49682d2
--- /dev/null
+++ "b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java"
@@ -0,0 +1,51 @@
+package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java6;
+
+import categories.Java8Test;
+import de.upb.sse.sootup.core.model.SootMethod;
+import de.upb.sse.sootup.core.signatures.MethodSignature;
+import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.Ignore;
+import org.junit.experimental.categories.Category;
+
+/** @author Kaustubh Kelkar */
+@Category(Java8Test.class)
+public class αρετηTest extends MinimalSourceTestSuiteBase {
+  @Override
+  public MethodSignature getMethodSignature() {
+    return identifierFactory.getMethodSignature(
+        getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList());
+  }
+
+  /**
+   *
+   *
+   * 
+   * public class αρετη {
+   *     public void αρετηAsClassName(){
+   *         System.out.println("this is αρετη class");
+   *     }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + // TODO: likely the Jimple lines need a change when it works until here + return Stream.of( + "l0 := @this: \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7", + "$stack1 = ", + "virtualinvoke $stack1.(\"this is \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7 class\")", + "return") + .collect(Collectors.toList()); + } + + @Ignore + public void test() { + // fails due to missing unicode support in some filesystems + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java new file mode 100644 index 00000000000..33a6b1887c6 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java @@ -0,0 +1,46 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java7; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author: Hasitha Rajapakse * */ +@Category(Java8Test.class) +public class BinaryLiteralInIntTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "binaryLiteralInInt", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void binaryLiteralInInt(){
+   * int a = 0b10100001010001011010000101000101;
+   * int b = 0b101;
+   * int c = 0B101;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: BinaryLiteralInInt", "$i0 = -1589272251", "$i1 = 5", "$i2 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/MultiTryCatchTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/MultiTryCatchTest.java new file mode 100644 index 00000000000..f60d181076d --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/MultiTryCatchTest.java @@ -0,0 +1,67 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java7; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class MultiTryCatchTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + @Override + public List expectedBodyStmts() { + // ms: weird jimple: sequence of gotos - underlying wala instructions have the same anomaly! + return Stream.of( + "r0 := @this: MultiTryCatch", + "label1:", + "$r1 = new java.io.BufferedReader", + "$r2 = new java.io.FileReader", + "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", + "specialinvoke $r1.(java.io.Reader)>($r2)", + "$r3 = \"\"", + "$i0 = 10 / 5", + "$r4 = ", + "virtualinvoke $r4.($i0)", + "label2:", + "$r5 = virtualinvoke $r1.()", + "$r3 = $r5", + "$z0 = $r5 != null", + "if $z0 == 0 goto label3", + "$r6 = ", + "virtualinvoke $r6.($r3)", + "goto label2", + "label3:", + "goto label5", + "label4:", + "$r7 := @caughtexception", + "$r8 = $r7", + "label5:", + "virtualinvoke $r1.()", + "goto label7", + "label6:", + "$r9 := @caughtexception", + "$r10 = $r9", + "label7:", + "return", + "catch java.io.IOException from label1 to label4 with label4", + "catch java.lang.NumberFormatException from label1 to label4 with label4", + "catch java.io.IOException from label1 to label6 with label6") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java new file mode 100644 index 00000000000..ff4c9ed6839 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java @@ -0,0 +1,133 @@ +/** + * @author: Markus Schmidt + * @author: Hasitha Rajapakse + */ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java7; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +@Category(Java8Test.class) +public class SwitchCaseStatementWithStringTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "switchCaseStatementString", "void", Collections.emptyList()); + } + + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: SwitchCaseStatementWithString", + "$r1 = \"something\"", + "$i0 = 0", + "$i1 = \"one\"", + "if $r1 == $i1 goto label3", + "$i2 = \"two\"", + "if $r1 == $i2 goto label2", + "$i3 = \"three\"", + "if $r1 == $i3 goto label1", + "goto label4", + "label1:", + "$i0 = 3", + "goto label5", + "label2:", + "$i0 = 2", + "goto label5", + "label3:", + "$i0 = 1", + "goto label5", + "label4:", + "$i4 = 0 - 1", + "$i0 = $i4", + "label5:", + "return") + .collect(Collectors.toList()); + } + + public MethodSignature getMethodSignature2() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "switchCaseStatementInt", "void", Collections.emptyList()); + } + + public List expectedBodyStmts2() { + return Stream.of( + "r0 := @this: SwitchCaseStatementWithString", + "$i0 = 2", + "$u0 = null", + "switch($i0)", + "case 1: goto label1", + "case 2: goto label2", + "case 3: goto label3", + "default: goto label4", + "label1:", + "$u0 = \"number 1 detected\"", + "goto label6", + "label2:", + "$u0 = \"number 2 detected\"", + "goto label6", + "label3:", + "$u0 = \"number 3 detected\"", + "goto label6", + "label4:", + "goto label5", + "label5:", + "$u0 = \"invalid number\"", + "goto label6", + "label6:", + "return") + .collect(Collectors.toList()); + } + + public MethodSignature getMethodSignature3() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "switchCaseStatementEnum", "void", Collections.emptyList()); + } + + public List expectedBodyStmts3() { + return Stream.of( + "r0 := @this: SwitchCaseStatementWithString", + "$r1 = \"RED\"", + "$r2 = \"\"", + "$r3 = staticinvoke ($r1)", + "$r4 = ", + "if $r3 == $r4 goto label2", + "$r5 = ", + "if $r3 == $r5 goto label1", + "goto label3", + "label1:", + "$r7 = ", + "$r2 = \"color green detected\"", + "goto label4", + "label2:", + "$r6 = ", + "$r2 = \"color red detected\"", + "goto label4", + "label3:", + "$r2 = \"invalid color\"", + "goto label4", + "label4:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + + SootMethod method2 = loadMethod(getMethodSignature2()); + assertJimpleStmts(method2, expectedBodyStmts2()); + + SootMethod method3 = loadMethod(getMethodSignature3()); + assertJimpleStmts(method3, expectedBodyStmts3()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/TryWithResourcesTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/TryWithResourcesTest.java new file mode 100644 index 00000000000..2238525bfed --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/TryWithResourcesTest.java @@ -0,0 +1,58 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java7; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +/** @author Kaustubh Kelkar */ +public class TryWithResourcesTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: TryWithResources", + "label1:", + "$r1 = new java.io.BufferedReader", + "$r2 = new java.io.FileReader", + "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", + "specialinvoke $r1.(java.io.Reader)>($r2)", + "$r3 = \"\"", + "label2:", + "$r4 = virtualinvoke $r1.()", + "goto label4", + "label3:", + "$r5 := @caughtexception", + "virtualinvoke $r1.()", + "throw $r5", + "label4:", + "$r3 = $r4", + "$z0 = $r4 != null", + "if $z0 == 0 goto label5", + "$r6 = ", + "virtualinvoke $r6.($r3)", + "goto label2", + "label5:", + "virtualinvoke $r1.()", + "return", + "catch java.lang.Throwable from label1 to label3 with label3") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/UnderscoreInIntTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/UnderscoreInIntTest.java new file mode 100644 index 00000000000..2cfee611c00 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java7/UnderscoreInIntTest.java @@ -0,0 +1,43 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java7; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author: Hasitha Rajapakse * */ +@Category(Java8Test.class) +public class UnderscoreInIntTest extends MinimalSourceTestSuiteBase { + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "underscoreInInt", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *     public void underscoreInInt(){
+   * int a = 0b0111_1111_1111_1111_1111_1111_1111_1111;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: UnderscoreInInt", "$i0 = 2147483647", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java new file mode 100644 index 00000000000..a02b7e97813 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java @@ -0,0 +1,87 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java8; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class DefaultMethodInterfaceImplTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); + } + + public MethodSignature getDefaultMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "defaultInterfaceMethod", "void", Collections.emptyList()); + } + + /** + * + * + *
+   *
+   * public void interfaceMethod(){
+   * System.out.println("Method interfaceMethod() is implemented");
+   * }
+   *
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: DefaultMethodInterfaceImpl", + "$r1 = ", + "virtualinvoke $r1.(\"Method interfaceMethod() is implemented\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** + * + * + *
+   * public void defaultInterfaceMethod(){
+   *
+   * //Add this line after default methods are supported
+   *
+   * //DefaultMethodInterface.super.defaultInterfaceMethod();
+   *
+   * System.out.println("Method defaultInterfaceMethod() is implemented");
+   * };
+   * 
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "r0 := @this: DefaultMethodInterfaceImpl", + "$r1 = ", + "virtualinvoke $r1.(\"Method defaultInterfaceMethod() is implemented\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + /** TODO Update the source code once default methods in WALA are supported */ + @Ignore + public void test() { + + assertJimpleStmts(loadMethod(getMethodSignature()), expectedBodyStmts()); + assertJimpleStmts(loadMethod(getDefaultMethodSignature()), expectedBodyStmts1()); + + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getInterfaces().stream() + .anyMatch( + javaClassType -> + javaClassType.getClassName().equalsIgnoreCase("DefaultMethodInterface"))); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java new file mode 100644 index 00000000000..a6ae41c29c6 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java @@ -0,0 +1,45 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java8; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class MethodAcceptingLamExprTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "lambdaAsParamMethod", "void", Collections.emptyList()); + } + + @org.junit.Test + @Ignore + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + /** TODO update the expectedBodyStmts when Lambda are supported by Wala */ + + /** + * + * + *
+   *     public void lambdaAsParamMethod(){
+   * //        Percentage percentageValue = (value -> value/100);
+   * //        System.out.println("Percentage : " + percentageValue.calcPercentage(45.0));
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: MethodAcceptingLamExpr", "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/MethodReferenceTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/MethodReferenceTest.java new file mode 100644 index 00000000000..2497dae3c5c --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/MethodReferenceTest.java @@ -0,0 +1,50 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java8; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +public class MethodReferenceTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodRefMethod", "void", Collections.emptyList()); + } + + /** TODO Update the source code when WALA supports lambda expression */ + @Ignore + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + /** + * + * + *
+   *     public void methodRefMethod(){
+   * System.out.println("Instance Method");
+   * MethodReference obj1 = new MethodReference();
+   *
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: MethodReference", + "$r1 = ", + "virtualinvoke $r1.(\"Instance Method\")", + "$r2 = new MethodReference", + "specialinvoke $r2.()>()", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java new file mode 100644 index 00000000000..f7d2fe903dd --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java @@ -0,0 +1,40 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java8; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class RepeatingAnnotationsTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "annotaionMethod", "void", Collections.emptyList()); + } + + @Ignore + public void annotationTest() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); + } + + @Override + public List expectedBodyStmts() { + return Stream.of("r0 := @this: RepeatingAnnotations", "$r1 = \"\"", "$r2 = \"\"", "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java new file mode 100644 index 00000000000..db39d98c29c --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java @@ -0,0 +1,81 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java8; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +public class StaticMethodInterfaceImplTest extends MinimalSourceTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), + "methodStaticMethodInterfaceImpl", + "void", + Collections.emptyList()); + } + + private MethodSignature getStaticMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "initStatic", "void", Collections.emptyList()); + } + + /** + * + * + *
+   * public void display(){
+   * System.out.println("Inside display - StaticmethodInterfaceImpl");
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: StaticMethodInterfaceImpl", + "$r1 = ", + "virtualinvoke $r1.(\"Inside display - StaticmethodInterfaceImpl\")", + "return") + .collect(Collectors.toList()); + } + + /** + * + * + *
+   *     static public void initStatic(){
+   * System.out.println("Inside initStatic - StaticmethodInterface");
+   * }
+   * 
+ */ + public List expectedBodyStmts1() { + return Stream.of( + "$r0 = ", + "virtualinvoke $r0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", + "return") + .collect(Collectors.toList()); + } + + // TODO: enable test when TypeMethodReference is Supported by Wala/SourceCodeFrontend + @Ignore + public void test() { + assertJimpleStmts(loadMethod(getStaticMethodSignature()), expectedBodyStmts1()); + + SootMethod staticMethod = loadMethod(getStaticMethodSignature()); + assertJimpleStmts(staticMethod, expectedBodyStmts1()); + assertTrue(staticMethod.isStatic() && staticMethod.getName().equals("initStatic")); + + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue( + sootClass.getInterfaces().stream() + .anyMatch( + javaClassType -> javaClassType.getClassName().equals("StaticMethodInterface"))); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java new file mode 100644 index 00000000000..05e99efe6ba --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java @@ -0,0 +1,68 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java9; + +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class AnonymousDiamondOperatorTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "innerClassDiamond", "void", Collections.emptyList()); + } + + @Ignore + public void test() { + /** TODO Check for anonymous declarations once Java 9 is supported in WALA */ + } + + /** + * + * + *
+   *    public int innerClassDiamond() {
+   * MyClass obj = new MyClass<>() {
+   * Integer add(Integer x, Integer y) {
+   * return x+y;
+   * }
+   * };
+   * Integer sum = obj.add(22,23);
+   * return sum;
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: AnonymousDiamondOperator", + "$r1 = new java.io.BufferedReader", + "$r2 = new java.io.FileReader", + "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", + "specialinvoke $r1.(java.io.Reader)>($r2)", + "$r3 = \"\"", + "label1:", + "$r4 = virtualinvoke $r1.()", + "goto label2", + "$r5 := @caughtexception", + "virtualinvoke $r1.()", + "throw $r5", + "label2:", + "$r3 = $r4", + "$z0 = $r4 != null", + "if $z0 == 0 goto label3", + "$r6 = ", + "virtualinvoke $r6.($r3)", + "goto label1", + "label3:", + "virtualinvoke $r1.()", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java new file mode 100644 index 00000000000..98f4e1f34f6 --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java @@ -0,0 +1,56 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java9; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class PrivateMethodInterfaceImplTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodInterfaceImpl", "void", Collections.emptyList()); + } + + @Ignore + /** TODO WALA does not support Java9 constructs */ + public void ignoreTest() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue( + sootClass.getInterfaces().stream() + .anyMatch( + javaClassType -> + javaClassType.getClassName().equalsIgnoreCase("PrivateMethodInterface"))); + } + + /** + * + * + *
+   *     public void methodInterfaceImpl(){
+   * methodInterface(4,2);
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: PrivateMethodInterfaceImpl", + "interfaceinvoke r0.(4, 2)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java new file mode 100644 index 00000000000..10f813c283b --- /dev/null +++ b/de.upb.sse.sootup.java.sourcecode/src/test/java/de/upb/sse/sootup/test/java/sourcecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java @@ -0,0 +1,65 @@ +package de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.java9; + +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; + +/** @author Kaustubh Kelkar */ +public class TryWithResourcesConciseTest extends MinimalSourceTestSuiteBase { + + @Override + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + @Ignore + public void test() { + /** TODO [kk] Java 9 is not supported by WALA, feature can not be tested */ + } + + /** + * + * + *
+   *     public void printFile() throws Exception{
+   * try(BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"))){
+   * String data = "";
+   * while( (data= bufferedReader.readLine()) != null ){
+   * System.out.println(data);
+   * }
+   * }
+   * }
+   * 
+ */ + @Override + public List expectedBodyStmts() { + return Stream.of( + "r0 := @this: TryWithResourcesConcise", + "$r1 = new java.io.BufferedReader", + "$r2 = new java.io.FileReader", + "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", + "specialinvoke $r1.(java.io.Reader)>($r2)", + "$r3 = \"\"", + "label1:", + "$r4 = virtualinvoke $r1.()", + "goto label2", + "$r5 := @caughtexception", + "throw $r5", + "label2:", + "$r3 = $r4", + "$z0 = $r4 != null", + "if $z0 == 0 goto label3", + "$r6 = ", + "virtualinvoke $r6.($r3)", + "goto label1", + "label3:", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/pom.xml b/de.upb.sse.sootup.jimple.parser/pom.xml new file mode 100644 index 00000000000..cf29135a120 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/pom.xml @@ -0,0 +1,88 @@ + + + 4.0.0 + + SootUp Jimple Frontend + sootup.jimple.parser + jar + + sootup + de.upb.sse + 1.0.0-SNAPSHOT + + + + UTF-8 + true + true + + + + + + + + org.antlr + antlr4-maven-plugin + 4.7 + + + + antlr4 + + + + + + + + + + + + de.upb.sse + sootup.core + 1.0.0-SNAPSHOT + + + + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT + + + + de.upb.sse + sootup.java.core + 1.0.0-SNAPSHOT + + + + + org.antlr + antlr4-runtime + 4.7.2 + + + + + + + + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT + pom + import + + + + \ No newline at end of file diff --git a/de.upb.swt.soot.jimple.parser/src/main/antlr4/de/upb/swt/soot/jimple/Jimple.g4 b/de.upb.sse.sootup.jimple.parser/src/main/antlr4/de/upb/sse/sootup/jimple/Jimple.g4 similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/main/antlr4/de/upb/swt/soot/jimple/Jimple.g4 rename to de.upb.sse.sootup.jimple.parser/src/main/antlr4/de/upb/sse/sootup/jimple/Jimple.g4 diff --git a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleAnalysisInputLocation.java b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleAnalysisInputLocation.java similarity index 85% rename from de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleAnalysisInputLocation.java rename to de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleAnalysisInputLocation.java index 8eb1ec21ba9..9197e30b669 100644 --- a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleAnalysisInputLocation.java +++ b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleAnalysisInputLocation.java @@ -1,18 +1,18 @@ -package de.upb.swt.soot.jimple.parser; - -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ClassProvider; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.FileType; -import de.upb.swt.soot.core.model.AbstractClass; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.PathUtils; -import de.upb.swt.soot.core.util.StreamUtils; -import de.upb.swt.soot.core.views.View; +package de.upb.sse.sootup.jimple.parser; + +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ClassProvider; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.FileType; +import de.upb.sse.sootup.core.model.AbstractClass; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.PathUtils; +import de.upb.sse.sootup.core.util.StreamUtils; +import de.upb.sse.sootup.core.views.View; import java.io.File; import java.io.IOException; import java.nio.file.Files; diff --git a/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleClassProvider.java b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleClassProvider.java new file mode 100644 index 00000000000..7c5f7397d5c --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleClassProvider.java @@ -0,0 +1,45 @@ +package de.upb.sse.sootup.jimple.parser; + +import de.upb.sse.sootup.core.frontend.ClassProvider; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.FileType; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.ClassType; +import java.io.IOException; +import java.nio.file.Path; +import java.util.List; +import javax.annotation.Nonnull; +import org.antlr.v4.runtime.CharStreams; + +/** @author Markus Schmidt */ +public class JimpleClassProvider>> + implements ClassProvider { + + @Nonnull private final List bodyInterceptors; + + public JimpleClassProvider(List bodyInterceptors) { + this.bodyInterceptors = bodyInterceptors; + } + + @Override + public SootClassSource createClassSource( + AnalysisInputLocation> inputlocation, + Path sourcePath, + ClassType classSignature) { + + try { + final JimpleConverter jimpleConverter = new JimpleConverter(); + return jimpleConverter.run( + CharStreams.fromPath(sourcePath), inputlocation, sourcePath, bodyInterceptors); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public FileType getHandledFileType() { + return FileType.JIMPLE; + } +} diff --git a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleConverter.java b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleConverter.java similarity index 96% rename from de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleConverter.java rename to de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleConverter.java index e806f646c32..379ba935899 100644 --- a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleConverter.java +++ b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleConverter.java @@ -1,26 +1,26 @@ -package de.upb.swt.soot.jimple.parser; - -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.frontend.OverridingClassSource; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.*; -import de.upb.swt.soot.core.jimple.common.expr.*; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.javabytecode.stmt.JSwitchStmt; -import de.upb.swt.soot.core.model.*; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.*; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.jimple.JimpleBaseVisitor; -import de.upb.swt.soot.jimple.JimpleParser; +package de.upb.sse.sootup.jimple.parser; + +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.frontend.OverridingClassSource; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.*; +import de.upb.sse.sootup.core.jimple.common.constant.*; +import de.upb.sse.sootup.core.jimple.common.expr.*; +import de.upb.sse.sootup.core.jimple.common.ref.IdentityRef; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.javabytecode.stmt.JSwitchStmt; +import de.upb.sse.sootup.core.model.*; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.*; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.jimple.JimpleBaseVisitor; +import de.upb.sse.sootup.jimple.JimpleParser; import java.nio.file.Path; import java.util.*; import java.util.stream.Collectors; diff --git a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleConverterUtil.java b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleConverterUtil.java similarity index 92% rename from de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleConverterUtil.java rename to de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleConverterUtil.java index 27e9d37ddb0..77ce2b630af 100644 --- a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleConverterUtil.java +++ b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleConverterUtil.java @@ -1,18 +1,18 @@ -package de.upb.swt.soot.jimple.parser; - -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.jimple.JimpleLexer; -import de.upb.swt.soot.jimple.JimpleParser; +package de.upb.sse.sootup.jimple.parser; + +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.model.Position; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.jimple.JimpleLexer; +import de.upb.sse.sootup.jimple.JimpleParser; import java.nio.file.Path; import java.util.*; import javax.annotation.Nonnull; diff --git a/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleLanguage.java b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleLanguage.java new file mode 100644 index 00000000000..8db298524fd --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleLanguage.java @@ -0,0 +1,30 @@ +package de.upb.sse.sootup.jimple.parser; + +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.Language; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; + +public class JimpleLanguage extends Language { + + private static JimpleLanguage INSTANCE = new JimpleLanguage(); + + public static JimpleLanguage getInstance() { + return INSTANCE; + } + + @Override + public String getName() { + return "Jimple"; + } + + @Override + public int getVersion() { + return -1; // there is no real versioning other than "old" Soot and FutureSoot at the moment + } + + @Override + public IdentifierFactory getIdentifierFactory() { + // FIXME [ms] ? + return JavaIdentifierFactory.getInstance(); + } +} diff --git a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleProject.java b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleProject.java similarity index 84% rename from de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleProject.java rename to de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleProject.java index 063ad9dca7b..6bc996f943c 100644 --- a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleProject.java +++ b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleProject.java @@ -1,10 +1,10 @@ -package de.upb.swt.soot.jimple.parser; +package de.upb.sse.sootup.jimple.parser; -import de.upb.swt.soot.core.*; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.inputlocation.DefaultSourceTypeSpecifier; -import de.upb.swt.soot.core.model.SootClass; +import de.upb.sse.sootup.core.*; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.inputlocation.DefaultSourceTypeSpecifier; +import de.upb.sse.sootup.core.model.SootClass; import java.util.List; import java.util.function.Function; import javax.annotation.Nonnull; diff --git a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleView.java b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleView.java similarity index 86% rename from de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleView.java rename to de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleView.java index 31b05c04bbb..2f674bbcb45 100644 --- a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleView.java +++ b/de.upb.sse.sootup.jimple.parser/src/main/java/de/upb/sse/sootup/jimple/parser/JimpleView.java @@ -1,14 +1,15 @@ -package de.upb.swt.soot.jimple.parser; - -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.AbstractView; +package de.upb.sse.sootup.jimple.parser; + +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.frontend.AbstractClassSource; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.transform.BodyInterceptor; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.AbstractView; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -38,13 +39,13 @@ public class JimpleView extends AbstractView> { protected Function>, ClassLoadingOptions> classLoadingOptionsSpecifier; - /** Creates a new instance of the {@link de.upb.swt.soot.java.core.views.JavaView} class. */ + /** Creates a new instance of the {@link JavaView} class. */ public JimpleView(@Nonnull JimpleProject project) { this(project, analysisInputLocation -> null); } /** - * Creates a new instance of the {@link de.upb.swt.soot.java.core.views.JavaView} class. + * Creates a new instance of the {@link JavaView} class. * * @param classLoadingOptionsSpecifier To use the default {@link ClassLoadingOptions} for an * {@link AnalysisInputLocation}, simply return null, otherwise the desired diff --git a/de.upb.swt.soot.jimple.parser/src/test/README.md b/de.upb.sse.sootup.jimple.parser/src/test/README.md similarity index 80% rename from de.upb.swt.soot.jimple.parser/src/test/README.md rename to de.upb.sse.sootup.jimple.parser/src/test/README.md index 03915dc7c22..55dd2a108db 100644 --- a/de.upb.swt.soot.jimple.parser/src/test/README.md +++ b/de.upb.sse.sootup.jimple.parser/src/test/README.md @@ -3,8 +3,8 @@ Most tests in this folder will work with pre-generated .jimple files. To generate a .jimple file from a SootClass, use ```java -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.core.model.SootClass; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.core.model.SootClass; SootClass clazz = ...; Utils.outputJimple(clazz, true); diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/JimpleAnalysisInputLocationTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/JimpleAnalysisInputLocationTest.java similarity index 92% rename from de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/JimpleAnalysisInputLocationTest.java rename to de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/JimpleAnalysisInputLocationTest.java index 336dfc9e4ce..8291977ad27 100644 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/JimpleAnalysisInputLocationTest.java +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/JimpleAnalysisInputLocationTest.java @@ -1,10 +1,10 @@ -package de.upb.swt.soot.jimple.parser; +package de.upb.sse.sootup.jimple.parser; import static org.junit.Assert.*; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ClassType; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ClassType; import java.nio.file.Paths; import java.util.Optional; import org.junit.Test; diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/JimpleConverterTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/JimpleConverterTest.java similarity index 85% rename from de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/JimpleConverterTest.java rename to de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/JimpleConverterTest.java index 6e8d78420f5..b7a8f5fb4e1 100644 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/JimpleConverterTest.java +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/JimpleConverterTest.java @@ -1,20 +1,20 @@ -package de.upb.swt.soot.jimple.parser; +package de.upb.sse.sootup.jimple.parser; import static junit.framework.TestCase.fail; import static org.junit.Assert.*; -import de.upb.swt.soot.core.frontend.OverridingClassSource; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.inputlocation.EagerInputLocation; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.StringTools; -import de.upb.swt.soot.jimple.JimpleLexer; -import de.upb.swt.soot.jimple.JimpleParser; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.core.frontend.OverridingClassSource; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.inputlocation.EagerInputLocation; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.core.util.StringTools; +import de.upb.sse.sootup.jimple.JimpleLexer; +import de.upb.sse.sootup.jimple.JimpleParser; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; import java.nio.file.Paths; import java.util.Collections; import org.antlr.v4.runtime.*; @@ -325,15 +325,15 @@ public void testLongCommentDisruptingTokenWord() { public void testGreedyStringFix() { CharStream cs = CharStreams.fromString( - "class de.upb.soot.concrete.fieldReference.A extends java.lang.Object\n" + "class de.upb.sootup.concrete.fieldReference.A extends java.lang.Object\n" + " {\n" + " public java.lang.String j;\n" + " void ()\n" + " {\n" - + " de.upb.soot.concrete.fieldReference.A r0;\n" - + " r0 := @this: de.upb.soot.concrete.fieldReference.A; \n" - + " r0. = \"something \"; \n" - + " r0. = \"stupid\"; \n" + + " de.upb.sootup.concrete.fieldReference.A r0;\n" + + " r0 := @this: de.upb.sootup.concrete.fieldReference.A; \n" + + " r0. = \"something \"; \n" + + " r0. = \"stupid\"; \n" + " return;\n" + " }\n" + " }\n" @@ -346,15 +346,15 @@ public void testGreedyStringFix() { public void testCommentInStringConstant() { CharStream cs = CharStreams.fromString( - "class de.upb.soot.concrete.fieldReference.A extends java.lang.Object\n" + "class de.upb.sootup.concrete.fieldReference.A extends java.lang.Object\n" + " {\n" + " public java.lang.String j;\n" + " void ()\n" + " {\n//nonsense \n" - + " de.upb.soot.concrete.fieldReference.A r0;// nonsense\n" - + " r0 := @this: de.upb.soot.concrete.fieldReference.A; \n" - + " r0. = \"something \"; \n" - + " r0. = \"stupid\"; \n" + + " de.upb.sootup.concrete.fieldReference.A r0;// nonsense\n" + + " r0 := @this: de.upb.sootup.concrete.fieldReference.A; \n" + + " r0. = \"something \"; \n" + + " r0. = \"stupid\"; \n" + " return;//nonsense\n" + " }\n" + " }\n" @@ -364,13 +364,13 @@ public void testCommentInStringConstant() { CharStream cs1 = CharStreams.fromString( - "class de.upb.soot.concrete.fieldReference.A extends java.lang.Object\n" + "class de.upb.sootup.concrete.fieldReference.A extends java.lang.Object\n" + " {\n" + " void ()\n" + " {\n" - + " de.upb.soot.concrete.fieldReference.A r0;\n" - + " r0 := @this: de.upb.soot.concrete.fieldReference.A;\n" - + " r0. = \"gre/*blabla*/ater\";\n" + + " de.upb.sootup.concrete.fieldReference.A r0;\n" + + " r0 := @this: de.upb.sootup.concrete.fieldReference.A;\n" + + " r0. = \"gre/*blabla*/ater\";\n" + " return;\n" + " }\n" + " }\n" @@ -385,8 +385,8 @@ public void testInvoke() { "class Invoke{" + "public void ()\n" + " {\n" - + " de.upb.soot.instructions.expr.DynamicInvokeExprTest r0;\n" - + " r0 := @this: de.upb.soot.instructions.expr.DynamicInvokeExprTest;\n" + + " de.upb.sootup.instructions.expr.DynamicInvokeExprTest r0;\n" + + " r0 := @this: de.upb.sootup.instructions.expr.DynamicInvokeExprTest;\n" + " specialinvoke r0.()>();\n" + " return;\n" + " }" @@ -399,17 +399,17 @@ public void testOther() { CharStream cs = CharStreams.fromString( - "class de.upb.soot.concrete.fieldReference.A extends java.lang.Object\n" + "class de.upb.sootup.concrete.fieldReference.A extends java.lang.Object\n" + " {\n" + " static int it;\n" + " public java.lang.String j;\n" + " void ()\n" + " {\n" - + " de.upb.soot.concrete.fieldReference.A r0;\n" - + " r0 := @this: de.upb.soot.concrete.fieldReference.A;\n" + + " de.upb.sootup.concrete.fieldReference.A r0;\n" + + " r0 := @this: de.upb.sootup.concrete.fieldReference.A;\n" + " specialinvoke r0.()>();\n" - + " r0. = 15;\n" - + " r0. = \"greater\";\n" + + " r0. = 15;\n" + + " r0. = \"greater\";\n" + " return;\n" + " }\n" + " }\n" @@ -706,7 +706,7 @@ public void testPartial_JustMethod() { public void testPartial_JustStmt() { CharStream cs = CharStreams.fromString( - "r0. = \"something \"; \n"); + "r0. = \"something \"; \n"); JimpleLexer lexer = new JimpleLexer(cs); assertEquals(11, lexer.getAllTokens().size()); @@ -716,8 +716,8 @@ public void testPartial_JustStmt() { public void testPartial_JustStmts() { CharStream cs = CharStreams.fromString( - " r0. = \"something \"; \n" - + " r0. = \"stupid\"; \n"); + " r0. = \"something \"; \n" + + " r0. = \"stupid\"; \n"); JimpleLexer lexer = new JimpleLexer(cs); assertEquals(22, lexer.getAllTokens().size()); @@ -727,16 +727,16 @@ public void testPartial_JustStmts() { public void testPartial_FirstHalfOfClass() { CharStream cs = CharStreams.fromString( - "class de.upb.soot.concrete.fieldReference.A extends java.lang.Object\n" + "class de.upb.sootup.concrete.fieldReference.A extends java.lang.Object\n" + " {\n" + " public java.lang.String j;\n" + " public void previously_declared_method(){\n} \n" + " void ()\n" + " {\n" - + " de.upb.soot.concrete.fieldReference.A r0;\n" - + " r0 := @this: de.upb.soot.concrete.fieldReference.A; \n" - + " r0. = \"something \"; \n" - + " r0. = \"stupid\"; \n" + + " de.upb.sootup.concrete.fieldReference.A r0;\n" + + " r0 := @this: de.upb.sootup.concrete.fieldReference.A; \n" + + " r0. = \"something \"; \n" + + " r0. = \"stupid\"; \n" + " return;\n" + " }\n"); @@ -748,9 +748,9 @@ public void testPartial_FirstHalfOfClass() { public void testPartial_SecondHalfOfClass() { CharStream cs = CharStreams.fromString( - " r0 := @this: de.upb.soot.concrete.fieldReference.A; \n" - + " r0. = \"something \"; \n" - + " r0. = \"stupid\"; \n" + " r0 := @this: de.upb.sootup.concrete.fieldReference.A; \n" + + " r0. = \"something \"; \n" + + " r0. = \"stupid\"; \n" + " return;\n" + " }\n" + " public void another_method(){\n}\n" @@ -765,16 +765,16 @@ public void testPartial_SecondHalfOfClass() { public void testPartial_InvalidStmt() { CharStream cs = CharStreams.fromString( - "class de.upb.soot.concrete.fieldReference.A extends java.lang.Object\n" + "class de.upb.sootup.concrete.fieldReference.A extends java.lang.Object\n" + " {\n" + " public java.lang.String j;\n" + " public void previously_declared_method(){\n}\n" + " void ()\n" + " {\n" - + " de.upb.soot.concrete.fieldReference.A r0;\n" - + " r0 := @this: de.upb.soot.concrete.fieldReference.A; \n" - + " r0. = // missing assignment\n" - + " r0. = \"stupid\"; \n" + + " de.upb.sootup.concrete.fieldReference.A r0;\n" + + " r0 := @this: de.upb.sootup.concrete.fieldReference.A; \n" + + " r0. = // missing assignment\n" + + " r0. = \"stupid\"; \n" + " return;\n" + " }\n" + "public void another_method(){\n}\n" diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/categories/Java8Test.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/categories/Java8Test.java new file mode 100644 index 00000000000..2151e02b068 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/categories/Java8Test.java @@ -0,0 +1,5 @@ +package de.upb.sse.sootup.jimple.parser.categories; + +public interface Java8Test { + + /* category marker */ } diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/JimpleTestSuiteBase.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/JimpleTestSuiteBase.java similarity index 78% rename from de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/JimpleTestSuiteBase.java rename to de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/JimpleTestSuiteBase.java index 08ffb9fd516..951a633ce23 100644 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/JimpleTestSuiteBase.java +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/JimpleTestSuiteBase.java @@ -1,19 +1,19 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite; +package de.upb.sse.sootup.jimple.parser.javatestsuite; import static org.junit.Assert.*; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.jimple.parser.JimpleAnalysisInputLocation; -import de.upb.swt.soot.jimple.parser.JimpleProject; -import de.upb.swt.soot.jimple.parser.JimpleView; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.jimple.parser.JimpleAnalysisInputLocation; +import de.upb.sse.sootup.jimple.parser.JimpleProject; +import de.upb.sse.sootup.jimple.parser.JimpleView; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; import java.nio.file.Paths; import java.util.*; import org.junit.Before; diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java10/TypeInferenceTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java10/TypeInferenceTest.java new file mode 100644 index 00000000000..5d07f8fd6c3 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java10/TypeInferenceTest.java @@ -0,0 +1,54 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java10; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class TypeInferenceTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TypeInference", + "l1 = \"file.txt\"", + "l2 = \"\"", + "$stack5 = new java.io.FileReader", + "specialinvoke $stack5.(java.lang.String)>(l1)", + "l3 = $stack5", + "$stack6 = new java.io.BufferedReader", + "specialinvoke $stack6.(java.io.Reader)>(l3)", + "l4 = $stack6", + "label1:", + "$stack9 = l4", + "$stack7 = virtualinvoke $stack9.()", + "l2 = $stack7", + "if $stack7 == null goto label2", + "$stack8 = ", + "virtualinvoke $stack8.(l2)", + "goto label1", + "label2:", + "virtualinvoke l4.()", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AbstractClassTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AbstractClassTest.java new file mode 100644 index 00000000000..127f3d35fa6 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AbstractClassTest.java @@ -0,0 +1,46 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AbstractClassTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootClass clazz = loadClass(getDeclaredClassSignature()); + // The SuperClass is the abstract one + SootClass superClazz = loadClass(clazz.getSuperclass().get()); + assertTrue(superClazz.isAbstract()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "abstractClass", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: AbstractClass", + "$stack2 = new AbstractClass", + "specialinvoke $stack2.()>()", + "l1 = $stack2", + "virtualinvoke l1.()", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AccessArraysTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AccessArraysTest.java new file mode 100644 index 00000000000..55f1774421b --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AccessArraysTest.java @@ -0,0 +1,244 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AccessArraysTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (int)[3]", + "$stack7[0] = 1", + "$stack7[1] = 2", + "$stack7[2] = 3", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (byte)[3]", + "$stack7[0] = 4", + "$stack7[1] = 5", + "$stack7[2] = 6", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (short)[3]", + "$stack7[0] = 10", + "$stack7[1] = 20", + "$stack7[2] = 30", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: AccessArrays", + "$stack9 = newarray (long)[3]", + "$stack9[0] = 547087L", + "$stack9[1] = 564645L", + "$stack9[2] = 654786L", + "l1 = $stack9", + "l4 = l1", + "l5 = lengthof l4", + "l6 = 0", + "label1:", + "$stack11 = l6", + "$stack10 = l5", + "if $stack11 >= $stack10 goto label2", + "l7 = l4[l6]", + "l2 = l7", + "l6 = l6 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("floatArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (float)[4]", + "$stack7[0] = 3.14F", + "$stack7[1] = 5.46F", + "$stack7[2] = 2.987F", + "$stack7[3] = 4.87F", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: AccessArrays", + "$stack9 = newarray (double)[2]", + "$stack9[0] = 6.765414", + "$stack9[1] = 9.676565646", + "l1 = $stack9", + "l4 = l1", + "l5 = lengthof l4", + "l6 = 0", + "label1:", + "$stack11 = l6", + "$stack10 = l5", + "if $stack11 >= $stack10 goto label2", + "l7 = l4[l6]", + "l2 = l7", + "l6 = l6 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (boolean)[2]", + "$stack7[0] = 1", + "$stack7[1] = 0", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (char)[3]", + "$stack7[0] = 65", + "$stack7[1] = 98", + "$stack7[2] = 38", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: AccessArrays", + "$stack7 = newarray (java.lang.String)[2]", + "$stack7[0] = \"Hello World\"", + "$stack7[1] = \"Greetings\"", + "l1 = $stack7", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l6", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AnnotationLibraryTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AnnotationLibraryTest.java new file mode 100644 index 00000000000..48255868f06 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AnnotationLibraryTest.java @@ -0,0 +1,23 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import org.junit.Ignore; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AnnotationLibraryTest extends JimpleTestSuiteBase { + + @Ignore + public void testAnnotation() { + // TODO: annotations are not supported yet + System.out.println(getDeclaredClassSignature()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AnonymousClassInsideMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AnonymousClassInsideMethodTest.java new file mode 100644 index 00000000000..d290afdd824 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AnonymousClassInsideMethodTest.java @@ -0,0 +1,39 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AnonymousClassInsideMethodTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "anonymousClassInsideMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: AnonymousClassInsideMethod", + "$stack2 = new AnonymousClassInsideMethod$1", + "specialinvoke $stack2.(AnonymousClassInsideMethod)>(l0)", + "l1 = $stack2", + "interfaceinvoke l1.()", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AssertStatementTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AssertStatementTest.java new file mode 100644 index 00000000000..f6705e19ea7 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AssertStatementTest.java @@ -0,0 +1,41 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AssertStatementTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "assertStatement", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: AssertStatement", + "$stack1 = ", + "if $stack1 != 0 goto label1", + "if \"\" != null goto label1", + "$stack2 = new java.lang.AssertionError", + "specialinvoke $stack2.()>()", + "throw $stack2", + "label1:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AutoboxingTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AutoboxingTest.java new file mode 100644 index 00000000000..45eaca151ea --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AutoboxingTest.java @@ -0,0 +1,38 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AutoboxingTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "autoboxing", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: Autoboxing", + "l1 = 5", + "l1 = l1 + 1", + "$stack3 = staticinvoke (l1)", + "l2 = $stack3", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AutomaticWideningTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AutomaticWideningTest.java new file mode 100644 index 00000000000..993691dd7e1 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/AutomaticWideningTest.java @@ -0,0 +1,32 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AutomaticWideningTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "automaticWidening", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: AutomaticWidening", "l1 = 10", "l2 = (long) l1", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/BitwiseOperationsIntTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/BitwiseOperationsIntTest.java new file mode 100644 index 00000000000..d316baa970e --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/BitwiseOperationsIntTest.java @@ -0,0 +1,70 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class BitwiseOperationsIntTest extends JimpleTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("bitwiseOpAnd")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 & l2", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("bitwiseOpOr")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 | l2", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("bitwiseOpXor")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 ^ l2", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("bitwiseOpComplement")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 ^ -1", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("bitwiseOpSignedRightShift")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 >> 5", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("bitwiseOpLeftShift")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 << 5", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("bitwiseOpUnsignedRightShift")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 >>> 5", "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/BooleanOperatorsTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/BooleanOperatorsTest.java new file mode 100644 index 00000000000..dd0ccdc681d --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/BooleanOperatorsTest.java @@ -0,0 +1,298 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class BooleanOperatorsTest extends JimpleTestSuiteBase { + + @Test + public void testRelOpEq() { + + SootMethod method = loadMethod(getMethodSignature("relationalOpEqual")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 0", + "label1:", + "$stack3 = l1", + "$stack2 = 10", + "if $stack3 > $stack2 goto label2", + "l1 = l1 + 1", + "if l1 != 5 goto label1", + "goto label2", + "label2:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testrelOpNotEq() { + SootMethod method = loadMethod(getMethodSignature("relationalOpNotEqual")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 0", + "l2 = \"\"", + "label1:", + "$stack4 = l1", + "$stack3 = 10", + "if $stack4 >= $stack3 goto label2", + "l1 = l1 + 1", + "if l1 == 5 goto label1", + "l2 = \"i != 5\"", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testComplementOP() { + SootMethod method = loadMethod(getMethodSignature("complementOp")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "if l1 == 0 goto label3", + "if l1 != 0 goto label1", + "$stack2 = 1", + "goto label2", + "label1:", + "$stack2 = 0", + "label2:", + "l1 = $stack2", + "label3:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testLogicalAnd() { + SootMethod method = loadMethod(getMethodSignature("logicalOpAnd")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "$stack6 = l1 & l2", + "if $stack6 == 0 goto label1", + "l5 = \"A\"", + "label1:", + "$stack15 = l3", + "$stack14 = l4", + "$stack7 = $stack15 & $stack14", + "if $stack7 == 0 goto label2", + "l5 = \"B\"", + "label2:", + "$stack13 = l1", + "$stack12 = l3", + "$stack8 = $stack13 & $stack12", + "if $stack8 == 0 goto label3", + "l5 = \"C\"", + "label3:", + "$stack11 = l4", + "$stack10 = l2", + "$stack9 = $stack11 & $stack10", + "if $stack9 == 0 goto label4", + "l5 = \"D\"", + "label4:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testLogicalOr() { + SootMethod method = loadMethod(getMethodSignature("logicalOpOr")); + + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "$stack6 = l1 | l2", + "if $stack6 == 0 goto label1", + "l5 = \"A\"", + "label1:", + "$stack15 = l3", + "$stack14 = l4", + "$stack7 = $stack15 | $stack14", + "if $stack7 == 0 goto label2", + "l5 = \"B\"", + "label2:", + "$stack13 = l1", + "$stack12 = l3", + "$stack8 = $stack13 | $stack12", + "if $stack8 == 0 goto label3", + "l5 = \"C\"", + "label3:", + "$stack11 = l4", + "$stack10 = l2", + "$stack9 = $stack11 | $stack10", + "if $stack9 == 0 goto label4", + "l5 = \"D\"", + "label4:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testLocgicalOpXor() { + SootMethod method = loadMethod(getMethodSignature("logicalOpXor")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "$stack6 = l1 ^ l2", + "if $stack6 == 0 goto label1", + "l5 = \"A\"", + "label1:", + "$stack15 = l3", + "$stack14 = l4", + "$stack7 = $stack15 ^ $stack14", + "if $stack7 == 0 goto label2", + "l5 = \"B\"", + "label2:", + "$stack13 = l1", + "$stack12 = l3", + "$stack8 = $stack13 ^ $stack12", + "if $stack8 == 0 goto label3", + "l5 = \"C\"", + "label3:", + "$stack11 = l4", + "$stack10 = l2", + "$stack9 = $stack11 ^ $stack10", + "if $stack9 == 0 goto label4", + "l5 = \"D\"", + "label4:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testCondOpAnd() { + SootMethod method = loadMethod(getMethodSignature("ConditionalOpAnd")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "if l1 == 0 goto label1", + "if l2 == 0 goto label1", + "l5 = \"A\"", + "label1:", + "$stack8 = l3", + "if $stack8 == 0 goto label2", + "if l4 == 0 goto label2", + "l5 = \"B\"", + "label2:", + "$stack7 = l1", + "if $stack7 == 0 goto label3", + "if l3 == 0 goto label3", + "l5 = \"C\"", + "label3:", + "$stack6 = l4", + "if $stack6 == 0 goto label4", + "if l2 == 0 goto label4", + "l5 = \"D\"", + "label4:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testCondOpOr() { + SootMethod method = loadMethod(getMethodSignature("conditionalOpOr")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 1", + "l2 = 1", + "l3 = 0", + "l4 = 0", + "l5 = \"\"", + "if l1 != 0 goto label1", + "if l2 == 0 goto label2", + "label1:", + "$stack12 = \"A\"", + "l5 = $stack12", + "label2:", + "$stack11 = l3", + "if $stack11 != 0 goto label3", + "if l4 == 0 goto label4", + "label3:", + "$stack10 = \"B\"", + "l5 = $stack10", + "label4:", + "$stack9 = l1", + "if $stack9 != 0 goto label5", + "if l3 == 0 goto label6", + "label5:", + "$stack8 = \"C\"", + "l5 = $stack8", + "label6:", + "$stack7 = l4", + "if $stack7 != 0 goto label7", + "if l2 == 0 goto label8", + "label7:", + "$stack6 = \"D\"", + "l5 = $stack6", + "label8:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testCondOp() { + SootMethod method = loadMethod(getMethodSignature("conditionalOp")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: BooleanOperators", + "l1 = 5", + "l2 = \"\"", + "if l1 >= 10 goto label1", + "$stack3 = \"i less than 10\"", + "goto label2", + "label1:", + "$stack3 = \"i greater than 10\"", + "label2:", + "l2 = $stack3", + "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/BreakInWhileLoopTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/BreakInWhileLoopTest.java new file mode 100644 index 00000000000..af0cf1f1ebd --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/BreakInWhileLoopTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class BreakInWhileLoopTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "breakInWhileLoop", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: BreakInWhileLoop", + "l1 = 10", + "l2 = 5", + "label1:", + "$stack3 = l1", + "if $stack3 <= 0 goto label2", + "l1 = l1 + -1", + "if l1 != l2 goto label1", + "goto label2", + "label2:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/CastingInNumTypesTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/CastingInNumTypesTest.java new file mode 100644 index 00000000000..7f1b3d3bd6d --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/CastingInNumTypesTest.java @@ -0,0 +1,83 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class CastingInNumTypesTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "displayNum", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: CastingInNumTypes", + "l1 = 1", + "l2 = 2", + "l3 = 3", + "l4 = 4551598461L", + "l6 = 5.4F", + "l7 = 4.5515954846546467E39", + "$stack11 = ", + "virtualinvoke $stack11.(l1)", + "$stack13 = ", + "$stack12 = (byte) l3", + "virtualinvoke $stack13.($stack12)", + "$stack15 = ", + "$stack14 = (double) l2", + "virtualinvoke $stack15.($stack14)", + "$stack18 = ", + "$stack16 = (int) l4", + "$stack17 = (short) $stack16", + "virtualinvoke $stack18.($stack17)", + "$stack20 = ", + "$stack19 = (double) l6", + "virtualinvoke $stack20.($stack19)", + "$stack22 = ", + "$stack21 = (int) l4", + "virtualinvoke $stack22.($stack21)", + "$stack24 = ", + "$stack23 = (float) l7", + "virtualinvoke $stack24.($stack23)", + "$stack25 = ", + "virtualinvoke $stack25.(l7)", + "l9 = 4.7867778678678685E51", + "$stack27 = ", + "$stack26 = (float) l9", + "virtualinvoke $stack27.($stack26)", + "$stack29 = ", + "$stack28 = (long) l9", + "virtualinvoke $stack29.($stack28)", + "$stack31 = ", + "$stack30 = (int) l9", + "virtualinvoke $stack31.($stack30)", + "$stack34 = ", + "$stack32 = (int) l9", + "$stack33 = (short) $stack32", + "virtualinvoke $stack34.($stack33)", + "$stack37 = ", + "$stack35 = (int) l9", + "$stack36 = (byte) $stack35", + "virtualinvoke $stack37.($stack36)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/CharLiteralsTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/CharLiteralsTest.java new file mode 100644 index 00000000000..ee0d1304fc4 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/CharLiteralsTest.java @@ -0,0 +1,59 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class CharLiteralsTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("charCharacter")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: CharLiterals", "l1 = 97", "return").collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charSymbol")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: CharLiterals", "l1 = 37", "return").collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charBackslashT")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: CharLiterals", "l1 = 9", "return").collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charBackslash")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: CharLiterals", "l1 = 92", "return").collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charSingleQuote")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: CharLiterals", "l1 = 39", "return").collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charUnicode")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: CharLiterals", "l1 = 937", "return").collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("specialChar")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: CharLiterals", "l1 = 8482", "return").collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ContinueInWhileLoopTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ContinueInWhileLoopTest.java new file mode 100644 index 00000000000..735aeb3ccc0 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ContinueInWhileLoopTest.java @@ -0,0 +1,47 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ContinueInWhileLoopTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "continueInWhileLoop", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: ContinueInWhileLoop", + "l1 = 0", + "label1:", + "$stack3 = l1", + "$stack2 = 10", + "if $stack3 >= $stack2 goto label3", + "if l1 != 5 goto label2", + "l1 = l1 + 1", + "goto label1", + "label2:", + "l1 = l1 + 1", + "goto label1", + "label3:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/CreateNewInstanceTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/CreateNewInstanceTest.java new file mode 100644 index 00000000000..4282d27ebc8 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/CreateNewInstanceTest.java @@ -0,0 +1,38 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class CreateNewInstanceTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "createNewInstance", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: CreateNewInstance", + "$stack2 = new Person", + "specialinvoke $stack2.(int)>(20)", + "l1 = $stack2", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareConstructorTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareConstructorTest.java new file mode 100644 index 00000000000..4fdcef733be --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareConstructorTest.java @@ -0,0 +1,60 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareConstructorTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignatureInitOneParam() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Collections.singletonList("int")); + } + + public MethodSignature getMethodSignatureInitTwoParam() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Arrays.asList("int", "int")); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignatureInitOneParam()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getMethodSignatureInitTwoParam()); + assertJimpleStmts(method, expectedBodyStmts1()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareConstructor", + "l1 := @parameter0: int", + "specialinvoke l0.()>()", + "l0. = l1", + "l0. = 0", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: DeclareConstructor", + "l1 := @parameter0: int", + "l2 := @parameter1: int", + "specialinvoke l0.()>()", + "l0. = l1", + "l0. = l2", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareEnumTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareEnumTest.java new file mode 100644 index 00000000000..588d855db28 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareEnumTest.java @@ -0,0 +1,24 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareEnumTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootClass sc = + loadClass( + JavaIdentifierFactory.getInstance() + .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$Type")); + assertTrue(sc.isEnum()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareEnumWithConstructorTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareEnumWithConstructorTest.java new file mode 100644 index 00000000000..6437d80dadc --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareEnumWithConstructorTest.java @@ -0,0 +1,29 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Set; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareEnumWithConstructorTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootClass sc = + loadClass( + JavaIdentifierFactory.getInstance() + .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$Number")); + assertTrue(sc.isEnum()); + + final Set methods = (Set) sc.getMethods(); + assertTrue(methods.stream().anyMatch(m -> m.getSignature().getName().equals("getValue"))); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareFieldTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareFieldTest.java new file mode 100644 index 00000000000..ed48d63f742 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareFieldTest.java @@ -0,0 +1,77 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareFieldTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "display", "void", Collections.emptyList()); + } + + public MethodSignature getStaticMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticDisplay", "void", Collections.emptyList()); + } + + @org.junit.Test + public void test() { + SootMethod method1 = loadMethod(getMethodSignature()); + assertJimpleStmts(method1, expectedBodyStmts()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getStaticMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts1()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> { + return sootField.getModifiers().contains(Modifier.PRIVATE) + && sootField.getModifiers().contains(Modifier.STATIC) + && sootField.getName().equals("i"); + })); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> { + return sootField.getModifiers().contains(Modifier.PUBLIC) + && sootField.getModifiers().contains(Modifier.FINAL) + && sootField.getName().equals("s"); + })); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareField", + "$stack1 = ", + "virtualinvoke $stack1.(\"Java\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: DeclareField", + "$stack2 = ", + "$stack1 = ", + "virtualinvoke $stack2.($stack1)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareFloatTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareFloatTest.java new file mode 100644 index 00000000000..d0f8b747abf --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareFloatTest.java @@ -0,0 +1,41 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareFloatTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareFloatMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareFloat", + "$stack2 = ", + "$stack1 = l0.", + "virtualinvoke $stack2.($stack1)", + "$stack4 = ", + "$stack3 = l0.", + "virtualinvoke $stack4.($stack3)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareInnerClassTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareInnerClassTest.java new file mode 100644 index 00000000000..3427ab98a64 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareInnerClassTest.java @@ -0,0 +1,65 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareInnerClassTest extends JimpleTestSuiteBase { + + final JavaClassType innerClassType = + JavaIdentifierFactory.getInstance() + .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$InnerClass"); + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodDisplayOuter", "void", Collections.emptyList()); + } + + public MethodSignature getInnerMethodSignature() { + return identifierFactory.getMethodSignature( + innerClassType, "methodDisplayInner", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + // SootClass sootClass = loadClass(getDeclaredClassSignature()); + + SootMethod sootMethod = loadMethod(getMethodSignature()); + assertJimpleStmts(sootMethod, expectedBodyStmts()); + + // SootClass innerClass = loadClass(innerClassType); + SootMethod innerMethod = loadMethod(getInnerMethodSignature()); + assertJimpleStmts(innerMethod, expectedInnerClassBodyStmts()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareInnerClass", + "$stack1 = ", + "virtualinvoke $stack1.(\"methodDisplayOuter\")", + "return") + .collect(Collectors.toList()); + } + + public List expectedInnerClassBodyStmts() { + return Stream.of( + "l0 := @this: DeclareInnerClass$InnerClass", + "$stack1 = ", + "virtualinvoke $stack1.(\"methodDisplayInner\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareIntTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareIntTest.java new file mode 100644 index 00000000000..9017ae0a354 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareIntTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareIntTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareIntMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareInt", + "$stack2 = ", + "$stack1 = l0.", + "virtualinvoke $stack2.($stack1)", + "$stack4 = ", + "$stack3 = l0.", + "virtualinvoke $stack4.($stack3)", + "$stack6 = ", + "$stack5 = l0.", + "virtualinvoke $stack6.($stack5)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareLongTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareLongTest.java new file mode 100644 index 00000000000..0c9ab4a1d22 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DeclareLongTest.java @@ -0,0 +1,41 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DeclareLongTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "declareLongMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DeclareLong", + "$stack2 = ", + "$stack1 = l0.", + "virtualinvoke $stack2.($stack1)", + "$stack4 = ", + "$stack3 = l0.", + "virtualinvoke $stack4.($stack3)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DoWhileLoopTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DoWhileLoopTest.java new file mode 100644 index 00000000000..9b5aca45c2e --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/DoWhileLoopTest.java @@ -0,0 +1,41 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DoWhileLoopTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "doWhileLoop", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DoWhileLoop", + "l1 = 10", + "l2 = 0", + "label1:", + "l2 = l2 + 1", + "$stack4 = l1", + "$stack3 = l2", + "if $stack4 > $stack3 goto label1", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/EmptyStatementTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/EmptyStatementTest.java new file mode 100644 index 00000000000..67e95972557 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/EmptyStatementTest.java @@ -0,0 +1,33 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class EmptyStatementTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "emptyStatement", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: EmptyStatement", "l1 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/EscapeSequencesInStringTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/EscapeSequencesInStringTest.java new file mode 100644 index 00000000000..00e842d337c --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/EscapeSequencesInStringTest.java @@ -0,0 +1,96 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class EscapeSequencesInStringTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("escapeBackslashB")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash b \\u0008\"", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("escapeBackslashT")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash t \\t\"", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("escapeBackslashN")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash n \\n\"", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("escapeBackslashF")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash f \\f\"", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("escapeBackslashR")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash r \\r\"", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("escapeDoubleQuotes")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes double quotes \\\"\"", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("escapeSingleQuote")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes single quote \\'\"", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("escapeBackslash")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: EscapeSequencesInString", + "l1 = \"This escapes backslash \\\\\"", + "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/EvaluationOrderWithParenthesesTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/EvaluationOrderWithParenthesesTest.java new file mode 100644 index 00000000000..d0de2c12631 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/EvaluationOrderWithParenthesesTest.java @@ -0,0 +1,36 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class EvaluationOrderWithParenthesesTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), + "evaluationOrderWithParentheses", + "void", + Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: EvaluationOrderWithParentheses", "l1 = 9", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/FinalMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/FinalMethodTest.java new file mode 100644 index 00000000000..061ead749c1 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/FinalMethodTest.java @@ -0,0 +1,40 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class FinalMethodTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + assertTrue(method.isFinal()); + } + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "finalMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: FinalMethod", + "$stack1 = ", + "virtualinvoke $stack1.(\"final method\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/FinalVariableTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/FinalVariableTest.java new file mode 100644 index 00000000000..4a4401fd3eb --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/FinalVariableTest.java @@ -0,0 +1,32 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class FinalVariableTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "finalVariable", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: FinalVariable", "return").collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ForEachLoopTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ForEachLoopTest.java new file mode 100644 index 00000000000..5c7a8f5d283 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ForEachLoopTest.java @@ -0,0 +1,59 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ForEachLoopTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "forEachLoop", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: ForEachLoop", + "$stack7 = newarray (int)[9]", + "$stack7[0] = 10", + "$stack7[1] = 20", + "$stack7[2] = 30", + "$stack7[3] = 40", + "$stack7[4] = 50", + "$stack7[5] = 60", + "$stack7[6] = 71", + "$stack7[7] = 80", + "$stack7[8] = 90", + "l1 = $stack7", + "l2 = 0", + "l3 = l1", + "l4 = lengthof l3", + "l5 = 0", + "label1:", + "$stack9 = l5", + "$stack8 = l4", + "if $stack9 >= $stack8 goto label2", + "l6 = l3[l5]", + "l2 = l2 + 1", + "l5 = l5 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ForLoopTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ForLoopTest.java new file mode 100644 index 00000000000..2f7396e579b --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ForLoopTest.java @@ -0,0 +1,46 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ForLoopTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "forLoop", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: ForLoop", + "l1 = 10", + "l2 = 0", + "l3 = 0", + "label1:", + "$stack5 = l3", + "$stack4 = l1", + "if $stack5 >= $stack4 goto label2", + "l2 = l2 + 1", + "l3 = l3 + 1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/GenTypeParamTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/GenTypeParamTest.java new file mode 100644 index 00000000000..b93cc4c9224 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/GenTypeParamTest.java @@ -0,0 +1,61 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class GenTypeParamTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "geneTypeParamDisplay", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: GenTypeParam", + "$stack4 = new java.util.ArrayList", + "specialinvoke $stack4.(int)>(3)", + "l1 = $stack4", + "$stack5 = newarray (java.lang.Integer)[3]", + "$stack6 = 0", + "$stack7 = staticinvoke (1)", + "$stack5[$stack6] = $stack7", + "$stack8 = 1", + "$stack9 = staticinvoke (2)", + "$stack5[$stack8] = $stack9", + "$stack10 = 2", + "$stack11 = staticinvoke (3)", + "$stack5[$stack10] = $stack11", + "$stack12 = staticinvoke ($stack5)", + "l2 = $stack12", + "$stack13 = new GenTypeParam", + "specialinvoke $stack13.()>()", + "l3 = $stack13", + "virtualinvoke l3.(l1, l2)", + "$stack14 = ", + "$stack15 = staticinvoke (2)", + "$stack16 = staticinvoke (8)", + "$stack17 = staticinvoke (3)", + "$stack18 = virtualinvoke l3.($stack15, $stack16, $stack17)", + "virtualinvoke $stack14.($stack18)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/GenericTypeParamOnClassTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/GenericTypeParamOnClassTest.java new file mode 100644 index 00000000000..8643448c491 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/GenericTypeParamOnClassTest.java @@ -0,0 +1,43 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class GenericTypeParamOnClassTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "genericTypeParamOnClass", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: GenericTypeParamOnClass", + "$stack3 = new GenericTypeParamOnClass$A", + "specialinvoke $stack3.(GenericTypeParamOnClass)>(l0)", + "l1 = $stack3", + "$stack4 = staticinvoke (5)", + "staticinvoke (l1, $stack4)", + "$stack5 = virtualinvoke l1.()", + "$stack6 = (java.lang.Integer) $stack5", + "$stack7 = virtualinvoke $stack6.()", + "l2 = $stack7", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/GenericTypeParamOnMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/GenericTypeParamOnMethodTest.java new file mode 100644 index 00000000000..db81b73ba32 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/GenericTypeParamOnMethodTest.java @@ -0,0 +1,35 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class GenericTypeParamOnMethodTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "genericTypeParamOnMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: GenericTypeParamOnMethod", + "virtualinvoke l0.(\"Hello World\")", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/IfElseStatementTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/IfElseStatementTest.java new file mode 100644 index 00000000000..8a3ada6e2e5 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/IfElseStatementTest.java @@ -0,0 +1,186 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class IfElseStatementTest extends JimpleTestSuiteBase { + + @Test + public void ifStatement() { + SootMethod method = loadMethod(getMethodSignature("ifStatement")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "label1:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList())); + } + + @Test + public void ifElseStatement() { + SootMethod method = loadMethod(getMethodSignature("ifElseStatement")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "goto label2", + "label1:", + "l2 = 2", + "label2:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList())); + } + + @Test + public void ifElseIfStatement() { + SootMethod method = loadMethod(getMethodSignature("ifElseIfStatement")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "goto label3", + "label1:", + "if l1 <= 123 goto label2", + "l2 = 2", + "goto label3", + "label2:", + "l2 = 3", + "label3:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList())); + } + + @Test + public void ifElseCascadingStatement() { + SootMethod method = loadMethod(getMethodSignature("ifElseCascadingStatement")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label2", + "if l1 >= 42 goto label1", + "l2 = 11", + "goto label3", + "label1:", + "l2 = 12", + "goto label3", + "label2:", + "l2 = 3", + "label3:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList())); + } + + @Test + public void ifElseCascadingInElseStatement() { + SootMethod method = loadMethod(getMethodSignature("ifElseCascadingInElseStatement")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "goto label3", + "label1:", + "if l1 >= 42 goto label2", + "l2 = 21", + "goto label3", + "label2:", + "l2 = 22", + "label3:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList())); + } + + @Test + public void ifElseCascadingElseIfStatement() { + SootMethod method = loadMethod(getMethodSignature("ifElseCascadingElseIfStatement")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label3", + "if l1 >= 42 goto label1", + "l2 = 11", + "goto label4", + "label1:", + "if l1 <= 123 goto label2", + "l2 = 12", + "goto label4", + "label2:", + "l2 = 13", + "goto label4", + "label3:", + "l2 = 2", + "label4:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList())); + } + + @Test + public void ifElseCascadingElseIfInElseStatement() { + SootMethod method = loadMethod(getMethodSignature("ifElseCascadingElseIfInElseStatement")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: IfElseStatement", + "l1 := @parameter0: int", + "l2 = 0", + "if l1 >= 42 goto label1", + "l2 = 1", + "goto label4", + "label1:", + "if l1 >= 42 goto label2", + "l2 = 21", + "goto label4", + "label2:", + "if l1 <= 123 goto label3", + "l2 = 22", + "goto label4", + "label3:", + "l2 = 23", + "label4:", + "$stack3 = l2", + "return $stack3") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "int", Collections.singletonList("int")); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InfiniteLoopTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InfiniteLoopTest.java new file mode 100644 index 00000000000..181ad8a9524 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InfiniteLoopTest.java @@ -0,0 +1,31 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Markus Schmidt */ +@Category(Java8Test.class) +public class InfiniteLoopTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stmtLoop", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: InfiniteLoop", "return").collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/Initialize3DimensionalArraysTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/Initialize3DimensionalArraysTest.java new file mode 100644 index 00000000000..ac55534f69d --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/Initialize3DimensionalArraysTest.java @@ -0,0 +1,299 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class Initialize3DimensionalArraysTest extends JimpleTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (int[][])[2]", + "$stack3 = newarray (int[])[2]", + "$stack4 = newarray (int)[3]", + "$stack4[0] = 1", + "$stack4[1] = 2", + "$stack4[2] = 3", + "$stack3[0] = $stack4", + "$stack5 = newarray (int)[2]", + "$stack5[0] = 5", + "$stack5[1] = 6", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (int[])[2]", + "$stack7 = newarray (int)[3]", + "$stack7[0] = 7", + "$stack7[1] = 8", + "$stack7[2] = 9", + "$stack6[0] = $stack7", + "$stack8 = newarray (int)[2]", + "$stack8[0] = 10", + "$stack8[1] = 11", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("byteArrays")); + + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (byte[][])[2]", + "$stack3 = newarray (byte[])[2]", + "$stack4 = newarray (byte)[3]", + "$stack4[0] = 7", + "$stack4[1] = 8", + "$stack4[2] = 9", + "$stack3[0] = $stack4", + "$stack5 = newarray (byte)[2]", + "$stack5[0] = 10", + "$stack5[1] = 11", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (byte[])[2]", + "$stack7 = newarray (byte)[3]", + "$stack7[0] = 1", + "$stack7[1] = 2", + "$stack7[2] = 3", + "$stack6[0] = $stack7", + "$stack8 = newarray (byte)[2]", + "$stack8[0] = 5", + "$stack8[1] = 6", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (short[][])[2]", + "$stack3 = newarray (short[])[2]", + "$stack4 = newarray (short)[2]", + "$stack4[0] = 10", + "$stack4[1] = 20", + "$stack3[0] = $stack4", + "$stack5 = newarray (short)[2]", + "$stack5[0] = 40", + "$stack5[1] = 85", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (short[])[2]", + "$stack7 = newarray (short)[2]", + "$stack7[0] = 56", + "$stack7[1] = 59", + "$stack6[0] = $stack7", + "$stack8 = newarray (short)[2]", + "$stack8[0] = 95", + "$stack8[1] = 35", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (long[][])[2]", + "$stack3 = newarray (long[])[2]", + "$stack4 = newarray (long)[2]", + "$stack4[0] = 547087L", + "$stack4[1] = 654786L", + "$stack3[0] = $stack4", + "$stack5 = newarray (long)[3]", + "$stack5[0] = 547287L", + "$stack5[1] = 864645L", + "$stack5[2] = 6533786L", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (long[])[2]", + "$stack7 = newarray (long)[2]", + "$stack7[0] = 34565L", + "$stack7[1] = 234L", + "$stack6[0] = $stack7", + "$stack8 = newarray (long)[2]", + "$stack8[0] = 9851L", + "$stack8[1] = 63543L", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("floatArrays")); + + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (float[][])[2]", + "$stack3 = newarray (float[])[2]", + "$stack4 = newarray (float)[2]", + "$stack4[0] = 3.14F", + "$stack4[1] = 5.46F", + "$stack3[0] = $stack4", + "$stack5 = newarray (float)[2]", + "$stack5[0] = 2.987F", + "$stack5[1] = 4.87F", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (float[])[2]", + "$stack7 = newarray (float)[2]", + "$stack7[0] = 65.15F", + "$stack7[1] = 854.18F", + "$stack6[0] = $stack7", + "$stack8 = newarray (float)[2]", + "$stack8[0] = 16.51F", + "$stack8[1] = 58.14F", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (double[][])[2]", + "$stack3 = newarray (double[])[2]", + "$stack4 = newarray (double)[2]", + "$stack4[0] = 6.765414", + "$stack4[1] = 9.676565646", + "$stack3[0] = $stack4", + "$stack5 = newarray (double)[1]", + "$stack5[0] = 45.345435", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (double[])[2]", + "$stack7 = newarray (double)[2]", + "$stack7[0] = 3.5656", + "$stack7[1] = 68.234234", + "$stack6[0] = $stack7", + "$stack8 = newarray (double)[2]", + "$stack8[0] = 68416.651", + "$stack8[1] = 65416.5", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (boolean[][])[2]", + "$stack3 = newarray (boolean[])[2]", + "$stack4 = newarray (boolean)[2]", + "$stack4[0] = 1", + "$stack4[1] = 0", + "$stack3[0] = $stack4", + "$stack5 = newarray (boolean)[1]", + "$stack5[0] = 1", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (boolean[])[2]", + "$stack7 = newarray (boolean)[2]", + "$stack7[0] = 0", + "$stack7[1] = 0", + "$stack6[0] = $stack7", + "$stack8 = newarray (boolean)[1]", + "$stack8[0] = 1", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (char[][])[2]", + "$stack3 = newarray (char[])[2]", + "$stack4 = newarray (char)[3]", + "$stack4[0] = 65", + "$stack4[1] = 98", + "$stack4[2] = 38", + "$stack3[0] = $stack4", + "$stack5 = newarray (char)[2]", + "$stack5[0] = 99", + "$stack5[1] = 36", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (char[])[2]", + "$stack7 = newarray (char)[2]", + "$stack7[0] = 50", + "$stack7[1] = 71", + "$stack6[0] = $stack7", + "$stack8 = newarray (char)[2]", + "$stack8[0] = 97", + "$stack8[1] = 37", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: Initialize3DimensionalArrays", + "$stack2 = newarray (java.lang.String[][])[2]", + "$stack3 = newarray (java.lang.String[])[2]", + "$stack4 = newarray (java.lang.String)[1]", + "$stack4[0] = \"Hello World\"", + "$stack3[0] = $stack4", + "$stack5 = newarray (java.lang.String)[2]", + "$stack5[0] = \"Greetings\"", + "$stack5[1] = \"Welcome\"", + "$stack3[1] = $stack5", + "$stack2[0] = $stack3", + "$stack6 = newarray (java.lang.String[])[2]", + "$stack7 = newarray (java.lang.String)[2]", + "$stack7[0] = \"Future\"", + "$stack7[1] = \"Soot\"", + "$stack6[0] = $stack7", + "$stack8 = newarray (java.lang.String)[2]", + "$stack8[0] = \"UPB\"", + "$stack8[1] = \"HNI\"", + "$stack6[1] = $stack8", + "$stack2[1] = $stack6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InitializeArraysWhileDeclarationTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InitializeArraysWhileDeclarationTest.java new file mode 100644 index 00000000000..6e656834106 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InitializeArraysWhileDeclarationTest.java @@ -0,0 +1,139 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InitializeArraysWhileDeclarationTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (int)[3]", + "$stack2[0] = 1", + "$stack2[1] = 2", + "$stack2[2] = 3", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (byte)[3]", + "$stack2[0] = 4", + "$stack2[1] = 5", + "$stack2[2] = 6", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (short)[3]", + "$stack2[0] = 10", + "$stack2[1] = 20", + "$stack2[2] = 30", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (long)[3]", + "$stack2[0] = 547087L", + "$stack2[1] = 564645L", + "$stack2[2] = 654786L", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("floatArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (float)[4]", + "$stack2[0] = 3.14F", + "$stack2[1] = 5.46F", + "$stack2[2] = 2.987F", + "$stack2[3] = 4.87F", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (double)[2]", + "$stack2[0] = 6.765414", + "$stack2[1] = 9.676565646", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (boolean)[2]", + "$stack2[0] = 1", + "$stack2[1] = 0", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (char)[3]", + "$stack2[0] = 65", + "$stack2[1] = 98", + "$stack2[2] = 38", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWhileDeclaration", + "$stack2 = newarray (java.lang.String)[2]", + "$stack2[0] = \"Hello World\"", + "$stack2[1] = \"Greetings\"", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InitializeArraysWithIndexTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InitializeArraysWithIndexTest.java new file mode 100644 index 00000000000..f6c7f910953 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InitializeArraysWithIndexTest.java @@ -0,0 +1,132 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InitializeArraysWithIndexTest extends JimpleTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (int)[3]", + "l1[0] = 1", + "l1[1] = 2", + "l1[2] = 3", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("byteArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (byte)[3]", + "l1[0] = 4", + "l1[1] = 5", + "l1[2] = 6", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (short)[3]", + "l1[0] = 10", + "l1[1] = 20", + "l1[2] = 30", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (long)[3]", + "l1[0] = 547087L", + "l1[1] = 564645L", + "l1[2] = 654786L", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("floatArrays")); + + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (float)[4]", + "l1[0] = 3.14F", + "l1[1] = 5.46F", + "l1[2] = 2.987F", + "l1[3] = 4.87F", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (double)[2]", + "l1[0] = 6.765414", + "l1[1] = 9.676565646", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (boolean)[2]", + "l1[0] = 1", + "l1[1] = 0", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (char)[3]", + "l1[0] = 65", + "l1[1] = 98", + "l1[2] = 38", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeArraysWithIndex", + "l1 = newarray (java.lang.String)[2]", + "l1[0] = \"Hello World\"", + "l1[1] = \"Greetings\"", + "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InitializeMultidimensionalArraysTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InitializeMultidimensionalArraysTest.java new file mode 100644 index 00000000000..67ed562d9fd --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InitializeMultidimensionalArraysTest.java @@ -0,0 +1,205 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InitializeMultidimensionalArraysTest extends JimpleTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("intArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (int[])[3]", + "$stack3 = newarray (int)[3]", + "$stack3[0] = 1", + "$stack3[1] = 2", + "$stack3[2] = 3", + "$stack2[0] = $stack3", + "$stack4 = newarray (int)[2]", + "$stack4[0] = 5", + "$stack4[1] = 6", + "$stack2[1] = $stack4", + "$stack5 = newarray (int)[3]", + "$stack5[0] = 7", + "$stack5[1] = 8", + "$stack5[2] = 9", + "$stack2[2] = $stack5", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("byteArrays")); + + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (byte[])[2]", + "$stack3 = newarray (byte)[2]", + "$stack3[0] = 4", + "$stack3[1] = 5", + "$stack2[0] = $stack3", + "$stack4 = newarray (byte)[1]", + "$stack4[0] = 2", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("shortArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (short[])[2]", + "$stack3 = newarray (short)[3]", + "$stack3[0] = 10", + "$stack3[1] = 20", + "$stack3[2] = 30", + "$stack2[0] = $stack3", + "$stack4 = newarray (short)[1]", + "$stack4[0] = 40", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("longArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (long[])[3]", + "$stack3 = newarray (long)[2]", + "$stack3[0] = 547087L", + "$stack3[1] = 654786L", + "$stack2[0] = $stack3", + "$stack4 = newarray (long)[3]", + "$stack4[0] = 547287L", + "$stack4[1] = 864645L", + "$stack4[2] = 6533786L", + "$stack2[1] = $stack4", + "$stack5 = newarray (long)[2]", + "$stack5[0] = 34565L", + "$stack5[1] = 234L", + "$stack2[2] = $stack5", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("floatArrays")); + + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (float[])[2]", + "$stack3 = newarray (float)[2]", + "$stack3[0] = 3.14F", + "$stack3[1] = 5.46F", + "$stack2[0] = $stack3", + "$stack4 = newarray (float)[2]", + "$stack4[0] = 2.987F", + "$stack4[1] = 4.87F", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("doubleArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (double[])[3]", + "$stack3 = newarray (double)[2]", + "$stack3[0] = 6.765414", + "$stack3[1] = 9.676565646", + "$stack2[0] = $stack3", + "$stack4 = newarray (double)[1]", + "$stack4[0] = 45.345435", + "$stack2[1] = $stack4", + "$stack5 = newarray (double)[2]", + "$stack5[0] = 3.5656", + "$stack5[1] = 68.234234", + "$stack2[2] = $stack5", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("booleanArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (boolean[])[2]", + "$stack3 = newarray (boolean)[2]", + "$stack3[0] = 1", + "$stack3[1] = 0", + "$stack2[0] = $stack3", + "$stack4 = newarray (boolean)[1]", + "$stack4[0] = 1", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (char[])[3]", + "$stack3 = newarray (char)[3]", + "$stack3[0] = 65", + "$stack3[1] = 98", + "$stack3[2] = 38", + "$stack2[0] = $stack3", + "$stack4 = newarray (char)[2]", + "$stack4[0] = 99", + "$stack4[1] = 36", + "$stack2[1] = $stack4", + "$stack5 = newarray (char)[2]", + "$stack5[0] = 50", + "$stack5[1] = 71", + "$stack2[2] = $stack5", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("stringArrays")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: InitializeMultidimensionalArrays", + "$stack2 = newarray (java.lang.String[])[2]", + "$stack3 = newarray (java.lang.String)[1]", + "$stack3[0] = \"Hello World\"", + "$stack2[0] = $stack3", + "$stack4 = newarray (java.lang.String)[2]", + "$stack4[0] = \"Greetings\"", + "$stack4[1] = \"Welcome\"", + "$stack2[1] = $stack4", + "l1 = $stack2", + "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InstanceOfCheckTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InstanceOfCheckTest.java new file mode 100644 index 00000000000..ab73211a571 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InstanceOfCheckTest.java @@ -0,0 +1,47 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertEquals; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InstanceOfCheckTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "instanceOfCheckMethod", "void", Collections.emptyList()); + } + + @org.junit.Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + if (sootClass.getSuperclass().isPresent()) { + assertEquals("InstanceOfCheckSuper", sootClass.getSuperclass().get().getClassName()); + } + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: InstanceOfCheck", + "$stack2 = new InstanceOfCheck", + "specialinvoke $stack2.()>()", + "l1 = $stack2", + "$stack4 = ", + "$stack3 = l1 instanceof InstanceOfCheckSuper", + "virtualinvoke $stack4.($stack3)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InterfaceImplClassTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InterfaceImplClassTest.java new file mode 100644 index 00000000000..dc1a860a12b --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/InterfaceImplClassTest.java @@ -0,0 +1,49 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class InterfaceImplClassTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equalsIgnoreCase("InterfaceImpl"); + })); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: InterfaceImplClass", + "$stack1 = ", + "virtualinvoke $stack1.(\"Method from InterfaceImpl is implemented\")", + "$stack2 = ", + "virtualinvoke $stack2.(\"Variable from InterfaceImpl is 10\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/LabelledLoopBreakTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/LabelledLoopBreakTest.java new file mode 100644 index 00000000000..0fa91da6089 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/LabelledLoopBreakTest.java @@ -0,0 +1,54 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class LabelledLoopBreakTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "labelledLoopBreak", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: LabelledLoopBreak", + "l1 = 0", + "label1:", + "$stack4 = l1", + "$stack3 = 5", + "if $stack4 >= $stack3 goto label5", + "l2 = 0", + "label2:", + "$stack6 = l2", + "$stack5 = 5", + "if $stack6 >= $stack5 goto label4", + "if l1 != 1 goto label3", + "goto label5", + "label3:", + "l2 = l2 + 1", + "goto label2", + "label4:", + "l1 = l1 + 1", + "goto label1", + "label5:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodAcceptingVarTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodAcceptingVarTest.java new file mode 100644 index 00000000000..95f0653deee --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodAcceptingVarTest.java @@ -0,0 +1,96 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MethodAcceptingVarTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("short")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: short", + "$stack2 = l1 + 1", + "l1 = (short) $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("byte")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: byte", + "$stack2 = l1 + 1", + "l1 = (byte) $stack2", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("char")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: MethodAcceptingVar", "l1 := @parameter0: char", "l1 = 97", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("int")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: int", + "l1 = l1 + 1", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("long")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: long", + "l1 = 123456777L", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("float")); + + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: float", + "l1 = 7.77F", + "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("double")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: MethodAcceptingVar", + "l1 := @parameter0: double", + "l1 = 1.787777777", + "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String datatype) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), + datatype + "Variable", + "void", + Collections.singletonList(datatype)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodOverloadingTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodOverloadingTest.java new file mode 100644 index 00000000000..29d00baddda --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodOverloadingTest.java @@ -0,0 +1,71 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MethodOverloadingTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "calculate", "int", Arrays.asList("int", "int")); + } + /** @returns the method signature needed for second method in testCase */ + public MethodSignature getMethodSignatureSingleParam() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "calculate", "int", Collections.singletonList("int")); + } + + public MethodSignature getMethodSignatureInit() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = loadMethod(getMethodSignatureSingleParam()); + assertJimpleStmts(method, expectedBodyStmts1()); + + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(sootClass.getMethod(getMethodSignature().getSubSignature()).isPresent()); + assertTrue(sootClass.getMethod(getMethodSignatureSingleParam().getSubSignature()).isPresent()); + assertTrue(sootClass.getMethod(getMethodSignatureInit().getSubSignature()).isPresent()); + assertEquals(3, sootClass.getMethods().size()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MethodOverloading", + "l1 := @parameter0: int", + "l2 := @parameter1: int", + "$stack3 = l1 + l2", + "return $stack3") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: MethodOverloading", + "l1 := @parameter0: int", + "$stack2 = l1 + l1", + "return $stack2") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodOverridingTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodOverridingTest.java new file mode 100644 index 00000000000..90d8acfff0e --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodOverridingTest.java @@ -0,0 +1,42 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MethodOverridingTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + + return identifierFactory.getMethodSignature( + identifierFactory.getClassType("MethodOverridingSubclass"), + "calculateArea", + "void", + Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MethodOverridingSubclass", + "$stack1 = ", + "virtualinvoke $stack1.(\"Inside MethodOverridingSubclass-calculateArea()\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodReturningVarTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodReturningVarTest.java new file mode 100644 index 00000000000..bef85d11d3f --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MethodReturningVarTest.java @@ -0,0 +1,66 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MethodReturningVarTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature("short")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: MethodReturningVar", "l1 = 10", "return l1") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("byte")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: MethodReturningVar", "l1 = 0", "return l1") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("char")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: MethodReturningVar", "l1 = 97", "return l1") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("int")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: MethodReturningVar", "l1 = 512", "return l1") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("long")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: MethodReturningVar", "l1 = 123456789L", "return l1") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("float")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: MethodReturningVar", "l1 = 3.14F", "return l1") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("double")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: MethodReturningVar", "l1 = 1.96969654", "return l1") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String datatype) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), datatype + "Variable", datatype, Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MultiInterfaceImplClassTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MultiInterfaceImplClassTest.java new file mode 100644 index 00000000000..ca28ba98a5c --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/MultiInterfaceImplClassTest.java @@ -0,0 +1,49 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MultiInterfaceImplClassTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equals("InterfaceImplDummy"); + })); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MultiInterfaceImplClass", + "$stack1 = ", + "virtualinvoke $stack1.(\"Method from InterfaceImpl is implemented\")", + "$stack2 = ", + "virtualinvoke $stack2.(\"Variable from InterfaceImpl is 10\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NamedClassInsideMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NamedClassInsideMethodTest.java new file mode 100644 index 00000000000..a4a5948a41d --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NamedClassInsideMethodTest.java @@ -0,0 +1,38 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class NamedClassInsideMethodTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "namedClassInsideMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: NamedClassInsideMethod", + "$stack2 = new NamedClassInsideMethod$1MyMathOperation", + "specialinvoke $stack2.(NamedClassInsideMethod)>(l0)", + "l1 = $stack2", + "interfaceinvoke l1.()", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NativeMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NativeMethodTest.java new file mode 100644 index 00000000000..d6bde313dd5 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NativeMethodTest.java @@ -0,0 +1,37 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class NativeMethodTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "returnResult", "int", Collections.singletonList("int")); + } + + @Test + public void nativeMethod() { + SootMethod sootMethod = loadMethod(getMethodSignature()); + assertTrue(sootMethod.isNative()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: NativeMethod", + "specialinvoke l0.()>();", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NewCodeBlockInMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NewCodeBlockInMethodTest.java new file mode 100644 index 00000000000..52c07a9a1c1 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NewCodeBlockInMethodTest.java @@ -0,0 +1,33 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class NewCodeBlockInMethodTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "newCodeBlockInMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: NewCodeBlockInMethod", "l1 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NoModifierClassTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NoModifierClassTest.java new file mode 100644 index 00000000000..f19243237b1 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NoModifierClassTest.java @@ -0,0 +1,38 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class NoModifierClassTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootClass clazz = loadClass(getDeclaredClassSignature()); + // TODO SYNCHRONIZED modifier does not work + // assertEquals(EnumSet.noneOf(Modifier.class), clazz.getModifiers()); + assertTrue(clazz.getMethod(getMethodSignature("private").getSubSignature()).get().isPrivate()); + assertTrue( + clazz.getMethod(getMethodSignature("protected").getSubSignature()).get().isProtected()); + assertTrue(clazz.getMethod(getMethodSignature("public").getSubSignature()).get().isPublic()); + assertTrue( + clazz + .getMethod(getMethodSignature("noModifier").getSubSignature()) + .get() + .getModifiers() + .isEmpty()); + } + + public MethodSignature getMethodSignature(String modifier) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NullVariableTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NullVariableTest.java new file mode 100644 index 00000000000..9b73bf99422 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/NullVariableTest.java @@ -0,0 +1,33 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class NullVariableTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "nullVariable", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: NullVariable", "l1 = null", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/PublicClassTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/PublicClassTest.java new file mode 100644 index 00000000000..afa7f1ba7d9 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/PublicClassTest.java @@ -0,0 +1,55 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.EnumSet; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class PublicClassTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertEquals(EnumSet.of(Modifier.PUBLIC, Modifier.SYNCHRONIZED), clazz.getModifiers()); + + SootMethod method; + method = clazz.getMethod(getMethodSignature("private").getSubSignature()).get(); + assertTrue(method.isPrivate()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = clazz.getMethod(getMethodSignature("protected").getSubSignature()).get(); + assertTrue(method.isProtected()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = clazz.getMethod(getMethodSignature("public").getSubSignature()).get(); + assertTrue(method.isPublic()); + assertJimpleStmts(method, expectedBodyStmts()); + + method = clazz.getMethod(getMethodSignature("noModifier").getSubSignature()).get(); + assertTrue(method.getModifiers().isEmpty()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + public MethodSignature getMethodSignature(String modifier) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: PublicClass", "return").collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ReferenceVarDeclarationTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ReferenceVarDeclarationTest.java new file mode 100644 index 00000000000..70d71546c62 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ReferenceVarDeclarationTest.java @@ -0,0 +1,33 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ReferenceVarDeclarationTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringVariable", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: ReferenceVarDeclaration", "l1 = \"Hello World\"", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ReferencingThisTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ReferencingThisTest.java new file mode 100644 index 00000000000..4bff59a0979 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ReferencingThisTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ReferencingThisTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "thisMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: ReferencingThis", + "$stack2 = ", + "virtualinvoke $stack2.(\" this keyword as an argument in the constructor call\")", + "$stack3 = new ReferencingThis", + "$stack5 = l0.", + "$stack4 = l0.", + "specialinvoke $stack3.(int,int)>($stack5, $stack4)", + "l1 = $stack3", + "virtualinvoke l1.()", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ReflectionTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ReflectionTest.java new file mode 100644 index 00000000000..b8dcaa0d9e2 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ReflectionTest.java @@ -0,0 +1,52 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ReflectionTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "checkReflection", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: Reflection", + "$stack4 = new Reflection", + "specialinvoke $stack4.()>()", + "l1 = $stack4", + "l2 = class Reflection", + "$stack5 = ", + "virtualinvoke $stack5.(l2)", + "$stack6 = newarray (java.lang.Class)[0]", + "$stack7 = virtualinvoke l2.($stack6)", + "l3 = $stack7", + "$stack8 = ", + "$stack9 = virtualinvoke l3.()", + "virtualinvoke $stack8.($stack9)", + "$stack10 = ", + "$stack11 = virtualinvoke l2.()", + "$stack12 = lengthof $stack11", + "virtualinvoke $stack10.($stack12)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StatementEvalTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StatementEvalTest.java new file mode 100644 index 00000000000..37485b6c845 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StatementEvalTest.java @@ -0,0 +1,38 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StatementEvalTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "statementEval", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: StatementEval", + "l1 = 1", + "$stack2 = l1", + "l1 = 3", + "l1 = $stack2 + 3", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticImportTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticImportTest.java new file mode 100644 index 00000000000..01912ee26a3 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticImportTest.java @@ -0,0 +1,48 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticImportTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "mathFunctions", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: StaticImport", + "$stack1 = ", + "$stack2 = staticinvoke (4.0)", + "virtualinvoke $stack1.($stack2)", + "$stack3 = ", + "$stack4 = staticinvoke (2.0, 5.0)", + "virtualinvoke $stack3.($stack4)", + "$stack5 = ", + "$stack6 = staticinvoke (5.6)", + "virtualinvoke $stack5.($stack6)", + "$stack7 = ", + "virtualinvoke $stack7.(\"Static import for System.out\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticInitializerTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticInitializerTest.java new file mode 100644 index 00000000000..13bd953c4f0 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticInitializerTest.java @@ -0,0 +1,64 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticInitializerTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodStaticInitializer", "void", Collections.emptyList()); + } + + public MethodSignature getStaticMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + + assertTrue( + clazz.getFields().stream() + .anyMatch(sootField -> sootField.getName().equals("i") && sootField.isStatic())); + + final SootMethod staticMethod = loadMethod(getStaticMethodSignature()); + assertTrue(staticMethod.isStatic()); + assertJimpleStmts(staticMethod, expectedBodyStmtsOfClinit()); + } + + public List expectedBodyStmtsOfClinit() { + return Stream.of( + " = 5", + "$stack0 = ", + "if $stack0 <= 4 goto label1", + " = 4", + "label1:", + "return") + .collect(Collectors.toList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "$stack1 = ", + "$stack0 = ", + "virtualinvoke $stack1.($stack0)", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticMethodInvocationTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticMethodInvocationTest.java new file mode 100644 index 00000000000..095726ff2af --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticMethodInvocationTest.java @@ -0,0 +1,35 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticMethodInvocationTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticMethodInvocation", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: StaticMethodInvocation", + "staticinvoke ()", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticMethodTest.java new file mode 100644 index 00000000000..b20703da87e --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticMethodTest.java @@ -0,0 +1,41 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticMethodTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method1 = loadMethod(getMethodSignature()); + assertJimpleStmts(method1, expectedBodyStmts()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + assertTrue(method.isStatic()); + } + + public List expectedBodyStmts() { + return Stream.of( + "$stack0 = ", + "virtualinvoke $stack0.(\"static method\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticVariableTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticVariableTest.java new file mode 100644 index 00000000000..3df4fb099b8 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StaticVariableTest.java @@ -0,0 +1,48 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticVariableTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "staticVariable", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + element -> { + return element.getName().equals("num") && element.isStatic(); + })); + } + + public List expectedBodyStmts() { + return Stream.of( + "$stack1 = ", + "$stack0 = ", + "virtualinvoke $stack1.($stack0)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StringConcatenationTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StringConcatenationTest.java new file mode 100644 index 00000000000..e47203c63e4 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StringConcatenationTest.java @@ -0,0 +1,33 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StringConcatenationTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: StringConcatenation", "l1 = \"thestring\"", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StringWithUnicodeCharTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StringWithUnicodeCharTest.java new file mode 100644 index 00000000000..c2306285bff --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/StringWithUnicodeCharTest.java @@ -0,0 +1,33 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StringWithUnicodeCharTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringWithUnicodeChar", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: StringWithUnicodeChar", "l1 = \"$123\"", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SubClassTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SubClassTest.java new file mode 100644 index 00000000000..a209a0d0718 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SubClassTest.java @@ -0,0 +1,67 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SubClassTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "subclassMethod", "void", Collections.emptyList()); + } + + /** @returns the method signature needed for second method in testCase */ + public MethodSignature getMethodSignature1() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); + } + + @Test + public void testSuperClassStmts() { + SootMethod m = loadMethod(getMethodSignature1()); + assertJimpleStmts(m, expectedBodyStmts1()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(sootClass.getSuperclass().get().getClassName().equals("SuperClass")); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: SubClass", + "l0. = 10", + "l0. = 20", + "l0. = 30", + "l0. = 40", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: SubClass", + "specialinvoke l0.()", + "l0. = 100", + "l0. = 200", + "l0. = 300", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SuperClassTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SuperClassTest.java new file mode 100644 index 00000000000..af86760a63d --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SuperClassTest.java @@ -0,0 +1,39 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SuperClassTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: SuperClass", + "l0. = 10", + "l0. = 20", + "l0. = 30", + "l0. = 40", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SwitchCaseStatementTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SwitchCaseStatementTest.java new file mode 100644 index 00000000000..cd0c7a8b124 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SwitchCaseStatementTest.java @@ -0,0 +1,240 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SwitchCaseStatementTest extends JimpleTestSuiteBase { + + @Test + public void switchCaseStatementEnum() { + SootMethod method = loadMethod(getMethodSignature("switchCaseStatementEnum")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: SwitchCaseStatement", + "l1 = ", + "l2 = \"\"", + "$stack3 = ", + "$stack4 = virtualinvoke l1.()", + "$stack5 = $stack3[$stack4]", + "switch($stack5)", + "case 1: goto label1", + "case 2: goto label2", + "default: goto label3", + "label1:", + "l2 = \"red\"", + "goto label4", + "label2:", + "l2 = \"green\"", + "goto label4", + "label3:", + "l2 = \"invalid\"", + "label4:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testSwitchInt() { + SootMethod method = loadMethod(getMethodSignature("switchCaseStatementInt")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: SwitchCaseStatement", + "l1 = 5", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label2", + "case 3: goto label3", + "default: goto label4", + "label1:", + "l2 = \"one\"", + "goto label5", + "label2:", + "l2 = \"two\"", + "goto label5", + "label3:", + "l2 = \"three\"", + "goto label5", + "label4:", + "l2 = \"invalid\"", + "label5:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testSwitchCaseWithoutDefault() { + SootMethod method = loadMethod(getMethodSignature("switchCaseWithoutDefault")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: SwitchCaseStatement", + "l1 = 6", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label2", + "case 3: goto label3", + "default: goto label4", + "label1:", + "l2 = \"one\"", + "goto label4", + "label2:", + "l2 = \"two\"", + "goto label4", + "label3:", + "l2 = \"three\"", + "label4:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testSwitchCaseGroupedTargets() { + SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargets")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: SwitchCaseStatement", + "l1 = 7", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label1", + "case 3: goto label2", + "default: goto label3", + "label1:", + "l2 = \"first\"", + "goto label3", + "label2:", + "l2 = \"second\"", + "label3:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void testSwitchCaseGroupedTargetsDefault() { + SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargetsDefault")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: SwitchCaseStatement", + "l1 = 8", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label1", + "case 3: goto label2", + "default: goto label3", + "label1:", + "l2 = \"first\"", + "goto label4", + "label2:", + "l2 = \"second\"", + "goto label4", + "label3:", + "l2 = \"other\"", + "label4:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void switchCaseStatementCaseIncludingIf() { + SootMethod method = loadMethod(getMethodSignature("switchCaseStatementCaseIncludingIf")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: SwitchCaseStatement", + "l1 = 2", + "switch(l1)", + "case 1: goto label1", + "case 2: goto label3", + "case 3: goto label4", + "default: goto label5", + "label1:", + "l2 = 1", + "if l1 != 666 goto label2", + "l2 = 11", + "goto label6", + "label2:", + "l2 = 12", + "goto label6", + "label3:", + "l2 = 2", + "goto label6", + "label4:", + "l2 = 3", + "goto label6", + "label5:", + "l2 = -1", + "label6:", + "return") + .collect(Collectors.toList())); + } + + @Test + public void switchCaseStatementCaseIncludingSwitch() { + SootMethod method = loadMethod(getMethodSignature("switchWithSwitch")); + assertJimpleStmts( + method, + Stream.of( + "l0 := @this: SwitchCaseStatement", + "l1 = 2", + "switch(l1)", + "case 1: goto label01", + "case 2: goto label05", + "case 3: goto label10", + "default: goto label11", + "label01:", + "switch(l1)", + "case 10: goto label02", + "case 20: goto label03", + "default: goto label04", + "label02:", + "l2 = 11", + "goto label04", + "label03:", + "l2 = 12", + "label04:", + "goto label12", + "label05:", + "l2 = 2", + "switch(l1)", + "case 20: goto label06", + "case 30: goto label07", + "case 40: goto label08", + "default: goto label09", + "label06:", + "l2 = 220", + "goto label09", + "label07:", + "l2 = 230", + "goto label09", + "label08:", + "l2 = 240", + "label09:", + "goto label12", + "label10:", + "l2 = 3", + "goto label12", + "label11:", + "l2 = -1", + "label12:", + "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SymbolsAsClassNameTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SymbolsAsClassNameTest.java similarity index 79% rename from de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SymbolsAsClassNameTest.java rename to de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SymbolsAsClassNameTest.java index 2268dece611..ef0fe570184 100644 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SymbolsAsClassNameTest.java +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SymbolsAsClassNameTest.java @@ -1,10 +1,10 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SymbolsAsMethodNameTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SymbolsAsMethodNameTest.java similarity index 77% rename from de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SymbolsAsMethodNameTest.java rename to de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SymbolsAsMethodNameTest.java index 7bc20409103..2a5d2c2c053 100644 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SymbolsAsMethodNameTest.java +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SymbolsAsMethodNameTest.java @@ -1,9 +1,9 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SynchronizedBlockTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SynchronizedBlockTest.java new file mode 100644 index 00000000000..68d652c09a2 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SynchronizedBlockTest.java @@ -0,0 +1,57 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SynchronizedBlockTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "run", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: SynchronizedBlock", + "$stack3 = l0.", + "l1 = $stack3", + "entermonitor $stack3", + "label1:", + "$stack5 = ", + "$stack4 = l0.", + "virtualinvoke $stack5.($stack4)", + "$stack6 = l1", + "exitmonitor $stack6", + "label2:", + "goto label5", + "label3:", + "$stack7 := @caughtexception", + "l2 = $stack7", + "$stack8 = l1", + "exitmonitor $stack8", + "label4:", + "throw l2", + "label5:", + "return", + "catch java.lang.Throwable from label1 to label2 with label3", + "catch java.lang.Throwable from label3 to label4 with label3") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SynchronizedMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SynchronizedMethodTest.java new file mode 100644 index 00000000000..fa8a303679f --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/SynchronizedMethodTest.java @@ -0,0 +1,41 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SynchronizedMethodTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "run", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + assertTrue(method.isSynchronized()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: SynchronizedMethod", + "$stack1 = ", + "virtualinvoke $stack1.(\"test\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/TernaryOperatorTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/TernaryOperatorTest.java new file mode 100644 index 00000000000..b2dd41dcc6e --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/TernaryOperatorTest.java @@ -0,0 +1,42 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class TernaryOperatorTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "ternaryOperatorMethod", "boolean", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TernaryOperator", + "$stack1 = l0.", + "if $stack1 >= 0 goto label1", + "$stack2 = 0", + "goto label2", + "label1:", + "$stack2 = 1", + "label2:", + "return $stack2") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ThrowExceptionMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ThrowExceptionMethodTest.java new file mode 100644 index 00000000000..346f9781bb7 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/ThrowExceptionMethodTest.java @@ -0,0 +1,58 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class ThrowExceptionMethodTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "divideByZero", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: ThrowExceptionMethod", "l1 = 8 / 0", "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public MethodSignature getMethodSignature1() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "throwCustomException", "void", Collections.emptyList()); + } + + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: ThrowExceptionMethod", + "$stack1 = new CustomException", + "specialinvoke $stack1.(java.lang.String)>(\"Custom Exception\")", + "throw $stack1") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + assertTrue( + method.getExceptionSignatures().stream() + .anyMatch(classType -> classType.getClassName().equals("ArithmeticException"))); + method = loadMethod(getMethodSignature1()); + assertJimpleStmts(method, expectedBodyStmts1()); + assertTrue( + method.getExceptionSignatures().stream() + .anyMatch(classType -> classType.getClassName().equals("CustomException"))); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/TransientVariableTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/TransientVariableTest.java new file mode 100644 index 00000000000..4df5e07dcb7 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/TransientVariableTest.java @@ -0,0 +1,49 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class TransientVariableTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "transientVariable", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> + sootField.getName().equals("transientVar") + && sootField.getModifiers().contains(Modifier.TRANSIENT))); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TransientVariable", + "$stack2 = ", + "$stack1 = l0.", + "virtualinvoke $stack2.($stack1)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/TryCatchFinallyTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/TryCatchFinallyTest.java new file mode 100644 index 00000000000..72dc457f780 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/TryCatchFinallyTest.java @@ -0,0 +1,441 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar, Markus Schmidt */ +@Category(Java8Test.class) +public class TryCatchFinallyTest extends JimpleTestSuiteBase { + + @Test + public void tryCatch() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatch")); + assertJimpleStmts( + sootMethod, + Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"try\"", + "$stack3 = ", + "virtualinvoke $stack3.(l1)", + "label2:", + "goto label4", + "label3:", + "$stack4 := @caughtexception", + "l2 = $stack4", + "l1 = \"catch\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label4:", + "return", + "catch java.lang.Exception from label1 to label2 with label3") + .collect(Collectors.toList())); + } + + @Test + public void tryCatchFinally() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinally")); + assertJimpleStmts( + sootMethod, + Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label2:", + "l1 = \"finally\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "goto label6", + "label3:", + "$stack8 := @caughtexception", + "l2 = $stack8", + "l1 = \"catch\"", + "$stack9 = ", + "virtualinvoke $stack9.(l1)", + "label4:", + "l1 = \"finally\"", + "$stack10 = ", + "virtualinvoke $stack10.(l1)", + "goto label6", + "label5:", + "$stack6 := @caughtexception", + "l3 = $stack6", + "l1 = \"finally\"", + "$stack7 = ", + "virtualinvoke $stack7.(l1)", + "throw l3", + "label6:", + "return", + "catch java.lang.Exception from label1 to label2 with label3", + "catch java.lang.Throwable from label1 to label2 with label5", + "catch java.lang.Throwable from label3 to label4 with label5") + .collect(Collectors.toList())); + } + + @Test + public void tryCatchCombined() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchCombined")); + assertJimpleStmts( + sootMethod, + Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"try\"", + "$stack3 = ", + "virtualinvoke $stack3.(l1)", + "label2:", + "goto label4", + "label3:", + "$stack4 := @caughtexception", + "l2 = $stack4", + "l1 = \"catch\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label4:", + "return", + "catch java.lang.RuntimeException from label1 to label2 with label3", + "catch java.lang.StackOverflowError from label1 to label2 with label3") + .collect(Collectors.toList())); + } + + @Test + public void tryCatchFinallyCombined() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyCombined")); + assertJimpleStmts( + sootMethod, + Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label2:", + "l1 = \"finally\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "goto label6", + "label3:", + "$stack8 := @caughtexception", + "l2 = $stack8", + "l1 = \"catch\"", + "$stack9 = ", + "virtualinvoke $stack9.(l1)", + "label4:", + "l1 = \"finally\"", + "$stack10 = ", + "virtualinvoke $stack10.(l1)", + "goto label6", + "label5:", + "$stack6 := @caughtexception", + "l3 = $stack6", + "l1 = \"finally\"", + "$stack7 = ", + "virtualinvoke $stack7.(l1)", + "throw l3", + "label6:", + "return", + "catch java.lang.RuntimeException from label1 to label2 with label3", + "catch java.lang.StackOverflowError from label1 to label2 with label3", + "catch java.lang.Throwable from label1 to label2 with label5", + "catch java.lang.Throwable from label3 to label4 with label5") + .collect(Collectors.toList())); + } + + @Test + public void tryCatchNested() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNested")); + assertJimpleStmts( + sootMethod, + Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"1try\"", + "$stack3 = ", + "virtualinvoke $stack3.(l1)", + "label2:", + "l1 = \"2try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label3:", + "goto label5", + "label4:", + "$stack7 := @caughtexception", + "l2 = $stack7", + "l1 = \"2catch\"", + "$stack8 = ", + "virtualinvoke $stack8.(l1)", + "label5:", + "goto label7", + "label6:", + "$stack5 := @caughtexception", + "l2 = $stack5", + "l1 = \"1catch\"", + "$stack6 = ", + "virtualinvoke $stack6.(l1)", + "label7:", + "return", + "catch java.lang.Exception from label2 to label3 with label4", + "catch java.lang.Exception from label1 to label5 with label6") + .collect(Collectors.toList())); + } + + @Test + public void tryCatchFinallyNested() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNested")); + assertJimpleStmts( + sootMethod, + Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"1try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label2:", + "l1 = \"2try\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label3:", + "goto label5", + "label4:", + "$stack12 := @caughtexception", + "l2 = $stack12", + "l1 = \"2catch\"", + "$stack13 = ", + "virtualinvoke $stack13.(l1)", + "label5:", + "$stack14 = \"1finally\"", + "l1 = $stack14", + "$stack6 = ", + "$stack15 = l1", + "virtualinvoke $stack6.($stack15)", + "goto label9", + "label6:", + "$stack9 := @caughtexception", + "l2 = $stack9", + "l1 = \"1catch\"", + "$stack10 = ", + "virtualinvoke $stack10.(l1)", + "label7:", + "l1 = \"1finally\"", + "$stack11 = ", + "virtualinvoke $stack11.(l1)", + "goto label9", + "label8:", + "$stack7 := @caughtexception", + "l3 = $stack7", + "l1 = \"1finally\"", + "$stack8 = ", + "virtualinvoke $stack8.(l1)", + "throw l3", + "label9:", + "return", + "catch java.lang.Exception from label2 to label3 with label4", + "catch java.lang.Exception from label1 to label5 with label6", + "catch java.lang.Throwable from label1 to label5 with label8", + "catch java.lang.Throwable from label6 to label7 with label8") + .collect(Collectors.toList())); + } + + @Test + public void tryCatchNestedInCatch() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNestedInCatch")); + assertJimpleStmts( + sootMethod, + Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label1:", + "l1 = \"1try\"", + "$stack4 = ", + "virtualinvoke $stack4.(l1)", + "label2:", + "goto label7", + "label3:", + "$stack7 := @caughtexception", + "l2 = $stack7", + "l1 = \"1catch\"", + "$stack8 = ", + "virtualinvoke $stack8.(l1)", + "label4:", + "l1 = \"2try\"", + "$stack9 = ", + "virtualinvoke $stack9.(l1)", + "label5:", + "goto label7", + "label6:", + "$stack5 := @caughtexception", + "l3 = $stack5", + "l1 = \"2catch\"", + "$stack6 = ", + "virtualinvoke $stack6.(l1)", + "label7:", + "return", + "catch java.lang.Exception from label1 to label2 with label3", + "catch java.lang.Exception from label4 to label5 with label6") + .collect(Collectors.toList())); + } + + @Test + public void tryCatchFinallyNestedInCatch() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInCatch")); + assertJimpleStmts( + sootMethod, + Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label01:", + "l1 = \"1try\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label02:", + "l1 = \"1finally\"", + "$stack6 = ", + "virtualinvoke $stack6.(l1)", + "goto label10", + "label03:", + "$stack12 := @caughtexception", + "l2 = $stack12", + "l1 = \"1catch\"", + "$stack13 = ", + "virtualinvoke $stack13.(l1)", + "label04:", + "l1 = \"2try\"", + "$stack14 = ", + "virtualinvoke $stack14.(l1)", + "label05:", + "goto label07", + "label06:", + "$stack9 := @caughtexception", + "l3 = $stack9", + "l1 = \"2catch\"", + "$stack10 = ", + "virtualinvoke $stack10.(l1)", + "label07:", + "$stack15 = \"1finally\"", + "l1 = $stack15", + "$stack11 = ", + "$stack16 = l1", + "virtualinvoke $stack11.($stack16)", + "goto label10", + "label08:", + "$stack7 := @caughtexception", + "l4 = $stack7", + "label09:", + "l1 = \"1finally\"", + "$stack8 = ", + "virtualinvoke $stack8.(l1)", + "throw l4", + "label10:", + "return", + "catch java.lang.Exception from label01 to label02 with label03", + "catch java.lang.Exception from label04 to label05 with label06", + "catch java.lang.Throwable from label01 to label02 with label08", + "catch java.lang.Throwable from label03 to label07 with label08", + "catch java.lang.Throwable from label08 to label09 with label08") + .collect(Collectors.toList())); + } + + @Test + public void tryCatchFinallyNestedInFinally() { + SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInFinally")); + assertJimpleStmts( + sootMethod, + Stream.of( + "l0 := @this: TryCatchFinally", + "l1 = \"\"", + "label01:", + "l1 = \"1try\"", + "$stack5 = ", + "virtualinvoke $stack5.(l1)", + "label02:", + "l1 = \"1finally\"", + "$stack6 = ", + "virtualinvoke $stack6.(l1)", + "label03:", + "l1 = \"2try\"", + "$stack7 = ", + "virtualinvoke $stack7.(l1)", + "label04:", + "goto label16", + "label05:", + "$stack20 := @caughtexception", + "l2 = $stack20", + "l1 = \"2catch\"", + "$stack21 = ", + "virtualinvoke $stack21.(l1)", + "goto label16", + "label06:", + "$stack16 := @caughtexception", + "l2 = $stack16", + "l1 = \"1catch\"", + "$stack17 = ", + "virtualinvoke $stack17.(l1)", + "label07:", + "l1 = \"1finally\"", + "$stack18 = ", + "virtualinvoke $stack18.(l1)", + "label08:", + "l1 = \"2try\"", + "$stack19 = ", + "virtualinvoke $stack19.(l1)", + "label09:", + "goto label16", + "label10:", + "$stack14 := @caughtexception", + "l2 = $stack14", + "l1 = \"2catch\"", + "$stack15 = ", + "virtualinvoke $stack15.(l1)", + "goto label16", + "label11:", + "$stack10 := @caughtexception", + "l3 = $stack10", + "l1 = \"1finally\"", + "$stack11 = ", + "virtualinvoke $stack11.(l1)", + "label12:", + "l1 = \"2try\"", + "$stack12 = ", + "virtualinvoke $stack12.(l1)", + "label13:", + "goto label15", + "label14:", + "$stack8 := @caughtexception", + "l4 = $stack8", + "l1 = \"2catch\"", + "$stack9 = ", + "virtualinvoke $stack9.(l1)", + "label15:", + "$stack13 = l3", + "throw $stack13", + "label16:", + "return", + "catch java.lang.Exception from label03 to label04 with label05", + "catch java.lang.Exception from label01 to label02 with label06", + "catch java.lang.Exception from label08 to label09 with label10", + "catch java.lang.Throwable from label01 to label02 with label11", + "catch java.lang.Throwable from label06 to label07 with label11", + "catch java.lang.Exception from label12 to label13 with label14") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/UnaryOpIntTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/UnaryOpIntTest.java new file mode 100644 index 00000000000..c426f94f38a --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/UnaryOpIntTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class UnaryOpIntTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodUnaryOpInt", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + /** + * TODO Do we need to check the type of variable as int? + * assertTrue(getFields().stream().anyMatch(sootField -> {return + * sootField.getType().equals("int");})); + */ + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: UnaryOpInt", + "$stack3 = l0.", + "$stack2 = l0.", + "l1 = $stack3 + $stack2", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/UncheckedCastTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/UncheckedCastTest.java new file mode 100644 index 00000000000..357198fc475 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/UncheckedCastTest.java @@ -0,0 +1,54 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class UncheckedCastTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "uncheckedCastDisplay", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: UncheckedCast", + "$stack3 = newarray (java.lang.Integer)[4]", + "$stack4 = 0", + "$stack5 = staticinvoke (5)", + "$stack3[$stack4] = $stack5", + "$stack6 = 1", + "$stack7 = staticinvoke (8)", + "$stack3[$stack6] = $stack7", + "$stack8 = 2", + "$stack9 = staticinvoke (9)", + "$stack3[$stack8] = $stack9", + "$stack10 = 3", + "$stack11 = staticinvoke (6)", + "$stack3[$stack10] = $stack11", + "$stack12 = staticinvoke ($stack3)", + "l1 = $stack12", + "l2 = l1", + "$stack13 = ", + "virtualinvoke $stack13.(l2)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VariableDeclarationTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VariableDeclarationTest.java new file mode 100644 index 00000000000..126ad7c6948 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VariableDeclarationTest.java @@ -0,0 +1,70 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class VariableDeclarationTest extends JimpleTestSuiteBase { + + @Test + public void test() { + + SootMethod method = loadMethod(getMethodSignature("shortVariable")); + + assertJimpleStmts( + method, + Stream.of("l0 := @this: VariableDeclaration", "l1 = 10", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("byteVariable")); + + assertJimpleStmts( + method, + Stream.of("l0 := @this: VariableDeclaration", "l1 = 0", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("charVariable")); + + assertJimpleStmts( + method, + Stream.of("l0 := @this: VariableDeclaration", "l1 = 97", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("intVariable")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: VariableDeclaration", "l1 = 512", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("longVariable")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: VariableDeclaration", "l1 = 123456789L", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("floatVariable")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: VariableDeclaration", "l1 = 3.14F", "return") + .collect(Collectors.toList())); + + method = loadMethod(getMethodSignature("doubleVariable")); + assertJimpleStmts( + method, + Stream.of("l0 := @this: VariableDeclaration", "l1 = 1.96969654", "return") + .collect(Collectors.toList())); + } + + public MethodSignature getMethodSignature(String methodName) { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VariableShadowingTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VariableShadowingTest.java new file mode 100644 index 00000000000..12dfdb50e3d --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VariableShadowingTest.java @@ -0,0 +1,36 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class VariableShadowingTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "variableShadowing", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: VariableShadowing", + "l1 = l0.", + "l2 = 10", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VirtualMethodTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VirtualMethodTest.java new file mode 100644 index 00000000000..d6447faa45c --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VirtualMethodTest.java @@ -0,0 +1,48 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class VirtualMethodTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "virtualMethodDemo", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: VirtualMethod", + "$stack3 = new TempEmployee", + "specialinvoke $stack3.(int,int)>(1500, 150)", + "l1 = $stack3", + "$stack4 = new RegEmployee", + "specialinvoke $stack4.(int,int)>(1500, 500)", + "l2 = $stack4", + "$stack5 = ", + "$stack6 = virtualinvoke l1.()", + "virtualinvoke $stack5.($stack6)", + "$stack7 = ", + "$stack8 = virtualinvoke l2.()", + "virtualinvoke $stack7.($stack8)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VolatileVariableTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VolatileVariableTest.java new file mode 100644 index 00000000000..b3d69b980bb --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/VolatileVariableTest.java @@ -0,0 +1,50 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class VolatileVariableTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "increaseCounter", "int", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getFields().stream() + .anyMatch( + sootField -> { + return sootField.getName().equals("counter") + && sootField.getModifiers().contains(Modifier.VOLATILE); + })); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: VolatileVariable", + "$stack1 = l0.", + "$stack2 = $stack1 + 1", + "l0. = $stack2", + "return $stack1") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/WhileLoopTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/WhileLoopTest.java new file mode 100644 index 00000000000..cc157f64c56 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/WhileLoopTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class WhileLoopTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "whileLoop", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: WhileLoop", + "l1 = 10", + "l2 = 0", + "label1:", + "$stack4 = l1", + "$stack3 = l2", + "if $stack4 <= $stack3 goto label2", + "l1 = l1 + -1", + "goto label1", + "label2:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git "a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" "b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" new file mode 100644 index 00000000000..557d631de2e --- /dev/null +++ "b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" @@ -0,0 +1,37 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java6; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class αρετηTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7", + "$stack1 = ", + "virtualinvoke $stack1.(\"this is \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7 class\")", + "return") + .collect(Collectors.toList()); + } + + @Test + // test only works on a filesystem that supports unicode + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/BinaryLiteralInIntTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/BinaryLiteralInIntTest.java new file mode 100644 index 00000000000..26f0fc3717e --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/BinaryLiteralInIntTest.java @@ -0,0 +1,33 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java7; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class BinaryLiteralInIntTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "binaryLiteralInInt", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: BinaryLiteralInInt", "l1 = -1589272251", "l2 = 5", "l3 = 5", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/MultiTryCatchTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/MultiTryCatchTest.java new file mode 100644 index 00000000000..6cafa88d051 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/MultiTryCatchTest.java @@ -0,0 +1,107 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java7; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MultiTryCatchTest extends JimpleTestSuiteBase { + + @Test + public void test() { + SootMethod sootMethod = loadMethod(getMethodSignature()); + assertJimpleStmts(sootMethod, expectedBodyStmts()); + } + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MultiTryCatch", + "$stack6 = new java.io.BufferedReader", + "$stack7 = new java.io.FileReader", + "specialinvoke $stack7.(java.lang.String)>(\"file.txt\")", + "specialinvoke $stack6.(java.io.Reader)>($stack7)", + "l1 = $stack6", + "label01:", + "l2 = \"\"", + "l3 = 2", + "$stack8 = ", + "virtualinvoke $stack8.(l3)", + "label02:", + "$stack11 = l1", + "$stack9 = virtualinvoke $stack11.()", + "l2 = $stack9", + "if $stack9 == null goto label03", + "$stack10 = ", + "virtualinvoke $stack10.(l2)", + "goto label02", + "label03:", + "virtualinvoke l1.()", + "label04:", + "goto label19", + "label05:", + "$stack19 := @caughtexception", + "l2 = $stack19", + "goto label19", + "label06:", + "$stack18 := @caughtexception", + "l2 = $stack18", + "label07:", + "virtualinvoke l1.()", + "label08:", + "goto label19", + "label09:", + "$stack17 := @caughtexception", + "l2 = $stack17", + "goto label19", + "label10:", + "$stack16 := @caughtexception", + "l2 = $stack16", + "label11:", + "virtualinvoke l1.()", + "label12:", + "goto label19", + "label13:", + "$stack15 := @caughtexception", + "l2 = $stack15", + "goto label19", + "label14:", + "$stack13 := @caughtexception", + "l4 = $stack13", + "label15:", + "virtualinvoke l1.()", + "label16:", + "goto label18", + "label17:", + "$stack12 := @caughtexception", + "l5 = $stack12", + "label18:", + "$stack14 = l4", + "throw $stack14", + "label19:", + "return", + "catch java.io.IOException from label03 to label04 with label05", + "catch java.io.IOException from label01 to label03 with label06", + "catch java.lang.NumberFormatException from label01 to label03 with label06", + "catch java.io.IOException from label07 to label08 with label09", + "catch java.lang.Exception from label01 to label03 with label10", + "catch java.io.IOException from label11 to label12 with label13", + "catch java.lang.Throwable from label01 to label03 with label14", + "catch java.io.IOException from label15 to label16 with label17", + "catch java.lang.Throwable from label14 to label15 with label14") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/SwitchCaseStatementWithStringTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/SwitchCaseStatementWithStringTest.java new file mode 100644 index 00000000000..da5dc240a5c --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/SwitchCaseStatementWithStringTest.java @@ -0,0 +1,77 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java7; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class SwitchCaseStatementWithStringTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "switchCaseStatementString", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: SwitchCaseStatementWithString", + "l1 = \"something\"", + "l3 = l1", + "l4 = -1", + "$stack5 = virtualinvoke l3.()", + "switch($stack5)", + "case 110182: goto label1", + "case 115276: goto label2", + "case 110339486: goto label3", + "default: goto label4", + "label1:", + "$stack9 = virtualinvoke l3.(\"one\")", + "if $stack9 == 0 goto label4", + "l4 = 0", + "goto label4", + "label2:", + "$stack8 = virtualinvoke l3.(\"two\")", + "if $stack8 == 0 goto label4", + "l4 = 1", + "goto label4", + "label3:", + "$stack6 = virtualinvoke l3.(\"three\")", + "if $stack6 == 0 goto label4", + "l4 = 2", + "label4:", + "$stack7 = l4", + "switch($stack7)", + "case 0: goto label5", + "case 1: goto label6", + "case 2: goto label7", + "default: goto label8", + "label5:", + "l2 = 1", + "goto label9", + "label6:", + "l2 = 2", + "goto label9", + "label7:", + "l2 = 3", + "goto label9", + "label8:", + "l2 = -1", + "label9:", + "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/TryWithResourcesTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/TryWithResourcesTest.java new file mode 100644 index 00000000000..4df02568db4 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/TryWithResourcesTest.java @@ -0,0 +1,98 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java7; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class TryWithResourcesTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod sootMethod = loadMethod(getMethodSignature()); + assertJimpleStmts(sootMethod, expectedBodyStmts()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TryWithResources", + "$stack6 = new java.io.BufferedReader", + "$stack7 = new java.io.FileReader", + "specialinvoke $stack7.(java.lang.String)>(\"file.txt\")", + "specialinvoke $stack6.(java.io.Reader)>($stack7)", + "l1 = $stack6", + "l2 = null", + "label01:", + "l3 = \"\"", + "label02:", + "$stack10 = l1", + "$stack8 = virtualinvoke $stack10.()", + "l3 = $stack8", + "if $stack8 == null goto label03", + "$stack9 = ", + "virtualinvoke $stack9.(l3)", + "goto label02", + "label03:", + "if l1 == null goto label16", + "if l2 == null goto label07", + "label04:", + "virtualinvoke l1.()", + "label05:", + "goto label16", + "label06:", + "$stack15 := @caughtexception", + "l3 = $stack15", + "virtualinvoke l2.(l3)", + "goto label16", + "label07:", + "virtualinvoke l1.()", + "goto label16", + "label08:", + "$stack14 := @caughtexception", + "l3 = $stack14", + "l2 = l3", + "throw l3", + "label09:", + "$stack12 := @caughtexception", + "l4 = $stack12", + "label10:", + "if l1 == null goto label15", + "if l2 == null goto label14", + "label11:", + "virtualinvoke l1.()", + "label12:", + "goto label15", + "label13:", + "$stack11 := @caughtexception", + "l5 = $stack11", + "virtualinvoke l2.(l5)", + "goto label15", + "label14:", + "virtualinvoke l1.()", + "label15:", + "$stack13 = l4", + "throw $stack13", + "label16:", + "return", + "catch java.lang.Throwable from label04 to label05 with label06", + "catch java.lang.Throwable from label01 to label03 with label08", + "catch java.lang.Throwable from label01 to label03 with label09", + "catch java.lang.Throwable from label11 to label12 with label13", + "catch java.lang.Throwable from label08 to label10 with label09") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/UnderscoreInIntTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/UnderscoreInIntTest.java new file mode 100644 index 00000000000..8a97358a1b4 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java7/UnderscoreInIntTest.java @@ -0,0 +1,32 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java7; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class UnderscoreInIntTest extends JimpleTestSuiteBase { + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "underscoreInInt", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of("l0 := @this: UnderscoreInInt", "l1 = 2147483647", "return") + .collect(Collectors.toList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/DefaultMethodInterfaceImplTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/DefaultMethodInterfaceImplTest.java new file mode 100644 index 00000000000..4e8ed7344ce --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/DefaultMethodInterfaceImplTest.java @@ -0,0 +1,67 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java8; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class DefaultMethodInterfaceImplTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); + } + + public MethodSignature getDefaultMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "defaultInterfaceMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method1 = loadMethod(getMethodSignature()); + assertJimpleStmts(method1, expectedBodyStmts()); + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + method = loadMethod(getDefaultMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts1()); + SootClass clazz = loadClass(getDeclaredClassSignature()); + assertTrue( + clazz.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equalsIgnoreCase("DefaultMethodInterface"); + })); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: DefaultMethodInterfaceImpl", + "$stack1 = ", + "virtualinvoke $stack1.(\"Method interfaceMethod() is implemented\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + public List expectedBodyStmts1() { + return Stream.of( + "l0 := @this: DefaultMethodInterfaceImpl", + "specialinvoke l0.()", + "$stack1 = ", + "virtualinvoke $stack1.(\"Method defaultInterfaceMethod() is implemented\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/MethodAcceptingLamExprTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/MethodAcceptingLamExprTest.java new file mode 100644 index 00000000000..9593b58c530 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/MethodAcceptingLamExprTest.java @@ -0,0 +1,46 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java8; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar, Bastian Haverkamp */ +@Category(Java8Test.class) +public class MethodAcceptingLamExprTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "lambdaAsParamMethod", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MethodAcceptingLamExpr", + "$stack2 = dynamicinvoke calcPercentage () (methodtype: double __METHODTYPE__(double), handle: , methodtype: double __METHODTYPE__(double))", + "l1 = $stack2", + "$stack4 = ", + "$stack3 = new java.lang.StringBuilder", + "specialinvoke $stack3.()>()", + "$stack5 = virtualinvoke $stack3.(\"Percentage : \")", + "$stack6 = interfaceinvoke l1.(45.0)", + "$stack7 = virtualinvoke $stack5.($stack6)", + "$stack8 = virtualinvoke $stack7.()", + "virtualinvoke $stack4.($stack8)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/MethodReferenceTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/MethodReferenceTest.java new file mode 100644 index 00000000000..fb2dd883292 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/MethodReferenceTest.java @@ -0,0 +1,38 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java8; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class MethodReferenceTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodRefMethod", "void", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: MethodReference", + "$stack1 = ", + "virtualinvoke $stack1.(\"Instance Method\")", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/RepeatingAnnotationsTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/RepeatingAnnotationsTest.java new file mode 100644 index 00000000000..bc0f6bf6dc9 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/RepeatingAnnotationsTest.java @@ -0,0 +1,41 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java8; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Ignore; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class RepeatingAnnotationsTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "annotaionMethod", "void", Collections.emptyList()); + } + + @Ignore + public void annotationTest() { + // TODO: after annotations are implemented + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); + } + + public List expectedBodyStmts() { + return Stream.of("r0 := @this: RepeatingAnnotations", "$r1 = \"\"", "$r2 = \"\"", "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/StaticMethodInterfaceImplTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/StaticMethodInterfaceImplTest.java new file mode 100644 index 00000000000..680628df843 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java8/StaticMethodInterfaceImplTest.java @@ -0,0 +1,65 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java8; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class StaticMethodInterfaceImplTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), + "methodStaticMethodInterfaceImpl", + "void", + Collections.emptyList()); + } + + private MethodSignature getStaticMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "initStatic", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getStaticMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts1()); + SootMethod staticMethod = loadMethod(getStaticMethodSignature()); + assertJimpleStmts(staticMethod, expectedBodyStmts1()); + assertTrue(staticMethod.isStatic() && staticMethod.getName().equals("initStatic")); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue( + sootClass.getInterfaces().stream() + .anyMatch( + javaClassType -> { + return javaClassType.getClassName().equals("StaticMethodInterface"); + })); + } + + public List expectedBodyStmts() { + return Stream.of( + "$stack0 = ", + "virtualinvoke $stack0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", + "return") + .collect(Collectors.toList()); + } + + public List expectedBodyStmts1() { + return Stream.of( + "$stack0 = ", + "virtualinvoke $stack0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", + "return") + .collect(Collectors.toList()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/AnonymousDiamondOperatorTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/AnonymousDiamondOperatorTest.java new file mode 100644 index 00000000000..50d2049b32f --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/AnonymousDiamondOperatorTest.java @@ -0,0 +1,44 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java9; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class AnonymousDiamondOperatorTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "innerClassDiamond", "int", Collections.emptyList()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: AnonymousDiamondOperator", + "$stack3 = new AnonymousDiamondOperator$1", + "specialinvoke $stack3.(AnonymousDiamondOperator)>(l0)", + "l1 = $stack3", + "$stack4 = staticinvoke (22)", + "$stack5 = staticinvoke (23)", + "$stack6 = virtualinvoke l1.($stack4, $stack5)", + "l2 = (java.lang.Integer) $stack6", + "$stack7 = virtualinvoke l2.()", + "return $stack7") + .collect(Collectors.toCollection(ArrayList::new)); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/DynamicInvokeTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/DynamicInvokeTest.java new file mode 100644 index 00000000000..28e8ad99b6c --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/DynamicInvokeTest.java @@ -0,0 +1,36 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java9; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; + +public class DynamicInvokeTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 = \"This test\"", + "$stack1 = dynamicinvoke makeConcatWithConstants (l0) (\"\\u0001 is cool\")", + "l0 = $stack1", + "$stack2 = ", + "virtualinvoke $stack2.(l0)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/PrivateMethodInterfaceImplTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/PrivateMethodInterfaceImplTest.java new file mode 100644 index 00000000000..f393f921acd --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/PrivateMethodInterfaceImplTest.java @@ -0,0 +1,46 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java9; + +import static org.junit.Assert.assertTrue; + +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class PrivateMethodInterfaceImplTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "methodInterfaceImpl", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod method = loadMethod(getMethodSignature()); + assertJimpleStmts(method, expectedBodyStmts()); + SootClass sootClass = loadClass(getDeclaredClassSignature()); + assertTrue( + sootClass.getInterfaces().stream() + .anyMatch( + javaClassType -> + javaClassType.getClassName().equalsIgnoreCase("PrivateMethodInterface"))); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: PrivateMethodInterfaceImpl", + "virtualinvoke l0.(4, 2)", + "return") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/TryWithResourcesConciseTest.java b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/TryWithResourcesConciseTest.java new file mode 100644 index 00000000000..eb8ddeb56e7 --- /dev/null +++ b/de.upb.sse.sootup.jimple.parser/src/test/java/de/upb/sse/sootup/jimple/parser/javatestsuite/java9/TryWithResourcesConciseTest.java @@ -0,0 +1,74 @@ +package de.upb.sse.sootup.jimple.parser.javatestsuite.java9; + +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.jimple.parser.categories.Java8Test; +import de.upb.sse.sootup.jimple.parser.javatestsuite.JimpleTestSuiteBase; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar */ +@Category(Java8Test.class) +public class TryWithResourcesConciseTest extends JimpleTestSuiteBase { + + public MethodSignature getMethodSignature() { + return identifierFactory.getMethodSignature( + getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); + } + + @Test + public void test() { + SootMethod sootMethod = loadMethod(getMethodSignature()); + assertJimpleStmts(sootMethod, expectedBodyStmts()); + } + + public List expectedBodyStmts() { + return Stream.of( + "l0 := @this: TryWithResourcesConcise", + "$stack5 = new java.io.BufferedReader", + "$stack6 = new java.io.FileReader", + "specialinvoke $stack6.(java.lang.String)>(\"file.txt\")", + "specialinvoke $stack5.(java.io.Reader)>($stack6)", + "l1 = $stack5", + "l2 = l1", + "label1:", + "l3 = \"\"", + "label2:", + "$stack9 = l1", + "$stack7 = virtualinvoke $stack9.()", + "l3 = $stack7", + "if $stack7 == null goto label3", + "$stack8 = ", + "virtualinvoke $stack8.(l3)", + "goto label2", + "label3:", + "if l2 == null goto label9", + "virtualinvoke l2.()", + "goto label9", + "label4:", + "$stack11 := @caughtexception", + "l3 = $stack11", + "if l2 == null goto label8", + "label5:", + "virtualinvoke l2.()", + "label6:", + "goto label8", + "label7:", + "$stack10 := @caughtexception", + "l4 = $stack10", + "virtualinvoke l3.(l4)", + "label8:", + "$stack12 = l3", + "throw $stack12", + "label9:", + "return", + "catch java.lang.Throwable from label1 to label3 with label4", + "catch java.lang.Throwable from label5 to label6 with label7") + .collect(Collectors.toCollection(ArrayList::new)); + } +} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/A.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/A.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/A.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/A.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AbstractClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AbstractClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AbstractClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AbstractClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AccessArrays.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AccessArrays.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AccessArrays.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AccessArrays.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AnonymousClassInsideMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AnonymousClassInsideMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AnonymousClassInsideMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AnonymousClassInsideMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AnonymousDiamondOperator.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AnonymousDiamondOperator.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AnonymousDiamondOperator.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AnonymousDiamondOperator.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AssertStatement.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AssertStatement.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AssertStatement.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AssertStatement.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/Autoboxing.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/Autoboxing.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/Autoboxing.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/Autoboxing.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AutomaticWidening.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AutomaticWidening.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/AutomaticWidening.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/AutomaticWidening.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/BinaryLiteralInInt.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/BinaryLiteralInInt.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/BinaryLiteralInInt.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/BinaryLiteralInInt.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/BitwiseOperationsInt.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/BitwiseOperationsInt.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/BitwiseOperationsInt.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/BitwiseOperationsInt.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/BooleanOperators.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/BooleanOperators.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/BooleanOperators.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/BooleanOperators.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/BreakInWhileLoop.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/BreakInWhileLoop.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/BreakInWhileLoop.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/BreakInWhileLoop.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/CastingInNumTypes.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/CastingInNumTypes.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/CastingInNumTypes.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/CastingInNumTypes.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/CharLiterals.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/CharLiterals.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/CharLiterals.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/CharLiterals.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ContinueInWhileLoop.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ContinueInWhileLoop.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ContinueInWhileLoop.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ContinueInWhileLoop.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/CreateNewInstance.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/CreateNewInstance.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/CreateNewInstance.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/CreateNewInstance.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareConstructor.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareConstructor.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareConstructor.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareConstructor.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareEnum$Type.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareEnum$Type.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareEnum$Type.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareEnum$Type.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareEnumWithConstructor$Number.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareEnumWithConstructor$Number.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareEnumWithConstructor$Number.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareEnumWithConstructor$Number.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareField.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareField.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareField.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareField.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareFloat.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareFloat.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareFloat.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareFloat.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareInnerClass$InnerClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareInnerClass$InnerClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareInnerClass$InnerClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareInnerClass$InnerClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareInnerClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareInnerClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareInnerClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareInnerClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareInt.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareInt.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareInt.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareInt.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareLong.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareLong.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DeclareLong.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DeclareLong.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DefaultMethodInterfaceImpl.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DefaultMethodInterfaceImpl.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DefaultMethodInterfaceImpl.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DefaultMethodInterfaceImpl.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DoWhileLoop.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DoWhileLoop.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DoWhileLoop.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DoWhileLoop.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DynamicInvoke.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DynamicInvoke.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/DynamicInvoke.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/DynamicInvoke.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/EmptyStatement.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/EmptyStatement.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/EmptyStatement.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/EmptyStatement.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/EscapeSequencesInString.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/EscapeSequencesInString.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/EscapeSequencesInString.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/EscapeSequencesInString.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/EvaluationOrderWithParentheses.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/EvaluationOrderWithParentheses.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/EvaluationOrderWithParentheses.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/EvaluationOrderWithParentheses.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/FinalMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/FinalMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/FinalMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/FinalMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/FinalVariable.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/FinalVariable.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/FinalVariable.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/FinalVariable.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ForEachLoop.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ForEachLoop.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ForEachLoop.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ForEachLoop.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ForLoop.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ForLoop.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ForLoop.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ForLoop.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/GenTypeParam.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/GenTypeParam.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/GenTypeParam.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/GenTypeParam.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/GenericTypeParamOnClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/GenericTypeParamOnClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/GenericTypeParamOnClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/GenericTypeParamOnClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/GenericTypeParamOnMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/GenericTypeParamOnMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/GenericTypeParamOnMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/GenericTypeParamOnMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/IfElseStatement.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/IfElseStatement.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/IfElseStatement.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/IfElseStatement.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InfiniteLoop.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InfiniteLoop.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InfiniteLoop.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InfiniteLoop.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/Initialize3DimensionalArrays.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/Initialize3DimensionalArrays.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/Initialize3DimensionalArrays.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/Initialize3DimensionalArrays.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InitializeArraysWhileDeclaration.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InitializeArraysWhileDeclaration.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InitializeArraysWhileDeclaration.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InitializeArraysWhileDeclaration.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InitializeArraysWithIndex.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InitializeArraysWithIndex.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InitializeArraysWithIndex.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InitializeArraysWithIndex.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InitializeMultidimensionalArrays.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InitializeMultidimensionalArrays.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InitializeMultidimensionalArrays.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InitializeMultidimensionalArrays.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InstanceOfCheck.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InstanceOfCheck.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InstanceOfCheck.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InstanceOfCheck.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InterfaceImplClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InterfaceImplClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/InterfaceImplClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/InterfaceImplClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/LabelStatement.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/LabelStatement.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/LabelStatement.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/LabelStatement.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/LabelledLoopBreak.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/LabelledLoopBreak.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/LabelledLoopBreak.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/LabelledLoopBreak.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodAcceptingLamExpr.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodAcceptingLamExpr.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodAcceptingLamExpr.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodAcceptingLamExpr.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodAcceptingVar.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodAcceptingVar.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodAcceptingVar.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodAcceptingVar.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodOverloading.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodOverloading.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodOverloading.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodOverloading.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodOverridingSubclass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodOverridingSubclass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodOverridingSubclass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodOverridingSubclass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodReference.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodReference.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodReference.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodReference.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodReturningVar.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodReturningVar.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MethodReturningVar.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MethodReturningVar.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MultiInterfaceImplClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MultiInterfaceImplClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MultiInterfaceImplClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MultiInterfaceImplClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MultiTryCatch.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MultiTryCatch.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/MultiTryCatch.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/MultiTryCatch.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NamedClassInsideMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NamedClassInsideMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NamedClassInsideMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NamedClassInsideMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NativeMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NativeMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NativeMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NativeMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NewCodeBlockInMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NewCodeBlockInMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NewCodeBlockInMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NewCodeBlockInMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NoModifierClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NoModifierClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NoModifierClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NoModifierClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NullVariable.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NullVariable.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/NullVariable.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/NullVariable.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/PrivateMethodInterfaceImpl.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/PrivateMethodInterfaceImpl.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/PrivateMethodInterfaceImpl.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/PrivateMethodInterfaceImpl.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/PublicClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/PublicClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/PublicClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/PublicClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ReferenceVarDeclaration.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ReferenceVarDeclaration.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ReferenceVarDeclaration.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ReferenceVarDeclaration.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ReferencingThis.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ReferencingThis.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ReferencingThis.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ReferencingThis.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/Reflection.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/Reflection.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/Reflection.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/Reflection.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StatementEval.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StatementEval.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StatementEval.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StatementEval.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticImport.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticImport.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticImport.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticImport.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticInitializer.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticInitializer.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticInitializer.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticInitializer.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticMethodInterfaceImpl.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticMethodInterfaceImpl.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticMethodInterfaceImpl.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticMethodInterfaceImpl.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticMethodInvocation.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticMethodInvocation.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticMethodInvocation.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticMethodInvocation.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticVariable.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticVariable.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StaticVariable.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StaticVariable.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StringConcatenation.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StringConcatenation.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StringConcatenation.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StringConcatenation.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StringWithUnicodeChar.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StringWithUnicodeChar.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/StringWithUnicodeChar.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/StringWithUnicodeChar.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SubClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SubClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SubClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SubClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SuperClass.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SuperClass.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SuperClass.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SuperClass.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SwitchCaseStatement.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SwitchCaseStatement.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SwitchCaseStatement.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SwitchCaseStatement.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SwitchCaseStatementWithString.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SwitchCaseStatementWithString.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SwitchCaseStatementWithString.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SwitchCaseStatementWithString.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SymbolsAsMethodName.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SymbolsAsMethodName.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SymbolsAsMethodName.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SymbolsAsMethodName.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SynchronizedBlock.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SynchronizedBlock.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SynchronizedBlock.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SynchronizedBlock.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SynchronizedMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SynchronizedMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/SynchronizedMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/SynchronizedMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TernaryOperator.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TernaryOperator.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TernaryOperator.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TernaryOperator.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ThrowExceptionMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ThrowExceptionMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/ThrowExceptionMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/ThrowExceptionMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TransientVariable.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TransientVariable.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TransientVariable.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TransientVariable.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TryCatchFinally.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TryCatchFinally.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TryCatchFinally.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TryCatchFinally.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TryWithResources.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TryWithResources.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TryWithResources.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TryWithResources.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TryWithResourcesConcise.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TryWithResourcesConcise.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TryWithResourcesConcise.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TryWithResourcesConcise.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TypeInference.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TypeInference.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/TypeInference.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/TypeInference.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/UnaryOpInt.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/UnaryOpInt.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/UnaryOpInt.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/UnaryOpInt.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/UncheckedCast.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/UncheckedCast.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/UncheckedCast.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/UncheckedCast.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/UnderscoreInInt.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/UnderscoreInInt.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/UnderscoreInInt.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/UnderscoreInInt.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/VariableDeclaration.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/VariableDeclaration.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/VariableDeclaration.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/VariableDeclaration.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/VariableShadowing.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/VariableShadowing.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/VariableShadowing.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/VariableShadowing.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/VirtualMethod.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/VirtualMethod.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/VirtualMethod.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/VirtualMethod.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/VolatileVariable.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/VolatileVariable.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/VolatileVariable.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/VolatileVariable.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/WhileLoop.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/WhileLoop.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/WhileLoop.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/WhileLoop.jimple diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/oldJimple_HelloWorld.jimple b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/oldJimple_HelloWorld.jimple similarity index 100% rename from de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/oldJimple_HelloWorld.jimple rename to de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/oldJimple_HelloWorld.jimple diff --git "a/de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/\316\261\317\201\316\265\317\204\316\267.jimple" "b/de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/\316\261\317\201\316\265\317\204\316\267.jimple" similarity index 100% rename from "de.upb.swt.soot.jimple.parser/src/test/java/resources/jimple/\316\261\317\201\316\265\317\204\316\267.jimple" rename to "de.upb.sse.sootup.jimple.parser/src/test/java/resources/jimple/\316\261\317\201\316\265\317\204\316\267.jimple" diff --git a/de.upb.sse.sootup.tests/pom.xml b/de.upb.sse.sootup.tests/pom.xml new file mode 100644 index 00000000000..4a07af360e8 --- /dev/null +++ b/de.upb.sse.sootup.tests/pom.xml @@ -0,0 +1,68 @@ + + + 4.0.0 + + SootUp (integration) testing and coverage module + sootup.tests + + + de.upb.sse + sootup + 1.0.0-SNAPSHOT + + + + + SlowTest + + categories.SlowTest + + + + (, 1.9) + + + + + + + de.upb.sse + sootup.core + 1.0.0-SNAPSHOT + + + de.upb.sse + sootup.java.core + 1.0.0-SNAPSHOT + + + de.upb.sse + sootup.java.bytecode + 1.0.0-SNAPSHOT + + + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT + + + de.upb.sse + sootup.callgraph + 1.0.0-SNAPSHOT + + + + + + + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT + pom + import + + + + \ No newline at end of file diff --git a/de.upb.swt.soot.tests/src/main/java/SimpleSootClient.java b/de.upb.sse.sootup.tests/src/main/java/SimpleSootClient.java similarity index 82% rename from de.upb.swt.soot.tests/src/main/java/SimpleSootClient.java rename to de.upb.sse.sootup.tests/src/main/java/SimpleSootClient.java index ee0468a8396..c4b503e79cc 100644 --- a/de.upb.swt.soot.tests/src/main/java/SimpleSootClient.java +++ b/de.upb.sse.sootup.tests/src/main/java/SimpleSootClient.java @@ -21,13 +21,13 @@ */ import com.ibm.wala.ipa.callgraph.CallGraph; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; import java.util.Collections; /** diff --git a/de.upb.swt.soot.tests/src/test/java/categories/Java8Test.java b/de.upb.sse.sootup.tests/src/test/java/categories/Java8Test.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/java/categories/Java8Test.java rename to de.upb.sse.sootup.tests/src/test/java/categories/Java8Test.java diff --git a/de.upb.swt.soot.tests/src/test/java/categories/Java9Test.java b/de.upb.sse.sootup.tests/src/test/java/categories/Java9Test.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/java/categories/Java9Test.java rename to de.upb.sse.sootup.tests/src/test/java/categories/Java9Test.java diff --git a/de.upb.swt.soot.tests/src/test/java/categories/SlowTest.java b/de.upb.sse.sootup.tests/src/test/java/categories/SlowTest.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/java/categories/SlowTest.java rename to de.upb.sse.sootup.tests/src/test/java/categories/SlowTest.java diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/CallGraphTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/CallGraphTest.java similarity index 77% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/CallGraphTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/CallGraphTest.java index 802df76477c..f9b6016baf6 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/CallGraphTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/CallGraphTest.java @@ -1,25 +1,25 @@ -package de.upb.swt.soot.test; +package de.upb.sse.sootup.test; import static junit.framework.TestCase.*; import categories.SlowTest; -import de.upb.swt.soot.callgraph.AbstractCallGraphAlgorithm; -import de.upb.swt.soot.callgraph.CallGraph; -import de.upb.swt.soot.callgraph.ClassHierarchyAnalysisAlgorithm; -import de.upb.swt.soot.callgraph.RapidTypeAnalysisAlgorithm; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.TypeHierarchy; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import de.upb.sse.sootup.callgraph.AbstractCallGraphAlgorithm; +import de.upb.sse.sootup.callgraph.CallGraph; +import de.upb.sse.sootup.callgraph.ClassHierarchyAnalysisAlgorithm; +import de.upb.sse.sootup.callgraph.RapidTypeAnalysisAlgorithm; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.TypeHierarchy; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; import java.util.Collections; import java.util.Optional; import org.junit.Test; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/MutableSootClientTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/MutableSootClientTest.java similarity index 88% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/MutableSootClientTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/MutableSootClientTest.java index 0e5bf9b78a8..30978821ac2 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/MutableSootClientTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/MutableSootClientTest.java @@ -1,18 +1,18 @@ -package de.upb.swt.soot.test; +package de.upb.sse.sootup.test; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.model.*; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; -import de.upb.swt.soot.java.core.*; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.MutableJavaView; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.jimple.basic.NoPositionInformation; +import de.upb.sse.sootup.core.model.*; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; +import de.upb.sse.sootup.java.core.*; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.MutableJavaView; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collections; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/ReplaceUseExprVisitorTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/ReplaceUseExprVisitorTest.java similarity index 88% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/ReplaceUseExprVisitorTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/ReplaceUseExprVisitorTest.java index bc040140aa5..b2ab57854cc 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/ReplaceUseExprVisitorTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/ReplaceUseExprVisitorTest.java @@ -1,27 +1,27 @@ -package de.upb.swt.soot.test; +package de.upb.sse.sootup.test; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.graph.Block; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.expr.Expr; -import de.upb.swt.soot.core.jimple.common.expr.JPhiExpr; -import de.upb.swt.soot.core.jimple.common.expr.JSpecialInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JStaticInvokeExpr; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.visitor.ReplaceUseExprVisitor; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.graph.Block; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Immediate; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.expr.Expr; +import de.upb.sse.sootup.core.jimple.common.expr.JPhiExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JSpecialInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.JStaticInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.visitor.ReplaceUseExprVisitor; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.*; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/ReplaceUseRefVisitorTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/ReplaceUseRefVisitorTest.java similarity index 83% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/ReplaceUseRefVisitorTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/ReplaceUseRefVisitorTest.java index 27170271aac..934d126c05d 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/ReplaceUseRefVisitorTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/ReplaceUseRefVisitorTest.java @@ -1,18 +1,18 @@ -package de.upb.swt.soot.test; +package de.upb.sse.sootup.test; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.constant.Constant; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.Ref; -import de.upb.swt.soot.core.jimple.visitor.ReplaceUseRefVisitor; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.constant.Constant; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.ref.Ref; +import de.upb.sse.sootup.core.jimple.visitor.ReplaceUseRefVisitor; +import de.upb.sse.sootup.core.signatures.FieldSignature; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.ArrayList; import java.util.List; import org.junit.Test; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/ReplaceUseStmtVisitorTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/ReplaceUseStmtVisitorTest.java similarity index 84% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/ReplaceUseStmtVisitorTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/ReplaceUseStmtVisitorTest.java index b4b456d444d..0c39d38e7ce 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/ReplaceUseStmtVisitorTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/ReplaceUseStmtVisitorTest.java @@ -1,20 +1,20 @@ -package de.upb.swt.soot.test; +package de.upb.sse.sootup.test; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.expr.AbstractInvokeExpr; -import de.upb.swt.soot.core.jimple.common.expr.Expr; -import de.upb.swt.soot.core.jimple.common.ref.Ref; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.jimple.visitor.ReplaceUseStmtVisitor; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.basic.Value; +import de.upb.sse.sootup.core.jimple.common.expr.AbstractInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.expr.Expr; +import de.upb.sse.sootup.core.jimple.common.ref.Ref; +import de.upb.sse.sootup.core.jimple.common.stmt.Stmt; +import de.upb.sse.sootup.core.jimple.visitor.ReplaceUseStmtVisitor; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.types.JavaClassType; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/SimpleSootClientTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/SimpleSootClientTest.java similarity index 96% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/SimpleSootClientTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/SimpleSootClientTest.java index c683369d11d..a77df5cb611 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/SimpleSootClientTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/SimpleSootClientTest.java @@ -1,4 +1,4 @@ -package de.upb.swt.soot.test; +package de.upb.sse.sootup.test; import categories.Java8Test; import org.junit.Ignore; diff --git a/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/WitherTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/WitherTest.java new file mode 100644 index 00000000000..51df18b756b --- /dev/null +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/WitherTest.java @@ -0,0 +1,99 @@ +package de.upb.sse.sootup.test; + +import static org.junit.Assert.*; + +import categories.Java8Test; +import de.upb.sse.sootup.core.frontend.SootClassSource; +import de.upb.sse.sootup.core.jimple.Jimple; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.basic.LocalGenerator; +import de.upb.sse.sootup.core.jimple.basic.StmtPositionInfo; +import de.upb.sse.sootup.core.jimple.common.constant.DoubleConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.JIdentityStmt; +import de.upb.sse.sootup.core.jimple.common.stmt.JReturnStmt; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootClassSource; +import de.upb.sse.sootup.java.core.JavaSootMethod; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.sourcecode.frontend.WalaJavaClassProvider; +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Optional; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author Kaustubh Kelkar updated on 09.07.2020 */ +@Category(Java8Test.class) +public class WitherTest { + + private WalaJavaClassProvider loader; + private JavaIdentifierFactory identifierFactory; + private JavaClassType declareClassSig; + + @Before + public void loadClassesWithWala() { + String srcDir = "../shared-test-resources/selected-java-target/"; + loader = new WalaJavaClassProvider(srcDir); + identifierFactory = JavaIdentifierFactory.getInstance(); + declareClassSig = identifierFactory.getClassType("BinaryOperations"); + } + + @Test + public void testWithers() { + + LocalGenerator generator = new LocalGenerator(new LinkedHashSet<>()); + Optional> classSource = loader.getClassSource(declareClassSig); + assertTrue(classSource.isPresent()); + JavaSootClass sootClass = + new JavaSootClass((JavaSootClassSource) classSource.get(), SourceType.Application); + ClassType type = identifierFactory.getClassType("java.lang.String"); + + MethodSignature methodSignature = + identifierFactory.getMethodSignature( + declareClassSig, "addDouble", "double", Arrays.asList("double", "float")); + Optional m = sootClass.getMethod(methodSignature.getSubSignature()); + assertTrue(m.isPresent()); + SootMethod method = m.get(); + + Body.BodyBuilder bodyBuilder = Body.builder(); + final JIdentityStmt firstStmt = + Jimple.newIdentityStmt( + generator.generateLocal(declareClassSig), + Jimple.newParameterRef(declareClassSig, 0), + StmtPositionInfo.createNoStmtPositionInfo()); + final JReturnStmt jReturnStmt = + Jimple.newReturnStmt( + DoubleConstant.getInstance(12.34), StmtPositionInfo.createNoStmtPositionInfo()); + // bodyBuilder.addFlow(firstStmt, jReturnStmt); + + Body body = + bodyBuilder + .setMethodSignature(methodSignature) + .addFlow(firstStmt, jReturnStmt) + .setStartingStmt(firstStmt) + .setLocals(generator.getLocals()) + .build(); + assertNotNull(body); + + Local local = (Local) firstStmt.getLeftOp(); + Local newLocal = local.withName("newName"); + final JIdentityStmt firstStmtNew = firstStmt.withLocal(newLocal); + + JavaSootClass newSootClass = sootClass.withReplacedMethod(method, method.withBody(body)); + + Optional newMethod = + newSootClass.getMethod(method.getSignature().getSubSignature()); + assertTrue(newMethod.isPresent()); + Body newBody = newMethod.get().getBody(); + assertNotNull(newBody); + assertEquals("newName", ((Local) firstStmtNew.getLeftOp()).getName()); + assertNotEquals("newName1", ((Local) firstStmtNew.getLeftOp()).getName()); + } +} diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/JavaTypeHierarchyTestBase.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/JavaTypeHierarchyTestBase.java similarity index 81% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/JavaTypeHierarchyTestBase.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/JavaTypeHierarchyTestBase.java index 268a6df8e0e..1c1428272d6 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/JavaTypeHierarchyTestBase.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/JavaTypeHierarchyTestBase.java @@ -1,12 +1,12 @@ -package de.upb.swt.soot.test.typehierarchy; - -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +package de.upb.sse.sootup.test.typehierarchy; + +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; import java.util.Collections; import org.junit.ClassRule; import org.junit.rules.TestWatcher; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/MethodDispatchBase.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/MethodDispatchBase.java similarity index 81% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/MethodDispatchBase.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/MethodDispatchBase.java index 11558746c13..eb42e12d527 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/MethodDispatchBase.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/MethodDispatchBase.java @@ -1,13 +1,13 @@ -package de.upb.swt.soot.test.typehierarchy; +package de.upb.sse.sootup.test.typehierarchy; import categories.Java8Test; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; import java.util.Collections; import org.junit.ClassRule; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/MethodDispatchResolverTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/MethodDispatchResolverTest.java similarity index 88% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/MethodDispatchResolverTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/MethodDispatchResolverTest.java index aed62f37e17..35fd5531c92 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/MethodDispatchResolverTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/MethodDispatchResolverTest.java @@ -1,22 +1,22 @@ -package de.upb.swt.soot.test.typehierarchy; +package de.upb.sse.sootup.test.typehierarchy; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.frontend.ResolveException; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.common.expr.JSpecialInvokeExpr; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.MethodDispatchResolver; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.frontend.ResolveException; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.jimple.common.expr.JSpecialInvokeExpr; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.MethodDispatchResolver; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; import java.io.File; import java.lang.management.ManagementFactory; import java.util.Arrays; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/ViewTypeHierarchyTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/ViewTypeHierarchyTest.java similarity index 92% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/ViewTypeHierarchyTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/ViewTypeHierarchyTest.java index caaa2f0a1bd..b8b0529e32e 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/ViewTypeHierarchyTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/ViewTypeHierarchyTest.java @@ -1,7 +1,7 @@ -package de.upb.swt.soot.test.typehierarchy; +package de.upb.sse.sootup.test.typehierarchy; -import static de.upb.swt.soot.core.util.ImmutableUtils.immutableList; -import static de.upb.swt.soot.core.util.ImmutableUtils.immutableSet; +import static de.upb.sse.sootup.core.util.ImmutableUtils.immutableList; +import static de.upb.sse.sootup.core.util.ImmutableUtils.immutableSet; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; @@ -10,22 +10,22 @@ import categories.Java8Test; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ArrayType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.NullType; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.core.types.Type; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.OverridingJavaClassSource; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.IdentifierFactory; +import de.upb.sse.sootup.core.model.Modifier; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SourceType; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.NullType; +import de.upb.sse.sootup.core.types.PrimitiveType; +import de.upb.sse.sootup.core.types.Type; +import de.upb.sse.sootup.core.util.ImmutableUtils; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.OverridingJavaClassSource; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; import java.io.File; import java.lang.management.ManagementFactory; import java.util.Arrays; @@ -178,7 +178,7 @@ public void nullTypeSubtyping() { assertTrue( "null should be valid value for all reference types", typeHierarchy.isSubtype( - factory.getClassType("JavaClassPathNamespace", "de.upb.soot.namespaces"), + factory.getClassType("JavaClassPathNamespace", "de.upb.sootup.namespaces"), NullType.getInstance())); assertFalse( "null should not be a valid value for primitive types", diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/methoddispatchtestcase/AbstractDispatchTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/methoddispatchtestcase/AbstractDispatchTest.java similarity index 85% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/methoddispatchtestcase/AbstractDispatchTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/methoddispatchtestcase/AbstractDispatchTest.java index 702abe713ba..def459e575c 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/methoddispatchtestcase/AbstractDispatchTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/methoddispatchtestcase/AbstractDispatchTest.java @@ -1,12 +1,12 @@ -package de.upb.swt.soot.test.typehierarchy.methoddispatchtestcase; +package de.upb.sse.sootup.test.typehierarchy.methoddispatchtestcase; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.MethodDispatchResolver; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.MethodDispatchBase; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.MethodDispatchResolver; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.MethodDispatchBase; import java.util.Collections; import java.util.Set; import org.junit.Test; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/methoddispatchtestcase/ConcreteDispatchTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/methoddispatchtestcase/ConcreteDispatchTest.java similarity index 80% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/methoddispatchtestcase/ConcreteDispatchTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/methoddispatchtestcase/ConcreteDispatchTest.java index cd2f44cb776..81d895e5f19 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/methoddispatchtestcase/ConcreteDispatchTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/methoddispatchtestcase/ConcreteDispatchTest.java @@ -1,12 +1,12 @@ -package de.upb.swt.soot.test.typehierarchy.methoddispatchtestcase; +package de.upb.sse.sootup.test.typehierarchy.methoddispatchtestcase; import static junit.framework.TestCase.*; import categories.Java8Test; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.MethodDispatchResolver; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.MethodDispatchBase; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.MethodDispatchResolver; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.MethodDispatchBase; import java.util.Collections; import org.junit.Test; import org.junit.experimental.categories.Category; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/AbstractClassInheritanceTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/AbstractClassInheritanceTest.java similarity index 83% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/AbstractClassInheritanceTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/AbstractClassInheritanceTest.java index 28c59161b89..94fae979c80 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/AbstractClassInheritanceTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/AbstractClassInheritanceTest.java @@ -1,13 +1,13 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.HashSet; import java.util.Set; import org.junit.Test; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceTest.java similarity index 78% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceTest.java index 04cb9bb7ed9..d325bf4cde8 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceTest.java @@ -1,12 +1,12 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.HashSet; import java.util.Set; import org.junit.Test; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceWithAdditionalMethodTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceWithAdditionalMethodTest.java similarity index 89% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceWithAdditionalMethodTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceWithAdditionalMethodTest.java index b530b4f1a76..aa31eec82a0 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceWithAdditionalMethodTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/ClassInheritanceWithAdditionalMethodTest.java @@ -1,15 +1,15 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.HashSet; import java.util.Set; import java.util.stream.Collectors; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithProtectedMethodTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithProtectedMethodTest.java similarity index 80% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithProtectedMethodTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithProtectedMethodTest.java index 3c23c7e9367..5495f45120b 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithProtectedMethodTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithProtectedMethodTest.java @@ -1,15 +1,15 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithPublicMethodTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithPublicMethodTest.java similarity index 80% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithPublicMethodTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithPublicMethodTest.java index 40896941907..ae1293ca067 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithPublicMethodTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritDataWithPublicMethodTest.java @@ -1,15 +1,15 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritPublicDataTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritPublicDataTest.java similarity index 79% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritPublicDataTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritPublicDataTest.java index e2dfcca70a6..250afcd7696 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritPublicDataTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritPublicDataTest.java @@ -1,15 +1,15 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.*; import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.util.Utils; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritanceTransitivityTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritanceTransitivityTest.java similarity index 80% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritanceTransitivityTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritanceTransitivityTest.java index f43840d7152..c9b2f48afac 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InheritanceTransitivityTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InheritanceTransitivityTest.java @@ -1,11 +1,11 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.assertEquals; import categories.Java8Test; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.HashSet; import java.util.Set; import org.junit.Test; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InterfaceImplementationTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InterfaceImplementationTest.java similarity index 80% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InterfaceImplementationTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InterfaceImplementationTest.java index 9255bdf0ca6..4d06c1c8733 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InterfaceImplementationTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InterfaceImplementationTest.java @@ -1,11 +1,11 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.assertEquals; import categories.Java8Test; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.HashSet; import java.util.Set; import org.junit.Test; diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InterfaceInheritanceTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InterfaceInheritanceTest.java similarity index 81% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InterfaceInheritanceTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InterfaceInheritanceTest.java index 43969f64509..2614d40c172 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/InterfaceInheritanceTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/InterfaceInheritanceTest.java @@ -1,11 +1,11 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.assertEquals; import categories.Java8Test; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.HashSet; import java.util.Set; import org.junit.Test; diff --git a/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/MethodOverridingTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/MethodOverridingTest.java new file mode 100644 index 00000000000..fdd40f2fca6 --- /dev/null +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/MethodOverridingTest.java @@ -0,0 +1,62 @@ +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; + +import static org.junit.Assert.*; + +import categories.Java8Test; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; +import java.util.Collections; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** @author: Hasitha Rajapakse * */ +@Category(Java8Test.class) +public class MethodOverridingTest extends JavaTypeHierarchyTestBase { + @Test + public void method() { + ViewTypeHierarchy typeHierarchy = + (ViewTypeHierarchy) customTestWatcher.getView().getTypeHierarchy(); + ClassType sootClassType = getClassType(customTestWatcher.getClassName()); + + assertEquals(typeHierarchy.superClassOf(sootClassType), getClassType("SuperClass")); + assertTrue(typeHierarchy.isSubtype(getClassType("SuperClass"), sootClassType)); + + SootClass sootClass = + customTestWatcher + .getView() + .getClass( + customTestWatcher + .getView() + .getIdentifierFactory() + .getClassType(customTestWatcher.getClassName())) + .get(); + SootMethod sootMethod = + sootClass + .getMethod( + identifierFactory + .getMethodSignature(sootClassType, "method", "void", Collections.emptyList()) + .getSubSignature()) + .get(); + Body body = sootMethod.getBody(); + assertNotNull(body); + + SootClass superClass = + customTestWatcher.getView().getClass(sootClass.getSuperclass().get()).get(); + SootMethod superMethod = + superClass + .getMethod( + identifierFactory + .getMethodSignature( + superClass.getType(), "method", "void", Collections.emptyList()) + .getSubSignature()) + .get(); + Body superBody = superMethod.getBody(); + assertNotNull(superBody); + + assertNotEquals(body, superBody); + } +} diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/MultiInterfaceImplementationTest.java b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/MultiInterfaceImplementationTest.java similarity index 82% rename from de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/MultiInterfaceImplementationTest.java rename to de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/MultiInterfaceImplementationTest.java index d9df72bbc08..c50ba8e351c 100644 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/MultiInterfaceImplementationTest.java +++ b/de.upb.sse.sootup.tests/src/test/java/de/upb/sse/sootup/test/typehierarchy/viewtypehierarchytestcase/MultiInterfaceImplementationTest.java @@ -1,11 +1,11 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; +package de.upb.sse.sootup.test.typehierarchy.viewtypehierarchytestcase; import static org.junit.Assert.assertEquals; import categories.Java8Test; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.test.typehierarchy.JavaTypeHierarchyTestBase; import java.util.HashSet; import java.util.Set; import org.junit.Test; diff --git a/de.upb.swt.soot.tests/src/test/resources/callgraph/Misc/HelloWorld.java b/de.upb.sse.sootup.tests/src/test/resources/callgraph/Misc/HelloWorld.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/callgraph/Misc/HelloWorld.java rename to de.upb.sse.sootup.tests/src/test/resources/callgraph/Misc/HelloWorld.java diff --git a/de.upb.swt.soot.tests/src/test/resources/de/upb/soot/namespaces/modules/module-info.java b/de.upb.sse.sootup.tests/src/test/resources/de/upb/soot/namespaces/modules/module-info.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/de/upb/soot/namespaces/modules/module-info.java rename to de.upb.sse.sootup.tests/src/test/resources/de/upb/soot/namespaces/modules/module-info.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/AbstractClassInheritance/AbstractClass.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/AbstractClassInheritance/AbstractClass.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/AbstractClassInheritance/AbstractClass.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/AbstractClassInheritance/AbstractClass.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/AbstractClassInheritance/AbstractClassInheritance.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/AbstractClassInheritance/AbstractClassInheritance.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/AbstractClassInheritance/AbstractClassInheritance.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/AbstractClassInheritance/AbstractClassInheritance.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/ClassInheritance/ClassInheritance.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/ClassInheritance/ClassInheritance.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/ClassInheritance/ClassInheritance.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/ClassInheritance/ClassInheritance.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/ClassInheritance/SuperClass.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/ClassInheritance/SuperClass.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/ClassInheritance/SuperClass.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/ClassInheritance/SuperClass.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/ClassInheritanceWithAdditionalMethod/ClassInheritanceWithAdditionalMethod.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/ClassInheritanceWithAdditionalMethod/ClassInheritanceWithAdditionalMethod.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/ClassInheritanceWithAdditionalMethod/ClassInheritanceWithAdditionalMethod.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/ClassInheritanceWithAdditionalMethod/ClassInheritanceWithAdditionalMethod.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/ClassInheritanceWithAdditionalMethod/SuperClass.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/ClassInheritanceWithAdditionalMethod/SuperClass.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/ClassInheritanceWithAdditionalMethod/SuperClass.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/ClassInheritanceWithAdditionalMethod/SuperClass.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritDataWithProtectedMethod/InheritDataWithProtectedMethod.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritDataWithProtectedMethod/InheritDataWithProtectedMethod.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritDataWithProtectedMethod/InheritDataWithProtectedMethod.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritDataWithProtectedMethod/InheritDataWithProtectedMethod.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritDataWithProtectedMethod/SuperClass.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritDataWithProtectedMethod/SuperClass.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritDataWithProtectedMethod/SuperClass.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritDataWithProtectedMethod/SuperClass.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritDataWithPublicMethod/InheritDataWithPublicMethod.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritDataWithPublicMethod/InheritDataWithPublicMethod.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritDataWithPublicMethod/InheritDataWithPublicMethod.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritDataWithPublicMethod/InheritDataWithPublicMethod.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritDataWithPublicMethod/SuperClass.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritDataWithPublicMethod/SuperClass.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritDataWithPublicMethod/SuperClass.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritDataWithPublicMethod/SuperClass.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritPublicData/InheritPublicData.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritPublicData/InheritPublicData.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritPublicData/InheritPublicData.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritPublicData/InheritPublicData.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritPublicData/SuperClass.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritPublicData/SuperClass.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritPublicData/SuperClass.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritPublicData/SuperClass.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/InheritanceTransitivity.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/InheritanceTransitivity.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/InheritanceTransitivity.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/InheritanceTransitivity.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/SubClassA.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/SubClassA.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/SubClassA.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/SubClassA.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/SubClassB.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/SubClassB.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/SubClassB.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InheritanceTransitivity/SubClassB.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceImplementation/InterfaceA.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceImplementation/InterfaceA.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceImplementation/InterfaceA.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceImplementation/InterfaceA.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceImplementation/InterfaceImplementation.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceImplementation/InterfaceImplementation.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceImplementation/InterfaceImplementation.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceImplementation/InterfaceImplementation.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceA.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceA.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceA.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceA.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceB.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceB.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceB.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceB.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceInheritance.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceInheritance.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceInheritance.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/InterfaceInheritance/InterfaceInheritance.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MethodOverriding/MethodOverriding.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MethodOverriding/MethodOverriding.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MethodOverriding/MethodOverriding.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MethodOverriding/MethodOverriding.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MethodOverriding/SuperClass.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MethodOverriding/SuperClass.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MethodOverriding/SuperClass.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MethodOverriding/SuperClass.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/InterfaceA.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/InterfaceA.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/InterfaceA.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/InterfaceA.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/InterfaceB.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/InterfaceB.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/InterfaceB.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/InterfaceB.java diff --git a/de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/MultiInterfaceImplementation.java b/de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/MultiInterfaceImplementation.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/MultiInterfaceImplementation.java rename to de.upb.sse.sootup.tests/src/test/resources/javatypehierarchy/MultiInterfaceImplementation/MultiInterfaceImplementation.java diff --git a/de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/A.java b/de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/A.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/A.java rename to de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/A.java diff --git a/de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/AbstractClass.java b/de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/AbstractClass.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/AbstractClass.java rename to de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/AbstractClass.java diff --git a/de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/B.java b/de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/B.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/B.java rename to de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/B.java diff --git a/de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/C.java b/de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/C.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/C.java rename to de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/AbstractDispatch/C.java diff --git a/de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/ConcreteDispatch/A.java b/de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/ConcreteDispatch/A.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/ConcreteDispatch/A.java rename to de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/ConcreteDispatch/A.java diff --git a/de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/ConcreteDispatch/B.java b/de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/ConcreteDispatch/B.java similarity index 100% rename from de.upb.swt.soot.tests/src/test/resources/methoddispatchresolver/ConcreteDispatch/B.java rename to de.upb.sse.sootup.tests/src/test/resources/methoddispatchresolver/ConcreteDispatch/B.java diff --git a/de.upb.swt.soot.analysis/pom.xml b/de.upb.swt.soot.analysis/pom.xml deleted file mode 100644 index d3cc3da1a36..00000000000 --- a/de.upb.swt.soot.analysis/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - 4.0.0 - - Soot Analysis - soot.analysis - jar - - de.upb.swt - soot - 4.0.0-SNAPSHOT - - - - - - - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT - pom - import - - - - - - - de.upb.swt - soot.callgraph - 4.0.0-SNAPSHOT - - - de.upb.cs.swt - heros - 1.2.3-SNAPSHOT - - - de.upb.swt - soot.java.bytecode - 4.0.0-SNAPSHOT - test - - - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT - test - - - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT - test - - - - - sonatype-snapshots - https://oss.sonatype.org/content/repositories/snapshots - - false - - - - - \ No newline at end of file diff --git a/de.upb.swt.soot.callgraph/pom.xml b/de.upb.swt.soot.callgraph/pom.xml deleted file mode 100644 index cfcb412e759..00000000000 --- a/de.upb.swt.soot.callgraph/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ - - 4.0.0 - - Soot Callgraph - soot.callgraph - jar - - de.upb.swt - soot - 4.0.0-SNAPSHOT - - - - - - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT - pom - import - - - - - - - de.upb.swt - soot.core - 4.0.0-SNAPSHOT - - - de.upb.swt - soot.java.core - 4.0.0-SNAPSHOT - - - de.upb.swt - soot.java.bytecode - 4.0.0-SNAPSHOT - test - - - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT - test - - - org.jgrapht - jgrapht-core - 1.3.1 - - - de.upb.swt - soot.jimple.parser - 4.0.0-SNAPSHOT - test - - - - diff --git a/de.upb.swt.soot.core/pom.xml b/de.upb.swt.soot.core/pom.xml deleted file mode 100644 index 3ce12c50b0b..00000000000 --- a/de.upb.swt.soot.core/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - 4.0.0 - Soot Core - - - org.jgrapht - jgrapht-core - 1.3.1 - compile - - - soot.core - jar - - de.upb.swt - soot - 4.0.0-SNAPSHOT - - diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/BaseViewChangeListener.java b/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/BaseViewChangeListener.java deleted file mode 100644 index 2ca41c7e077..00000000000 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/BaseViewChangeListener.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.upb.swt.soot.core; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; - -public class BaseViewChangeListener implements ViewChangeListener { - @Override - public void classAdded(SootClass sc) {} - - @Override - public void classRemoved(SootClass sc) {} - - @Override - public void methodAdded(SootMethod m) {} - - @Override - public void methodRemoved(SootMethod m) {} -} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/ViewChangeListener.java b/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/ViewChangeListener.java deleted file mode 100644 index 81a1ffe58ea..00000000000 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/ViewChangeListener.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.upb.swt.soot.core; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; - -public interface ViewChangeListener { - void classAdded(SootClass sc); - - void classRemoved(SootClass sc); - - void methodAdded(SootMethod m); - - void methodRemoved(SootMethod m); -} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractBinopExpr.java b/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractBinopExpr.java deleted file mode 100644 index 178e6fb5d06..00000000000 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/common/expr/AbstractBinopExpr.java +++ /dev/null @@ -1,100 +0,0 @@ -package de.upb.swt.soot.core.jimple.common.expr; - -/*- - * #%L - * Soot - a J*va Optimization Framework - * %% - * Copyright (C) 1999-2020 Patrick Lam, Christian Brüggemann, Linghui Luo and others - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 2.1 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * . - * #L% - */ - -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.util.printer.StmtPrinter; -import java.util.ArrayList; -import java.util.List; -import javax.annotation.Nonnull; - -public abstract class AbstractBinopExpr implements Expr { - - @Nonnull private final Immediate op1; - @Nonnull private final Immediate op2; - - AbstractBinopExpr(@Nonnull Immediate op1, @Nonnull Immediate op2) { - this.op1 = op1; - this.op2 = op2; - } - - @Nonnull - public Immediate getOp1() { - return op1; - } - - @Nonnull - public Immediate getOp2() { - return op2; - } - - @Override - @Nonnull - public final List getUses() { - final List uses1 = op1.getUses(); - final List uses2 = op2.getUses(); - List list = new ArrayList<>(uses1.size() + uses2.size() + 2); - list.addAll(uses1); - list.add(op1); - list.addAll(uses2); - list.add(op2); - return list; - } - - @Override - public boolean equivTo(@Nonnull Object o, @Nonnull JimpleComparator comparator) { - return comparator.caseAbstractBinopExpr(this, o); - } - - /** Returns a hash code for this object, consistent with structural equality. */ - @Override - public int equivHashCode() { - return op1.equivHashCode() * 101 + op2.equivHashCode() + 17 ^ getSymbol().hashCode(); - } - - /** Returns the unique symbol for an operator. */ - @Nonnull - public abstract String getSymbol(); - - @Override - public String toString() { - String leftOp = op1.toString(); - String rightOp = op2.toString(); - return leftOp + getSymbol() + rightOp; - } - - @Override - public void toString(@Nonnull StmtPrinter up) { - op1.toString(up); - up.literal(getSymbol()); - op2.toString(up); - } - - @Nonnull - public abstract AbstractBinopExpr withOp1(@Nonnull Immediate value); - - @Nonnull - public abstract AbstractBinopExpr withOp2(@Nonnull Immediate value); -} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractImmediateVisitor.java b/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractImmediateVisitor.java deleted file mode 100644 index 25c1ebf098e..00000000000 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/AbstractImmediateVisitor.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.upb.swt.soot.core.jimple.visitor; - -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.common.constant.Constant; -import javax.annotation.Nonnull; - -public class AbstractImmediateVisitor extends AbstractConstantVisitor - implements ImmediateVisitor { - - @Override - public void caseLocal(@Nonnull Local local) { - defaultCaseImmediate(local); - } - - @Override - public void defaultCaseConstant(@Nonnull Constant constant) { - defaultCaseImmediate(constant); - } - - private void defaultCaseImmediate(@Nonnull Immediate immediate) {} -} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ImmediateVisitor.java b/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ImmediateVisitor.java deleted file mode 100644 index 446e9527dba..00000000000 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/jimple/visitor/ImmediateVisitor.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.upb.swt.soot.core.jimple.visitor; - -import de.upb.swt.soot.core.jimple.basic.Local; -import javax.annotation.Nonnull; - -/* - * @author Markus Schmidt - */ -public interface ImmediateVisitor extends ConstantVisitor { - void caseLocal(@Nonnull Local local); -} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/transform/BodyInterceptor.java b/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/transform/BodyInterceptor.java deleted file mode 100644 index 244511dc1c8..00000000000 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/transform/BodyInterceptor.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.upb.swt.soot.core.transform; - -/*- - * #%L - * Soot - a J*va Optimization Framework - * %% - * Copyright (C) 2019-2020 Christian Brüggemann - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 2.1 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * . - * #L% - */ - -import de.upb.swt.soot.core.model.Body; -import javax.annotation.Nonnull; - -/** - * @author - * @see #interceptBody(Body.BodyBuilder) - */ -public interface BodyInterceptor { - - /** - * Takes a BodyBuilder and may apply a transformation to it, for example removing unused local - * variables. - * - * @param builder - */ - void interceptBody(@Nonnull Body.BodyBuilder builder); -} diff --git a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/views/MutableView.java b/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/views/MutableView.java deleted file mode 100644 index cec3d086ead..00000000000 --- a/de.upb.swt.soot.core/src/main/java/de/upb/swt/soot/core/views/MutableView.java +++ /dev/null @@ -1,10 +0,0 @@ -package de.upb.swt.soot.core.views; - -import de.upb.swt.soot.core.ViewChangeListener; - -public interface MutableView { - - void addChangeListener(ViewChangeListener listener); - - void removeChangeListener(ViewChangeListener listener); -} diff --git a/de.upb.swt.soot.core/src/test/java/de/upb/swt/soot/core/graph/BlockGraphTest.java b/de.upb.swt.soot.core/src/test/java/de/upb/swt/soot/core/graph/BlockGraphTest.java deleted file mode 100644 index 0407bde06d1..00000000000 --- a/de.upb.swt.soot.core/src/test/java/de/upb/swt/soot/core/graph/BlockGraphTest.java +++ /dev/null @@ -1,20 +0,0 @@ -package de.upb.swt.soot.core.graph; - -import static org.junit.Assert.*; - -import categories.Java8Test; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class BlockGraphTest { - - @Test - public void testSingleStmtInBlock() {} - - @Test - public void testMultipleStmtInBlock() {} - - @Test - public void testSingleBlock() {} -} diff --git a/de.upb.swt.soot.java.bytecode/pom.xml b/de.upb.swt.soot.java.bytecode/pom.xml deleted file mode 100644 index b7373482d86..00000000000 --- a/de.upb.swt.soot.java.bytecode/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - 4.0.0 - - Soot Java Bytecode Frontend - soot.java.bytecode - jar - - de.upb.swt - soot - 4.0.0-SNAPSHOT - - - - - de.upb.swt - soot.core - 4.0.0-SNAPSHOT - - - de.upb.swt - soot.java.core - 4.0.0-SNAPSHOT - - - org.ow2.asm - asm-util - 9.1 - - - org.ow2.asm - asm-commons - 9.1 - - - com.googlecode.d2j - dex-tools - 2.2-SNAPSHOT - - - - - - diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/java/bytecode/frontend/AsmMethodSourceTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/java/bytecode/frontend/AsmMethodSourceTest.java deleted file mode 100644 index 1e062f4ae64..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/java/bytecode/frontend/AsmMethodSourceTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.upb.swt.soot.java.bytecode.frontend; - -import static junit.framework.TestCase.fail; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; -import java.util.Arrays; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class AsmMethodSourceTest { - - @Test - @Ignore("FIXME") - public void testFix_StackUnderrun_convertPutFieldInsn_init() { - - double version = Double.parseDouble(System.getProperty("java.specification.version")); - if (version > 1.8) { - fail("The rt.jar is not available after Java 8. You are using version " + version); - } - - JavaProject javaProject = - JavaProject.builder(new JavaLanguage(8)) - .addInputLocation( - new JavaClassPathAnalysisInputLocation( - System.getProperty("java.home") + "/lib/rt.jar")) - .build(); - - JavaView view = javaProject.createOnDemandView(); - - JavaClassType mainClassSignature = - JavaIdentifierFactory.getInstance() - .getClassType("javax.management.NotificationBroadcasterSupport"); - MethodSignature mainMethodSignature = - JavaIdentifierFactory.getInstance() - .getMethodSignature( - mainClassSignature, - "", - "void", - Arrays.asList( - "java.util.concurrent.Executor", "javax.management.MBeanNotificationInfo[]")); - - final SootClass abstractClass = view.getClass(mainClassSignature).get(); - - final SootMethod method = abstractClass.getMethod(mainMethodSignature.getSubSignature()).get(); - method.getBody().getStmts(); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/Soot1577.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/Soot1577.java deleted file mode 100644 index 3b9a2c11ddc..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/Soot1577.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode; - -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.java.bytecode.inputlocation.BytecodeClassLoadingOptions; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; -import org.junit.Assert; -import org.junit.Test; - -public class Soot1577 { - final String directory = "../shared-test-resources/soot-1577/"; - - @Test - public void test() { - AnalysisInputLocation inputLocation = - new JavaClassPathAnalysisInputLocation(directory); - - JavaProject project = - JavaProject.builder(new JavaLanguage(7)).addInputLocation(inputLocation).build(); - - JavaView view = - project.createOnDemandView(analysisInputLocation -> BytecodeClassLoadingOptions.Default); - - Assert.assertEquals(1, view.getClasses().size()); - - view.getClasses().stream().findFirst().get().getMethods().forEach(SootMethod::getBody); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/Soot1580.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/Soot1580.java deleted file mode 100644 index 4c77f00cbae..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/Soot1580.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode; - -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.bytecode.inputlocation.BytecodeClassLoadingOptions; -import de.upb.swt.soot.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; -import java.nio.file.Path; -import java.nio.file.Paths; -import org.junit.Assert; -import org.junit.Test; - -public class Soot1580 { - final Path jar = Paths.get("../shared-test-resources/soot-1580/jpush-android_v3.0.5.jar"); - - @Test - public void test() { - AnalysisInputLocation inputLocation = - new PathBasedAnalysisInputLocation(jar, null); - - JavaProject project = - JavaProject.builder(new JavaLanguage(7)).addInputLocation(inputLocation).build(); - - JavaView view = - project.createOnDemandView(analysisInputLocation -> BytecodeClassLoadingOptions.Default); - - Assert.assertEquals(91, view.getClasses().size()); - - ClassType clazzType = - JavaIdentifierFactory.getInstance().getClassType("cn.jpush.android.data.f"); - - Assert.assertTrue(view.getClass(clazzType).isPresent()); - - view.getClass(clazzType).get().getMethods().forEach(SootMethod::getBody); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java10/TypeInferenceTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java10/TypeInferenceTest.java deleted file mode 100644 index 230fe051109..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java10/TypeInferenceTest.java +++ /dev/null @@ -1,78 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java10; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class TypeInferenceTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void printFile() throws Exception{
-   * var fileName="file.txt";
-   * var data = "";
-   * var fileReader= new FileReader(fileName);
-   * var bufferedReader= new BufferedReader(fileReader);
-   * while( (data= bufferedReader.readLine()) != null ){
-   * System.out.println(data);
-   * }
-   * bufferedReader.close();
-   * }
-   *
-   * public static void main(String[] args) throws Exception{
-   * TypeInference typeInference = new TypeInference();
-   * typeInference.printFile();
-   * }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TypeInference", - "l1 = \"file.txt\"", - "l2 = \"\"", - "$stack5 = new java.io.FileReader", - "specialinvoke $stack5.(java.lang.String)>(l1)", - "l3 = $stack5", - "$stack6 = new java.io.BufferedReader", - "specialinvoke $stack6.(java.io.Reader)>(l3)", - "l4 = $stack6", - "label1:", - "$stack9 = l4", - "$stack7 = virtualinvoke $stack9.()", - "l2 = $stack7", - "if $stack7 == null goto label2", - "$stack8 = ", - "virtualinvoke $stack8.(l2)", - "goto label1", - "label2:", - "virtualinvoke l4.()", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AbstractClassTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AbstractClassTest.java deleted file mode 100644 index b10bc862da5..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AbstractClassTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AbstractClassTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootClass clazz = loadClass(getDeclaredClassSignature()); - // The SuperClass is the abstract one - SootClass superClazz = loadClass(clazz.getSuperclass().get()); - assertTrue(superClazz.isAbstract()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "abstractClass", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void abstractClass(){
-   *         A obj = new AbstractClass();
-   *         obj.a();
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: AbstractClass", - "$stack2 = new AbstractClass", - "specialinvoke $stack2.()>()", - "l1 = $stack2", - "virtualinvoke l1.()", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AccessArraysTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AccessArraysTest.java deleted file mode 100644 index 1b17beb1708..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AccessArraysTest.java +++ /dev/null @@ -1,392 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AccessArraysTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts(method, expectedBodyStmtsIntArrays()); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts(method, expectedBodyStmtsByteArrays()); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts(method, expectedBodyStmtsShortArrays()); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts(method, expectedBodyStmtsLongArrays()); - - method = loadMethod(getMethodSignature("floatArrays")); - assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts(method, expectedBodyStmtsCharArrays()); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts(method, expectedBodyStmtsStringArrays()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void intArrays(){
-   *         int[] anArrayOfInts = {1, 2, 3};
-   *         int val;
-   *         for(int item: anArrayOfInts){
-   *             val = item;
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntArrays() { - return Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (int)[3]", - "$stack7[0] = 1", - "$stack7[1] = 2", - "$stack7[2] = 3", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void byteArrays(){
-   *         byte[] anArrayOfBytes = {4, 5, 6};
-   *         byte val;
-   *         for(byte item: anArrayOfBytes){
-   *             val = item;
-   *         }
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsByteArrays() { - return Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (byte)[3]", - "$stack7[0] = 4", - "$stack7[1] = 5", - "$stack7[2] = 6", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void shortArrays(){
-   *         short[] anArrayOfShorts = {10, 20, 30};
-   *         short val;
-   *         for(short item: anArrayOfShorts){
-   *             val = item;
-   *         }
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsShortArrays() { - return Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (short)[3]", - "$stack7[0] = 10", - "$stack7[1] = 20", - "$stack7[2] = 30", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void longArrays(){
-   *         long[] anArrayOfLongs = {547087L, 564645L, 654786L};
-   *         long val;
-   *         for(long item: anArrayOfLongs){
-   *             val = item;
-   *         }
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsLongArrays() { - return Stream.of( - "l0 := @this: AccessArrays", - "$stack9 = newarray (long)[3]", - "$stack9[0] = 547087L", - "$stack9[1] = 564645L", - "$stack9[2] = 654786L", - "l1 = $stack9", - "l4 = l1", - "l5 = lengthof l4", - "l6 = 0", - "label1:", - "$stack11 = l6", - "$stack10 = l5", - "if $stack11 >= $stack10 goto label2", - "l7 = l4[l6]", - "l2 = l7", - "l6 = l6 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatArrays(){
-   *         float[] anArrayOfFloats = {3.14f, 5.46f, 2.987f, 4.87f};
-   *         float val;
-   *         for(float item: anArrayOfFloats){
-   *             val = item;
-   *         }
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatArrays() { - return Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (float)[4]", - "$stack7[0] = 3.14F", - "$stack7[1] = 5.46F", - "$stack7[2] = 2.987F", - "$stack7[3] = 4.87F", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleArrays(){
-   *         double[] anArrayOfDoubles = {6.765414d, 9.676565646d};
-   *         double val;
-   *         for(double item: anArrayOfDoubles){
-   *             val = item;
-   *         }
-   *
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleArrays() { - return Stream.of( - "l0 := @this: AccessArrays", - "$stack9 = newarray (double)[2]", - "$stack9[0] = 6.765414", - "$stack9[1] = 9.676565646", - "l1 = $stack9", - "l4 = l1", - "l5 = lengthof l4", - "l6 = 0", - "label1:", - "$stack11 = l6", - "$stack10 = l5", - "if $stack11 >= $stack10 goto label2", - "l7 = l4[l6]", - "l2 = l7", - "l6 = l6 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void booleanArrays(){
-   *         boolean[] anArrayOfBooleans = {true, false};
-   *         boolean val;
-   *         for(boolean item: anArrayOfBooleans){
-   *             val = item;
-   *         }
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsBooleanArrays() { - return Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (boolean)[2]", - "$stack7[0] = 1", - "$stack7[1] = 0", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charArrays(){
-   *         char[] anArrayOfChars = {'A', 'b', '&'};
-   *         char val;
-   *         for(char item: anArrayOfChars){
-   *             val = item;
-   *         }
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharArrays() { - return Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (char)[3]", - "$stack7[0] = 65", - "$stack7[1] = 98", - "$stack7[2] = 38", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void stringArrays(){
-   *         String[] anArrayOfStrings = {"Hello World", "Greetings"};
-   *         String val;
-   *         for(String item: anArrayOfStrings){
-   *             val = item;
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsStringArrays() { - return Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (java.lang.String)[2]", - "$stack7[0] = \"Hello World\"", - "$stack7[1] = \"Greetings\"", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnnotationLibraryTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnnotationLibraryTest.java deleted file mode 100644 index 9003f6f48e6..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnnotationLibraryTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.util.printer.Printer; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.io.PrintWriter; -import java.io.StringWriter; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AnnotationLibraryTest extends MinimalBytecodeTestSuiteBase { - - // TODO: [bh] annotation methods lose default values - - @Test - public void testAnnotationDeclaration() { - SootClass sootClass = loadClass(getDeclaredClassSignature()); - Printer p = new Printer(Printer.Option.LegacyMode); - StringWriter out = new StringWriter(); - p.printTo(sootClass, new PrintWriter(out)); - assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); - } - - // TODO: [ms] add test for more annotation declarations e.g. inheritance - -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageInheritedTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageInheritedTest.java deleted file mode 100644 index e4eb1fca3e0..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnnotationUsageInheritedTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertEquals; - -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.java.core.AnnotationUsage; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.AnnotationType; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import org.junit.Test; - -public class AnnotationUsageInheritedTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void testInheritedAnnotationOnClass() { - JavaSootClass sootClass = loadClass(getDeclaredClassSignature()); - Map annotationParamMap = new HashMap<>(); - - annotationParamMap.put("sthBlue", IntConstant.getInstance(42)); - annotationParamMap.put("author", JavaJimple.getInstance().newStringConstant("GeorgeLucas")); - - assertEquals( - Arrays.asList( - new AnnotationUsage( - new AnnotationType("OnClass", new PackageName(""), true), annotationParamMap)), - sootClass.getAnnotations(Optional.of(customTestWatcher.getJavaView()))); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java deleted file mode 100644 index 409bf475703..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AnonymousClassInsideMethodTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "anonymousClassInsideMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void anonymousClassInsideMethod() {
-   *
-   * MathOperation myMathOperation = new MathOperation() {
-   * int i = 0;
-   *
-   * @Override
-   * public void addition() {
-   * i++;
-   * }
-   * };
-   *
-   * myMathOperation.addition();
-   *
-   * }
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: AnonymousClassInsideMethod", - "$stack2 = new AnonymousClassInsideMethod$1", - "specialinvoke $stack2.(AnonymousClassInsideMethod)>(l0)", - "l1 = $stack2", - "interfaceinvoke l1.()", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AssertStatementTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AssertStatementTest.java deleted file mode 100644 index ee7f5e3b644..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AssertStatementTest.java +++ /dev/null @@ -1,129 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AssertStatementTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "assertStatement", "void", Collections.emptyList()); - } - - public MethodSignature getMethodSignatureExtend() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "assertStatementExtend", "void", Collections.emptyList()); - } - - public MethodSignature getMethodSignatureExtend2() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "assertStatementExtend2", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void assertStatement() {
-   *         assert "" != null;
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: AssertStatement", - "$stack1 = ", - "if $stack1 != 0 goto label1", - "if \"\" != null goto label1", - "$stack2 = new java.lang.AssertionError", - "specialinvoke $stack2.()>()", - "throw $stack2", - "label1:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void assertStatementExtend() {
-   *         assert "" != null;
-   *         int x = 4;
-   *     }
-   * 
- */ - public List expectedBodyStmtsExtend() { - return Stream.of( - "l0 := @this: AssertStatement", - "$stack2 = ", - "if $stack2 != 0 goto label1", - "if \"\" != null goto label1", - "$stack4 = new java.lang.AssertionError", - "specialinvoke $stack4.()>()", - "throw $stack4", - "label1:", - "$stack3 = 4", - "l1 = $stack3", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void assertStatementExtend2() {
-   *         assert "first" != null;
-   *         int x = 1;
-   *         assert "second" != null;
-   *         x = 2;
-   *     }
-   * 
- */ - public List expectedBodyStmtsExtend2() { - return Stream.of( - "l0 := @this: AssertStatement", - "$stack2 = ", - "if $stack2 != 0 goto label1", - "if \"first\" != null goto label1", - "$stack7 = new java.lang.AssertionError", - "specialinvoke $stack7.()>()", - "throw $stack7", - "label1:", - "$stack6 = 1", - "l1 = $stack6", - "$stack3 = ", - "if $stack3 != 0 goto label2", - "if \"second\" != null goto label2", - "$stack5 = new java.lang.AssertionError", - "specialinvoke $stack5.()>()", - "throw $stack5", - "label2:", - "$stack4 = 2", - "l1 = $stack4", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getMethodSignatureExtend()); - assertJimpleStmts(method, expectedBodyStmtsExtend()); - method = loadMethod(getMethodSignatureExtend2()); - assertJimpleStmts(method, expectedBodyStmtsExtend2()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AutoboxingTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AutoboxingTest.java deleted file mode 100644 index 2ed66cf3012..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AutoboxingTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AutoboxingTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "autoboxing", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void autoboxing(){
-   * int i = 5;
-   * i++;
-   * Integer j = i;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: Autoboxing", - "l1 = 5", - "l1 = l1 + 1", - "l2 = staticinvoke (l1)", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AutomaticWideningTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AutomaticWideningTest.java deleted file mode 100644 index db9c53747c9..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/AutomaticWideningTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AutomaticWideningTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "automaticWidening", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void automaticWidening(){
-   * int x = 10;
-   * long y = x;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: AutomaticWidening", "l1 = 10", "l2 = (long) l1", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java deleted file mode 100644 index 748f7fbebec..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java +++ /dev/null @@ -1,158 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class BitwiseOperationsIntTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("bitwiseOpAnd")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpAnd()); - - method = loadMethod(getMethodSignature("bitwiseOpOr")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpOr()); - - method = loadMethod(getMethodSignature("bitwiseOpXor")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpXor()); - - method = loadMethod(getMethodSignature("bitwiseOpComplement")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpComplement()); - - method = loadMethod(getMethodSignature("bitwiseOpSignedRightShift")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpSignedRightShift()); - - method = loadMethod(getMethodSignature("bitwiseOpLeftShift")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpLeftShift()); - - method = loadMethod(getMethodSignature("bitwiseOpUnsignedRightShift")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpUnsignedRightShift()); - } - - /** - * - * - *
-   *     public void bitwiseOpAnd(){
-   *         int a = 70;
-   *         int b = 20;
-   *         int c = a&b;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpAnd() { - return Stream.of( - "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 & l2", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpOr(){
-   *         int a = 70;
-   *         int b = 20;
-   *         int c = a|b;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpOr() { - return Stream.of( - "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 | l2", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpXor(){
-   *         int a = 70;
-   *         int b = 20;
-   *         int c = a^b;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpXor() { - return Stream.of( - "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 ^ l2", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpComplement(){
-   *         int a = 70;
-   *         int b = ~a;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpComplement() { - return Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 ^ -1", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpSignedRightShift(){
-   *         int a = 70;
-   *         int b = a >> 5;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpSignedRightShift() { - return Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 >> 5", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpLeftShift(){
-   *         int a = 70;
-   *         int b = a << 5;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpLeftShift() { - return Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 << 5", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpUnsignedRightShift(){
-   *         int a = 70;
-   *         int b = a >>> 5;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpUnsignedRightShift() { - return Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 >>> 5", "return") - .collect(Collectors.toList()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/BooleanOperatorsTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/BooleanOperatorsTest.java deleted file mode 100644 index 60d958af05f..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/BooleanOperatorsTest.java +++ /dev/null @@ -1,516 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class BooleanOperatorsTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void testRelOpEq() { - - SootMethod method = loadMethod(getMethodSignature("relationalOpEqual")); - assertJimpleStmts(method, expectedBodyStmtsRelationalOpEqual()); - } - - @Test - public void testrelOpNotEq() { - SootMethod method = loadMethod(getMethodSignature("relationalOpNotEqual")); - assertJimpleStmts(method, expectedBodyStmtsRelationalOpNotEqual()); - } - - @Test - public void testComplementOP() { - SootMethod method = loadMethod(getMethodSignature("complementOp")); - assertJimpleStmts(method, expectedBodyStmtsComplementOp()); - } - - @Test - public void testLogicalAnd() { - SootMethod method = loadMethod(getMethodSignature("logicalOpAnd")); - assertJimpleStmts(method, expectedBodyStmtsLogicalOpAnd()); - } - - @Test - public void testLogicalOr() { - SootMethod method = loadMethod(getMethodSignature("logicalOpOr")); - - assertJimpleStmts(method, expectedBodyStmtsLogicalOpOr()); - } - - @Test - public void testLocgicalOpXor() { - SootMethod method = loadMethod(getMethodSignature("logicalOpXor")); - assertJimpleStmts(method, expectedBodyStmtsLogicalOpXor()); - } - - @Test - public void testCondOpAnd() { - SootMethod method = loadMethod(getMethodSignature("ConditionalOpAnd")); - assertJimpleStmts(method, expectedBodyStmtsConditionalOpAnd()); - } - - @Test - public void testCondOpOr() { - SootMethod method = loadMethod(getMethodSignature("conditionalOpOr")); - assertJimpleStmts(method, expectedBodyStmtsConditionalOpOr()); - } - - @Test - public void testCondOp() { - SootMethod method = loadMethod(getMethodSignature("conditionalOp")); - assertJimpleStmts(method, expectedBodyStmtsConditionalOp()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void relationalOpEqual(){
-   *         int i =  0;
-   *         while (i<=10){
-   *             i++;
-   *             if (i==5){
-   *                 break;
-   *             }
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsRelationalOpEqual() { - return Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 0", - "label1:", - "$stack3 = l1", - "$stack2 = 10", - "if $stack3 > $stack2 goto label2", - "l1 = l1 + 1", - "if l1 != 5 goto label1", - "goto label2", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void relationalOpNotEqual(){
-   *         int i =  0;
-   *         String str = "";
-   *         while (i<10){
-   *             i++;
-   *             if (i!=5){
-   *                 str = "i != 5";
-   *             }
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsRelationalOpNotEqual() { - return Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 0", - "l2 = \"\"", - "label1:", - "$stack4 = l1", - "$stack3 = 10", - "if $stack4 >= $stack3 goto label2", - "l1 = l1 + 1", - "if l1 == 5 goto label1", - "l2 = \"i != 5\"", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void complementOp(){
-   *         boolean b = true;
-   *         if(b){
-   *             b = !b;
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsComplementOp() { - return Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "if l1 == 0 goto label3", - "if l1 != 0 goto label1", - "$stack2 = 1", - "goto label2", - "label1:", - "$stack2 = 0", - "label2:", - "l1 = $stack2", - "label3:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void logicalOpAnd(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a & b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c & d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a & c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d & b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsLogicalOpAnd() { - return Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "$stack6 = l1 & l2", - "if $stack6 == 0 goto label1", - "l5 = \"A\"", - "label1:", - "$stack15 = l3", - "$stack14 = l4", - "$stack7 = $stack15 & $stack14", - "if $stack7 == 0 goto label2", - "l5 = \"B\"", - "label2:", - "$stack13 = l1", - "$stack12 = l3", - "$stack8 = $stack13 & $stack12", - "if $stack8 == 0 goto label3", - "l5 = \"C\"", - "label3:", - "$stack11 = l4", - "$stack10 = l2", - "$stack9 = $stack11 & $stack10", - "if $stack9 == 0 goto label4", - "l5 = \"D\"", - "label4:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void logicalOpOr(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a | b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c | d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a | c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d | b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsLogicalOpOr() { - return Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "$stack6 = l1 | l2", - "if $stack6 == 0 goto label1", - "l5 = \"A\"", - "label1:", - "$stack15 = l3", - "$stack14 = l4", - "$stack7 = $stack15 | $stack14", - "if $stack7 == 0 goto label2", - "l5 = \"B\"", - "label2:", - "$stack13 = l1", - "$stack12 = l3", - "$stack8 = $stack13 | $stack12", - "if $stack8 == 0 goto label3", - "l5 = \"C\"", - "label3:", - "$stack11 = l4", - "$stack10 = l2", - "$stack9 = $stack11 | $stack10", - "if $stack9 == 0 goto label4", - "l5 = \"D\"", - "label4:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void logicalOpXor(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a ^ b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c ^ d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a ^ c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d ^ b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsLogicalOpXor() { - return Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "$stack6 = l1 ^ l2", - "if $stack6 == 0 goto label1", - "l5 = \"A\"", - "label1:", - "$stack15 = l3", - "$stack14 = l4", - "$stack7 = $stack15 ^ $stack14", - "if $stack7 == 0 goto label2", - "l5 = \"B\"", - "label2:", - "$stack13 = l1", - "$stack12 = l3", - "$stack8 = $stack13 ^ $stack12", - "if $stack8 == 0 goto label3", - "l5 = \"C\"", - "label3:", - "$stack11 = l4", - "$stack10 = l2", - "$stack9 = $stack11 ^ $stack10", - "if $stack9 == 0 goto label4", - "l5 = \"D\"", - "label4:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void ConditionalOpAnd(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a && b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c && d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a && c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d && b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsConditionalOpAnd() { - return Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "if l1 == 0 goto label1", - "if l2 == 0 goto label1", - "l5 = \"A\"", - "label1:", - "$stack8 = l3", - "if $stack8 == 0 goto label2", - "if l4 == 0 goto label2", - "l5 = \"B\"", - "label2:", - "$stack7 = l1", - "if $stack7 == 0 goto label3", - "if l3 == 0 goto label3", - "l5 = \"C\"", - "label3:", - "$stack6 = l4", - "if $stack6 == 0 goto label4", - "if l2 == 0 goto label4", - "l5 = \"D\"", - "label4:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void conditionalOpOr(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a || b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c || d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a || c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d || b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsConditionalOpOr() { - return Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "if l1 != 0 goto label1", - "if l2 == 0 goto label2", - "label1:", - "$stack12 = \"A\"", - "l5 = $stack12", - "label2:", - "$stack11 = l3", - "if $stack11 != 0 goto label3", - "if l4 == 0 goto label4", - "label3:", - "$stack10 = \"B\"", - "l5 = $stack10", - "label4:", - "$stack9 = l1", - "if $stack9 != 0 goto label5", - "if l3 == 0 goto label6", - "label5:", - "$stack8 = \"C\"", - "l5 = $stack8", - "label6:", - "$stack7 = l4", - "if $stack7 != 0 goto label7", - "if l2 == 0 goto label8", - "label7:", - "$stack6 = \"D\"", - "l5 = $stack6", - "label8:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void conditionalOp(){
-   *         int i = 5;
-   *         String str = "";
-   *         str = i <10 ? "i less than 10" : "i greater than 10";
-   *     }
-   * 
- */ - public List expectedBodyStmtsConditionalOp() { - return Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 5", - "l2 = \"\"", - "if l1 >= 10 goto label1", - "$stack3 = \"i less than 10\"", - "goto label2", - "label1:", - "$stack3 = \"i greater than 10\"", - "label2:", - "l2 = $stack3", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/BreakInWhileLoopTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/BreakInWhileLoopTest.java deleted file mode 100644 index 3f8a409f485..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/BreakInWhileLoopTest.java +++ /dev/null @@ -1,59 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class BreakInWhileLoopTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "breakInWhileLoop", "void", Collections.emptyList()); - } - - /**
-   * public void breakInWhileLoop() {
-   * int num = 10;
-   * int i = 5;
-   * while (num > 0) {
-   * num--;
-   * if (num == i) {
-   * break;
-   * }
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: BreakInWhileLoop",
-            "l1 = 10",
-            "l2 = 5",
-            "label1:",
-            "$stack3 = l1",
-            "if $stack3 <= 0 goto label2",
-            "l1 = l1 + -1",
-            "if l1 != l2 goto label1",
-            "goto label2",
-            "label2:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/CastingInNumTypesTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/CastingInNumTypesTest.java
deleted file mode 100644
index c8264f706de..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/CastingInNumTypesTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class CastingInNumTypesTest extends MinimalBytecodeTestSuiteBase {
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "displayNum", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * public void displayNum(){
-   * byte num1 =1;
-   * short num2=2;
-   * int num3= 3;
-   * long num4=4551598461l;
-   * float num5= 5.4f;
-   * double num6= 4551595484654646464654684664646846713431.265;
-   *
-   * System.out.println(num1);
-   * System.out.println((byte)num3);
-   * System.out.println((double)num2);
-   * System.out.println((short)num4);
-   * System.out.println((double)num5);
-   * System.out.println((int)num4);
-   * System.out.println((float) num6);
-   * System.out.println(num6);
-   *
-   * double d = 4786777867867868654674678346734763478673478654478967.77;
-   * System.out.println((float)d);
-   * System.out.println((long)d);
-   * System.out.println((int)d);
-   * System.out.println((short)d);
-   * System.out.println((byte)d);
-   *
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: CastingInNumTypes", - "l1 = 1", - "l2 = 2", - "l3 = 3", - "l4 = 4551598461L", - "l6 = 5.4F", - "l7 = 4.5515954846546467E39", - "$stack11 = ", - "virtualinvoke $stack11.(l1)", - "$stack13 = ", - "$stack12 = (byte) l3", - "virtualinvoke $stack13.($stack12)", - "$stack15 = ", - "$stack14 = (double) l2", - "virtualinvoke $stack15.($stack14)", - "$stack18 = ", - "$stack16 = (int) l4", - "$stack17 = (short) $stack16", - "virtualinvoke $stack18.($stack17)", - "$stack20 = ", - "$stack19 = (double) l6", - "virtualinvoke $stack20.($stack19)", - "$stack22 = ", - "$stack21 = (int) l4", - "virtualinvoke $stack22.($stack21)", - "$stack24 = ", - "$stack23 = (float) l7", - "virtualinvoke $stack24.($stack23)", - "$stack25 = ", - "virtualinvoke $stack25.(l7)", - "l9 = 4.7867778678678685E51", - "$stack27 = ", - "$stack26 = (float) l9", - "virtualinvoke $stack27.($stack26)", - "$stack29 = ", - "$stack28 = (long) l9", - "virtualinvoke $stack29.($stack28)", - "$stack31 = ", - "$stack30 = (int) l9", - "virtualinvoke $stack31.($stack30)", - "$stack34 = ", - "$stack32 = (int) l9", - "$stack33 = (short) $stack32", - "virtualinvoke $stack34.($stack33)", - "$stack37 = ", - "$stack35 = (int) l9", - "$stack36 = (byte) $stack35", - "virtualinvoke $stack37.($stack36)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/CharLiteralsTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/CharLiteralsTest.java deleted file mode 100644 index 43dc6c1e3ff..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/CharLiteralsTest.java +++ /dev/null @@ -1,137 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class CharLiteralsTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("charCharacter")); - assertJimpleStmts(method, expectedBodyStmtsCharCharacter()); - - method = loadMethod(getMethodSignature("charSymbol")); - assertJimpleStmts(method, expectedBodyStmtsCharSymbol()); - - method = loadMethod(getMethodSignature("charBackslashT")); - assertJimpleStmts(method, expectedBodyStmtsCharBackslashT()); - - method = loadMethod(getMethodSignature("charBackslash")); - assertJimpleStmts(method, expectedBodyStmtsCharBackslash()); - - method = loadMethod(getMethodSignature("charSingleQuote")); - assertJimpleStmts(method, expectedBodyStmtsCharSingleQuote()); - - method = loadMethod(getMethodSignature("charUnicode")); - assertJimpleStmts(method, expectedBodyStmtsCharUnicode()); - - method = loadMethod(getMethodSignature("specialChar")); - assertJimpleStmts(method, expectedBodyStmtsSpecialChar()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void charCharacter(){
-   *         char val = 'a';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharCharacter() { - return Stream.of("l0 := @this: CharLiterals", "l1 = 97", "return").collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charSymbol(){
-   *         char val = '%';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharSymbol() { - return Stream.of("l0 := @this: CharLiterals", "l1 = 37", "return").collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charBackslashT(){ char val = '\t'; }
-   * 
- */ - public List expectedBodyStmtsCharBackslashT() { - return Stream.of("l0 := @this: CharLiterals", "l1 = 9", "return").collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charBackslash(){
-   *         char val = '\\';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharBackslash() { - return Stream.of("l0 := @this: CharLiterals", "l1 = 92", "return").collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charSingleQuote(){
-   *         char val = '\'';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharSingleQuote() { - return Stream.of("l0 := @this: CharLiterals", "l1 = 39", "return").collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charUnicode(){
-   *         char val = '\u03a9';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharUnicode() { - return Stream.of("l0 := @this: CharLiterals", "l1 = 937", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void specialChar(){
-   *         char val = '™';
-   *     }
-   * 
- */ - public List expectedBodyStmtsSpecialChar() { - return Stream.of("l0 := @this: CharLiterals", "l1 = 8482", "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java deleted file mode 100644 index 88a3bfa0d1b..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ContinueInWhileLoopTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "continueInWhileLoop", "void", Collections.emptyList()); - } - - /**
-   * public void continueInWhileLoop(){
-   * int num = 0;
-   * while (num < 10) {
-   * if (num == 5) {
-   * num++;
-   * continue;
-   * }
-   * num++;
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: ContinueInWhileLoop",
-            "l1 = 0",
-            "label1:",
-            "$stack3 = l1",
-            "$stack2 = 10",
-            "if $stack3 >= $stack2 goto label3",
-            "if l1 != 5 goto label2",
-            "l1 = l1 + 1",
-            "goto label1",
-            "label2:",
-            "l1 = l1 + 1",
-            "goto label1",
-            "label3:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/CreateNewInstanceTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/CreateNewInstanceTest.java
deleted file mode 100644
index 8060213f88b..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/CreateNewInstanceTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class CreateNewInstanceTest extends MinimalBytecodeTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "createNewInstance", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * public void createNewInstance(){
-   * Person person = new Person(20);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: CreateNewInstance", - "$stack2 = new Person", - "specialinvoke $stack2.(int)>(20)", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareConstructorTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareConstructorTest.java deleted file mode 100644 index 268fee59351..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareConstructorTest.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareConstructorTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignatureInitOneParam() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Collections.singletonList("int")); - } - - public MethodSignature getMethodSignatureInitTwoParam() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Arrays.asList("int", "int")); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignatureInitOneParam()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getMethodSignatureInitTwoParam()); - assertJimpleStmts(method, expectedBodyStmts1()); - } - - /** - * - * - *
-   * public DeclareConstructor(int var1){
-   *         this.var1=var1;
-   *         this.var2=0;
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareConstructor", - "l1 := @parameter0: int", - "specialinvoke l0.()>()", - "l0. = l1", - "l0. = 0", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public DeclareConstructor(int var1, int var2){
-   *         this.var1=var1;
-   *         this.var2=var2;
-   *     }
-   * 
- */ - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: DeclareConstructor", - "l1 := @parameter0: int", - "l2 := @parameter1: int", - "specialinvoke l0.()>()", - "l0. = l1", - "l0. = l2", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareEnumTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareEnumTest.java deleted file mode 100644 index e0019ecaacb..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareEnumTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareEnumTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootClass sc = - loadClass( - JavaIdentifierFactory.getInstance() - .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$Type")); - assertTrue(sc.isEnum()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareEnum", "void", Collections.emptyList()); - } - - /**
-   * public void declareEnum(){
-   * for(Type type:Type.values()){
-   * System.out.println(type);
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return super.expectedBodyStmts(
-        "l0 := @this: DeclareEnum",
-        "l1 = staticinvoke ()",
-        "l2 = lengthof l1",
-        "l3 = 0",
-        "label1:",
-        "$stack7 = l3",
-        "$stack6 = l2",
-        "if $stack7 >= $stack6 goto label2",
-        "l4 = l1[l3]",
-        "$stack5 = ",
-        "virtualinvoke $stack5.(l4)",
-        "l3 = l3 + 1",
-        "goto label1",
-        "label2:",
-        "return");
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java
deleted file mode 100644
index 6372153e37c..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java
+++ /dev/null
@@ -1,211 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertTrue;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.java.core.JavaIdentifierFactory;
-import de.upb.swt.soot.java.core.JavaSootClass;
-import de.upb.swt.soot.java.core.JavaSootMethod;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class DeclareEnumWithConstructorTest extends MinimalBytecodeTestSuiteBase {
-
-  public MethodSignature getInitMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "", "void", Collections.emptyList());
-  }
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "getValue", "int", Collections.emptyList());
-  }
-
-  public MethodSignature getMainMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(),
-        "main",
-        "void",
-        Collections.singletonList("java.lang.String[]"));
-  }
-
-  public MethodSignature getEnumConstructorSignature() {
-    return identifierFactory.getMethodSignature(
-        identifierFactory.getClassType("DeclareEnumWithConstructor$Number"),
-        "",
-        "void",
-        Collections.emptyList());
-  }
-
-  public MethodSignature getEnumGetValueSignature() {
-    return identifierFactory.getMethodSignature(
-        identifierFactory.getClassType("DeclareEnumWithConstructor$Number"),
-        "getValue",
-        "int",
-        Collections.emptyList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod sootMethod = loadMethod(getInitMethodSignature());
-    assertJimpleStmts(sootMethod, expectedBodyStmts());
-
-    sootMethod = loadMethod(getMainMethodSignature());
-    assertJimpleStmts(sootMethod, expectedMainBodyStmts());
-
-    sootMethod = loadMethod(getEnumConstructorSignature());
-    assertJimpleStmts(sootMethod, expectedEnumConstructorStmts());
-
-    sootMethod = loadMethod(getEnumGetValueSignature());
-    assertJimpleStmts(sootMethod, expectedGetValueStmts());
-    JavaSootClass sootClass =
-        loadClass(
-            JavaIdentifierFactory.getInstance()
-                .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$Number"));
-    assertTrue(sootClass.isEnum());
-
-    final Set methods = sootClass.getMethods();
-    assertTrue(methods.stream().anyMatch(m -> m.getSignature().getName().equals("getValue")));
-  }
-
-  /**
-   *
-   *
-   * 
    public void declareEnum(){
-   * for(Type type:Type.values()){
-   * System.out.println(type);
-   * }
-   * }
-   * }
-   * 
- */ - /** - * - * - *
        private int getValue() {
-   * return value;
-   * }
-   * 
- */ - - /** - * - * - *
-   * public void declareEnum(){
-   * for(Type type:Type.values()){
-   * System.out.println(type);
-   * }
-   * }
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareEnumWithConstructor", - "specialinvoke l0.()>()", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public static void main(String[] args) {
-   *         Number number = Number.ONE;
-   *         System.out.println(number.getValue());
-   *     }
-   * 
- */ - public List expectedMainBodyStmts() { - return Stream.of( - "l0 := @parameter0: java.lang.String[]", - "l1 = ", - "$stack2 = ", - "$stack3 = staticinvoke (l1)", - "virtualinvoke $stack2.($stack3)", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public enum Number{
-   *         ZERO(0),
-   *         ONE(1),
-   *         TWO(2),
-   *         THREE(3);
-   *         private int value;
-   *         Number(int value){
-   *             this.value=value;
-   *         }
-   *  }
-   * 
- */ - public List expectedEnumConstructorStmts() { - return Stream.of( - "$stack0 = new DeclareEnumWithConstructor$Number", - "specialinvoke $stack0.(java.lang.String,int,int)>(\"ZERO\", 0, 0)", - " = $stack0", - "$stack1 = new DeclareEnumWithConstructor$Number", - "specialinvoke $stack1.(java.lang.String,int,int)>(\"ONE\", 1, 1)", - " = $stack1", - "$stack2 = new DeclareEnumWithConstructor$Number", - "specialinvoke $stack2.(java.lang.String,int,int)>(\"TWO\", 2, 2)", - " = $stack2", - "$stack3 = new DeclareEnumWithConstructor$Number", - "specialinvoke $stack3.(java.lang.String,int,int)>(\"THREE\", 3, 3)", - " = $stack3", - "$stack4 = newarray (DeclareEnumWithConstructor$Number)[4]", - "$stack5 = ", - "$stack4[0] = $stack5", - "$stack6 = ", - "$stack4[1] = $stack6", - "$stack7 = ", - "$stack4[2] = $stack7", - "$stack8 = ", - "$stack4[3] = $stack8", - " = $stack4", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
public enum Number{
-   *         ZERO(0),
-   *         ONE(1),
-   *         TWO(2),
-   *         THREE(3);
-   *         private int value;
-   *
-   *     private int getValue() {
-   *             return value;
-   *         }
-   *         }
-   * 
- */ - public List expectedGetValueStmts() { - return Stream.of( - "l0 := @this: DeclareEnumWithConstructor$Number", - "$stack1 = l0.", - "return $stack1") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareFieldTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareFieldTest.java deleted file mode 100644 index 5e7a2afd139..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareFieldTest.java +++ /dev/null @@ -1,97 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareFieldTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "display", "void", Collections.emptyList()); - } - - public MethodSignature getStaticMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticDisplay", "void", Collections.emptyList()); - } - - @org.junit.Test - public void test() { - SootMethod method1 = loadMethod(getMethodSignature()); - assertJimpleStmts(method1, expectedBodyStmts()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getStaticMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts1()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> { - return sootField.getModifiers().contains(Modifier.PRIVATE) - && sootField.getModifiers().contains(Modifier.STATIC) - && sootField.getName().equals("i"); - })); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> { - return sootField.getModifiers().contains(Modifier.PUBLIC) - && sootField.getModifiers().contains(Modifier.FINAL) - && sootField.getName().equals("s"); - })); - } - - /** - * - * - *
-   *     public void display(){
-   *         System.out.println(s);
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareField", - "$stack1 = ", - "virtualinvoke $stack1.(\"Java\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void staticDisplay(){
-   *         System.out.println(i);
-   *     }
-   * 
- */ - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: DeclareField", - "$stack2 = ", - "$stack1 = ", - "virtualinvoke $stack2.($stack1)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareFloatTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareFloatTest.java deleted file mode 100644 index c8c0121b6e2..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareFloatTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareFloatTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareFloatMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * void declareFloatMethod(){
-   * System.out.println(f1);
-   * System.out.println(f2);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareFloat", - "$stack2 = ", - "$stack1 = l0.", - "virtualinvoke $stack2.($stack1)", - "$stack4 = ", - "$stack3 = l0.", - "virtualinvoke $stack4.($stack3)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareInnerClassTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareInnerClassTest.java deleted file mode 100644 index a60915846b8..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareInnerClassTest.java +++ /dev/null @@ -1,80 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareInnerClassTest extends MinimalBytecodeTestSuiteBase { - - final JavaClassType innerClassType = - JavaIdentifierFactory.getInstance() - .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$InnerClass"); - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodDisplayOuter", "void", Collections.emptyList()); - } - - public MethodSignature getInnerMethodSignature() { - return identifierFactory.getMethodSignature( - innerClassType, "methodDisplayInner", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = loadMethod(getInnerMethodSignature()); - assertJimpleStmts(method, expectedInnerClassBodyStmts()); - } - - /** - * - * - *
-   *     public void methodDisplayOuter(){
-   *         System.out.println("methodDisplayOuter");
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareInnerClass", - "$stack1 = ", - "virtualinvoke $stack1.(\"methodDisplayOuter\")", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void methodDisplayInner(){
-   *             System.out.println("methodDisplayInner");
-   *         }
-   * 
- */ - public List expectedInnerClassBodyStmts() { - return Stream.of( - "l0 := @this: DeclareInnerClass$InnerClass", - "$stack1 = ", - "virtualinvoke $stack1.(\"methodDisplayInner\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareIntTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareIntTest.java deleted file mode 100644 index 82664048d43..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareIntTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareIntTest extends MinimalBytecodeTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareIntMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * void declareIntMethod(){
-   * System.out.println(dec);
-   * System.out.println(hex);
-   * System.out.println(oct);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareInt", - "$stack2 = ", - "$stack1 = l0.", - "virtualinvoke $stack2.($stack1)", - "$stack4 = ", - "$stack3 = l0.", - "virtualinvoke $stack4.($stack3)", - "$stack6 = ", - "$stack5 = l0.", - "virtualinvoke $stack6.($stack5)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareLongTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareLongTest.java deleted file mode 100644 index fe8ee41f768..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DeclareLongTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareLongTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareLongMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * void declareLongMethod(){
-   * System.out.println(l1);
-   * System.out.println(l2);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareLong", - "$stack2 = ", - "$stack1 = l0.", - "virtualinvoke $stack2.($stack1)", - "$stack4 = ", - "$stack3 = l0.", - "virtualinvoke $stack4.($stack3)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DoWhileLoopTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DoWhileLoopTest.java deleted file mode 100644 index 90e6d2eb5b3..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/DoWhileLoopTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DoWhileLoopTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "doWhileLoop", "void", Collections.emptyList()); - } - - /**
-   * public void doWhileLoop() {
-   * int num = 10;
-   * int i = 0;
-   * do {
-   * i++;
-   * } while (num > i);
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: DoWhileLoop",
-            "l1 = 10",
-            "l2 = 0",
-            "label1:",
-            "l2 = l2 + 1",
-            "$stack4 = l1",
-            "$stack3 = l2",
-            "if $stack4 > $stack3 goto label1",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/EmptyStatementTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/EmptyStatementTest.java
deleted file mode 100644
index 158c97aeadb..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/EmptyStatementTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class EmptyStatementTest extends MinimalBytecodeTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "emptyStatement", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * public void emptyStatement(){
-   * int num  = 5;;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: EmptyStatement", "l1 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java deleted file mode 100644 index 69ce32e2c3f..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java +++ /dev/null @@ -1,183 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class EscapeSequencesInStringTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("escapeBackslashB")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashB()); - - method = loadMethod(getMethodSignature("escapeBackslashT")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashT()); - - method = loadMethod(getMethodSignature("escapeBackslashN")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashN()); - - method = loadMethod(getMethodSignature("escapeBackslashF")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashF()); - - method = loadMethod(getMethodSignature("escapeBackslashR")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashR()); - - method = loadMethod(getMethodSignature("escapeDoubleQuotes")); - assertJimpleStmts(method, expectedBodyStmtsEscapeDoubleQuotes()); - - method = loadMethod(getMethodSignature("escapeSingleQuote")); - assertJimpleStmts(method, expectedBodyStmtsEscapeSingleQuote()); - - method = loadMethod(getMethodSignature("escapeBackslash")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslash()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void escapeBackslashB(){
-   *         String str = "This escapes backslash b \b";
-   *     }
-   *     
- */ - public List expectedBodyStmtsEscapeBackslashB() { - return Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash b \\u0008\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeBackslashT(){
-   *         String str = "This escapes backslash t \t";
-   *     }
- */ - public List expectedBodyStmtsEscapeBackslashT() { - return Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash t \\t\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeBackslashN(){
-   *         String str = "This escapes backslash n \n";
-   *     }
- */ - public List expectedBodyStmtsEscapeBackslashN() { - return Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash n \\n\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeBackslashF(){
-   *         String str = "This escapes backslash f \f";
-   *     }
-   *     
- */ - public List expectedBodyStmtsEscapeBackslashF() { - return Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash f \\f\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void escapeBackslashR(){
-   *         String str = "This escapes backslash r \r";
-   *     }
-   * 
- */ - public List expectedBodyStmtsEscapeBackslashR() { - return Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash r \\r\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeDoubleQuotes(){
-   *         String str = "This escapes double quotes \"";
-   *     }
-   * 
- */ - public List expectedBodyStmtsEscapeDoubleQuotes() { - return Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes double quotes \\\"\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeSingleQuote(){
-   *         String str = "This escapes single quote \'";
-   *     }
-   * 
- */ - public List expectedBodyStmtsEscapeSingleQuote() { - return Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes single quote \\'\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeBackslash(){
-   *         String str = "This escapes backslash \\";
-   *     }
-   * 
- */ - public List expectedBodyStmtsEscapeBackslash() { - return Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash \\\\\"", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java deleted file mode 100644 index 9d383340af2..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class EvaluationOrderWithParenthesesTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), - "evaluationOrderWithParentheses", - "void", - Collections.emptyList()); - } - - /** - * - * - *
-   * public void evaluationOrderWithParentheses(){
-   * int b = ((1 + 2) * 3);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: EvaluationOrderWithParentheses", "l1 = 9", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/FinalMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/FinalMethodTest.java deleted file mode 100644 index 0959749d0f6..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/FinalMethodTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class FinalMethodTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - assertTrue(method.isFinal()); - } - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "finalMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * final void finalMethod(){
-   * System.out.println("final method");
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: FinalMethod", - "$stack1 = ", - "virtualinvoke $stack1.(\"final method\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/FinalVariableTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/FinalVariableTest.java deleted file mode 100644 index bf30a4c1173..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/FinalVariableTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class FinalVariableTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "finalVariable", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void finalVariable() {
-   * final int num = 5;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: FinalVariable", "return").collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ForEachLoopTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ForEachLoopTest.java deleted file mode 100644 index e087450513e..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ForEachLoopTest.java +++ /dev/null @@ -1,71 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ForEachLoopTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "forEachLoop", "void", Collections.emptyList()); - } - - /**
-   * public void forEachLoop(){
-   * int[] numArray = {10,20,30,40,50,60,71,80,90};
-   * int count = 0;
-   * for (int item :numArray) {
-   * count++;
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: ForEachLoop",
-            "$stack7 = newarray (int)[9]",
-            "$stack7[0] = 10",
-            "$stack7[1] = 20",
-            "$stack7[2] = 30",
-            "$stack7[3] = 40",
-            "$stack7[4] = 50",
-            "$stack7[5] = 60",
-            "$stack7[6] = 71",
-            "$stack7[7] = 80",
-            "$stack7[8] = 90",
-            "l1 = $stack7",
-            "l2 = 0",
-            "l3 = l1",
-            "l4 = lengthof l3",
-            "l5 = 0",
-            "label1:",
-            "$stack9 = l5",
-            "$stack8 = l4",
-            "if $stack9 >= $stack8 goto label2",
-            "l6 = l3[l5]",
-            "l2 = l2 + 1",
-            "l5 = l5 + 1",
-            "goto label1",
-            "label2:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ForLoopTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ForLoopTest.java
deleted file mode 100644
index ab7a869928d..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ForLoopTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class ForLoopTest extends MinimalBytecodeTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "forLoop", "void", Collections.emptyList());
-  }
-
-  /**  
-   * public void forLoop(){
-   * int j = 10;
-   * int num = 0;
-   * for(int i=0; i*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: ForLoop",
-            "l1 = 10",
-            "l2 = 0",
-            "l3 = 0",
-            "label1:",
-            "$stack5 = l3",
-            "$stack4 = l1",
-            "if $stack5 >= $stack4 goto label2",
-            "l2 = l2 + 1",
-            "l3 = l3 + 1",
-            "goto label1",
-            "label2:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/GenTypeParamTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/GenTypeParamTest.java
deleted file mode 100644
index 4da23505365..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/GenTypeParamTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class GenTypeParamTest extends MinimalBytecodeTestSuiteBase {
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "geneTypeParamDisplay", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * public void geneTypeParamDisplay(){
-   * List output = new ArrayList< Object >(3);
-   * List input = Arrays.asList(1,2,3);
-   * GenTypeParam genTypeParam= new GenTypeParam();
-   * genTypeParam.copy(output,input);
-   * System.out.println(genTypeParam.largestNum(2,8,3));
-   * }
-   *
-   * 
-   */
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: GenTypeParam",
-            "$stack4 = new java.util.ArrayList",
-            "specialinvoke $stack4.(int)>(3)",
-            "l1 = $stack4",
-            "$stack5 = newarray (java.lang.Integer)[3]",
-            "$stack6 = staticinvoke (1)",
-            "$stack5[0] = $stack6",
-            "$stack7 = staticinvoke (2)",
-            "$stack5[1] = $stack7",
-            "$stack8 = staticinvoke (3)",
-            "$stack5[2] = $stack8",
-            "l2 = staticinvoke ($stack5)",
-            "$stack9 = new GenTypeParam",
-            "specialinvoke $stack9.()>()",
-            "l3 = $stack9",
-            "virtualinvoke l3.(l1, l2)",
-            "$stack10 = ",
-            "$stack13 = staticinvoke (2)",
-            "$stack12 = staticinvoke (8)",
-            "$stack11 = staticinvoke (3)",
-            "$stack14 = virtualinvoke l3.($stack13, $stack12, $stack11)",
-            "virtualinvoke $stack10.($stack14)",
-            "return")
-        .collect(Collectors.toCollection(ArrayList::new));
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java
deleted file mode 100644
index 19daa0e8dd5..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class GenericTypeParamOnClassTest extends MinimalBytecodeTestSuiteBase {
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "genericTypeParamOnClass", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * public void genericTypeParamOnClass() {
-   * A a = new A();
-   * a.set(5);
-   * int x = a.get();
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: GenericTypeParamOnClass", - "$stack3 = new GenericTypeParamOnClass$A", - "specialinvoke $stack3.(GenericTypeParamOnClass)>(l0)", - "l1 = $stack3", - "$stack4 = staticinvoke (5)", - "staticinvoke (l1, $stack4)", - "$stack5 = virtualinvoke l1.()", - "$stack6 = (java.lang.Integer) $stack5", - "l2 = virtualinvoke $stack6.()", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java deleted file mode 100644 index 60b34cc8656..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class GenericTypeParamOnMethodTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "genericTypeParamOnMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void genericTypeParamOnMethod() {
-   * a("Hello World");
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: GenericTypeParamOnMethod", - "virtualinvoke l0.(\"Hello World\")", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/IfElseStatementTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/IfElseStatementTest.java deleted file mode 100644 index 375d2ab2a51..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/IfElseStatementTest.java +++ /dev/null @@ -1,308 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class IfElseStatementTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("ifStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfStatement()); - - method = loadMethod(getMethodSignature("ifElseStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseStatement()); - - method = loadMethod(getMethodSignature("ifElseIfStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseIfStatement()); - - method = loadMethod(getMethodSignature("ifElseCascadingStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingStatement()); - - method = loadMethod(getMethodSignature("ifElseCascadingInElseStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingInElseStatement()); - - method = loadMethod(getMethodSignature("ifElseCascadingElseIfStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingElseIfStatement()); - - method = loadMethod(getMethodSignature("ifElseCascadingElseIfInElseStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingElseIfInElseStatement()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "int", Collections.singletonList("int")); - } - - /** - * - * - *
-   *     public int ifStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfStatement() { - return Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "label1:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *  public int ifElseStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }else{
-   *             val = 2;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseStatement() { - return Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "goto label2", - "label1:", - "l2 = 2", - "label2:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseIfStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }else if( a > 123){
-   *             val = 2;
-   *         }else{
-   *             val = 3;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseIfStatement() { - return Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "goto label3", - "label1:", - "if l1 <= 123 goto label2", - "l2 = 2", - "goto label3", - "label2:", - "l2 = 3", - "label3:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseCascadingStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             if(a < 42){
-   *                 val = 11;
-   *             }else{
-   *                 val = 12;
-   *             }
-   *         }else{
-   *             val = 3;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseCascadingStatement() { - return Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label2", - "if l1 >= 42 goto label1", - "l2 = 11", - "goto label3", - "label1:", - "l2 = 12", - "goto label3", - "label2:", - "l2 = 3", - "label3:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseCascadingInElseStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }else{
-   *             if(a < 42){
-   *                 val = 21;
-   *             }else{
-   *                 val = 22;
-   *             }
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseCascadingInElseStatement() { - return Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "goto label3", - "label1:", - "if l1 >= 42 goto label2", - "l2 = 21", - "goto label3", - "label2:", - "l2 = 22", - "label3:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseCascadingElseIfStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             if(a < 42){
-   *                 val = 11;
-   *             }else if(a > 123){
-   *                 val = 12;
-   *             }else{
-   *                 val = 13;
-   *             }
-   *         }else{
-   *             val = 2;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseCascadingElseIfStatement() { - return Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label3", - "if l1 >= 42 goto label1", - "l2 = 11", - "goto label4", - "label1:", - "if l1 <= 123 goto label2", - "l2 = 12", - "goto label4", - "label2:", - "l2 = 13", - "goto label4", - "label3:", - "l2 = 2", - "label4:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseCascadingElseIfInElseStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }else{
-   *             if(a < 42){
-   *                 val = 21;
-   *             }else if(a > 123){
-   *                 val = 22;
-   *             }else{
-   *                 val = 23;
-   *             }
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseCascadingElseIfInElseStatement() { - return Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "goto label4", - "label1:", - "if l1 >= 42 goto label2", - "l2 = 21", - "goto label4", - "label2:", - "if l1 <= 123 goto label3", - "l2 = 22", - "goto label4", - "label3:", - "l2 = 23", - "label4:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InfiniteLoopTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InfiniteLoopTest.java deleted file mode 100644 index 7b25d9febd5..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InfiniteLoopTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Markus Schmidt */ -@Category(Java8Test.class) -public class InfiniteLoopTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stmtLoop", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * void stmtLoop(){
-   * infloop:
-   * break infloop;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: InfiniteLoop", "return").collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java deleted file mode 100644 index dc92b93527a..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java +++ /dev/null @@ -1,404 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class Initialize3DimensionalArraysTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts(method, expectedBodyStmtsIntArrays()); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts(method, expectedBodyStmtsByteArrays()); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts(method, expectedBodyStmtsShortArrays()); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts(method, expectedBodyStmtsLongArrays()); - - method = loadMethod(getMethodSignature("floatArrays")); - assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts(method, expectedBodyStmtsCharArrays()); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts(method, expectedBodyStmtsStringArrays()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void intArrays(){
-   *         int[][][] intArray3D = {{{1, 2, 3},{5, 6}},{{7, 8, 9},{10,11}}};
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntArrays() { - return Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (int[][])[2]", - "$stack3 = newarray (int[])[2]", - "$stack4 = newarray (int)[3]", - "$stack4[0] = 1", - "$stack4[1] = 2", - "$stack4[2] = 3", - "$stack3[0] = $stack4", - "$stack5 = newarray (int)[2]", - "$stack5[0] = 5", - "$stack5[1] = 6", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (int[])[2]", - "$stack7 = newarray (int)[3]", - "$stack7[0] = 7", - "$stack7[1] = 8", - "$stack7[2] = 9", - "$stack6[0] = $stack7", - "$stack8 = newarray (int)[2]", - "$stack8[0] = 10", - "$stack8[1] = 11", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void byteArrays(){
-   *         byte[][][] byteArray3D = {{{7, 8, 9},{10,11}},{{1, 2, 3},{5, 6}}};;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsByteArrays() { - return Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (byte[][])[2]", - "$stack3 = newarray (byte[])[2]", - "$stack4 = newarray (byte)[3]", - "$stack4[0] = 7", - "$stack4[1] = 8", - "$stack4[2] = 9", - "$stack3[0] = $stack4", - "$stack5 = newarray (byte)[2]", - "$stack5[0] = 10", - "$stack5[1] = 11", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (byte[])[2]", - "$stack7 = newarray (byte)[3]", - "$stack7[0] = 1", - "$stack7[1] = 2", - "$stack7[2] = 3", - "$stack6[0] = $stack7", - "$stack8 = newarray (byte)[2]", - "$stack8[0] = 5", - "$stack8[1] = 6", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void shortArrays(){
-   *         short[][][] shortArray3D = {{{10,20},{40,85}},{{56,59},{95,35}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsShortArrays() { - return Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (short[][])[2]", - "$stack3 = newarray (short[])[2]", - "$stack4 = newarray (short)[2]", - "$stack4[0] = 10", - "$stack4[1] = 20", - "$stack3[0] = $stack4", - "$stack5 = newarray (short)[2]", - "$stack5[0] = 40", - "$stack5[1] = 85", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (short[])[2]", - "$stack7 = newarray (short)[2]", - "$stack7[0] = 56", - "$stack7[1] = 59", - "$stack6[0] = $stack7", - "$stack8 = newarray (short)[2]", - "$stack8[0] = 95", - "$stack8[1] = 35", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void longArrays(){
-   *         long[][][] longArray3D = {{{547087L, 654786L},{547287L, 864645L, 6533786L}},{{34565L,234L},{9851L,63543L}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsLongArrays() { - return Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (long[][])[2]", - "$stack3 = newarray (long[])[2]", - "$stack4 = newarray (long)[2]", - "$stack4[0] = 547087L", - "$stack4[1] = 654786L", - "$stack3[0] = $stack4", - "$stack5 = newarray (long)[3]", - "$stack5[0] = 547287L", - "$stack5[1] = 864645L", - "$stack5[2] = 6533786L", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (long[])[2]", - "$stack7 = newarray (long)[2]", - "$stack7[0] = 34565L", - "$stack7[1] = 234L", - "$stack6[0] = $stack7", - "$stack8 = newarray (long)[2]", - "$stack8[0] = 9851L", - "$stack8[1] = 63543L", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatArrays(){
-   *         float[][][] floatrray3D = {{{3.14f, 5.46f}, {2.987f, 4.87f}},{{65.15f,854.18f},{16.51f,58.14f}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatArrays() { - return Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (float[][])[2]", - "$stack3 = newarray (float[])[2]", - "$stack4 = newarray (float)[2]", - "$stack4[0] = 3.14F", - "$stack4[1] = 5.46F", - "$stack3[0] = $stack4", - "$stack5 = newarray (float)[2]", - "$stack5[0] = 2.987F", - "$stack5[1] = 4.87F", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (float[])[2]", - "$stack7 = newarray (float)[2]", - "$stack7[0] = 65.15F", - "$stack7[1] = 854.18F", - "$stack6[0] = $stack7", - "$stack8 = newarray (float)[2]", - "$stack8[0] = 16.51F", - "$stack8[1] = 58.14F", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleArrays(){
-   *         double[][][] doubleArray3D = {{{6.765414d, 9.676565646d},{45.345435d}},{{3.5656d,68.234234d},{68416.651d,65416.5d}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleArrays() { - return Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (double[][])[2]", - "$stack3 = newarray (double[])[2]", - "$stack4 = newarray (double)[2]", - "$stack4[0] = 6.765414", - "$stack4[1] = 9.676565646", - "$stack3[0] = $stack4", - "$stack5 = newarray (double)[1]", - "$stack5[0] = 45.345435", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (double[])[2]", - "$stack7 = newarray (double)[2]", - "$stack7[0] = 3.5656", - "$stack7[1] = 68.234234", - "$stack6[0] = $stack7", - "$stack8 = newarray (double)[2]", - "$stack8[0] = 68416.651", - "$stack8[1] = 65416.5", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void booleanArrays(){
-   *         boolean[][][] boolArray3D = {{{true, false},{true}},{{false,false},{true}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsBooleanArrays() { - return Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (boolean[][])[2]", - "$stack3 = newarray (boolean[])[2]", - "$stack4 = newarray (boolean)[2]", - "$stack4[0] = 1", - "$stack4[1] = 0", - "$stack3[0] = $stack4", - "$stack5 = newarray (boolean)[1]", - "$stack5[0] = 1", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (boolean[])[2]", - "$stack7 = newarray (boolean)[2]", - "$stack7[0] = 0", - "$stack7[1] = 0", - "$stack6[0] = $stack7", - "$stack8 = newarray (boolean)[1]", - "$stack8[0] = 1", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charArrays(){
-   *         char[][][] charArray3D = {{{'A', 'b', '&'},{'c','$'}},{{'2','G'},{'a','%'}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharArrays() { - return Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (char[][])[2]", - "$stack3 = newarray (char[])[2]", - "$stack4 = newarray (char)[3]", - "$stack4[0] = 65", - "$stack4[1] = 98", - "$stack4[2] = 38", - "$stack3[0] = $stack4", - "$stack5 = newarray (char)[2]", - "$stack5[0] = 99", - "$stack5[1] = 36", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (char[])[2]", - "$stack7 = newarray (char)[2]", - "$stack7[0] = 50", - "$stack7[1] = 71", - "$stack6[0] = $stack7", - "$stack8 = newarray (char)[2]", - "$stack8[0] = 97", - "$stack8[1] = 37", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void stringArrays() {
-   *         String[][][] stringArray3D = {{{"Hello World"}, {"Greetings", "Welcome"}}, {{"Future","Soot"},{"UPB","HNI"}}};
-   *     }
-   * 
- */ - public List expectedBodyStmtsStringArrays() { - return Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (java.lang.String[][])[2]", - "$stack3 = newarray (java.lang.String[])[2]", - "$stack4 = newarray (java.lang.String)[1]", - "$stack4[0] = \"Hello World\"", - "$stack3[0] = $stack4", - "$stack5 = newarray (java.lang.String)[2]", - "$stack5[0] = \"Greetings\"", - "$stack5[1] = \"Welcome\"", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (java.lang.String[])[2]", - "$stack7 = newarray (java.lang.String)[2]", - "$stack7[0] = \"Future\"", - "$stack7[1] = \"Soot\"", - "$stack6[0] = $stack7", - "$stack8 = newarray (java.lang.String)[2]", - "$stack8[0] = \"UPB\"", - "$stack8[1] = \"HNI\"", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java deleted file mode 100644 index 7a10be41d5e..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java +++ /dev/null @@ -1,242 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InitializeArraysWhileDeclarationTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts(method, expectedBodyStmtsIntArrays()); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts(method, expectedBodyStmtsByteArrays()); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts(method, expectedBodyStmtsShortArrays()); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts(method, expectedBodyStmtsLongArrays()); - - method = loadMethod(getMethodSignature("floatArrays")); - assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts(method, expectedBodyStmtsCharArrays()); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts(method, expectedBodyStmtsStringArrays()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void intArrays(){
-   *         int[] anArrayOfInts = {1, 2, 3};
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (int)[3]", - "$stack2[0] = 1", - "$stack2[1] = 2", - "$stack2[2] = 3", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void byteArrays(){
-   *         byte[] anArrayOfBytes = {4, 5, 6};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsByteArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (byte)[3]", - "$stack2[0] = 4", - "$stack2[1] = 5", - "$stack2[2] = 6", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void shortArrays(){
-   *         short[] anArrayOfShorts = {10, 20, 30};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsShortArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (short)[3]", - "$stack2[0] = 10", - "$stack2[1] = 20", - "$stack2[2] = 30", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void longArrays(){
-   *         long[] anArrayOfLongs = {547087L, 564645L, 654786L};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsLongArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (long)[3]", - "$stack2[0] = 547087L", - "$stack2[1] = 564645L", - "$stack2[2] = 654786L", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatArrays(){
-   *         float[] anArrayOfFloats = {3.14f, 5.46f, 2.987f, 4.87f};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (float)[4]", - "$stack2[0] = 3.14F", - "$stack2[1] = 5.46F", - "$stack2[2] = 2.987F", - "$stack2[3] = 4.87F", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleArrays(){
-   *         double[] anArrayOfDoubles = {6.765414d, 9.676565646d};
-   *
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (double)[2]", - "$stack2[0] = 6.765414", - "$stack2[1] = 9.676565646", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void booleanArrays(){
-   *         boolean[] anArrayOfBooleans = {true, false};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsBooleanArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (boolean)[2]", - "$stack2[0] = 1", - "$stack2[1] = 0", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * public void charArrays(){ char[] anArrayOfChars = {'A', 'b', '&'}; - * - *

} - */ - public List expectedBodyStmtsCharArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (char)[3]", - "$stack2[0] = 65", - "$stack2[1] = 98", - "$stack2[2] = 38", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *

-   *     public void stringArrays(){
-   *         String[] anArrayOfStrings = {"Hello World", "Greetings"};
-   *     }
-   * 
- */ - public List expectedBodyStmtsStringArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (java.lang.String)[2]", - "$stack2[0] = \"Hello World\"", - "$stack2[1] = \"Greetings\"", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java deleted file mode 100644 index 6a88a90d812..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java +++ /dev/null @@ -1,264 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InitializeArraysWithIndexTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts(method, expectedBodyStmtsIntArrays()); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts(method, expectedBodyStmtsByteArrays()); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts(method, expectedBodyStmtsShortArrays()); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts(method, expectedBodyStmtsLongArrays()); - - method = loadMethod(getMethodSignature("floatArrays")); - - assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts(method, expectedBodyStmtsCharArrays()); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts(method, expectedBodyStmtsStringArrays()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *    public void intArrays(){
-   *         int[] anArrayOfInts = new int[3];
-   *         anArrayOfInts[0] = 1;
-   *         anArrayOfInts[1] = 2;
-   *         anArrayOfInts[2] = 3;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (int)[3]", - "l1[0] = 1", - "l1[1] = 2", - "l1[2] = 3", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void byteArrays(){
-   *         byte[] anArrayOfBytes = new byte[3];
-   *         anArrayOfBytes[0] = 4;
-   *         anArrayOfBytes[1] = 5;
-   *         anArrayOfBytes[2] = 6;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsByteArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (byte)[3]", - "l1[0] = 4", - "l1[1] = 5", - "l1[2] = 6", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void shortArrays(){
-   *         short[] anArrayOfShorts = new short[3];
-   *         anArrayOfShorts[0] = 10;
-   *         anArrayOfShorts[1] = 20;
-   *         anArrayOfShorts[2] = 30;
-   *
-   *     }
- */ - public List expectedBodyStmtsShortArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (short)[3]", - "l1[0] = 10", - "l1[1] = 20", - "l1[2] = 30", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void longArrays(){
-   *         long[] anArrayOfLongs = new long[3];
-   *         anArrayOfLongs[0] = 547087L;
-   *         anArrayOfLongs[1] = 564645L;
-   *         anArrayOfLongs[2] = 654786L;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsLongArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (long)[3]", - "l1[0] = 547087L", - "l1[1] = 564645L", - "l1[2] = 654786L", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatArrays(){
-   *         float[] anArrayOfFloats = new float[4];
-   *         anArrayOfFloats[0] = 3.14f;
-   *         anArrayOfFloats[1] = 5.46f;
-   *         anArrayOfFloats[2] = 2.987f;
-   *         anArrayOfFloats[3] = 4.87f;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (float)[4]", - "l1[0] = 3.14F", - "l1[1] = 5.46F", - "l1[2] = 2.987F", - "l1[3] = 4.87F", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleArrays(){
-   *         double[] anArrayOfDoubles = new double[2];
-   *         anArrayOfDoubles[0] = 6.765414d;
-   *         anArrayOfDoubles[1] = 9.676565646d;
-   *
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (double)[2]", - "l1[0] = 6.765414", - "l1[1] = 9.676565646", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void booleanArrays(){
-   *         boolean[] anArrayOfBooleans = new boolean[2];
-   *         anArrayOfBooleans[0] = true;
-   *         anArrayOfBooleans[1] = false;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsBooleanArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (boolean)[2]", - "l1[0] = 1", - "l1[1] = 0", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charArrays(){
-   *         char[] anArrayOfChars = new char[3];
-   *         anArrayOfChars[0] = 'A';
-   *         anArrayOfChars[1] = 'b';
-   *         anArrayOfChars[2] = '&';
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (char)[3]", - "l1[0] = 65", - "l1[1] = 98", - "l1[2] = 38", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void stringArrays(){
-   *         String[] anArrayOfStrings = new String[2];
-   *         anArrayOfStrings[0] = "Hello World";
-   *         anArrayOfStrings[1] = "Greetings";
-   *     }
-   * 
- */ - public List expectedBodyStmtsStringArrays() { - return Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (java.lang.String)[2]", - "l1[0] = \"Hello World\"", - "l1[1] = \"Greetings\"", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java deleted file mode 100644 index 97d6aff86aa..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java +++ /dev/null @@ -1,307 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InitializeMultidimensionalArraysTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts(method, expectedBodyStmtsIntArrays()); - - method = loadMethod(getMethodSignature("byteArrays")); - - assertJimpleStmts(method, expectedBodyStmtsByteArrays()); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts(method, expectedBodyStmtsShortArrays()); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts(method, expectedBodyStmtsLongArrays()); - - method = loadMethod(getMethodSignature("floatArrays")); - - assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts(method, expectedBodyStmtsCharArrays()); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts(method, expectedBodyStmtsStringArrays()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void intArrays(){
-   *         int[][] anArrayOfInts = {{1, 2, 3},{5, 6},{7, 8, 9}};
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntArrays() { - return Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (int[])[3]", - "$stack3 = newarray (int)[3]", - "$stack3[0] = 1", - "$stack3[1] = 2", - "$stack3[2] = 3", - "$stack2[0] = $stack3", - "$stack4 = newarray (int)[2]", - "$stack4[0] = 5", - "$stack4[1] = 6", - "$stack2[1] = $stack4", - "$stack5 = newarray (int)[3]", - "$stack5[0] = 7", - "$stack5[1] = 8", - "$stack5[2] = 9", - "$stack2[2] = $stack5", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void byteArrays(){
-   *         byte[][] anArrayOfBytes = {{4, 5},{2}};
-   *
-   *     }
- */ - public List expectedBodyStmtsByteArrays() { - return Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (byte[])[2]", - "$stack3 = newarray (byte)[2]", - "$stack3[0] = 4", - "$stack3[1] = 5", - "$stack2[0] = $stack3", - "$stack4 = newarray (byte)[1]", - "$stack4[0] = 2", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
public void shortArrays(){
-   *         short[][] anArrayOfShorts = {{10, 20, 30},{40}};
-   *
-   *     }
- */ - public List expectedBodyStmtsShortArrays() { - return Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (short[])[2]", - "$stack3 = newarray (short)[3]", - "$stack3[0] = 10", - "$stack3[1] = 20", - "$stack3[2] = 30", - "$stack2[0] = $stack3", - "$stack4 = newarray (short)[1]", - "$stack4[0] = 40", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
public void longArrays(){
-   *         long[][] anArrayOfLongs = {{547087L, 654786L},{547287L, 864645L, 6533786L},{34565L,234L}};
-   *
-   *     }
- */ - public List expectedBodyStmtsLongArrays() { - return Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (long[])[3]", - "$stack3 = newarray (long)[2]", - "$stack3[0] = 547087L", - "$stack3[1] = 654786L", - "$stack2[0] = $stack3", - "$stack4 = newarray (long)[3]", - "$stack4[0] = 547287L", - "$stack4[1] = 864645L", - "$stack4[2] = 6533786L", - "$stack2[1] = $stack4", - "$stack5 = newarray (long)[2]", - "$stack5[0] = 34565L", - "$stack5[1] = 234L", - "$stack2[2] = $stack5", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatArrays(){
-   *         float[][] anArrayOfFloats = {{3.14f, 5.46f}, {2.987f, 4.87f}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatArrays() { - return Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (float[])[2]", - "$stack3 = newarray (float)[2]", - "$stack3[0] = 3.14F", - "$stack3[1] = 5.46F", - "$stack2[0] = $stack3", - "$stack4 = newarray (float)[2]", - "$stack4[0] = 2.987F", - "$stack4[1] = 4.87F", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleArrays(){
-   *         double[][] anArrayOfDoubles = {{6.765414d, 9.676565646d},{45.345435d},{3.5656d,68.234234d}};
-   *
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleArrays() { - return Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (double[])[3]", - "$stack3 = newarray (double)[2]", - "$stack3[0] = 6.765414", - "$stack3[1] = 9.676565646", - "$stack2[0] = $stack3", - "$stack4 = newarray (double)[1]", - "$stack4[0] = 45.345435", - "$stack2[1] = $stack4", - "$stack5 = newarray (double)[2]", - "$stack5[0] = 3.5656", - "$stack5[1] = 68.234234", - "$stack2[2] = $stack5", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void booleanArrays(){
-   *         boolean[][] anArrayOfBooleans = {{true, false},{true}};
-   *
-   *     }
- */ - public List expectedBodyStmtsBooleanArrays() { - return Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (boolean[])[2]", - "$stack3 = newarray (boolean)[2]", - "$stack3[0] = 1", - "$stack3[1] = 0", - "$stack2[0] = $stack3", - "$stack4 = newarray (boolean)[1]", - "$stack4[0] = 1", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charArrays(){
-   *         char[][] anArrayOfChars = {{'A', 'b', '&'},{'c','$'},{'2','G'}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharArrays() { - return Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (char[])[3]", - "$stack3 = newarray (char)[3]", - "$stack3[0] = 65", - "$stack3[1] = 98", - "$stack3[2] = 38", - "$stack2[0] = $stack3", - "$stack4 = newarray (char)[2]", - "$stack4[0] = 99", - "$stack4[1] = 36", - "$stack2[1] = $stack4", - "$stack5 = newarray (char)[2]", - "$stack5[0] = 50", - "$stack5[1] = 71", - "$stack2[2] = $stack5", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void stringArrays(){
-   *         String[][] anArrayOfStrings = {{"Hello World"}, {"Greetings", "Welcome"}};
-   *     }
-   * 
- */ - public List expectedBodyStmtsStringArrays() { - return Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (java.lang.String[])[2]", - "$stack3 = newarray (java.lang.String)[1]", - "$stack3[0] = \"Hello World\"", - "$stack2[0] = $stack3", - "$stack4 = newarray (java.lang.String)[2]", - "$stack4[0] = \"Greetings\"", - "$stack4[1] = \"Welcome\"", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InstanceOfCheckTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InstanceOfCheckTest.java deleted file mode 100644 index c5fa451e51b..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InstanceOfCheckTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertEquals; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InstanceOfCheckTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "instanceOfCheckMethod", "void", Collections.emptyList()); - } - - @org.junit.Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - if (sootClass.getSuperclass().isPresent()) { - assertEquals("InstanceOfCheckSuper", sootClass.getSuperclass().get().getClassName()); - } - } - - /** - * - * - *
-   * public void instanceOfCheckMethod(){
-   * InstanceOfCheck obj= new InstanceOfCheck();
-   * System.out.println(obj instanceof InstanceOfCheckSuper);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: InstanceOfCheck", - "$stack2 = new InstanceOfCheck", - "specialinvoke $stack2.()>()", - "l1 = $stack2", - "$stack4 = ", - "$stack3 = l1 instanceof InstanceOfCheckSuper", - "virtualinvoke $stack4.($stack3)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InterfaceImplClassTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InterfaceImplClassTest.java deleted file mode 100644 index 6f6feeab022..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/InterfaceImplClassTest.java +++ /dev/null @@ -1,68 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InterfaceImplClassTest extends MinimalBytecodeTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equalsIgnoreCase("InterfaceImpl"); - })); - } - - /** - * - * - *
-   *
-   * 
- */ - /** - * - * - *
-   * public void interfaceMethod(){
-   * System.out.print("Method from InterfaceImpl is implemented");
-   * System.out.println("Variable from InterfaceImpl is "+a);
-   * };
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: InterfaceImplClass", - "$stack1 = ", - "virtualinvoke $stack1.(\"Method from InterfaceImpl is implemented\")", - "$stack2 = ", - "virtualinvoke $stack2.(\"Variable from InterfaceImpl is 10\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/LabelStatementTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/LabelStatementTest.java deleted file mode 100644 index 9a77e7a067c..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/LabelStatementTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class LabelStatementTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "labelStatement", "void", Collections.emptyList()); - } - - /**
-   * public void labelStatement(){
-   * int num = 20;
-   * int i = 1;
-   * start:
-   * while (i*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: LabelStatement",
-            "l1 = 20",
-            "l2 = 1",
-            "label1:",
-            "$stack5 = l2",
-            "$stack4 = l1",
-            "if $stack5 >= $stack4 goto label3",
-            "$stack3 = l2 % 10",
-            "if $stack3 != 0 goto label2",
-            "goto label3",
-            "label2:",
-            "l2 = l2 + 1",
-            "goto label1",
-            "label3:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/LabelledLoopBreakTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/LabelledLoopBreakTest.java
deleted file mode 100644
index 693a8b013e4..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/LabelledLoopBreakTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class LabelledLoopBreakTest extends MinimalBytecodeTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "labelledLoopBreak", "void", Collections.emptyList());
-  }
-
-  /**  
-   * public void labelledLoopBreak() {
-   * start:
-   * for (int i = 0; i < 5; i++) {
-   * for (int j = 0; j < 5; j++) {
-   * if (i == 1) {
-   * break start;
-   * }
-   * }
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: LabelledLoopBreak",
-            "l1 = 0",
-            "label1:",
-            "$stack4 = l1",
-            "$stack3 = 5",
-            "if $stack4 >= $stack3 goto label5",
-            "l2 = 0",
-            "label2:",
-            "$stack6 = l2",
-            "$stack5 = 5",
-            "if $stack6 >= $stack5 goto label4",
-            "if l1 != 1 goto label3",
-            "goto label5",
-            "label3:",
-            "l2 = l2 + 1",
-            "goto label2",
-            "label4:",
-            "l1 = l1 + 1",
-            "goto label1",
-            "label5:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodAcceptingVarTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodAcceptingVarTest.java
deleted file mode 100644
index 1740c5d9e1f..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodAcceptingVarTest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class MethodAcceptingVarTest extends MinimalBytecodeTestSuiteBase {
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature("short"));
-    assertJimpleStmts(method, expectedBodyStmtsShort());
-
-    method = loadMethod(getMethodSignature("byte"));
-    assertJimpleStmts(method, expectedBodyStmtsByte());
-
-    method = loadMethod(getMethodSignature("char"));
-    assertJimpleStmts(method, expectedBodyStmtsChar());
-
-    method = loadMethod(getMethodSignature("int"));
-    assertJimpleStmts(method, expectedBodyStmtsInt());
-
-    method = loadMethod(getMethodSignature("long"));
-    assertJimpleStmts(method, expectedBodyStmtsLong());
-
-    method = loadMethod(getMethodSignature("float"));
-    assertJimpleStmts(method, expectedBodyStmtsFloat());
-
-    method = loadMethod(getMethodSignature("double"));
-    assertJimpleStmts(method, expectedBodyStmtsDouble());
-  }
-
-  public MethodSignature getMethodSignature(String datatype) {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(),
-        datatype + "Variable",
-        "void",
-        Collections.singletonList(datatype));
-  }
-
-  /**
-   *
-   *
-   * 
-   *    public void shortVariable(short a) {
-   *        a++;
-   * }
-   * 
- */ - public List expectedBodyStmtsShort() { - return Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: short", - "$stack2 = l1 + 1", - "l1 = (short) $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void byteVariable(byte b) {
-   *     b++;
-   * }
-   * 
- */ - public List expectedBodyStmtsByte() { - return Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: byte", - "$stack2 = l1 + 1", - "l1 = (byte) $stack2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void charVariable(char c) {
-   *    c = 'a';
-   * }
-   * 
- */ - public List expectedBodyStmtsChar() { - return Stream.of( - "l0 := @this: MethodAcceptingVar", "l1 := @parameter0: char", "l1 = 97", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void intVariable(int d) {
-   *    d++;
-   * }
-   * 
- */ - public List expectedBodyStmtsInt() { - return Stream.of( - "l0 := @this: MethodAcceptingVar", "l1 := @parameter0: int", "l1 = l1 + 1", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void longVariable(long e) {
-   *     e = 123456777;
-   * }
-   * 
- */ - public List expectedBodyStmtsLong() { - return Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: long", - "l1 = 123456777L", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void floatVariable(float f) {
-   *         f = 7.77f;
-   * }
-   * 
- */ - public List expectedBodyStmtsFloat() { - return Stream.of( - "l0 := @this: MethodAcceptingVar", "l1 := @parameter0: float", "l1 = 7.77F", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void doubleVariable(double g) {
-   *     g = 1.787777777;
-   * }
-   * 
- */ - public List expectedBodyStmtsDouble() { - return Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: double", - "l1 = 1.787777777", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodOverloadingTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodOverloadingTest.java deleted file mode 100644 index 9a3798125ac..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodOverloadingTest.java +++ /dev/null @@ -1,92 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MethodOverloadingTest extends MinimalBytecodeTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "calculate", "int", Arrays.asList("int", "int")); - } - /** @returns the method signature needed for second method in testCase */ - public MethodSignature getMethodSignatureSingleParam() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "calculate", "int", Collections.singletonList("int")); - } - - public MethodSignature getMethodSignatureInit() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = loadMethod(getMethodSignatureSingleParam()); - assertJimpleStmts(method, expectedBodyStmts1()); - - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(sootClass.getMethod(getMethodSignature().getSubSignature()).isPresent()); - assertTrue(sootClass.getMethod(getMethodSignatureSingleParam().getSubSignature()).isPresent()); - assertTrue(sootClass.getMethod(getMethodSignatureInit().getSubSignature()).isPresent()); - assertEquals(3, sootClass.getMethods().size()); - } - - /** - * - * - *
-   * int calculate(int a, int b){
-   * return a+b;
-   *
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MethodOverloading", - "l1 := @parameter0: int", - "l2 := @parameter1: int", - "$stack3 = l1 + l2", - "return $stack3") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   * int calculate(int a){
-   * return a+a;
-   *
-   *  }
-   *  
- */ - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: MethodOverloading", - "l1 := @parameter0: int", - "$stack2 = l1 + l1", - "return $stack2") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodOverridingTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodOverridingTest.java deleted file mode 100644 index 2bb2f201ce2..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodOverridingTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MethodOverridingTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignature() { - - return identifierFactory.getMethodSignature( - identifierFactory.getClassType("MethodOverridingSubclass"), - "calculateArea", - "void", - Collections.emptyList()); - } - - /** - * - * - *
-   * public void calculateArea(){
-   * System.out.println("Inside MethodOverriding-calculateArea()");
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MethodOverridingSubclass", - "$stack1 = ", - "virtualinvoke $stack1.(\"Inside MethodOverridingSubclass-calculateArea()\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodReturningVarTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodReturningVarTest.java deleted file mode 100644 index e2aaebd9d0d..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MethodReturningVarTest.java +++ /dev/null @@ -1,152 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MethodReturningVarTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("short")); - assertJimpleStmts(method, expectedBodyStmtsShort()); - - method = loadMethod(getMethodSignature("byte")); - assertJimpleStmts(method, expectedBodyStmtsByte()); - - method = loadMethod(getMethodSignature("char")); - assertJimpleStmts(method, expectedBodyStmtsChar()); - - method = loadMethod(getMethodSignature("int")); - assertJimpleStmts(method, expectedBodyStmtsInt()); - - method = loadMethod(getMethodSignature("long")); - assertJimpleStmts(method, expectedBodyStmtsLong()); - - method = loadMethod(getMethodSignature("float")); - assertJimpleStmts(method, expectedBodyStmtsFloat()); - - method = loadMethod(getMethodSignature("double")); - assertJimpleStmts(method, expectedBodyStmtsDouble()); - } - - public MethodSignature getMethodSignature(String datatype) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), datatype + "Variable", datatype, Collections.emptyList()); - } - - /** - * - * - *
-   * public short shortVariable() {
-   *         short a = 10;
-   *         return a;
-   *     }
-   * 
- */ - public List expectedBodyStmtsShort() { - return Stream.of("l0 := @this: MethodReturningVar", "l1 = 10", "return l1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public byte byteVariable() {
-   *         byte b = 0;
-   *         return b;
-   *     }
-   * 
- */ - public List expectedBodyStmtsByte() { - return Stream.of("l0 := @this: MethodReturningVar", "l1 = 0", "return l1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public char charVariable() {
-   *         char c = 'a';
-   *         return c;
-   *     }
-   * 
- */ - public List expectedBodyStmtsChar() { - return Stream.of("l0 := @this: MethodReturningVar", "l1 = 97", "return l1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public int intVariable() {
-   *         int d = 512;
-   *         return d;
-   *     }
-   *     
- */ - public List expectedBodyStmtsInt() { - return Stream.of("l0 := @this: MethodReturningVar", "l1 = 512", "return l1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public long longVariable() {
-   *         long e = 123456789;
-   *         return e;
-   *
-   *     }
-   *     
- */ - public List expectedBodyStmtsLong() { - return Stream.of("l0 := @this: MethodReturningVar", "l1 = 123456789L", "return l1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public float floatVariable() {
-   *         float f = 3.14f;
-   *         return f;
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloat() { - return Stream.of("l0 := @this: MethodReturningVar", "l1 = 3.14F", "return l1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public double doubleVariable() {
-   *         double g = 1.96969654d;
-   *         return g;
-   *     }
-   * 
- */ - public List expectedBodyStmtsDouble() { - return Stream.of("l0 := @this: MethodReturningVar", "l1 = 1.96969654", "return l1") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java deleted file mode 100644 index ec63762418b..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MultiInterfaceImplClassTest extends MinimalBytecodeTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equals("InterfaceImplDummy"); - })); - } - - /** - * - * - *
-   * public void interfaceMethod(){
-   * System.out.print("Method from InterfaceImpl is implemented");
-   * System.out.println("Variable from InterfaceImpl is "+a);
-   * };
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MultiInterfaceImplClass", - "$stack1 = ", - "virtualinvoke $stack1.(\"Method from InterfaceImpl is implemented\")", - "$stack2 = ", - "virtualinvoke $stack2.(\"Variable from InterfaceImpl is 10\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java deleted file mode 100644 index 9b0ca4ad42a..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class NamedClassInsideMethodTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "namedClassInsideMethod", "void", Collections.emptyList()); - } - - /**
-   * public void namedClassInsideMethod() {
-   *
-   * class MyMathOperation implements MathOperation {
-   * int i = 0;
-   * public void addition() {
-   * i++;
-   * }
-   * }
-   *
-   * MathOperation myMathOperation = new MyMathOperation();
-   * myMathOperation.addition();
-   *
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: NamedClassInsideMethod",
-            "$stack2 = new NamedClassInsideMethod$1MyMathOperation",
-            "specialinvoke $stack2.(NamedClassInsideMethod)>(l0)",
-            "l1 = $stack2",
-            "interfaceinvoke l1.()",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NativeMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NativeMethodTest.java
deleted file mode 100644
index 6d9158addac..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NativeMethodTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertTrue;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class NativeMethodTest extends MinimalBytecodeTestSuiteBase {
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "returnResult", "int", Collections.singletonList("int"));
-  }
-
-  @Test
-  public void nativeMethod() {
-    SootMethod sootMethod = loadMethod(getMethodSignature());
-    assertTrue(sootMethod.isNative());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java
deleted file mode 100644
index 2c2c5624843..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class NewCodeBlockInMethodTest extends MinimalBytecodeTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "newCodeBlockInMethod", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * public void newCodeBlockInMethod(){
-   * {
-   * int i = 5;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: NewCodeBlockInMethod", "l1 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NoModifierClassTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NoModifierClassTest.java deleted file mode 100644 index 1090e5802dc..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NoModifierClassTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class NoModifierClassTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - JavaSootClass clazz = loadClass(getDeclaredClassSignature()); - // TODO SYNCHRONIZED modifier does not work - // assertEquals(EnumSet.noneOf(Modifier.class), clazz.getModifiers()); - assertTrue(clazz.getMethod(getMethodSignature("private").getSubSignature()).get().isPrivate()); - assertTrue( - clazz.getMethod(getMethodSignature("protected").getSubSignature()).get().isProtected()); - assertTrue(clazz.getMethod(getMethodSignature("public").getSubSignature()).get().isPublic()); - assertTrue( - clazz - .getMethod(getMethodSignature("noModifier").getSubSignature()) - .get() - .getModifiers() - .isEmpty()); - } - - public MethodSignature getMethodSignature(String modifier) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NullVariableTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NullVariableTest.java deleted file mode 100644 index 64d3c075dfc..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/NullVariableTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class NullVariableTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "nullVariable", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void nullVariable(){
-   * String str = null;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: NullVariable", "l1 = null", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/PublicClassTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/PublicClassTest.java deleted file mode 100644 index 40ca718f186..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/PublicClassTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.EnumSet; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class PublicClassTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertEquals(EnumSet.of(Modifier.PUBLIC, Modifier.SYNCHRONIZED), clazz.getModifiers()); - - SootMethod method; - method = clazz.getMethod(getMethodSignature("private").getSubSignature()).get(); - assertTrue(method.isPrivate()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = clazz.getMethod(getMethodSignature("protected").getSubSignature()).get(); - assertTrue(method.isProtected()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = clazz.getMethod(getMethodSignature("public").getSubSignature()).get(); - assertTrue(method.isPublic()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = clazz.getMethod(getMethodSignature("noModifier").getSubSignature()).get(); - assertTrue(method.getModifiers().isEmpty()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - public MethodSignature getMethodSignature(String modifier) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void publicMethod() {
-   *
-   * }
-   * private void privateMethod() {
-   *
-   * }
-   * protected void protectedMethod() {
-   *
-   * }
-   * void noModifierMethod() {
-   *
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: PublicClass", "return").collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java deleted file mode 100644 index d471a512978..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ReferenceVarDeclarationTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringVariable", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void stringVariable() {
-   * String str = "Hello World";
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: ReferenceVarDeclaration", "l1 = \"Hello World\"", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ReferencingThisTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ReferencingThisTest.java deleted file mode 100644 index 0393f4aaae7..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ReferencingThisTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ReferencingThisTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "thisMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * ReferencingThis(){
-   * this(10,20);
-   * System.out.println("this() to invoke current class constructor");
-   * }
-   * ReferencingThis getObject(){
-   * System.out.println("'this' keyword to return the current class instance");
-   * return this;
-   * }
-   * void show(){
-   * System.out.println("'this' keyword as method parameter");
-   * thisDisplay(this);
-   * }
-   * void thisMethod(){
-   * System.out.println(" this keyword as an argument in the constructor call");
-   * ReferencingThis obj= new ReferencingThis(this.a, this.b);
-   * obj.show();
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: ReferencingThis", - "$stack2 = ", - "virtualinvoke $stack2.(\" this keyword as an argument in the constructor call\")", - "$stack3 = new ReferencingThis", - "$stack5 = l0.", - "$stack4 = l0.", - "specialinvoke $stack3.(int,int)>($stack5, $stack4)", - "l1 = $stack3", - "virtualinvoke l1.()", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ReflectionTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ReflectionTest.java deleted file mode 100644 index ede12b1c60f..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ReflectionTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ReflectionTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "checkReflection", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public Reflection(){
-   * s="String";
-   * }
-   * public void checkReflection()  throws  NoSuchMethodException{
-   *
-   * Reflection reflection = new Reflection();
-   * Class reflectionClass = Reflection.class;
-   * System.out.println(reflectionClass);
-   * Constructor constructor = reflectionClass.getConstructor();
-   * System.out.println(constructor.getName());
-   * System.out.println(reflectionClass.getMethods().length);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: Reflection", - "$stack4 = new Reflection", - "specialinvoke $stack4.()>()", - "l1 = $stack4", - "l2 = class \"LReflection;\"", - "$stack5 = ", - "virtualinvoke $stack5.(l2)", - "$stack6 = newarray (java.lang.Class)[0]", - "l3 = virtualinvoke l2.($stack6)", - "$stack7 = ", - "$stack8 = virtualinvoke l3.()", - "virtualinvoke $stack7.($stack8)", - "$stack9 = ", - "$stack10 = virtualinvoke l2.()", - "$stack11 = lengthof $stack10", - "virtualinvoke $stack9.($stack11)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StatementEvalTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StatementEvalTest.java deleted file mode 100644 index f0d34da7423..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StatementEvalTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StatementEvalTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "statementEval", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void statementEval(){
-   * int b = 1;
-   * b = b + (b = 3);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: StatementEval", - "l1 = 1", - "$stack2 = l1", - "l1 = 3", - "l1 = $stack2 + 3", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticImportTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticImportTest.java deleted file mode 100644 index e5039c33445..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticImportTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticImportTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "mathFunctions", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - } - - /** - * - * - *
-   * public void mathFunctions(){
-   * out.println(sqrt(4));
-   * out.println(pow(2,5));
-   * out.println(ceil(5.6));
-   * out.println("Static import for System.out");
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: StaticImport", - "$stack1 = ", - "$stack2 = staticinvoke (4.0)", - "virtualinvoke $stack1.($stack2)", - "$stack3 = ", - "$stack4 = staticinvoke (2.0, 5.0)", - "virtualinvoke $stack3.($stack4)", - "$stack5 = ", - "$stack6 = staticinvoke (5.6)", - "virtualinvoke $stack5.($stack6)", - "$stack7 = ", - "virtualinvoke $stack7.(\"Static import for System.out\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticInitializerTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticInitializerTest.java deleted file mode 100644 index 15d2240980e..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticInitializerTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticInitializerTest extends MinimalBytecodeTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodStaticInitializer", "void", Collections.emptyList()); - } - - public MethodSignature getStaticMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - - assertTrue( - clazz.getFields().stream() - .anyMatch(sootField -> sootField.getName().equals("i") && sootField.isStatic())); - - final SootMethod staticMethod = loadMethod(getStaticMethodSignature()); - assertTrue(staticMethod.isStatic()); - assertJimpleStmts(staticMethod, expectedBodyStmtsOfClinit()); - } - - public List expectedBodyStmtsOfClinit() { - return Stream.of( - " = 5", - "$stack0 = ", - "if $stack0 <= 4 goto label1", - " = 4", - "label1:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * static void methodStaticInitializer(){
-   * System.out.println(i);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "$stack1 = ", - "$stack0 = ", - "virtualinvoke $stack1.($stack0)", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticMethodInvocationTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticMethodInvocationTest.java deleted file mode 100644 index 5b4c6090815..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticMethodInvocationTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticMethodInvocationTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticMethodInvocation", "void", Collections.emptyList()); - } - - /**
-   * public void staticMethodInvocation(){
-   * StaticMethodInvocation.staticmethod();
-   * }
-   * }
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: StaticMethodInvocation",
-            "staticinvoke ()",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticMethodTest.java
deleted file mode 100644
index a8f3db37289..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticMethodTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertTrue;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class StaticMethodTest extends MinimalBytecodeTestSuiteBase {
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "staticMethod", "void", Collections.emptyList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method1 = loadMethod(getMethodSignature());
-    assertJimpleStmts(method1, expectedBodyStmts());
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-    assertTrue(method.isStatic());
-  }
-
-  /**
-   *
-   *
-   * 
-   * static void staticMethod(){
-   * System.out.println("static method");
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "$stack0 = ", - "virtualinvoke $stack0.(\"static method\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticVariableTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticVariableTest.java deleted file mode 100644 index c5a22ad6e6b..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StaticVariableTest.java +++ /dev/null @@ -1,59 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticVariableTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticVariable", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - element -> { - return element.getName().equals("num") && element.isStatic(); - })); - } - - /** - * - * - *
-   * public static void staticVariable(){
-   * System.out.println(num);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "$stack1 = ", - "$stack0 = ", - "virtualinvoke $stack1.($stack0)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StringConcatenationTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StringConcatenationTest.java deleted file mode 100644 index f42faf51d40..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StringConcatenationTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StringConcatenationTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void stringConcatenation(){
-   * String str = "the" + "string";
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: StringConcatenation", "l1 = \"thestring\"", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java deleted file mode 100644 index bcc1a57755d..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StringWithUnicodeCharTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringWithUnicodeChar", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void stringWithUnicodeChar(){
-   * String str = "\u0024"+"123";
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: StringWithUnicodeChar", "l1 = \"$123\"", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SubClassTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SubClassTest.java deleted file mode 100644 index e12e3ab21ab..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SubClassTest.java +++ /dev/null @@ -1,87 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SubClassTest extends MinimalBytecodeTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "subclassMethod", "void", Collections.emptyList()); - } - - /** @returns the method signature needed for second method in testCase */ - public MethodSignature getMethodSignature1() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); - } - - @Test - public void testSuperClassStmts() { - SootMethod m = loadMethod(getMethodSignature1()); - assertJimpleStmts(m, expectedBodyStmts1()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(sootClass.getSuperclass().get().getClassName().equals("SuperClass")); - } - - /** - * - * - *
-   * public void subclassMethod() {
-   * aa=10;
-   * bb=20;
-   * cc=30;
-   * dd=40;
-   * }
-   * public void superclassMethod(){
-   * super.superclassMethod();
-   * a=100;
-   * b=200;
-   * c=300;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: SubClass", - "l0. = 10", - "l0. = 20", - "l0. = 30", - "l0. = 40", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: SubClass", - "specialinvoke l0.()", - "l0. = 100", - "l0. = 200", - "l0. = 300", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SuperClassTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SuperClassTest.java deleted file mode 100644 index 0f28b96ee88..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SuperClassTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SuperClassTest extends MinimalBytecodeTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void superclassMethod() {
-   * a=10;
-   * b=20;
-   * c=30;
-   * d=40;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: SuperClass", - "l0. = 10", - "l0. = 20", - "l0. = 30", - "l0. = 40", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SwitchCaseStatementTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SwitchCaseStatementTest.java deleted file mode 100644 index 6e65ebe5bfe..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SwitchCaseStatementTest.java +++ /dev/null @@ -1,231 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SwitchCaseStatementTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void switchCaseStatementEnum() { - SootMethod method = loadMethod(getMethodSignature("switchCaseStatementEnum")); - assertJimpleStmts( - method, - expectedBodyStmts( - "l0 := @this: SwitchCaseStatement", - "l1 = ", - "l2 = \"\"", - "$stack3 = ", - "$stack4 = virtualinvoke l1.()", - "$stack5 = $stack3[$stack4]", - "switch($stack5)", - "case 1: goto label1", - "case 2: goto label2", - "default: goto label3", - "label1:", - "l2 = \"red\"", - "goto label4", - "label2:", - "l2 = \"green\"", - "goto label4", - "label3:", - "l2 = \"invalid\"", - "label4:", - "return")); - } - - @Test - public void testSwitchInt() { - SootMethod method = loadMethod(getMethodSignature("switchCaseStatementInt")); - assertJimpleStmts( - method, - expectedBodyStmts( - "l0 := @this: SwitchCaseStatement", - "l1 = 5", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label2", - "case 3: goto label3", - "default: goto label4", - "label1:", - "l2 = \"one\"", - "goto label5", - "label2:", - "l2 = \"two\"", - "goto label5", - "label3:", - "l2 = \"three\"", - "goto label5", - "label4:", - "l2 = \"invalid\"", - "label5:", - "return")); - } - - @Test - public void testSwitchCaseWithoutDefault() { - SootMethod method = loadMethod(getMethodSignature("switchCaseWithoutDefault")); - assertJimpleStmts( - method, - expectedBodyStmts( - "l0 := @this: SwitchCaseStatement", - "l1 = 6", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label2", - "case 3: goto label3", - "default: goto label4", - "label1:", - "l2 = \"one\"", - "goto label4", - "label2:", - "l2 = \"two\"", - "goto label4", - "label3:", - "l2 = \"three\"", - "label4:", - "return")); - } - - @Test - public void testSwitchCaseGroupedTargets() { - SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargets")); - assertJimpleStmts( - method, - expectedBodyStmts( - "l0 := @this: SwitchCaseStatement", - "l1 = 7", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label1", - "case 3: goto label2", - "default: goto label3", - "label1:", - "l2 = \"first\"", - "goto label3", - "label2:", - "l2 = \"second\"", - "label3:", - "return")); - } - - @Test - public void testSwitchCaseGroupedTargetsDefault() { - SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargetsDefault")); - assertJimpleStmts( - method, - expectedBodyStmts( - "l0 := @this: SwitchCaseStatement", - "l1 = 8", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label1", - "case 3: goto label2", - "default: goto label3", - "label1:", - "l2 = \"first\"", - "goto label4", - "label2:", - "l2 = \"second\"", - "goto label4", - "label3:", - "l2 = \"other\"", - "label4:", - "return")); - } - - @Test - public void switchCaseStatementCaseIncludingIf() { - SootMethod method = loadMethod(getMethodSignature("switchCaseStatementCaseIncludingIf")); - assertJimpleStmts( - method, - expectedBodyStmts( - "l0 := @this: SwitchCaseStatement", - "l1 = 2", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label3", - "case 3: goto label4", - "default: goto label5", - "label1:", - "l2 = 1", - "if l1 != 666 goto label2", - "l2 = 11", - "goto label6", - "label2:", - "l2 = 12", - "goto label6", - "label3:", - "l2 = 2", - "goto label6", - "label4:", - "l2 = 3", - "goto label6", - "label5:", - "l2 = -1", - "label6:", - "return")); - } - - @Test - public void switchCaseStatementCaseIncludingSwitch() { - SootMethod method = loadMethod(getMethodSignature("switchWithSwitch")); - assertJimpleStmts( - method, - expectedBodyStmts( - "l0 := @this: SwitchCaseStatement", - "l1 = 2", - "switch(l1)", - "case 1: goto label01", - "case 2: goto label05", - "case 3: goto label10", - "default: goto label11", - "label01:", - "switch(l1)", - "case 10: goto label02", - "case 20: goto label03", - "default: goto label04", - "label02:", - "l2 = 11", - "goto label04", - "label03:", - "l2 = 12", - "label04:", - "goto label12", - "label05:", - "l2 = 2", - "switch(l1)", - "case 20: goto label06", - "case 30: goto label07", - "case 40: goto label08", - "default: goto label09", - "label06:", - "l2 = 220", - "goto label09", - "label07:", - "l2 = 230", - "goto label09", - "label08:", - "l2 = 240", - "label09:", - "goto label12", - "label10:", - "l2 = 3", - "goto label12", - "label11:", - "l2 = -1", - "label12:", - "return")); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SynchronizedBlockTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SynchronizedBlockTest.java deleted file mode 100644 index e3a64a1b047..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SynchronizedBlockTest.java +++ /dev/null @@ -1,68 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SynchronizedBlockTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "run", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - /**
-   * public void run()
-   * {
-   * synchronized(msg)
-   * {
-   * System.out.println(msg);
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: SynchronizedBlock",
-            "$stack3 = l0.",
-            "l1 = $stack3",
-            "entermonitor $stack3",
-            "label1:",
-            "$stack5 = ",
-            "$stack4 = l0.",
-            "virtualinvoke $stack5.($stack4)",
-            "$stack6 = l1",
-            "exitmonitor $stack6",
-            "label2:",
-            "goto label5",
-            "label3:",
-            "$stack7 := @caughtexception",
-            "l2 = $stack7",
-            "$stack8 = l1",
-            "exitmonitor $stack8",
-            "label4:",
-            "throw l2",
-            "label5:",
-            "return",
-            "catch java.lang.Throwable from label1 to label2 with label3",
-            "catch java.lang.Throwable from label3 to label4 with label3")
-        .collect(Collectors.toCollection(ArrayList::new));
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SynchronizedMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SynchronizedMethodTest.java
deleted file mode 100644
index 7fd0902402b..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/SynchronizedMethodTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertTrue;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class SynchronizedMethodTest extends MinimalBytecodeTestSuiteBase {
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "run", "void", Collections.emptyList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-    assertTrue(method.isSynchronized());
-  }
-
-  /**  
-   * public synchronized void run()
-   * {
-   * System.out.println("test");
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: SynchronizedMethod",
-            "$stack1 = ",
-            "virtualinvoke $stack1.(\"test\")",
-            "return")
-        .collect(Collectors.toCollection(ArrayList::new));
-  }
-}
diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/TernaryOperatorTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/TernaryOperatorTest.java
deleted file mode 100644
index a490ec1fc82..00000000000
--- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/TernaryOperatorTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class TernaryOperatorTest extends MinimalBytecodeTestSuiteBase {
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "ternaryOperatorMethod", "boolean", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * boolean ternaryOperatorMethod(){
-   * return num < 0 ? false : true;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TernaryOperator", - "$stack1 = l0.", - "if $stack1 >= 0 goto label1", - "$stack2 = 0", - "goto label2", - "label1:", - "$stack2 = 1", - "label2:", - "return $stack2") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java deleted file mode 100644 index d28d1dc3e50..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java +++ /dev/null @@ -1,73 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ThrowExceptionMethodTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "divideByZero", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * void divideByZero() throws ArithmeticException{
-   * int i=8/0;
-   * }
-   * void throwCustomException() throws CustomException {
-   * throw new CustomException("Custom Exception");
-   * }
-   * } catch( CustomException e){
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: ThrowExceptionMethod", "l1 = 8 / 0", "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public MethodSignature getMethodSignature1() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "throwCustomException", "void", Collections.emptyList()); - } - - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: ThrowExceptionMethod", - "$stack1 = new CustomException", - "specialinvoke $stack1.(java.lang.String)>(\"Custom Exception\")", - "throw $stack1") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - assertTrue( - method.getExceptionSignatures().stream() - .anyMatch(classType -> classType.getClassName().equals("ArithmeticException"))); - method = loadMethod(getMethodSignature1()); - assertJimpleStmts(method, expectedBodyStmts1()); - assertTrue( - method.getExceptionSignatures().stream() - .anyMatch(classType -> classType.getClassName().equals("CustomException"))); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/TransientVariableTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/TransientVariableTest.java deleted file mode 100644 index ef1662a1a29..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/TransientVariableTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class TransientVariableTest extends MinimalBytecodeTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "transientVariable", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> - sootField.getName().equals("transientVar") - && sootField.getModifiers().contains(Modifier.TRANSIENT))); - } - - /** - * - * - *
-   * public void transientVariable(){
-   * System.out.println(transientVar);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TransientVariable", - "$stack2 = ", - "$stack1 = l0.", - "virtualinvoke $stack2.($stack1)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/TryCatchFinallyTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/TryCatchFinallyTest.java deleted file mode 100644 index 04f813306e8..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/TryCatchFinallyTest.java +++ /dev/null @@ -1,652 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar, Markus Schmidt */ -@Category(Java8Test.class) -public class TryCatchFinallyTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatch")); - assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatch()); - - sootMethod = loadMethod(getMethodSignature("tryCatchFinally")); - assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinally()); - } - - @Test - public void tryCatchCombined() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchCombined")); - assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchCombined()); - } - - @Test - public void tryCatchFinallyCombined() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyCombined")); - assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinallyCombined()); - } - - @Test - public void tryCatchNested() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNested")); - assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchNested()); - } - - @Test - public void tryCatchFinallyNested() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNested")); - assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinallyNested()); - } - - @Test - public void tryCatchNestedInCatch() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNestedInCatch")); - assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchNestedInCatch()); - } - - @Test - public void tryCatchFinallyNestedInCatch() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInCatch")); - assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinallyNestedInCatch()); - } - - @Test - public void tryCatchFinallyNestedInFinally() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInFinally")); - assertJimpleStmts(sootMethod, expectedBodyStmtsTryCatchFinallyNestedInFinally()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void tryCatch() {
-   *         String str = "";
-   *         try {
-   *             str = "try";
-   *             System.out.println(str);
-   *         } catch (Exception e) {
-   *             str = "catch";
-   *             System.out.println(str);
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsTryCatch() { - return Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"try\"", - "$stack3 = ", - "virtualinvoke $stack3.(l1)", - "label2:", - "goto label4", - "label3:", - "$stack4 := @caughtexception", - "l2 = $stack4", - "l1 = \"catch\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label4:", - "return", - "catch java.lang.Exception from label1 to label2 with label3") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void tryCatchFinally() {
-   *         String str = "";
-   *         try {
-   *             str = "try";
-   *             System.out.println(str);
-   *         } catch (Exception e) {
-   *             str = "catch";
-   *             System.out.println(str);
-   *         } finally {
-   *             str = "finally";
-   *             System.out.println(str);
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsTryCatchFinally() { - return Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label2:", - "l1 = \"finally\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "goto label6", - "label3:", - "$stack8 := @caughtexception", - "l2 = $stack8", - "l1 = \"catch\"", - "$stack9 = ", - "virtualinvoke $stack9.(l1)", - "label4:", - "l1 = \"finally\"", - "$stack10 = ", - "virtualinvoke $stack10.(l1)", - "goto label6", - "label5:", - "$stack6 := @caughtexception", - "l3 = $stack6", - "l1 = \"finally\"", - "$stack7 = ", - "virtualinvoke $stack7.(l1)", - "throw l3", - "label6:", - "return", - "catch java.lang.Exception from label1 to label2 with label3", - "catch java.lang.Throwable from label1 to label2 with label5", - "catch java.lang.Throwable from label3 to label4 with label5") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void tryCatchCombined() {
-   *         String str = "";
-   *         try {
-   *             str = "try";
-   *             System.out.println(str);
-   *         } catch (RuntimeException | StackOverflowError e) {
-   *             str = "catch";
-   *             System.out.println(str);
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsTryCatchCombined() { - return Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"try\"", - "$stack3 = ", - "virtualinvoke $stack3.(l1)", - "label2:", - "goto label4", - "label3:", - "$stack4 := @caughtexception", - "l2 = $stack4", - "l1 = \"catch\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label4:", - "return", - "catch java.lang.RuntimeException from label1 to label2 with label3", - "catch java.lang.StackOverflowError from label1 to label2 with label3") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void tryCatchFinallyCombined() {
-   *         String str = "";
-   *         try {
-   *             str = "try";
-   *             System.out.println(str);
-   *         } catch (RuntimeException | StackOverflowError e) {
-   *             str = "catch";
-   *             System.out.println(str);
-   *         } finally {
-   *             str = "finally";
-   *             System.out.println(str);
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsTryCatchFinallyCombined() { - return Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label2:", - "l1 = \"finally\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "goto label6", - "label3:", - "$stack8 := @caughtexception", - "l2 = $stack8", - "l1 = \"catch\"", - "$stack9 = ", - "virtualinvoke $stack9.(l1)", - "label4:", - "l1 = \"finally\"", - "$stack10 = ", - "virtualinvoke $stack10.(l1)", - "goto label6", - "label5:", - "$stack6 := @caughtexception", - "l3 = $stack6", - "l1 = \"finally\"", - "$stack7 = ", - "virtualinvoke $stack7.(l1)", - "throw l3", - "label6:", - "return", - "catch java.lang.RuntimeException from label1 to label2 with label3", - "catch java.lang.StackOverflowError from label1 to label2 with label3", - "catch java.lang.Throwable from label1 to label2 with label5", - "catch java.lang.Throwable from label3 to label4 with label5") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void tryCatchNested() {
-   *         String str = "";
-   *         try {
-   *             str = "1try";
-   *             System.out.println(str);
-   *             try {
-   *                 str = "2try";
-   *                 System.out.println(str);
-   *             } catch (Exception e) {
-   *                 str = "2catch";
-   *                 System.out.println(str);
-   *             }
-   *         } catch (Exception e) {
-   *             str = "1catch";
-   *             System.out.println(str);
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsTryCatchNested() { - return Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"1try\"", - "$stack3 = ", - "virtualinvoke $stack3.(l1)", - "label2:", - "l1 = \"2try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label3:", - "goto label5", - "label4:", - "$stack7 := @caughtexception", - "l2 = $stack7", - "l1 = \"2catch\"", - "$stack8 = ", - "virtualinvoke $stack8.(l1)", - "label5:", - "goto label7", - "label6:", - "$stack5 := @caughtexception", - "l2 = $stack5", - "l1 = \"1catch\"", - "$stack6 = ", - "virtualinvoke $stack6.(l1)", - "label7:", - "return", - "catch java.lang.Exception from label2 to label3 with label4", - "catch java.lang.Exception from label1 to label5 with label6") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void tryCatchFinallyNested() {
-   *         String str = "";
-   *         try {
-   *             str = "1try";
-   *             System.out.println(str);
-   *             try {
-   *                 str = "2try";
-   *                 System.out.println(str);
-   *             } catch (Exception e) {
-   *                 str = "2catch";
-   *                 System.out.println(str);
-   *             }
-   *         } catch (Exception e) {
-   *             str = "1catch";
-   *             System.out.println(str);
-   *         }finally {
-   *             str = "1finally";
-   *             System.out.println(str);
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsTryCatchFinallyNested() { - return Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"1try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label2:", - "l1 = \"2try\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label3:", - "goto label5", - "label4:", - "$stack12 := @caughtexception", - "l2 = $stack12", - "l1 = \"2catch\"", - "$stack13 = ", - "virtualinvoke $stack13.(l1)", - "label5:", - "$stack14 = \"1finally\"", - "l1 = $stack14", - "$stack6 = ", - "$stack15 = l1", - "virtualinvoke $stack6.($stack15)", - "goto label9", - "label6:", - "$stack9 := @caughtexception", - "l2 = $stack9", - "l1 = \"1catch\"", - "$stack10 = ", - "virtualinvoke $stack10.(l1)", - "label7:", - "l1 = \"1finally\"", - "$stack11 = ", - "virtualinvoke $stack11.(l1)", - "goto label9", - "label8:", - "$stack7 := @caughtexception", - "l3 = $stack7", - "l1 = \"1finally\"", - "$stack8 = ", - "virtualinvoke $stack8.(l1)", - "throw l3", - "label9:", - "return", - "catch java.lang.Exception from label2 to label3 with label4", - "catch java.lang.Exception from label1 to label5 with label6", - "catch java.lang.Throwable from label1 to label5 with label8", - "catch java.lang.Throwable from label6 to label7 with label8") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void tryCatchNestedInCatch() {
-   *         String str = "";
-   *         try {
-   *             str = "1try";
-   *             System.out.println(str);
-   *         } catch (Exception e) {
-   *             str = "1catch";
-   *             System.out.println(str);
-   *             try {
-   *                 str = "2try";
-   *                 System.out.println(str);
-   *             } catch (Exception ex) {
-   *                 str = "2catch";
-   *                 System.out.println(str);
-   *             }
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsTryCatchNestedInCatch() { - return Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"1try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label2:", - "goto label7", - "label3:", - "$stack7 := @caughtexception", - "l2 = $stack7", - "l1 = \"1catch\"", - "$stack8 = ", - "virtualinvoke $stack8.(l1)", - "label4:", - "l1 = \"2try\"", - "$stack9 = ", - "virtualinvoke $stack9.(l1)", - "label5:", - "goto label7", - "label6:", - "$stack5 := @caughtexception", - "l3 = $stack5", - "l1 = \"2catch\"", - "$stack6 = ", - "virtualinvoke $stack6.(l1)", - "label7:", - "return", - "catch java.lang.Exception from label1 to label2 with label3", - "catch java.lang.Exception from label4 to label5 with label6") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void tryCatchFinallyNestedInCatch() {
-   *         String str = "";
-   *         try {
-   *             str = "1try";
-   *             System.out.println(str);
-   *         } catch (Exception e) {
-   *             str = "1catch";
-   *             System.out.println(str);
-   *             try {
-   *                 str = "2try";
-   *                 System.out.println(str);
-   *             } catch (Exception ex) {
-   *                 str = "2catch";
-   *                 System.out.println(str);
-   *             }
-   *         }finally {
-   *             str = "1finally";
-   *             System.out.println(str);
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsTryCatchFinallyNestedInCatch() { - return Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label01:", - "l1 = \"1try\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label02:", - "l1 = \"1finally\"", - "$stack6 = ", - "virtualinvoke $stack6.(l1)", - "goto label10", - "label03:", - "$stack12 := @caughtexception", - "l2 = $stack12", - "l1 = \"1catch\"", - "$stack13 = ", - "virtualinvoke $stack13.(l1)", - "label04:", - "l1 = \"2try\"", - "$stack14 = ", - "virtualinvoke $stack14.(l1)", - "label05:", - "goto label07", - "label06:", - "$stack9 := @caughtexception", - "l3 = $stack9", - "l1 = \"2catch\"", - "$stack10 = ", - "virtualinvoke $stack10.(l1)", - "label07:", - "$stack15 = \"1finally\"", - "l1 = $stack15", - "$stack11 = ", - "$stack16 = l1", - "virtualinvoke $stack11.($stack16)", - "goto label10", - "label08:", - "$stack7 := @caughtexception", - "l4 = $stack7", - "label09:", - "l1 = \"1finally\"", - "$stack8 = ", - "virtualinvoke $stack8.(l1)", - "throw l4", - "label10:", - "return", - "catch java.lang.Exception from label01 to label02 with label03", - "catch java.lang.Exception from label04 to label05 with label06", - "catch java.lang.Throwable from label01 to label02 with label08", - "catch java.lang.Throwable from label03 to label07 with label08", - "catch java.lang.Throwable from label08 to label09 with label08") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void tryCatchFinallyNestedInFinally() {
-   *         String str = "";
-   *         try {
-   *             str = "1try";
-   *             System.out.println(str);
-   *         } catch (Exception e) {
-   *             str = "1catch";
-   *             System.out.println(str);
-   *         }finally {
-   *             str = "1finally";
-   *             System.out.println(str);
-   *             try {
-   *                 str = "2try";
-   *                 System.out.println(str);
-   *             } catch (Exception e) {
-   *                 str = "2catch";
-   *                 System.out.println(str);
-   *             }
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsTryCatchFinallyNestedInFinally() { - return Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label01:", - "l1 = \"1try\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label02:", - "l1 = \"1finally\"", - "$stack6 = ", - "virtualinvoke $stack6.(l1)", - "label03:", - "l1 = \"2try\"", - "$stack7 = ", - "virtualinvoke $stack7.(l1)", - "label04:", - "goto label16", - "label05:", - "$stack20 := @caughtexception", - "l2 = $stack20", - "l1 = \"2catch\"", - "$stack21 = ", - "virtualinvoke $stack21.(l1)", - "goto label16", - "label06:", - "$stack16 := @caughtexception", - "l2 = $stack16", - "l1 = \"1catch\"", - "$stack17 = ", - "virtualinvoke $stack17.(l1)", - "label07:", - "l1 = \"1finally\"", - "$stack18 = ", - "virtualinvoke $stack18.(l1)", - "label08:", - "l1 = \"2try\"", - "$stack19 = ", - "virtualinvoke $stack19.(l1)", - "label09:", - "goto label16", - "label10:", - "$stack14 := @caughtexception", - "l2 = $stack14", - "l1 = \"2catch\"", - "$stack15 = ", - "virtualinvoke $stack15.(l1)", - "goto label16", - "label11:", - "$stack10 := @caughtexception", - "l3 = $stack10", - "l1 = \"1finally\"", - "$stack11 = ", - "virtualinvoke $stack11.(l1)", - "label12:", - "l1 = \"2try\"", - "$stack12 = ", - "virtualinvoke $stack12.(l1)", - "label13:", - "goto label15", - "label14:", - "$stack8 := @caughtexception", - "l4 = $stack8", - "l1 = \"2catch\"", - "$stack9 = ", - "virtualinvoke $stack9.(l1)", - "label15:", - "$stack13 = l3", - "throw $stack13", - "label16:", - "return", - "catch java.lang.Exception from label03 to label04 with label05", - "catch java.lang.Exception from label01 to label02 with label06", - "catch java.lang.Exception from label08 to label09 with label10", - "catch java.lang.Throwable from label01 to label02 with label11", - "catch java.lang.Throwable from label06 to label07 with label11", - "catch java.lang.Exception from label12 to label13 with label14") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/UnaryOpIntTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/UnaryOpIntTest.java deleted file mode 100644 index 29c518e8d0b..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/UnaryOpIntTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class UnaryOpIntTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodUnaryOpInt", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - /** - * TODO Do we need to check the type of variable as int? - * assertTrue(getFields().stream().anyMatch(sootField -> {return - * sootField.getType().equals("int");})); - */ - } - - /** - * - * - *
-   * void methodUnaryOpInt(){
-   * int k = i+j;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: UnaryOpInt", - "$stack3 = l0.", - "$stack2 = l0.", - "l1 = $stack3 + $stack2", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/UncheckedCastTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/UncheckedCastTest.java deleted file mode 100644 index c817f537052..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/UncheckedCastTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class UncheckedCastTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "uncheckedCastDisplay", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void uncheckedCastDisplay(){
-   * List list = Arrays.asList(5,8,9,6);
-   * List intList= list;
-   * System.out.println(intList);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: UncheckedCast", - "$stack3 = newarray (java.lang.Integer)[4]", - "$stack4 = staticinvoke (5)", - "$stack3[0] = $stack4", - "$stack5 = staticinvoke (8)", - "$stack3[1] = $stack5", - "$stack6 = staticinvoke (9)", - "$stack3[2] = $stack6", - "$stack7 = staticinvoke (6)", - "$stack3[3] = $stack7", - "l1 = staticinvoke ($stack3)", - "l2 = l1", - "$stack8 = ", - "virtualinvoke $stack8.(l2)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/UnicodeMethodNameTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/UnicodeMethodNameTest.java deleted file mode 100644 index 4fbc597a27c..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/UnicodeMethodNameTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class UnicodeMethodNameTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public class UnicodeMethodName {
-   *     public void αρετη(){
-   *         System.out.println("this is αρετη method");
-   *     }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: αρετη", - "$r1 = ", - "virtualinvoke $r1.(\"this is αρετη class\")", - "return") - .collect(Collectors.toList()); - } - - @Ignore - public void test() { - /** - * TODO: does only work on a Unicode filesystem - * - *

Exception in thread "main" java.nio.file.InvalidPathException: Illegal char at index - * 1: a?et?.java - */ - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - System.out.println(sootClass.getClassSource().getClassType().getClassName()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VariableDeclarationTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VariableDeclarationTest.java deleted file mode 100644 index b2ed68a23fc..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VariableDeclarationTest.java +++ /dev/null @@ -1,145 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class VariableDeclarationTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("shortVariable")); - assertJimpleStmts(method, expectedBodyStmtsShortVariable()); - - method = loadMethod(getMethodSignature("byteVariable")); - assertJimpleStmts(method, expectedBodyStmtsByteVariable()); - - method = loadMethod(getMethodSignature("charVariable")); - assertJimpleStmts(method, expectedBodyStmtsCharVariable()); - - method = loadMethod(getMethodSignature("intVariable")); - assertJimpleStmts(method, expectedBodyStmtsIntVariable()); - - method = loadMethod(getMethodSignature("longVariable")); - assertJimpleStmts(method, expectedBodyStmtsLongVariable()); - - method = loadMethod(getMethodSignature("floatVariable")); - assertJimpleStmts(method, expectedBodyStmtsFloatVariable()); - - method = loadMethod(getMethodSignature("doubleVariable")); - assertJimpleStmts(method, expectedBodyStmtsDoubleVariable()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *

-   *     public void shortVariable() {
-   *         short a = 10;
-   *     }
-   * 
- */ - public List expectedBodyStmtsShortVariable() { - return Stream.of("l0 := @this: VariableDeclaration", "l1 = 10", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void byteVariable() {
-   *         byte b = 0;
-   *     }
-   * 
- */ - public List expectedBodyStmtsByteVariable() { - return Stream.of("l0 := @this: VariableDeclaration", "l1 = 0", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charVariable() {
-   *         char c = 'a';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharVariable() { - return Stream.of("l0 := @this: VariableDeclaration", "l1 = 97", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void intVariable() {
-   *         int d = 512;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntVariable() { - return Stream.of("l0 := @this: VariableDeclaration", "l1 = 512", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void longVariable() {
-   *         long e = 123456789;
-   *     }
-   * 
- */ - public List expectedBodyStmtsLongVariable() { - return Stream.of("l0 := @this: VariableDeclaration", "l1 = 123456789L", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatVariable() {
-   *         float f = 3.14f;
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatVariable() { - return Stream.of("l0 := @this: VariableDeclaration", "l1 = 3.14F", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleVariable() {
-   *         double g = 1.96969654d;
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleVariable() { - return Stream.of("l0 := @this: VariableDeclaration", "l1 = 1.96969654", "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VariableShadowingTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VariableShadowingTest.java deleted file mode 100644 index ed242475737..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VariableShadowingTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class VariableShadowingTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "variableShadowing", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void variableShadowing(){
-   * int val = num;
-   * int num = 10;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: VariableShadowing", - "l1 = l0.", - "l2 = 10", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VirtualMethodTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VirtualMethodTest.java deleted file mode 100644 index f11f6cbceab..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VirtualMethodTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class VirtualMethodTest extends MinimalBytecodeTestSuiteBase { - - // @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "virtualMethodDemo", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public int getSalary(){ return salary;}
-   * public int getSalary(){
-   * return super.getSalary()+bonus;
-   * }
-   * public int getSalary(){
-   * return super.getSalary()+raise;
-   * }
-   * public void virtualMethodDemo(){
-   * Employee e1= new TempEmployee(1500,150);
-   * Employee e2= new RegEmployee(1500,500);
-   * System.out.println(e1.getSalary());
-   * System.out.println(e2.getSalary());
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: VirtualMethod", - "$stack3 = new TempEmployee", - "specialinvoke $stack3.(int,int)>(1500, 150)", - "l1 = $stack3", - "$stack4 = new RegEmployee", - "specialinvoke $stack4.(int,int)>(1500, 500)", - "l2 = $stack4", - "$stack5 = ", - "$stack6 = virtualinvoke l1.()", - "virtualinvoke $stack5.($stack6)", - "$stack7 = ", - "$stack8 = virtualinvoke l2.()", - "virtualinvoke $stack7.($stack8)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VolatileVariableTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VolatileVariableTest.java deleted file mode 100644 index c049ca5ba98..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/VolatileVariableTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class VolatileVariableTest extends MinimalBytecodeTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "increaseCounter", "int", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> { - return sootField.getName().equals("counter") - && sootField.getModifiers().contains(Modifier.VOLATILE); - })); - } - - /** - * - * - *
-   * public int increaseCounter(){
-   * return counter++;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: VolatileVariable", - "$stack1 = l0.", - "$stack2 = $stack1 + 1", - "l0. = $stack2", - "return $stack1") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/WhileLoopTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/WhileLoopTest.java deleted file mode 100644 index 0b3bdef6744..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/WhileLoopTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class WhileLoopTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "whileLoop", "void", Collections.emptyList()); - } - - /**
-   * public void whileLoop(){
-   * int num = 10;
-   * int i = 0;
-   * while(num>i){
-   * num--;
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "l0 := @this: WhileLoop",
-            "l1 = 10",
-            "l2 = 0",
-            "label1:",
-            "$stack4 = l1",
-            "$stack3 = l2",
-            "if $stack4 <= $stack3 goto label2",
-            "l1 = l1 + -1",
-            "goto label1",
-            "label2:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git "a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" "b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java"
deleted file mode 100644
index de6f3f4d6a1..00000000000
--- "a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java"
+++ /dev/null
@@ -1,50 +0,0 @@
-package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class αρετηTest extends MinimalBytecodeTestSuiteBase {
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * public class αρετη {
-   *     public void αρετηAsClassName(){
-   *         System.out.println("this is αρετη class");
-   *     }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7", - "$stack1 = ", - "virtualinvoke $stack1.(\"this is \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7 class\")", - "return") - .collect(Collectors.toList()); - } - - @Test - // test only works on a filesystem that supports unicode - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java deleted file mode 100644 index cc531526668..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java7; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class BinaryLiteralInIntTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "binaryLiteralInInt", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void binaryLiteralInInt(){
-   * int a = 0b10100001010001011010000101000101;
-   * int b = 0b101;
-   * int c = 0B101;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: BinaryLiteralInInt", "l1 = -1589272251", "l2 = 5", "l3 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/MultiTryCatchTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/MultiTryCatchTest.java deleted file mode 100644 index 27551e8d575..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/MultiTryCatchTest.java +++ /dev/null @@ -1,137 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java7; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MultiTryCatchTest extends MinimalBytecodeTestSuiteBase { - - @Test - public void test() { - SootMethod sootMethod = loadMethod(getMethodSignature()); - assertJimpleStmts(sootMethod, expectedBodyStmts()); - } - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void printFile() throws Exception {
-   * BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"));
-   * try {
-   * String data = "";
-   * int divisor = 10/5;
-   * System.out.println(divisor);
-   * while ((data = bufferedReader.readLine()) != null) {
-   * System.out.println(data);
-   * }
-   * }
-   * catch( IOException | NumberFormatException e){
-   *
-   * }catch (Exception e){
-   *
-   * }finally {
-   * try {
-   * bufferedReader.close();
-   * } catch (IOException e) {
-   * }
-   * }
-   * }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MultiTryCatch", - "$stack6 = new java.io.BufferedReader", - "$stack7 = new java.io.FileReader", - "specialinvoke $stack7.(java.lang.String)>(\"file.txt\")", - "specialinvoke $stack6.(java.io.Reader)>($stack7)", - "l1 = $stack6", - "label01:", - "l2 = \"\"", - "l3 = 2", - "$stack8 = ", - "virtualinvoke $stack8.(l3)", - "label02:", - "$stack11 = l1", - "$stack9 = virtualinvoke $stack11.()", - "l2 = $stack9", - "if $stack9 == null goto label03", - "$stack10 = ", - "virtualinvoke $stack10.(l2)", - "goto label02", - "label03:", - "virtualinvoke l1.()", - "label04:", - "goto label19", - "label05:", - "$stack19 := @caughtexception", - "l2 = $stack19", - "goto label19", - "label06:", - "$stack18 := @caughtexception", - "l2 = $stack18", - "label07:", - "virtualinvoke l1.()", - "label08:", - "goto label19", - "label09:", - "$stack17 := @caughtexception", - "l2 = $stack17", - "goto label19", - "label10:", - "$stack16 := @caughtexception", - "l2 = $stack16", - "label11:", - "virtualinvoke l1.()", - "label12:", - "goto label19", - "label13:", - "$stack15 := @caughtexception", - "l2 = $stack15", - "goto label19", - "label14:", - "$stack13 := @caughtexception", - "l4 = $stack13", - "label15:", - "virtualinvoke l1.()", - "label16:", - "goto label18", - "label17:", - "$stack12 := @caughtexception", - "l5 = $stack12", - "label18:", - "$stack14 = l4", - "throw $stack14", - "label19:", - "return", - "catch java.io.IOException from label03 to label04 with label05", - "catch java.io.IOException from label01 to label03 with label06", - "catch java.lang.NumberFormatException from label01 to label03 with label06", - "catch java.io.IOException from label07 to label08 with label09", - "catch java.lang.Exception from label01 to label03 with label10", - "catch java.io.IOException from label11 to label12 with label13", - "catch java.lang.Throwable from label01 to label03 with label14", - "catch java.io.IOException from label15 to label16 with label17", - "catch java.lang.Throwable from label14 to label15 with label14") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java deleted file mode 100644 index 51d07021f33..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java +++ /dev/null @@ -1,214 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java7; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SwitchCaseStatementWithStringTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "switchCaseStatementString", "void", Collections.emptyList()); - } - - public MethodSignature getMethodSignature2() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "switchCaseStatementInt", "void", Collections.emptyList()); - } - - public MethodSignature getMethodSignature3() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "switchCaseStatementEnum", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *  public void switchCaseStatementString() {
-   *    String key = "something";
-   *    int retVal;
-   *    switch ( key ) {
-   *    case "one":
-   *      retVal = 1;
-   *      break;
-   *    case "two":
-   *      retVal = 2;
-   *      break;
-   *    case "three":
-   *      retVal = 3;
-   *      break;
-   *    default:
-   *      retVal = -1;
-   *    }
-   *  }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: SwitchCaseStatementWithString", - "l1 = \"something\"", - "l3 = l1", - "l4 = -1", - "$stack5 = virtualinvoke l3.()", - "switch($stack5)", - "case 110182: goto label1", - "case 115276: goto label2", - "case 110339486: goto label3", - "default: goto label4", - "label1:", - "$stack9 = virtualinvoke l3.(\"one\")", - "if $stack9 == 0 goto label4", - "l4 = 0", - "goto label4", - "label2:", - "$stack8 = virtualinvoke l3.(\"two\")", - "if $stack8 == 0 goto label4", - "l4 = 1", - "goto label4", - "label3:", - "$stack6 = virtualinvoke l3.(\"three\")", - "if $stack6 == 0 goto label4", - "l4 = 2", - "label4:", - "$stack7 = l4", - "switch($stack7)", - "case 0: goto label5", - "case 1: goto label6", - "case 2: goto label7", - "default: goto label8", - "label5:", - "l2 = 1", - "goto label9", - "label6:", - "l2 = 2", - "goto label9", - "label7:", - "l2 = 3", - "goto label9", - "label8:", - "l2 = -1", - "label9:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *    public void switchCaseStatementInt() {
-   *         int num = 2;
-   *         String str;
-   *         switch (num) {
-   *             case 1:
-   *                 str = "number 1 detected";
-   *                 break;
-   *             case 2:
-   *                 str = "number 2 detected";
-   *                 break;
-   *             case 3:
-   *                 str = "number 3 detected";
-   *                 break;
-   *             default:
-   *                 str = "invalid number";
-   *                 break;
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmts2() { - return Stream.of( - "l0 := @this: SwitchCaseStatementWithString", - "l1 = 2", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label2", - "case 3: goto label3", - "default: goto label4", - "label1:", - "l2 = \"number 1 detected\"", - "goto label5", - "label2:", - "l2 = \"number 2 detected\"", - "goto label5", - "label3:", - "l2 = \"number 3 detected\"", - "goto label5", - "label4:", - "l2 = \"invalid number\"", - "label5:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *       public void switchCaseStatementEnum() {
-   *         String color = "RED";
-   *         String str = "";
-   *         switch (Color.valueOf(color)) {
-   *             case RED:
-   *                 str = "color red detected";
-   *                 break;
-   *             case GREEN:
-   *                 str = "color green detected";
-   *                 break;
-   *             default:
-   *                 str = "invalid color";
-   *                 break;
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmts3() { - return Stream.of( - "l0 := @this: SwitchCaseStatementWithString", - "l1 = \"RED\"", - "l2 = \"\"", - "$stack3 = ", - "$stack4 = staticinvoke (l1)", - "$stack5 = virtualinvoke $stack4.()", - "$stack6 = $stack3[$stack5]", - "switch($stack6)", - "case 1: goto label1", - "case 2: goto label2", - "default: goto label3", - "label1:", - "l2 = \"color red detected\"", - "goto label4", - "label2:", - "l2 = \"color green detected\"", - "goto label4", - "label3:", - "l2 = \"invalid color\"", - "label4:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - - SootMethod method2 = loadMethod(getMethodSignature2()); - assertJimpleStmts(method2, expectedBodyStmts2()); - - SootMethod method3 = loadMethod(getMethodSignature3()); - assertJimpleStmts(method3, expectedBodyStmts3()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/TryWithResourcesTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/TryWithResourcesTest.java deleted file mode 100644 index 5b735b02fb5..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/TryWithResourcesTest.java +++ /dev/null @@ -1,115 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java7; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class TryWithResourcesTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod sootMethod = loadMethod(getMethodSignature()); - assertJimpleStmts(sootMethod, expectedBodyStmts()); - } - - /** - * - * - *
-   * public void printFile() throws Exception{
-   * try(BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"))){
-   * String data = "";
-   * while( (data= bufferedReader.readLine()) != null ){
-   * System.out.println(data);
-   * }
-   * }
-   * }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TryWithResources", - "$stack6 = new java.io.BufferedReader", - "$stack7 = new java.io.FileReader", - "specialinvoke $stack7.(java.lang.String)>(\"file.txt\")", - "specialinvoke $stack6.(java.io.Reader)>($stack7)", - "l1 = $stack6", - "l2 = null", - "label01:", - "l3 = \"\"", - "label02:", - "$stack10 = l1", - "$stack8 = virtualinvoke $stack10.()", - "l3 = $stack8", - "if $stack8 == null goto label03", - "$stack9 = ", - "virtualinvoke $stack9.(l3)", - "goto label02", - "label03:", - "if l1 == null goto label16", - "if l2 == null goto label07", - "label04:", - "virtualinvoke l1.()", - "label05:", - "goto label16", - "label06:", - "$stack15 := @caughtexception", - "l3 = $stack15", - "virtualinvoke l2.(l3)", - "goto label16", - "label07:", - "virtualinvoke l1.()", - "goto label16", - "label08:", - "$stack14 := @caughtexception", - "l3 = $stack14", - "l2 = l3", - "throw l3", - "label09:", - "$stack12 := @caughtexception", - "l4 = $stack12", - "label10:", - "if l1 == null goto label15", - "if l2 == null goto label14", - "label11:", - "virtualinvoke l1.()", - "label12:", - "goto label15", - "label13:", - "$stack11 := @caughtexception", - "l5 = $stack11", - "virtualinvoke l2.(l5)", - "goto label15", - "label14:", - "virtualinvoke l1.()", - "label15:", - "$stack13 = l4", - "throw $stack13", - "label16:", - "return", - "catch java.lang.Throwable from label04 to label05 with label06", - "catch java.lang.Throwable from label01 to label03 with label08", - "catch java.lang.Throwable from label01 to label03 with label09", - "catch java.lang.Throwable from label11 to label12 with label13", - "catch java.lang.Throwable from label08 to label10 with label09") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/UnderscoreInIntTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/UnderscoreInIntTest.java deleted file mode 100644 index 84393f8b472..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java7/UnderscoreInIntTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java7; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class UnderscoreInIntTest extends MinimalBytecodeTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "underscoreInInt", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void underscoreInInt(){
-   * int a = 0b0111_1111_1111_1111_1111_1111_1111_1111;
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("l0 := @this: UnderscoreInInt", "l1 = 2147483647", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/CossiInputTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/CossiInputTest.java deleted file mode 100644 index ee42daa4593..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/CossiInputTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java8; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Bastian Haverkamp */ -@Category(Java8Test.class) -public class CossiInputTest extends MinimalBytecodeTestSuiteBase { - - // FIXME: [bh] convert() in AsmMethodSource does not terminate - // hint: only CossiInput$CossiInputBuilder.build(...) is broken - @Test - @Ignore("FIXME") - public void test() { - // only care if it terminates here.. - - SootClass clazz = loadClass(getDeclaredClassSignature()); - clazz.getMethods().forEach(SootMethod::getBody); - - SootClass innerClazz = - loadClass(JavaIdentifierFactory.getInstance().getClassType("CossiInput$CossiInputBuilder")); - - innerClazz.getMethod("build", Collections.emptyList()).get().getBody(); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java deleted file mode 100644 index 5c167a21199..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java +++ /dev/null @@ -1,87 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java8; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DefaultMethodInterfaceImplTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); - } - - public MethodSignature getDefaultMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "defaultInterfaceMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method1 = loadMethod(getMethodSignature()); - assertJimpleStmts(method1, expectedBodyStmts()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getDefaultMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts1()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equalsIgnoreCase("DefaultMethodInterface"); - })); - } - - /** - * - * - *
-   * public void interfaceMethod(){
-   * System.out.println("Method interfaceMethod() is implemented");
-   * }
-   * public void defaultInterfaceMethod(){
-   *
-   * //Add this line after default methods are supported
-   *
-   * //DefaultMethodInterface.super.defaultInterfaceMethod();
-   *
-   * System.out.println("Method defaultInterfaceMethod() is implemented");
-   * };
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DefaultMethodInterfaceImpl", - "$stack1 = ", - "virtualinvoke $stack1.(\"Method interfaceMethod() is implemented\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: DefaultMethodInterfaceImpl", - "specialinvoke l0.()", - "$stack1 = ", - "virtualinvoke $stack1.(\"Method defaultInterfaceMethod() is implemented\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java deleted file mode 100644 index cc9438985b0..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java8; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar, Bastian Haverkamp */ -@Category(Java8Test.class) -public class MethodAcceptingLamExprTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "lambdaAsParamMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - /** - * - * - *
-   * public void lambdaAsParamMethod(){
-   * //        Percentage percentageValue = (value -> value/100);
-   * //        System.out.println("Percentage : " + percentageValue.calcPercentage(45.0));
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MethodAcceptingLamExpr", - "l1 = dynamicinvoke calcPercentage () (methodtype: double __METHODTYPE__(double), handle: , methodtype: double __METHODTYPE__(double))", - "$stack3 = ", - "$stack2 = new java.lang.StringBuilder", - "specialinvoke $stack2.()>()", - "$stack5 = virtualinvoke $stack2.(\"Percentage : \")", - "$stack4 = interfaceinvoke l1.(45.0)", - "$stack6 = virtualinvoke $stack5.($stack4)", - "$stack7 = virtualinvoke $stack6.()", - "virtualinvoke $stack3.($stack7)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/MethodReferenceTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/MethodReferenceTest.java deleted file mode 100644 index 57880978ebc..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/MethodReferenceTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java8; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MethodReferenceTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodRefMethod", "void", Collections.emptyList()); - } - - /** TODO Update the source code when WALA supports lambda expression */ - - /** - * - * - *
-   * public void methodRefMethod(){
-   * System.out.println("Instance Method");
-   * MethodReference obj1 = new MethodReference();
-   * //Uncomment when WALA supports lambda expression MyInterface ref1 = obj1::methodRefMethod;
-   * //ref1.display();
-   *
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MethodReference", - "$stack1 = ", - "virtualinvoke $stack1.(\"Instance Method\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java deleted file mode 100644 index 8ab6fcc7b40..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java8; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class RepeatingAnnotationsTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "annotaionMethod", "void", Collections.emptyList()); - } - - @Ignore - public void annotationTest() { - // TODO: after annotations are implemented - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); - } - - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: RepeatingAnnotations", "$r1 = \"\"", "$r2 = \"\"", "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java deleted file mode 100644 index c310c86a13c..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java +++ /dev/null @@ -1,106 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java8; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticMethodInterfaceImplTest extends MinimalBytecodeTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), - "methodStaticMethodInterfaceImpl", - "void", - Collections.emptyList()); - } - - private MethodSignature getStaticMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "initStatic", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getStaticMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts1()); - SootMethod staticMethod = loadMethod(getStaticMethodSignature()); - assertJimpleStmts(staticMethod, expectedBodyStmts1()); - assertTrue(staticMethod.isStatic() && staticMethod.getName().equals("initStatic")); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue( - sootClass.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equals("StaticMethodInterface"); - })); - } - - /** - * - * - *
-   *
-   * 
- */ - /** - * - * - *
-   * static void staticMethod(){
-   * System.out.println("static method");
-   * }
-   *
-   * 
- */ - /** - * - * - *
-   * static public void initStatic(){
-   * System.out.println("Inside initStatic - StaticmethodInterface");
-   * }
-   *
-   * 
- */ - /** - * - * - *
-   * static public void initStatic(){
-   * System.out.println("Inside initStatic - StaticmethodInterfaceImpl");
-   * }
-   * public void display(){
-   * System.out.println("Inside display - StaticmethodInterfaceImpl");
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "$stack0 = ", - "virtualinvoke $stack0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", - "return") - .collect(Collectors.toList()); - } - - public List expectedBodyStmts1() { - return Stream.of( - "$stack0 = ", - "virtualinvoke $stack0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java deleted file mode 100644 index 5d4f319ae3a..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java9; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AnonymousDiamondOperatorTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "innerClassDiamond", "int", Collections.emptyList()); - } - - /** - * - * - *
-   * public int innerClassDiamond() {
-   * MyClass obj = new MyClass<>() {
-   * Integer add(Integer x, Integer y) {
-   * return x+y;
-   * }
-   * };
-   * Integer sum = obj.add(22,23);
-   * return sum;
-   * }
-   *
-   * public static void main(String args[]){
-   * AnonymousDiamondOperator obj= new AnonymousDiamondOperator();
-   * System.out.println(obj.innerClassDiamond());
-   *
-   * }
-   *
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: AnonymousDiamondOperator", - "$stack3 = new AnonymousDiamondOperator$1", - "specialinvoke $stack3.(AnonymousDiamondOperator)>(l0)", - "l1 = $stack3", - "$stack5 = staticinvoke (22)", - "$stack4 = staticinvoke (23)", - "$stack6 = virtualinvoke l1.($stack5, $stack4)", - "l2 = (java.lang.Integer) $stack6", - "$stack7 = virtualinvoke l2.()", - "return $stack7") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/DynamicInvokeTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/DynamicInvokeTest.java deleted file mode 100644 index c64399a943e..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/DynamicInvokeTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java9; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class DynamicInvokeTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 = \"This test\"", - "l0 = dynamicinvoke makeConcatWithConstants (l0) (\"\\u0001 is cool\")", - "$stack1 = ", - "virtualinvoke $stack1.(l0)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java deleted file mode 100644 index 82b1115f7a2..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java +++ /dev/null @@ -1,83 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java9; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class PrivateMethodInterfaceImplTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodInterfaceImpl", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue( - sootClass.getInterfaces().stream() - .anyMatch( - javaClassType -> - javaClassType.getClassName().equalsIgnoreCase("PrivateMethodInterface"))); - } - - /** - * - * - *
-   *
-   * 
- */ - /** - * - * - *
-   * public default void methodInterface(int a, int b) {
-   * add(a, b);
-   * sub(a, b);
-   * System.out.println("methodInterface() in PrivateMethodInterface");
-   * }
-   * private void add(int a, int b){
-   * System.out.println(a+b);
-   * }
-   * private static void sub(int a, int b){
-   * System.out.println(a-b);
-   * };
-   *
-   * 
- */ - /** - * - * - *
-   * public void methodInterfaceImpl(){
-   * methodInterface(4,2);
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: PrivateMethodInterfaceImpl", - "virtualinvoke l0.(4, 2)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java b/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java deleted file mode 100644 index f6ba9840c0b..00000000000 --- a/de.upb.swt.soot.java.bytecode/src/test/java/de/upb/swt/soot/test/java/bytecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java +++ /dev/null @@ -1,112 +0,0 @@ -package de.upb.swt.soot.test.java.bytecode.minimaltestsuite.java9; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.bytecode.minimaltestsuite.MinimalBytecodeTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class TryWithResourcesConciseTest extends MinimalBytecodeTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod sootMethod = loadMethod(getMethodSignature()); - assertJimpleStmts(sootMethod, expectedBodyStmts()); - } - - /** - * - * - *
-   * public void printFile() throws Exception{
-   * try(BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"))){
-   * String data = "";
-   * while( (data= bufferedReader.readLine()) != null ){
-   * System.out.println(data);
-   * }
-   * }
-   * }
-   * }
-   * 
- */ - /** - * - * - *
-   * public void printFile() throws Exception {
-   * final BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"));
-   * try(bufferedReader) {
-   * String data = "";
-   * while( (data= bufferedReader.readLine()) != null) {
-   * System.out.println(data);
-   * }
-   * }
-   * }
-   *
-   * public static void main(String[] args) throws  Exception{
-   * TryWithResourcesConcise tryWithResourcesConcise = new TryWithResourcesConcise();
-   * tryWithResourcesConcise.printFile();
-   * }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TryWithResourcesConcise", - "$stack5 = new java.io.BufferedReader", - "$stack6 = new java.io.FileReader", - "specialinvoke $stack6.(java.lang.String)>(\"file.txt\")", - "specialinvoke $stack5.(java.io.Reader)>($stack6)", - "l1 = $stack5", - "l2 = l1", - "label1:", - "l3 = \"\"", - "label2:", - "$stack9 = l1", - "$stack7 = virtualinvoke $stack9.()", - "l3 = $stack7", - "if $stack7 == null goto label3", - "$stack8 = ", - "virtualinvoke $stack8.(l3)", - "goto label2", - "label3:", - "if l2 == null goto label9", - "virtualinvoke l2.()", - "goto label9", - "label4:", - "$stack11 := @caughtexception", - "l3 = $stack11", - "if l2 == null goto label8", - "label5:", - "virtualinvoke l2.()", - "label6:", - "goto label8", - "label7:", - "$stack10 := @caughtexception", - "l4 = $stack10", - "virtualinvoke l3.(l4)", - "label8:", - "$stack12 = l3", - "throw $stack12", - "label9:", - "return", - "catch java.lang.Throwable from label1 to label3 with label4", - "catch java.lang.Throwable from label5 to label6 with label7") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.core/pom.xml b/de.upb.swt.soot.java.core/pom.xml deleted file mode 100644 index 1d1f8d315ca..00000000000 --- a/de.upb.swt.soot.java.core/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - 4.0.0 - - Soot Java Core - soot.java.core - jar - - de.upb.swt - soot - 4.0.0-SNAPSHOT - - - - - - de.upb.swt - soot.core - 4.0.0-SNAPSHOT - - - - - diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaAnnotationSootMethod.java b/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaAnnotationSootMethod.java deleted file mode 100644 index b5dc7c238be..00000000000 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/JavaAnnotationSootMethod.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.upb.swt.soot.java.core; - -import de.upb.swt.soot.core.frontend.BodySource; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - -public class JavaAnnotationSootMethod extends JavaSootMethod { - - public JavaAnnotationSootMethod( - @Nonnull BodySource source, - @Nonnull MethodSignature methodSignature, - @Nonnull Iterable modifiers, - @Nonnull Iterable thrownExceptions, - @Nonnull Iterable annotations, - @Nonnull Position position) { - super(source, methodSignature, modifiers, thrownExceptions, annotations, position); - } - - /** @return returns default value of annotation. May be null, if there is no default value */ - @Nullable - public Object getDefaultValue() { - return this.bodySource.resolveDefaultValue(); - } -} diff --git a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/ModuleInfoAnalysisInputLocation.java b/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/ModuleInfoAnalysisInputLocation.java deleted file mode 100644 index c7ab27c34dc..00000000000 --- a/de.upb.swt.soot.java.core/src/main/java/de/upb/swt/soot/java/core/ModuleInfoAnalysisInputLocation.java +++ /dev/null @@ -1,27 +0,0 @@ -package de.upb.swt.soot.java.core; - -import de.upb.swt.soot.core.frontend.AbstractClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.core.signatures.ModuleSignature; -import java.util.Collection; -import java.util.Optional; -import java.util.Set; -import javax.annotation.Nonnull; - -/** - * @author Markus Schmidt - *

Interface to mark AnalysisInputLocations that are capable of retreiving - * JavaModuleInformations - */ -public interface ModuleInfoAnalysisInputLocation extends AnalysisInputLocation { - - Collection> getModulesClassSources( - @Nonnull ModuleSignature moduleSignature, @Nonnull View view); - - @Nonnull - Optional getModuleInfo(ModuleSignature sig, View view); - - @Nonnull - Set getModules(View view); -} diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/AbstractBinopExpr.java b/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/AbstractBinopExpr.java deleted file mode 100644 index 686ad9ad013..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/jimple/common/AbstractBinopExpr.java +++ /dev/null @@ -1,99 +0,0 @@ -package de.upb.swt.soot.test.core.jimple.common; - -import categories.Java8Test; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Immediate; -import de.upb.swt.soot.core.jimple.basic.JimpleComparator; -import de.upb.swt.soot.core.jimple.common.expr.JEqExpr; -import de.upb.swt.soot.core.jimple.common.expr.JGeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JGtExpr; -import de.upb.swt.soot.core.jimple.common.expr.JLeExpr; -import de.upb.swt.soot.core.jimple.common.expr.JLtExpr; -import de.upb.swt.soot.core.types.PrimitiveType; -import org.junit.Assert; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Bastian Haverkamp */ -@Category(Java8Test.class) -public class AbstractBinopExpr { - - final JimpleComparator comparator = JimpleComparator.getInstance(); - - @Test - public void caseAbstractBinopExpr() { - Immediate b0 = Jimple.newLocal("l0", PrimitiveType.getBoolean()); - Immediate b1 = Jimple.newLocal("l1", PrimitiveType.getBoolean()); - - JEqExpr cond0_1 = Jimple.newEqExpr(b0, b1); - JEqExpr cond0_2 = Jimple.newEqExpr(b0, b1); - JEqExpr cond1 = Jimple.newEqExpr(b1, b0); - - JLtExpr lt0_1 = Jimple.newLtExpr(b0, b1); - JLtExpr lt0_2 = Jimple.newLtExpr(b0, b1); - JLtExpr lt1 = Jimple.newLtExpr(b1, b0); - - JGtExpr gt0_1 = Jimple.newGtExpr(b1, b0); - JGtExpr gt0_2 = Jimple.newGtExpr(b1, b0); - JGtExpr gt1 = Jimple.newGtExpr(b0, b1); - - JLeExpr le0_1 = Jimple.newLeExpr(b0, b1); - JLeExpr let0_2 = Jimple.newLeExpr(b0, b1); - JLeExpr le1 = Jimple.newLeExpr(b1, b0); - - JGeExpr ge0_1 = Jimple.newGeExpr(b1, b0); - JGeExpr ge0_2 = Jimple.newGeExpr(b1, b0); - JGeExpr ge1 = Jimple.newGeExpr(b0, b1); - - String wrongObject = ""; - - // a==b <=> a==b - Assert.assertTrue(comparator.caseAbstractBinopExpr(cond0_1, cond0_2)); - Assert.assertTrue(comparator.caseAbstractBinopExpr(cond0_2, cond0_1)); - // a==b <=> b==a - Assert.assertTrue(comparator.caseAbstractBinopExpr(cond0_1, cond1)); - Assert.assertTrue(comparator.caseAbstractBinopExpr(cond1, cond0_1)); - - // (b0 b1 b0 b1b1 <=> b1>b0) - Assert.assertFalse(comparator.caseAbstractBinopExpr(gt0_1, gt1)); - // (b1>b0 <=> b0>b1) - Assert.assertFalse(comparator.caseAbstractBinopExpr(gt1, gt0_1)); - // b1>b0 <=> b1>b0 - Assert.assertTrue(comparator.caseAbstractBinopExpr(gt0_1, gt0_2)); - Assert.assertTrue(comparator.caseAbstractBinopExpr(gt0_2, gt0_1)); - - // b1 b0>b1 - Assert.assertTrue(comparator.caseAbstractBinopExpr(lt0_1, gt0_1)); - Assert.assertTrue(comparator.caseAbstractBinopExpr(gt0_1, lt0_1)); - - // (b0 b1 b0 b1b1 <=> b1>b0) - Assert.assertFalse(comparator.caseAbstractBinopExpr(ge0_1, ge1)); - // (b1>b0 <=> b0>b1) - Assert.assertFalse(comparator.caseAbstractBinopExpr(ge1, ge0_1)); - // b1>b0 <=> b1>b0 - Assert.assertTrue(comparator.caseAbstractBinopExpr(ge0_1, ge0_2)); - Assert.assertTrue(comparator.caseAbstractBinopExpr(ge0_2, ge0_1)); - - // b1 b0>b1 - Assert.assertTrue(comparator.caseAbstractBinopExpr(le0_1, ge0_1)); - Assert.assertTrue(comparator.caseAbstractBinopExpr(ge0_1, le0_1)); - - Assert.assertFalse(comparator.caseAbstractBinopExpr(cond0_1, wrongObject)); - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/BlockGraphTest.java b/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/BlockGraphTest.java deleted file mode 100644 index b2cddbd74aa..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/BlockGraphTest.java +++ /dev/null @@ -1,424 +0,0 @@ -package de.upb.swt.soot.test.core.model; - -import static org.junit.Assert.*; - -import categories.Java8Test; -import de.upb.swt.soot.core.graph.Block; -import de.upb.swt.soot.core.graph.BlockGraph; -import de.upb.swt.soot.core.jimple.basic.*; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.ref.IdentityRef; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Position; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.types.JavaClassType; -import java.util.*; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Zun Wang */ -@Category(Java8Test.class) -public class BlockGraphTest { - - // Preparation - JavaIdentifierFactory factory = JavaIdentifierFactory.getInstance(); - JavaJimple javaJimple = JavaJimple.getInstance(); - StmtPositionInfo noStmtPositionInfo = StmtPositionInfo.createNoStmtPositionInfo(); - - JavaClassType intType = factory.getClassType("int"); - JavaClassType classType = factory.getClassType("Test"); - MethodSignature methodSignature = - new MethodSignature(classType, "test", Collections.emptyList(), VoidType.getInstance()); - IdentityRef identityRef = JavaJimple.newThisRef(classType); - JavaClassType refType = factory.getClassType("ref"); - IdentityRef caughtExceptionRef = javaJimple.newCaughtExceptionRef(); - ClassType exception = factory.getClassType("Exception"); - - // build locals - Local l0 = JavaJimple.newLocal("l0", intType); - Local l1 = JavaJimple.newLocal("l1", intType); - Local l2 = JavaJimple.newLocal("l2", intType); - Local l3 = JavaJimple.newLocal("l3", intType); - Local l4 = JavaJimple.newLocal("l4", intType); - Local stack5 = JavaJimple.newLocal("stack5", refType); - Local stack6 = JavaJimple.newLocal("stack6", refType); - - Stmt startingStmt = JavaJimple.newIdentityStmt(l0, identityRef, noStmtPositionInfo); - Stmt stmt1 = JavaJimple.newAssignStmt(l1, IntConstant.getInstance(0), noStmtPositionInfo); - Stmt stmt2 = - JavaJimple.newIfStmt( - JavaJimple.newGeExpr(l1, IntConstant.getInstance(0)), noStmtPositionInfo); - Stmt stmt3 = - JavaJimple.newAssignStmt( - l1, JavaJimple.newAddExpr(l1, IntConstant.getInstance(1)), noStmtPositionInfo); - Stmt stmt4 = JavaJimple.newGotoStmt(noStmtPositionInfo); - Stmt stmt5 = - JavaJimple.newAssignStmt( - l1, JavaJimple.newSubExpr(l1, IntConstant.getInstance(1)), noStmtPositionInfo); - Stmt stmt6 = - JavaJimple.newAssignStmt( - l1, JavaJimple.newAddExpr(l1, IntConstant.getInstance(2)), noStmtPositionInfo); - Stmt ret = JavaJimple.newReturnStmt(l1, noStmtPositionInfo); - - Stmt stmt7 = JavaJimple.newAssignStmt(l4, l1, noStmtPositionInfo); - Stmt stmt8 = JavaJimple.newAssignStmt(l3, IntConstant.getInstance(10), noStmtPositionInfo); - Stmt stmt9 = - JavaJimple.newIfStmt(JavaJimple.newGeExpr(l4, l3), noStmtPositionInfo); // branch to ret - Stmt stmt10 = - JavaJimple.newAssignStmt( - l2, JavaJimple.newAddExpr(l1, IntConstant.getInstance(1)), noStmtPositionInfo); - Stmt stmt11 = - JavaJimple.newAssignStmt( - l1, JavaJimple.newAddExpr(l2, IntConstant.getInstance(1)), noStmtPositionInfo); - Stmt gotoStmt1 = JavaJimple.newGotoStmt(noStmtPositionInfo); - Stmt gotoStmt2 = JavaJimple.newGotoStmt(noStmtPositionInfo); - - Stmt stack5Stmt = JavaJimple.newIdentityStmt(stack5, caughtExceptionRef, noStmtPositionInfo); - Stmt stack6Stmt = JavaJimple.newIdentityStmt(stack6, caughtExceptionRef, noStmtPositionInfo); - - Trap trap1 = new Trap(exception, stmt1, ret, stack5Stmt); - Trap trap2 = new Trap(exception, stmt10, stmt7, stack6Stmt); - - @Test - public void testBlockGraphWithBranch() { - Body body = createBBBody(); - BlockGraph graph = new BlockGraph(body.getStmtGraph()); - - // expected Blocks in BlockGraph - Block eblock1 = new Block(startingStmt, stmt2); - Block eblock2 = new Block(stmt5, stmt6); - Block eblock3 = new Block(stmt3, stmt4); - Block eblock4 = new Block(ret, ret); - List expectedBlocks = ImmutableUtils.immutableList(eblock1, eblock2, eblock3, eblock4); - List actualBlocks = graph.getBlocks(); - - assertTrue(graph.getStartingBlock().equals(eblock1)); - assertEquals(expectedBlocks.size(), actualBlocks.size()); - - for (int i = 0; i < 4; i++) { - assertTrue(expectedBlocks.get(i).equals(actualBlocks.get(i))); - } - - List stmts = body.getStmts(); - for (int i = 0; i < stmts.size(); i++) { - Stmt stmt = stmts.get(i); - if (i < 3) { - assertTrue(graph.blockPredecessors(stmt).isEmpty()); - assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock3)); - assertTrue(graph.blockSuccessors(stmt).get(1).equals(eblock2)); - assertTrue(graph.getBlock(stmt).equals(eblock1)); - } else if (i < 5) { - assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock1)); - assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock4)); - assertTrue(graph.getBlock(stmt).equals(eblock3)); - } else if (i < 7) { - assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock1)); - assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock4)); - assertTrue(graph.getBlock(stmt).equals(eblock2)); - } else { - assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock3)); - assertTrue(graph.blockPredecessors(stmt).get(1).equals(eblock2)); - assertTrue(graph.blockSuccessors(stmt).isEmpty()); - assertTrue(graph.getBlock(stmt).equals(eblock4)); - } - } - - List expectedBlockStmts1 = ImmutableUtils.immutableList(startingStmt, stmt1, stmt2); - List expectedBlockStmts2 = ImmutableUtils.immutableList(stmt5, stmt6); - List expectedBlockStmts3 = ImmutableUtils.immutableList(stmt3, stmt4); - List expectedBlockStmts4 = ImmutableUtils.immutableList(ret); - - int i = 0; - for (Block block : graph.getBlocks()) { - List blockStmts = graph.getBlockStmts(block); - List expectedBlockStmts; - if (i == 0) { - expectedBlockStmts = expectedBlockStmts1; - } else if (i == 1) { - expectedBlockStmts = expectedBlockStmts2; - } else if (i == 2) { - expectedBlockStmts = expectedBlockStmts3; - } else { - expectedBlockStmts = expectedBlockStmts4; - } - for (int j = 0; j < expectedBlockStmts.size(); j++) { - assertTrue(blockStmts.get(j) == expectedBlockStmts.get(j)); - } - i++; - } - } - - @Test - public void testBlockGraphWithLoop() { - Body body = createLoopBody(); - BlockGraph graph = new BlockGraph(body.getStmtGraph()); - - // expected Blocks in BlockGraph - Block eblock1 = new Block(startingStmt, stmt1); - Block eblock2 = new Block(stmt7, stmt9); - Block eblock3 = new Block(ret, ret); - Block eblock4 = new Block(stmt10, stmt4); - - List expectedBlocks = ImmutableUtils.immutableList(eblock1, eblock2, eblock3, eblock4); - List actualBlocks = graph.getBlocks(); - - assertTrue(graph.getStartingBlock().equals(eblock1)); - assertEquals(expectedBlocks.size(), actualBlocks.size()); - - for (int i = 0; i < 4; i++) { - assertTrue(expectedBlocks.get(i).equals(actualBlocks.get(i))); - } - - List stmts = body.getStmts(); - for (int i = 0; i < stmts.size(); i++) { - Stmt stmt = stmts.get(i); - if (i < 2) { - assertTrue(graph.blockPredecessors(stmt).isEmpty()); - assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock2)); - assertTrue(graph.getBlock(stmt).equals(eblock1)); - } else if (i < 5) { - assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock1)); - assertTrue(graph.blockPredecessors(stmt).get(1).equals(eblock4)); - assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock4)); - assertTrue(graph.blockSuccessors(stmt).get(1).equals(eblock3)); - assertTrue(graph.getBlock(stmt).equals(eblock2)); - } else if (i < 9) { - assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock2)); - assertTrue(graph.blockSuccessors(stmt).get(0).equals(eblock2)); - assertTrue(graph.getBlock(stmt).equals(eblock4)); - } else { - assertTrue(graph.blockPredecessors(stmt).get(0).equals(eblock2)); - assertTrue(graph.blockSuccessors(stmt).isEmpty()); - assertTrue(graph.getBlock(stmt).equals(eblock3)); - } - } - List expectedBlockStmts1 = ImmutableUtils.immutableList(startingStmt, stmt1); - List expectedBlockStmts2 = ImmutableUtils.immutableList(stmt7, stmt8, stmt9); - List expectedBlockStmts3 = ImmutableUtils.immutableList(ret); - List expectedBlockStmts4 = ImmutableUtils.immutableList(stmt10, stmt11, stmt5, stmt4); - - int i = 0; - for (Block block : graph.getBlocks()) { - List blockStmts = graph.getBlockStmts(block); - List expectedBlockStmts; - if (i == 0) { - expectedBlockStmts = expectedBlockStmts1; - } else if (i == 1) { - expectedBlockStmts = expectedBlockStmts2; - } else if (i == 2) { - expectedBlockStmts = expectedBlockStmts3; - } else { - expectedBlockStmts = expectedBlockStmts4; - } - for (int j = 0; j < expectedBlockStmts.size(); j++) { - assertTrue(blockStmts.get(j) == expectedBlockStmts.get(j)); - } - i++; - } - } - - @Test - public void testAddNewPhiStmt() { - Body body = createBBBody(); - BlockGraph graph = new BlockGraph(body.getStmtGraph()); - List actualBlocks = graph.getBlocks(); - - List args = ImmutableUtils.immutableList(l1, l1); - Map argToBlock = new HashMap<>(); - argToBlock.put(l1, actualBlocks.get(1)); - argToBlock.put(l1, actualBlocks.get(2)); - Stmt phiStmt = - JavaJimple.newAssignStmt(l1, JavaJimple.newPhiExpr(args, argToBlock), noStmtPositionInfo); - - graph.addStmtOnTopOfBlock(phiStmt, actualBlocks.get(3)); - - // expected Blocks in BlockGraph - Block eblock = new Block(phiStmt, ret); - assertTrue(graph.getBlocks().get(3).equals(eblock)); - - assertTrue(graph.getStmtGraph().containsNode(phiStmt)); - assertTrue(graph.getStmtGraph().predecessors(ret).get(0) == phiStmt); - assertTrue(graph.getStmtGraph().successors(phiStmt).get(0) == ret); - - assertTrue(graph.getStmtGraph().predecessors(phiStmt).get(0) == stmt4); - assertTrue(graph.getStmtGraph().predecessors(phiStmt).get(1) == stmt6); - assertTrue(graph.getStmtGraph().successors(stmt4).get(0) == phiStmt); - assertTrue(graph.getStmtGraph().successors(stmt6).get(0) == phiStmt); - } - - @Test - public void testRepalceStmt() { - Body body = createBBBody(); - BlockGraph graph = new BlockGraph(body.getStmtGraph()); - List actualBlocks = graph.getBlocks(); - - List args = ImmutableUtils.immutableList(l1, l1); - Map argToBlock = new HashMap<>(); - argToBlock.put(l1, actualBlocks.get(1)); - argToBlock.put(l1, actualBlocks.get(2)); - Stmt phiStmt = - JavaJimple.newAssignStmt(l1, JavaJimple.newPhiExpr(args, argToBlock), noStmtPositionInfo); - - graph.replaceStmtInBlock(stmt6, phiStmt, actualBlocks.get(1)); - - // expected Blocks in BlockGraph - Block eblock = new Block(stmt5, phiStmt); - assertTrue(graph.getBlocks().get(1).equals(eblock)); - } - - /** - * bodycreater for BinaryBranches - * - *

-   *    l0 := @this Test
-   *    l1 = 0
-   *    if l1 >= 0 goto label1
-   *    l1 = l1 + 1
-   *    goto label2
-   * label1:
-   *    l1 = l1 - 1
-   *    l1 = l1 + 2
-   * label2:
-   *    return l1
-   * 
- */ - private Body createBBBody() { - Body.BodyBuilder builder = Body.builder(); - builder.setMethodSignature(methodSignature); - - // build set locals - Set locals = ImmutableUtils.immutableSet(l0, l1); - builder.setLocals(locals); - - // set graph - builder.addFlow(startingStmt, stmt1); - builder.addFlow(stmt1, stmt2); - builder.addFlow(stmt2, stmt3); - builder.addFlow(stmt3, stmt4); - builder.addFlow(stmt4, ret); - builder.addFlow(stmt2, stmt5); - builder.addFlow(stmt5, stmt6); - builder.addFlow(stmt6, ret); - - // build startingStmt - builder.setStartingStmt(startingStmt); - - // build position - Position position = NoPositionInformation.getInstance(); - builder.setPosition(position); - - return builder.build(); - } - - /** - * - * - *
-   *    l0 := @this Test
-   *    l1 = 0
-   * label1:
-   *    l4 = l1
-   *    l3 = 10
-   *    if l4 >= l3 goto label2
-   *    l2 = l1 + 1
-   *    l1 = l2 + 1
-   *    l1 = l1 - 1
-   *    goto label1
-   * label2:
-   *    return
-   * 
- */ - private Body createLoopBody() { - - Body.BodyBuilder builder = Body.builder(); - builder.setMethodSignature(methodSignature); - - // build set locals - Set locals = ImmutableUtils.immutableSet(l0, l1, l2, l3, l4); - - builder.setLocals(locals); - - // set graph - builder.addFlow(startingStmt, stmt1); - builder.addFlow(stmt1, stmt7); - builder.addFlow(stmt7, stmt8); - builder.addFlow(stmt8, stmt9); - builder.addFlow(stmt9, stmt10); - builder.addFlow(stmt9, ret); - builder.addFlow(stmt10, stmt11); - builder.addFlow(stmt11, stmt5); - builder.addFlow(stmt5, stmt4); - builder.addFlow(stmt4, stmt7); - - // build startingStmt - builder.setStartingStmt(startingStmt); - - // build position - Position position = NoPositionInformation.getInstance(); - builder.setPosition(position); - - return builder.build(); - } - - /** - * - * - *
-   *    l0 := @this Test
-   * label1:
-   *    l1 = 0
-   * label2
-   *    l2 = l1 + 1
-   *    l3 = 10
-   * label3
-   *    l4 = l1
-   * label4:
-   *    return
-   * label5:
-   *    stack5 := @caughtexception;
-   *    goto label4;
-   * label6:
-   *    stack6 := @caughtexception;
-   *    goto label4;
-   * 
- */ - private Body createTrapBody() { - - Body.BodyBuilder builder = Body.builder(); - builder.setMethodSignature(methodSignature); - - // build set locals - Set locals = ImmutableUtils.immutableSet(l0, l1, l2, l3, l4, stack5, stack6); - - builder.setLocals(locals); - - // set graph - builder.addFlow(startingStmt, stmt1); - builder.addFlow(stmt1, stmt10); - builder.addFlow(stmt10, stmt8); - builder.addFlow(stmt8, stmt7); - builder.addFlow(stack5Stmt, gotoStmt1); - builder.addFlow(stack6Stmt, gotoStmt2); - builder.addFlow(gotoStmt1, ret); - builder.addFlow(gotoStmt2, ret); - builder.addFlow(stmt7, ret); - - // build startingStmt - builder.setStartingStmt(startingStmt); - - // build position - Position position = NoPositionInformation.getInstance(); - builder.setPosition(position); - - List traps = ImmutableUtils.immutableList(trap1, trap2); - builder.setTraps(traps); - - return builder.build(); - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/SootMethodTest.java b/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/SootMethodTest.java deleted file mode 100644 index 78ee418f14a..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java/de/upb/swt/soot/test/core/model/SootMethodTest.java +++ /dev/null @@ -1,106 +0,0 @@ -package de.upb.swt.soot.test.core.model; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.inputlocation.EagerInputLocation; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.LocalGenerator; -import de.upb.swt.soot.core.jimple.basic.NoPositionInformation; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnVoidStmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootMethod; -import de.upb.swt.soot.java.core.OverridingJavaClassSource; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import java.util.Collections; -import java.util.EnumSet; -import java.util.LinkedHashSet; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Linghui Luo - * @author Kaustubh Kelkar updated on 02.07.2020 - */ -@Category(Java8Test.class) -public class SootMethodTest { - - @Test - public void testCreateMethod() { - Project project = - JavaProject.builder(new JavaLanguage(8)).addInputLocation(new EagerInputLocation()).build(); - View view = project.createOnDemandView(); - ClassType type = view.getIdentifierFactory().getClassType("java.lang.String"); - - LocalGenerator generator = new LocalGenerator(new LinkedHashSet<>()); - MethodSignature methodSignature = - view.getIdentifierFactory() - .getMethodSignature("main", "dummyMain", "void", Collections.emptyList()); - Body.BodyBuilder bodyBuilder = Body.builder(); - - final JIdentityStmt firstStmt = - Jimple.newIdentityStmt( - generator.generateLocal(type), - Jimple.newParameterRef(type, 0), - StmtPositionInfo.createNoStmtPositionInfo()); - final JReturnVoidStmt returnVoidStmt = - new JReturnVoidStmt(StmtPositionInfo.createNoStmtPositionInfo()); - - Body body = - bodyBuilder - .setStartingStmt(firstStmt) - .addFlow(firstStmt, returnVoidStmt) - .setMethodSignature(methodSignature) - .setLocals(generator.getLocals()) - .setTraps(Collections.emptyList()) - .build(); - assertEquals(1, body.getLocalCount()); - - JavaSootMethod dummyMainMethod = - new JavaSootMethod( - new OverridingBodySource(methodSignature, body), - methodSignature, - EnumSet.of(Modifier.PUBLIC, Modifier.STATIC), - Collections.emptyList(), - Collections.emptyList(), - NoPositionInformation.getInstance()); - - JavaSootClass mainClass = - new JavaSootClass( - new OverridingJavaClassSource( - new EagerInputLocation(), - null, - view.getIdentifierFactory().getClassType("dummyMain"), - null, - Collections.emptySet(), - null, - Collections.emptySet(), - Collections.singleton(dummyMainMethod), - NoPositionInformation.getInstance(), - EnumSet.of(Modifier.PUBLIC), - Collections.emptyList(), - Collections.emptyList(), - Collections.emptyList()), - SourceType.Application); - - assertEquals(mainClass.getMethods().size(), 1); - - assertTrue( - mainClass - .getMethod(methodSignature.getSubSignature()) - .orElseThrow(() -> new RuntimeException("Failed getting method " + methodSignature)) - .hasBody()); - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AddExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AddExpr.jimple deleted file mode 100644 index 585a0c0655e..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AddExpr.jimple +++ /dev/null @@ -1,54 +0,0 @@ -public class de.upb.soot.instructions.expr.AddExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.AddExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.AddExpr; - - specialinvoke r0.()>(); - - return; - } - - public void addition(int, int) - { - de.upb.soot.instructions.expr.AddExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.AddExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 + i1; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void addAssignmentOperator(int) - { - de.upb.soot.instructions.expr.AddExpr r0; - int i0, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.AddExpr; - - i0 := @parameter0: int; - - i2 = 0 + i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AndExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AndExpr.jimple deleted file mode 100644 index 252c6646933..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.AndExpr.jimple +++ /dev/null @@ -1,86 +0,0 @@ -public class de.upb.soot.instructions.expr.AndExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.AndExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.AndExpr; - - specialinvoke r0.()>(); - - return; - } - - public void logicalAND(boolean, boolean) - { - de.upb.soot.instructions.expr.AndExpr r0; - boolean z0, z1, $z3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.AndExpr; - - z0 := @parameter0: boolean; - - z1 := @parameter1: boolean; - - if z0 == 0 goto label1; - - if z1 == 0 goto label1; - - $z3 = 1; - - goto label2; - - label1: - $z3 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z3); - - return; - } - - public void bitwiseAND(int, int) - { - de.upb.soot.instructions.expr.AndExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.AndExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 & i1; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void bitwiseANDAssignment(int) - { - de.upb.soot.instructions.expr.AndExpr r0; - int i0; - java.io.PrintStream $r1; - byte b2; - - r0 := @this: de.upb.soot.instructions.expr.AndExpr; - - i0 := @parameter0: int; - - b2 = 0 & 2; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CastExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CastExpr.jimple deleted file mode 100644 index 781c19c0609..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CastExpr.jimple +++ /dev/null @@ -1,105 +0,0 @@ -public class de.upb.soot.instructions.expr.CastExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.CastExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.CastExpr; - - specialinvoke r0.()>(); - - return; - } - - void number() - { - de.upb.soot.instructions.expr.CastExpr r0; - double d0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.CastExpr; - - d0 = (double) 3; - - $r1 = ; - - virtualinvoke $r1.(d0); - - return; - } - - void numberExplicit() - { - de.upb.soot.instructions.expr.CastExpr r0; - double d0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.CastExpr; - - d0 = (double) 3; - - $r1 = ; - - virtualinvoke $r1.(d0); - - return; - } - - void numberExplicitNeeded() - { - de.upb.soot.instructions.expr.CastExpr r0; - int i0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.CastExpr; - - i0 = (int) 3.14; - - $r1 = ; - - virtualinvoke $r1.(i0); - - return; - } - - void nonPrimitive() - { - de.upb.soot.instructions.expr.CastExpr r0; - java.lang.Boolean $r3; - java.io.PrintStream $r4; - - r0 := @this: de.upb.soot.instructions.expr.CastExpr; - - $r3 = new java.lang.Boolean; - - specialinvoke $r3.(boolean)>(1); - - $r4 = ; - - virtualinvoke $r4.($r3); - - return; - } - - void nonPrimitiveExplicitNeeded() - { - de.upb.soot.instructions.expr.CastExpr r0; - java.lang.Boolean r3, $r4; - java.io.PrintStream $r5; - - r0 := @this: de.upb.soot.instructions.expr.CastExpr; - - $r4 = new java.lang.Boolean; - - specialinvoke $r4.(boolean)>(1); - - r3 = (java.lang.Boolean) $r4; - - $r5 = ; - - virtualinvoke $r5.(r3); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpgExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpgExpr.jimple deleted file mode 100644 index 508db00d687..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.CmpgExpr.jimple +++ /dev/null @@ -1,80 +0,0 @@ -public class de.upb.soot.instructions.expr.CmpgExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.CmpgExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.CmpgExpr; - - specialinvoke r0.()>(); - - return; - } - - public void cmpgOperatorLower(float, float) - { - de.upb.soot.instructions.expr.CmpgExpr r0; - float f0, f1; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.CmpgExpr; - - f0 := @parameter0: float; - - f1 := @parameter1: float; - - $b0 = f0 cmpg f1; - - if $b0 >= 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void cmpgOperatorLowerEqual(float, float) - { - de.upb.soot.instructions.expr.CmpgExpr r0; - float f0, f1; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.CmpgExpr; - - f0 := @parameter0: float; - - f1 := @parameter1: float; - - $b0 = f0 cmpg f1; - - if $b0 > 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DivExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DivExpr.jimple deleted file mode 100644 index 790cd53cd4d..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DivExpr.jimple +++ /dev/null @@ -1,56 +0,0 @@ -public class de.upb.soot.instructions.expr.DivExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.DivExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.DivExpr; - - specialinvoke r0.()>(); - - return; - } - - public void division(int, int) - { - de.upb.soot.instructions.expr.DivExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.DivExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 / i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void divisionAssignment(int, int) - { - de.upb.soot.instructions.expr.DivExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.DivExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 / i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DynamicInvokeExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DynamicInvokeExpr.jimple deleted file mode 100644 index 82256c8a33d..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.DynamicInvokeExpr.jimple +++ /dev/null @@ -1,64 +0,0 @@ -public class de.upb.soot.instructions.expr.DynamicInvokeExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.DynamicInvokeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.DynamicInvokeExpr; - - specialinvoke r0.()>(); - - return; - } - - java.lang.String sth() - { - de.upb.soot.instructions.expr.DynamicInvokeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.DynamicInvokeExpr; - - return "something"; - } - - void invoke() throws java.lang.Throwable - { - de.upb.soot.instructions.expr.DynamicInvokeExpr r0, $r5; - java.lang.invoke.MethodHandles$Lookup r1; - java.lang.invoke.MethodType r2; - java.lang.invoke.MethodHandle r3; - java.lang.String r4, $r10; - java.lang.StringBuilder $r6, $r8, $r9; - java.io.PrintStream $r7; - - r0 := @this: de.upb.soot.instructions.expr.DynamicInvokeExpr; - - r1 = staticinvoke (); - - r2 = staticinvoke (class "Ljava/lang/String;"); - - r3 = virtualinvoke r1.(class "Lde/upb/soot/instructions/expr/DynamicInvokeExpr;", "sth", r2); - - $r5 = new de.upb.soot.instructions.expr.DynamicInvokeExpr; - - specialinvoke $r5.()>(); - - r4 = virtualinvoke r3.($r5); - - $r7 = ; - - $r6 = new java.lang.StringBuilder; - - specialinvoke $r6.()>(); - - $r8 = virtualinvoke $r6.("dynamic invoked methodSignature returned: "); - - $r9 = virtualinvoke $r8.(r4); - - $r10 = virtualinvoke $r9.(); - - virtualinvoke $r7.($r10); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.EqExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.EqExpr.jimple deleted file mode 100644 index dd8b7e95993..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.EqExpr.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.EqExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.EqExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.EqExpr; - - specialinvoke r0.()>(); - - return; - } - - public void EqualTo(int, int) - { - de.upb.soot.instructions.expr.EqExpr r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.EqExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 != i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GeExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GeExpr.jimple deleted file mode 100644 index 574010ec9db..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GeExpr.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.GeExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.GeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.GeExpr; - - specialinvoke r0.()>(); - - return; - } - - public void greaterThan(int, int) - { - de.upb.soot.instructions.expr.GeExpr r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.GeExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 < i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GtExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GtExpr.jimple deleted file mode 100644 index 99d81b8b429..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.GtExpr.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.GtExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.GtExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.GtExpr; - - specialinvoke r0.()>(); - - return; - } - - public void greaterThan(int, int) - { - de.upb.soot.instructions.expr.GtExpr r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.GtExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 <= i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.IThing.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.IThing.jimple deleted file mode 100644 index 4a300978b22..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.IThing.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.instructions.expr.IThing extends java.lang.Object -{ - - public abstract int getId(); -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InterfaceInvokeExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InterfaceInvokeExpr.jimple deleted file mode 100644 index 505cfc865c8..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.InterfaceInvokeExpr.jimple +++ /dev/null @@ -1,36 +0,0 @@ -public class de.upb.soot.instructions.expr.InterfaceInvokeExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.InterfaceInvokeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.InterfaceInvokeExpr; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.expr.InterfaceInvokeExpr r0; - int i0; - de.upb.soot.instructions.expr.Pear $r2; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.instructions.expr.InterfaceInvokeExpr; - - $r2 = new de.upb.soot.instructions.expr.Pear; - - specialinvoke $r2.()>(); - - i0 = interfaceinvoke $r2.(); - - $r3 = ; - - virtualinvoke $r3.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LeExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LeExpr.jimple deleted file mode 100644 index 1a0f3b09002..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LeExpr.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.LeExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.LeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.LeExpr; - - specialinvoke r0.()>(); - - return; - } - - public void lowerEqual(int, int) - { - de.upb.soot.instructions.expr.LeExpr r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.LeExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 > i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LengthExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LengthExpr.jimple deleted file mode 100644 index 7e39ba5b4e0..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LengthExpr.jimple +++ /dev/null @@ -1,34 +0,0 @@ -public class de.upb.soot.instructions.expr.LengthExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.LengthExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.LengthExpr; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.expr.LengthExpr r0; - int[][] r1; - int i0; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.instructions.expr.LengthExpr; - - r1 = newmultiarray (int)[42][10]; - - i0 = lengthof r1; - - $r2 = ; - - virtualinvoke $r2.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LtExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LtExpr.jimple deleted file mode 100644 index 075b8374efc..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.LtExpr.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.LtExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.LtExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.LtExpr; - - specialinvoke r0.()>(); - - return; - } - - public void lowerThan(int, int) - { - de.upb.soot.instructions.expr.LtExpr r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.LtExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 >= i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.MulExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.MulExpr.jimple deleted file mode 100644 index b456bc911d9..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.MulExpr.jimple +++ /dev/null @@ -1,56 +0,0 @@ -public class de.upb.soot.instructions.expr.MulExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.MulExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.MulExpr; - - specialinvoke r0.()>(); - - return; - } - - public void multiplication(int, int) - { - de.upb.soot.instructions.expr.MulExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.MulExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 * i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void multiplicationAssignment(int, int) - { - de.upb.soot.instructions.expr.MulExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.MulExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 * i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NeExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NeExpr.jimple deleted file mode 100644 index f3179699648..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NeExpr.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.NeExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.NeExpr; - - specialinvoke r0.()>(); - - return; - } - - public void notEqual(int, int) - { - de.upb.soot.instructions.expr.NeExpr r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.NeExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 == i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NegateExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NegateExpr.jimple deleted file mode 100644 index 134ebf1942c..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NegateExpr.jimple +++ /dev/null @@ -1,31 +0,0 @@ -public class de.upb.soot.instructions.expr.NegateExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NegateExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.NegateExpr; - - specialinvoke r0.()>(); - - return; - } - - public void sth() - { - de.upb.soot.instructions.expr.NegateExpr r0; - byte b1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.NegateExpr; - - b1 = neg 42; - - $r1 = ; - - virtualinvoke $r1.(b1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewArrayExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewArrayExpr.jimple deleted file mode 100644 index 4e14785008c..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewArrayExpr.jimple +++ /dev/null @@ -1,52 +0,0 @@ -public class de.upb.soot.instructions.expr.NewArrayExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NewArrayExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.NewArrayExpr; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.expr.NewArrayExpr r0; - int[] r1, r2; - double[] r3; - boolean[] r4; - char[] r5; - java.lang.String[] r6; - java.lang.Integer[] r7; - java.lang.Double[] r8; - java.lang.Boolean[] r9; - java.lang.Object[] r10; - - r0 := @this: de.upb.soot.instructions.expr.NewArrayExpr; - - r1 = newarray (int)[123]; - - r2 = newarray (int)[2]; - - r3 = newarray (double)[3]; - - r4 = newarray (boolean)[4]; - - r5 = newarray (char)[5]; - - r6 = newarray (java.lang.String)[6]; - - r7 = newarray (java.lang.Integer)[7]; - - r8 = newarray (java.lang.Double)[8]; - - r9 = newarray (java.lang.Boolean)[9]; - - r10 = newarray (java.lang.Object)[10]; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewExpr.jimple deleted file mode 100644 index 4e378c57253..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewExpr.jimple +++ /dev/null @@ -1,42 +0,0 @@ -public class de.upb.soot.instructions.expr.NewExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NewExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.NewExpr; - - specialinvoke r0.()>(); - - return; - } - - public void sth() - { - de.upb.soot.instructions.expr.NewExpr r0; - java.lang.Integer $r3; - java.io.PrintStream $r4, $r6; - java.lang.Boolean $r5; - - r0 := @this: de.upb.soot.instructions.expr.NewExpr; - - $r3 = new java.lang.Integer; - - specialinvoke $r3.(int)>(42); - - $r4 = ; - - virtualinvoke $r4.($r3); - - $r5 = new java.lang.Boolean; - - specialinvoke $r5.(boolean)>(1); - - $r6 = ; - - virtualinvoke $r6.($r5); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewMultiArrayExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewMultiArrayExpr.jimple deleted file mode 100644 index 12685af0b28..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.NewMultiArrayExpr.jimple +++ /dev/null @@ -1,34 +0,0 @@ -public class de.upb.soot.instructions.expr.NewMultiArrayExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NewMultiArrayExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.NewMultiArrayExpr; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.expr.NewMultiArrayExpr r0; - int[][] r1; - int i0; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.instructions.expr.NewMultiArrayExpr; - - r1 = newmultiarray (int)[42][10]; - - i0 = lengthof r1; - - $r2 = ; - - virtualinvoke $r2.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.OrExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.OrExpr.jimple deleted file mode 100644 index 7752165e7f0..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.OrExpr.jimple +++ /dev/null @@ -1,88 +0,0 @@ -public class de.upb.soot.instructions.expr.OrExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.OrExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.OrExpr; - - specialinvoke r0.()>(); - - return; - } - - public void logicalOR(boolean, boolean) - { - de.upb.soot.instructions.expr.OrExpr r0; - boolean z0, z1, $z3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.OrExpr; - - z0 := @parameter0: boolean; - - z1 := @parameter1: boolean; - - if z0 != 0 goto label1; - - if z1 == 0 goto label2; - - label1: - $z3 = 1; - - goto label3; - - label2: - $z3 = 0; - - label3: - $r1 = ; - - virtualinvoke $r1.($z3); - - return; - } - - public void bitwiseOR(int, int) - { - de.upb.soot.instructions.expr.OrExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.OrExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 | i1; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void bitwiseORAssignment(int, int) - { - de.upb.soot.instructions.expr.OrExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.OrExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 | i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.Pear.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.Pear.jimple deleted file mode 100644 index 6d7d41d83c2..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.Pear.jimple +++ /dev/null @@ -1,23 +0,0 @@ -class de.upb.soot.instructions.expr.Pear extends java.lang.Object implements de.upb.soot.instructions.expr.IThing -{ - - void () - { - de.upb.soot.instructions.expr.Pear r0; - - r0 := @this: de.upb.soot.instructions.expr.Pear; - - specialinvoke r0.()>(); - - return; - } - - public int getId() - { - de.upb.soot.instructions.expr.Pear r0; - - r0 := @this: de.upb.soot.instructions.expr.Pear; - - return 42; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.RemExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.RemExpr.jimple deleted file mode 100644 index d36241040c0..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.RemExpr.jimple +++ /dev/null @@ -1,56 +0,0 @@ -public class de.upb.soot.instructions.expr.RemExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.RemExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.RemExpr; - - specialinvoke r0.()>(); - - return; - } - - public void modulus(int, int) - { - de.upb.soot.instructions.expr.RemExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.RemExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 % i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void modulusAssign(int, int) - { - de.upb.soot.instructions.expr.RemExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.RemExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 % i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShlExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShlExpr.jimple deleted file mode 100644 index 19d1a4ed1a8..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShlExpr.jimple +++ /dev/null @@ -1,35 +0,0 @@ -public class de.upb.soot.instructions.expr.ShlExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.ShlExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.ShlExpr; - - specialinvoke r0.()>(); - - return; - } - - public void bitwiseLeftShift(int, int) - { - de.upb.soot.instructions.expr.ShlExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.ShlExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 << 2; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShrExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShrExpr.jimple deleted file mode 100644 index db7d8709978..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.ShrExpr.jimple +++ /dev/null @@ -1,35 +0,0 @@ -public class de.upb.soot.instructions.expr.ShrExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.ShrExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.ShrExpr; - - specialinvoke r0.()>(); - - return; - } - - public void bitwiseRightShift(int, int) - { - de.upb.soot.instructions.expr.ShrExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.ShrExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 >> 2; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SpecialInvokeExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SpecialInvokeExpr.jimple deleted file mode 100644 index a7e12af57a3..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SpecialInvokeExpr.jimple +++ /dev/null @@ -1,78 +0,0 @@ -public class de.upb.soot.instructions.expr.SpecialInvokeExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.SpecialInvokeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExpr; - - specialinvoke r0.()>(); - - return; - } - - private double someMethod() - { - de.upb.soot.instructions.expr.SpecialInvokeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExpr; - - return 3.14; - } - - void local() - { - de.upb.soot.instructions.expr.SpecialInvokeExpr r0, $r2; - double d0; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExpr; - - $r2 = new de.upb.soot.instructions.expr.SpecialInvokeExpr; - - specialinvoke $r2.()>(); - - d0 = specialinvoke $r2.(); - - $r3 = ; - - virtualinvoke $r3.(d0); - - return; - } - - void methodSignature() - { - de.upb.soot.instructions.expr.SpecialInvokeExpr r0; - double d0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExpr; - - d0 = specialinvoke r0.(); - - $r1 = ; - - virtualinvoke $r1.(d0); - - return; - } - - void fromsuperclass() - { - de.upb.soot.instructions.expr.SpecialInvokeExpr r0; - int i0; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExpr; - - i0 = virtualinvoke r0.(); - - $r2 = ; - - virtualinvoke $r2.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.StaticInvokeExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.StaticInvokeExpr.jimple deleted file mode 100644 index 6e2aa1348c4..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.StaticInvokeExpr.jimple +++ /dev/null @@ -1,43 +0,0 @@ -public class de.upb.soot.instructions.expr.StaticInvokeExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.StaticInvokeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.StaticInvokeExpr; - - specialinvoke r0.()>(); - - return; - } - - public static java.lang.String somethingStatic() - { - return "Polyester Shirt"; - } - - public void staticInvoke() - { - de.upb.soot.instructions.expr.StaticInvokeExpr r0; - java.lang.String r1; - int i0; - java.io.PrintStream $r2, $r3; - - r0 := @this: de.upb.soot.instructions.expr.StaticInvokeExpr; - - r1 = staticinvoke (); - - $r2 = ; - - virtualinvoke $r2.(r1); - - i0 = staticinvoke (-42); - - $r3 = ; - - virtualinvoke $r3.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SubExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SubExpr.jimple deleted file mode 100644 index e22ee924cc2..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.SubExpr.jimple +++ /dev/null @@ -1,35 +0,0 @@ -public class de.upb.soot.instructions.expr.SubExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.SubExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.SubExpr; - - specialinvoke r0.()>(); - - return; - } - - public void subtraction(int, int) - { - de.upb.soot.instructions.expr.SubExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.SubExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 - i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.UshrExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.UshrExpr.jimple deleted file mode 100644 index 9970b726508..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.UshrExpr.jimple +++ /dev/null @@ -1,35 +0,0 @@ -public class de.upb.soot.instructions.expr.UshrExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.UshrExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.UshrExpr; - - specialinvoke r0.()>(); - - return; - } - - public void bitwiseRightShiftZerofill(int, int) - { - de.upb.soot.instructions.expr.UshrExpr r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.UshrExpr; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 >>> 2; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.VirtualInvokeExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.VirtualInvokeExpr.jimple deleted file mode 100644 index 9d3628787ca..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.VirtualInvokeExpr.jimple +++ /dev/null @@ -1,45 +0,0 @@ -public class de.upb.soot.instructions.expr.VirtualInvokeExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.VirtualInvokeExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.VirtualInvokeExpr; - - specialinvoke r0.()>(); - - return; - } - - int postalcode(int) - { - de.upb.soot.instructions.expr.VirtualInvokeExpr r0; - int i0, $i1; - - r0 := @this: de.upb.soot.instructions.expr.VirtualInvokeExpr; - - i0 := @parameter0: int; - - $i1 = 33100 + i0; - - return $i1; - } - - void invoke() - { - de.upb.soot.instructions.expr.VirtualInvokeExpr r0; - int i0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.VirtualInvokeExpr; - - i0 = virtualinvoke r0.(0); - - $r1 = ; - - virtualinvoke $r1.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.XorExpr.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.XorExpr.jimple deleted file mode 100644 index 4004e5a7b9e..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.expr.XorExpr.jimple +++ /dev/null @@ -1,34 +0,0 @@ -public class de.upb.soot.instructions.expr.XorExpr extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.XorExpr r0; - - r0 := @this: de.upb.soot.instructions.expr.XorExpr; - - specialinvoke r0.()>(); - - return; - } - - public void bitwiseXOR(int) - { - de.upb.soot.instructions.expr.XorExpr r0; - int i0; - java.io.PrintStream $r1; - byte b2; - - r0 := @this: de.upb.soot.instructions.expr.XorExpr; - - i0 := @parameter0: int; - - b2 = 0 ^ 2; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt.jimple deleted file mode 100644 index 1ff2b023dbf..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt.jimple +++ /dev/null @@ -1,36 +0,0 @@ -public class de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt r0; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt; - - specialinvoke r0.()>(); - - return; - } - - public void breaker() - { - de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt r0; - java.io.PrintStream $r1, $r2, $r3; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.BreakPointStmt; - - $r1 = ; - - virtualinvoke $r1.("A"); - - $r2 = ; - - virtualinvoke $r2.("B"); - - $r3 = ; - - virtualinvoke $r3.("C"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.RetStmt.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.RetStmt.jimple deleted file mode 100644 index f727e8cbef3..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.javabytecode.stmt.RetStmt.jimple +++ /dev/null @@ -1,61 +0,0 @@ -public class de.upb.soot.instructions.javabytecode.stmt.RetStmt extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.javabytecode.stmt.RetStmt r0; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmt; - - specialinvoke r0.()>(); - - return; - } - - int returnInt(int) - { - de.upb.soot.instructions.javabytecode.stmt.RetStmt r0; - int i0; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmt; - - i0 := @parameter0: int; - - return i0; - } - - double returnDouble(double) - { - de.upb.soot.instructions.javabytecode.stmt.RetStmt r0; - double d0; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmt; - - d0 := @parameter0: double; - - return d0; - } - - java.lang.String returnString(java.lang.String) - { - de.upb.soot.instructions.javabytecode.stmt.RetStmt r0; - java.lang.String r1; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmt; - - r1 := @parameter0: java.lang.String; - - return r1; - } - - de.upb.soot.instructions.javabytecode.stmt.RetStmt returnNonPrimitive(de.upb.soot.instructions.javabytecode.stmt.RetStmt) - { - de.upb.soot.instructions.javabytecode.stmt.RetStmt r0, r1; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmt; - - r1 := @parameter0: de.upb.soot.instructions.javabytecode.stmt.RetStmt; - - return r1; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ArrayRef.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ArrayRef.jimple deleted file mode 100644 index 793aa975b35..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ArrayRef.jimple +++ /dev/null @@ -1,41 +0,0 @@ -public class de.upb.soot.instructions.ref.ArrayRef extends java.lang.Object -{ - int[] arr; - - public void () - { - de.upb.soot.instructions.ref.ArrayRef r0; - - r0 := @this: de.upb.soot.instructions.ref.ArrayRef; - - specialinvoke r0.()>(); - - return; - } - - boolean[] someMethod() - { - de.upb.soot.instructions.ref.ArrayRef r0; - java.lang.String[] r1; - int[] $r2, $r3; - boolean[] $r4; - - r0 := @this: de.upb.soot.instructions.ref.ArrayRef; - - $r2 = newarray (int)[123]; - - r0. = $r2; - - $r3 = r0.; - - $r3[100] = 42; - - r1 = newarray (java.lang.String)[2]; - - r1[0] = "zero"; - - $r4 = newarray (boolean)[0]; - - return $r4; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.CaughtExceptionRef.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.CaughtExceptionRef.jimple deleted file mode 100644 index 151ae442a96..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.CaughtExceptionRef.jimple +++ /dev/null @@ -1,41 +0,0 @@ -public class de.upb.soot.instructions.ref.CaughtExceptionRef extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.ref.CaughtExceptionRef r0; - - r0 := @this: de.upb.soot.instructions.ref.CaughtExceptionRef; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.ref.CaughtExceptionRef r0; - java.lang.Exception $r2, $r3; - java.io.PrintStream $r4; - - r0 := @this: de.upb.soot.instructions.ref.CaughtExceptionRef; - - label1: - $r2 = new java.lang.Exception; - - specialinvoke $r2.()>(); - - throw $r2; - - label2: - $r3 := @caughtexception; - - $r4 = ; - - virtualinvoke $r4.("exception"); - - return; - - catch java.lang.Exception from label1 to label2 with label2; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.InstanceFieldRef.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.InstanceFieldRef.jimple deleted file mode 100644 index 34ecdef9018..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.InstanceFieldRef.jimple +++ /dev/null @@ -1,40 +0,0 @@ -public class de.upb.soot.instructions.ref.InstanceFieldRef extends java.lang.Object -{ - int counter; - - public void () - { - de.upb.soot.instructions.ref.InstanceFieldRef r0; - - r0 := @this: de.upb.soot.instructions.ref.InstanceFieldRef; - - specialinvoke r0.()>(); - - r0. = 0; - - return; - } - - void sth() - { - de.upb.soot.instructions.ref.InstanceFieldRef r0; - int $i0, $i1, $i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.ref.InstanceFieldRef; - - $i0 = r0.; - - $i1 = $i0 + 1; - - r0. = $i1; - - $r1 = ; - - $i2 = r0.; - - virtualinvoke $r1.($i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.StaticFieldRef.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.StaticFieldRef.jimple deleted file mode 100644 index eab79d32e8a..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.StaticFieldRef.jimple +++ /dev/null @@ -1,45 +0,0 @@ -public class de.upb.soot.instructions.ref.StaticFieldRef extends java.lang.Object -{ - static int globalCounter; - - public void () - { - de.upb.soot.instructions.ref.StaticFieldRef r0; - - r0 := @this: de.upb.soot.instructions.ref.StaticFieldRef; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.ref.StaticFieldRef r0; - int $i0, $i1, $i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.ref.StaticFieldRef; - - $i0 = ; - - $i1 = $i0 + 1; - - = $i1; - - $r1 = ; - - $i2 = ; - - virtualinvoke $r1.($i2); - - return; - } - - static void () - { - = 0; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ThisRef.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ThisRef.jimple deleted file mode 100644 index a675bb70c79..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.ref.ThisRef.jimple +++ /dev/null @@ -1,50 +0,0 @@ -public class de.upb.soot.instructions.ref.ThisRef extends java.lang.Object -{ - int property; - - public void () - { - de.upb.soot.instructions.ref.ThisRef r0; - - r0 := @this: de.upb.soot.instructions.ref.ThisRef; - - specialinvoke r0.()>(); - - r0. = 0; - - return; - } - - java.lang.String someMethod() - { - de.upb.soot.instructions.ref.ThisRef r0; - - r0 := @this: de.upb.soot.instructions.ref.ThisRef; - - return "sth"; - } - - void caller() - { - de.upb.soot.instructions.ref.ThisRef r0; - int $i0; - java.io.PrintStream $r1, $r2; - java.lang.String $r3; - - r0 := @this: de.upb.soot.instructions.ref.ThisRef; - - $r1 = ; - - $i0 = r0.; - - virtualinvoke $r1.($i0); - - $r2 = ; - - $r3 = virtualinvoke r0.(); - - virtualinvoke $r2.($r3); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.AssignStmt.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.AssignStmt.jimple deleted file mode 100644 index 34fff32d5bd..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.AssignStmt.jimple +++ /dev/null @@ -1,199 +0,0 @@ -public class de.upb.soot.instructions.stmt.AssignStmt extends java.lang.Object -{ - int field; - de.upb.soot.basic.expr.Dummy fieldObj; - - public void () - { - de.upb.soot.instructions.stmt.AssignStmt r0; - de.upb.soot.basic.expr.Dummy $r1; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmt; - - specialinvoke r0.()>(); - - r0. = 123; - - $r1 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r1.()>(); - - r0. = $r1; - - return; - } - - public void rvalue() - { - de.upb.soot.instructions.stmt.AssignStmt r0; - int[] r2; - int i0, i1, i2, i3, $i6; - de.upb.soot.basic.expr.Dummy $r3; - java.io.PrintStream $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmt; - - $r3 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r3.()>(); - - r2 = newarray (int)[123]; - - i0 = r0.; - - i1 = $r3.; - - i2 = r2[42]; - - $i6 = r0.; - - i3 = r2[$i6]; - - staticinvoke (-1); - - $r4 = ; - - virtualinvoke $r4.($r3); - - $r5 = ; - - virtualinvoke $r5.(r2); - - $r6 = ; - - virtualinvoke $r6.(i0); - - $r7 = ; - - virtualinvoke $r7.(i1); - - $r8 = ; - - virtualinvoke $r8.(i2); - - $r9 = ; - - virtualinvoke $r9.(i3); - - $r10 = ; - - virtualinvoke $r10.(42); - - $r11 = ; - - virtualinvoke $r11.(3); - - return; - } - - public void imm() - { - de.upb.soot.instructions.stmt.AssignStmt r0; - de.upb.soot.basic.expr.Dummy $r2; - java.io.PrintStream $r3, $r4, $r5; - int $i1, $i2; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmt; - - r0. = 42; - - $r2 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r2.()>(); - - $r2. = 2; - - $r3 = ; - - virtualinvoke $r3.(2); - - $r4 = ; - - $i1 = r0.; - - virtualinvoke $r4.($i1); - - $r5 = ; - - $i2 = $r2.; - - virtualinvoke $r5.($i2); - - return; - } - - public void property() - { - de.upb.soot.instructions.stmt.AssignStmt r0; - de.upb.soot.basic.expr.Dummy $r3, $r4, $r5, $r8; - int $i0, $i1, $i2, $i3; - java.io.PrintStream $r6, $r7, $r9; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmt; - - $r3 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r3.()>(); - - $r3. = 666; - - $r4 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r4.()>(); - - $i0 = r0.; - - $r4. = $i0; - - $r5 = r0.; - - $r5. = 42; - - $r6 = ; - - $i1 = $r3.; - - virtualinvoke $r6.($i1); - - $r7 = ; - - $i2 = $r4.; - - virtualinvoke $r7.($i2); - - $r9 = ; - - $r8 = r0.; - - $i3 = $r8.; - - virtualinvoke $r9.($i3); - - return; - } - - public void array_field() - { - de.upb.soot.instructions.stmt.AssignStmt r0; - int[] r1; - int $i0, $i1; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmt; - - r1 = newarray (int)[123]; - - r1[0] = 1; - - r1[42] = 43; - - $i0 = staticinvoke (-1); - - r1[$i0] = -2; - - $i1 = r0.; - - r1[$i1] = 0; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.GotoStmt.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.GotoStmt.jimple deleted file mode 100644 index 726b5125895..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.GotoStmt.jimple +++ /dev/null @@ -1,92 +0,0 @@ -public class de.upb.soot.instructions.stmt.GotoStmt extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.stmt.GotoStmt r0; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmt; - - specialinvoke r0.()>(); - - return; - } - - public void label() - { - de.upb.soot.instructions.stmt.GotoStmt r0; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmt; - - label1: - goto label1; - } - - public void whileloop(int) - { - de.upb.soot.instructions.stmt.GotoStmt r0; - int i0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmt; - - i0 := @parameter0: int; - - label1: - if i0 >= 42 goto label2; - - $r1 = ; - - virtualinvoke $r1.("A"); - - goto label1; - - label2: - return; - } - - public void forloop() - { - de.upb.soot.instructions.stmt.GotoStmt r0; - java.io.PrintStream $r1; - int i0; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmt; - - i0 = 5; - - label1: - if i0 >= 10 goto label2; - - $r1 = ; - - virtualinvoke $r1.("A"); - - i0 = i0 + 1; - - goto label1; - - label2: - return; - } - - public void dowhileloop(int) - { - de.upb.soot.instructions.stmt.GotoStmt r0; - int i0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmt; - - i0 := @parameter0: int; - - label1: - $r1 = ; - - virtualinvoke $r1.("A"); - - if i0 != 0 goto label1; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IThing.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IThing.jimple deleted file mode 100644 index 39964941b74..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.IThing.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.instructions.stmt.IThing extends java.lang.Object -{ - - public abstract void printId(); -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.InvokeStmt.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.InvokeStmt.jimple deleted file mode 100644 index 2a972ec844b..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.InvokeStmt.jimple +++ /dev/null @@ -1,99 +0,0 @@ -public class de.upb.soot.instructions.stmt.InvokeStmt extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.stmt.InvokeStmt r0; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmt; - - specialinvoke r0.()>(); - - return; - } - - private void someMethod() - { - de.upb.soot.instructions.stmt.InvokeStmt r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmt; - - $r1 = ; - - virtualinvoke $r1.("Sth"); - - return; - } - - public static void somethingStatic() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.("Polyester Shirt"); - - return; - } - - public void specialInvoke() - { - de.upb.soot.instructions.stmt.InvokeStmt r0, $r2; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmt; - - $r2 = new de.upb.soot.instructions.stmt.InvokeStmt; - - specialinvoke $r2.()>(); - - specialinvoke $r2.(); - - specialinvoke r0.(); - - return; - } - - public void interfaceInvoke() - { - de.upb.soot.instructions.stmt.InvokeStmt r0; - de.upb.soot.instructions.stmt.Pear $r2; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmt; - - $r2 = new de.upb.soot.instructions.stmt.Pear; - - specialinvoke $r2.()>(); - - interfaceinvoke $r2.(); - - return; - } - - public void virtualInvoke() - { - de.upb.soot.instructions.stmt.InvokeStmt r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmt; - - $r1 = ; - - virtualinvoke $r1.("virtual invoked"); - - return; - } - - public void staticInvoke() - { - de.upb.soot.instructions.stmt.InvokeStmt r0; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmt; - - staticinvoke (); - - staticinvoke (); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.Pear.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.Pear.jimple deleted file mode 100644 index 80c4c341d5f..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.Pear.jimple +++ /dev/null @@ -1,28 +0,0 @@ -class de.upb.soot.instructions.stmt.Pear extends java.lang.Object implements de.upb.soot.instructions.stmt.IThing -{ - - void () - { - de.upb.soot.instructions.stmt.Pear r0; - - r0 := @this: de.upb.soot.instructions.stmt.Pear; - - specialinvoke r0.()>(); - - return; - } - - public void printId() - { - de.upb.soot.instructions.stmt.Pear r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.Pear; - - $r1 = ; - - virtualinvoke $r1.("Id"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ReturnStmts.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ReturnStmts.jimple deleted file mode 100644 index 9e997f98e56..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ReturnStmts.jimple +++ /dev/null @@ -1,94 +0,0 @@ -public class de.upb.soot.instructions.stmt.ReturnStmts extends java.lang.Object -{ - - void (int) - { - de.upb.soot.instructions.stmt.ReturnStmts r0; - int i0; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmts; - - i0 := @parameter0: int; - - specialinvoke r0.()>(); - - if i0 >= 18 goto label1; - - return; - - label1: - return; - } - - public void returnnothing() - { - de.upb.soot.instructions.stmt.ReturnStmts r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmts; - - $r1 = ; - - virtualinvoke $r1.("A"); - - return; - } - - public void pointofnoreturn() - { - de.upb.soot.instructions.stmt.ReturnStmts r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmts; - - $r1 = ; - - virtualinvoke $r1.("A"); - - return; - } - - public int returnA(int) - { - de.upb.soot.instructions.stmt.ReturnStmts r0; - int i0; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmts; - - i0 := @parameter0: int; - - return i0; - } - - public int returnB() - { - de.upb.soot.instructions.stmt.ReturnStmts r0; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmts; - - return 42; - } - - public int returnC() - { - de.upb.soot.instructions.stmt.ReturnStmts r0; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmts; - - return 42; - } - - public java.lang.Integer returnObject() - { - de.upb.soot.instructions.stmt.ReturnStmts r0; - java.lang.Integer $r1; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmts; - - $r1 = new java.lang.Integer; - - specialinvoke $r1.(int)>(5); - - return $r1; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ThrowStmt.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ThrowStmt.jimple deleted file mode 100644 index 59234523514..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.stmt.ThrowStmt.jimple +++ /dev/null @@ -1,28 +0,0 @@ -public class de.upb.soot.instructions.stmt.ThrowStmt extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.stmt.ThrowStmt r0; - - r0 := @this: de.upb.soot.instructions.stmt.ThrowStmt; - - specialinvoke r0.()>(); - - return; - } - - public void throwsth() throws java.lang.Exception - { - de.upb.soot.instructions.stmt.ThrowStmt r0; - java.lang.Exception $r1; - - r0 := @this: de.upb.soot.instructions.stmt.ThrowStmt; - - $r1 = new java.lang.Exception; - - specialinvoke $r1.(java.lang.String)>("Banana"); - - throw $r1; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.type.AllTypes.jimple b/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.type.AllTypes.jimple deleted file mode 100644 index ec470a6b7ed..00000000000 --- a/de.upb.swt.soot.java.core/src/test/java8/resources/reference-jimple/de.upb.soot.instructions.type.AllTypes.jimple +++ /dev/null @@ -1,47 +0,0 @@ -public class de.upb.soot.instructions.type.AllTypes extends java.lang.Object -{ - int[] arr; - boolean z; - byte b; - char c; - double d; - float f; - int i; - long l; - java.lang.Object n; - de.upb.soot.instructions.type.AllTypes ref; - short s; - - public void () - { - de.upb.soot.instructions.type.AllTypes r0, $r1; - - r0 := @this: de.upb.soot.instructions.type.AllTypes; - - specialinvoke r0.()>(); - - r0. = null; - - $r1 = new de.upb.soot.instructions.type.AllTypes; - - specialinvoke $r1.()>(); - - r0. = $r1; - - return; - } - - void methodSignature() - { - de.upb.soot.instructions.type.AllTypes r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.type.AllTypes; - - $r1 = ; - - virtualinvoke $r1.("void"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.A.jimple deleted file mode 100644 index bc8a221f2a8..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.A.jimple +++ /dev/null @@ -1,30 +0,0 @@ -abstract class de.upb.soot.basic.abstractClasses.A extends java.lang.Object -{ - - void () - { - de.upb.soot.basic.abstractClasses.A r0; - - r0 := @this: de.upb.soot.basic.abstractClasses.A; - - specialinvoke r0.()>(); - - return; - } - - abstract void print(); - - public void methodA() - { - de.upb.soot.basic.abstractClasses.A r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.basic.abstractClasses.A; - - $r1 = ; - - virtualinvoke $r1.("method of Class A"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.AbstractClasses.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.AbstractClasses.jimple deleted file mode 100644 index 84b9b41f4a5..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.AbstractClasses.jimple +++ /dev/null @@ -1,31 +0,0 @@ -public abstract class de.upb.soot.basic.abstractClasses.AbstractClasses extends java.lang.Object -{ - - public void () - { - de.upb.soot.basic.abstractClasses.AbstractClasses r0; - - r0 := @this: de.upb.soot.basic.abstractClasses.AbstractClasses; - - specialinvoke r0.()>(); - - return; - } - - public static void abstractClasses() - { - de.upb.soot.basic.abstractClasses.B $r1; - - $r1 = new de.upb.soot.basic.abstractClasses.B; - - specialinvoke $r1.()>(); - - virtualinvoke $r1.(); - - virtualinvoke $r1.(); - - virtualinvoke $r1.(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.B.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.B.jimple deleted file mode 100644 index ea562aeff4e..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.abstractClasses.B.jimple +++ /dev/null @@ -1,42 +0,0 @@ -class de.upb.soot.basic.abstractClasses.B extends de.upb.soot.basic.abstractClasses.A -{ - - void () - { - de.upb.soot.basic.abstractClasses.B r0; - - r0 := @this: de.upb.soot.basic.abstractClasses.B; - - specialinvoke r0.()>(); - - return; - } - - public void print() - { - de.upb.soot.basic.abstractClasses.B r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.basic.abstractClasses.B; - - $r1 = ; - - virtualinvoke $r1.("Something"); - - return; - } - - public void methodB() - { - de.upb.soot.basic.abstractClasses.B r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.basic.abstractClasses.B; - - $r1 = ; - - virtualinvoke $r1.("method of Class B"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Cast.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Cast.jimple deleted file mode 100644 index 33b0b23b2c4..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Cast.jimple +++ /dev/null @@ -1,26 +0,0 @@ -public class de.upb.soot.basic.expr.Cast extends java.lang.Object -{ - - public void () - { - de.upb.soot.basic.expr.Cast r0; - - r0 := @this: de.upb.soot.basic.expr.Cast; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.basic.expr.Cast r0; - int i0; - - r0 := @this: de.upb.soot.basic.expr.Cast; - - i0 = (int) 3.14; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Dummy.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Dummy.jimple deleted file mode 100644 index cc3f6b6357e..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Dummy.jimple +++ /dev/null @@ -1,24 +0,0 @@ -public class de.upb.soot.basic.expr.Dummy extends java.lang.Object -{ - public int field; - - public void () - { - de.upb.soot.basic.expr.Dummy r0; - - r0 := @this: de.upb.soot.basic.expr.Dummy; - - specialinvoke r0.()>(); - - return; - } - - public int method() - { - de.upb.soot.basic.expr.Dummy r0; - - r0 := @this: de.upb.soot.basic.expr.Dummy; - - return 42; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Length.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Length.jimple deleted file mode 100644 index c06dc5ad17b..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Length.jimple +++ /dev/null @@ -1,34 +0,0 @@ -public class de.upb.soot.basic.expr.Length extends java.lang.Object -{ - - public void () - { - de.upb.soot.basic.expr.Length r0; - - r0 := @this: de.upb.soot.basic.expr.Length; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.basic.expr.Length r0; - int[] r1; - int $i0; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.basic.expr.Length; - - r1 = newarray (int)[42]; - - $r2 = ; - - $i0 = lengthof r1; - - virtualinvoke $r2.($i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Negate.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Negate.jimple deleted file mode 100644 index 814f04caeb1..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.Negate.jimple +++ /dev/null @@ -1,19 +0,0 @@ -public class de.upb.soot.basic.expr.Negate extends java.lang.Object -{ - - public void () - { - de.upb.soot.basic.expr.Negate r0; - - r0 := @this: de.upb.soot.basic.expr.Negate; - - specialinvoke r0.()>(); - - return; - } - - static void sth() - { - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewArray.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewArray.jimple deleted file mode 100644 index a40bf0537c8..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewArray.jimple +++ /dev/null @@ -1,50 +0,0 @@ -public class de.upb.soot.basic.expr.NewArray extends java.lang.Object -{ - - public void () - { - de.upb.soot.basic.expr.NewArray r0; - - r0 := @this: de.upb.soot.basic.expr.NewArray; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.basic.expr.NewArray r0; - int[] r1; - double[] r2; - boolean[] r3; - char[] r4; - java.lang.String[] r5; - java.lang.Integer[] r6; - java.lang.Double[] r7; - java.lang.Boolean[] r8; - java.lang.Object[] r9; - - r0 := @this: de.upb.soot.basic.expr.NewArray; - - r1 = newarray (int)[42]; - - r2 = newarray (double)[42]; - - r3 = newarray (boolean)[42]; - - r4 = newarray (char)[42]; - - r5 = newarray (java.lang.String)[42]; - - r6 = newarray (java.lang.Integer)[42]; - - r7 = newarray (java.lang.Double)[42]; - - r8 = newarray (java.lang.Boolean)[42]; - - r9 = newarray (java.lang.Object)[42]; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewMultiArray.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewMultiArray.jimple deleted file mode 100644 index 89cd409bf52..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.expr.NewMultiArray.jimple +++ /dev/null @@ -1,34 +0,0 @@ -public class de.upb.soot.basic.expr.NewMultiArray extends java.lang.Object -{ - - public void () - { - de.upb.soot.basic.expr.NewMultiArray r0; - - r0 := @this: de.upb.soot.basic.expr.NewMultiArray; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.basic.expr.NewMultiArray r0; - int[][] r1; - int $i0; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.basic.expr.NewMultiArray; - - r1 = newmultiarray (int)[42][10]; - - $r2 = ; - - $i0 = lengthof r1; - - virtualinvoke $r2.($i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.A.jimple deleted file mode 100644 index 860181663b8..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.fieldReference.A.jimple +++ /dev/null @@ -1,20 +0,0 @@ -class de.upb.soot.basic.fieldReference.A extends java.lang.Object -{ - int i; - java.lang.String j; - - void () - { - de.upb.soot.basic.fieldReference.A r0; - - r0 := @this: de.upb.soot.basic.fieldReference.A; - - specialinvoke r0.()>(); - - r0. = 15; - - r0. = "greater"; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.A.jimple deleted file mode 100644 index baed6fa317d..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.A.jimple +++ /dev/null @@ -1,32 +0,0 @@ -class de.upb.soot.basic.hierarchy.A extends de.upb.soot.basic.hierarchy.B -{ - - void () - { - de.upb.soot.basic.hierarchy.A r0; - - r0 := @this: de.upb.soot.basic.hierarchy.A; - - specialinvoke r0.()>(); - - return; - } - - public java.lang.String methodA() - { - de.upb.soot.basic.hierarchy.A r0; - - r0 := @this: de.upb.soot.basic.hierarchy.A; - - return "Return from methodA of class A"; - } - - public int method_intA() - { - de.upb.soot.basic.hierarchy.A r0; - - r0 := @this: de.upb.soot.basic.hierarchy.A; - - return 7; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.B.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.B.jimple deleted file mode 100644 index eb05f6cdf32..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.B.jimple +++ /dev/null @@ -1,47 +0,0 @@ -class de.upb.soot.basic.hierarchy.B extends de.upb.soot.basic.hierarchy.C -{ - - void () - { - de.upb.soot.basic.hierarchy.B r0; - - r0 := @this: de.upb.soot.basic.hierarchy.B; - - specialinvoke r0.()>(); - - return; - } - - public java.lang.String methodB() - { - de.upb.soot.basic.hierarchy.B r0, $r2; - java.lang.StringBuilder $r3, $r5, $r6; - java.io.PrintStream $r4; - int $i0; - java.lang.String $r7; - - r0 := @this: de.upb.soot.basic.hierarchy.B; - - $r2 = new de.upb.soot.basic.hierarchy.B; - - specialinvoke $r2.()>(); - - $r4 = ; - - $r3 = new java.lang.StringBuilder; - - specialinvoke $r3.()>(); - - $r5 = virtualinvoke $r3.("method of Class B "); - - $i0 = virtualinvoke $r2.(); - - $r6 = virtualinvoke $r5.($i0); - - $r7 = virtualinvoke $r6.(); - - virtualinvoke $r4.($r7); - - return "method of Class B"; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.C.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.C.jimple deleted file mode 100644 index 22ad29bed56..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.C.jimple +++ /dev/null @@ -1,23 +0,0 @@ -class de.upb.soot.basic.hierarchy.C extends java.lang.Object -{ - - void () - { - de.upb.soot.basic.hierarchy.C r0; - - r0 := @this: de.upb.soot.basic.hierarchy.C; - - specialinvoke r0.()>(); - - return; - } - - public int methodC() - { - de.upb.soot.basic.hierarchy.C r0; - - r0 := @this: de.upb.soot.basic.hierarchy.C; - - return 77; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.Hierarchy.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.Hierarchy.jimple deleted file mode 100644 index a8fa25452fb..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.hierarchy.Hierarchy.jimple +++ /dev/null @@ -1,86 +0,0 @@ -public class de.upb.soot.basic.hierarchy.Hierarchy extends de.upb.soot.basic.hierarchy.A -{ - - public void () - { - de.upb.soot.basic.hierarchy.Hierarchy r0; - - r0 := @this: de.upb.soot.basic.hierarchy.Hierarchy; - - specialinvoke r0.()>(); - - return; - } - - public static void hierarchy(java.lang.String[]) - { - java.lang.String[] r0; - de.upb.soot.basic.hierarchy.Hierarchy $r2; - java.io.PrintStream $r4; - java.lang.String $r5; - - r0 := @parameter0: java.lang.String[]; - - $r2 = new de.upb.soot.basic.hierarchy.Hierarchy; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - $r4 = ; - - $r5 = virtualinvoke $r2.(); - - virtualinvoke $r4.($r5); - - return; - } - - public volatile int method_intA() - { - de.upb.soot.basic.hierarchy.Hierarchy r0; - int $i0; - - r0 := @this: de.upb.soot.basic.hierarchy.Hierarchy; - - $i0 = specialinvoke r0.(); - - return $i0; - } - - public volatile java.lang.String methodA() - { - de.upb.soot.basic.hierarchy.Hierarchy r0; - java.lang.String $r1; - - r0 := @this: de.upb.soot.basic.hierarchy.Hierarchy; - - $r1 = specialinvoke r0.(); - - return $r1; - } - - public volatile java.lang.String methodB() - { - de.upb.soot.basic.hierarchy.Hierarchy r0; - java.lang.String $r1; - - r0 := @this: de.upb.soot.basic.hierarchy.Hierarchy; - - $r1 = specialinvoke r0.(); - - return $r1; - } - - public volatile int methodC() - { - de.upb.soot.basic.hierarchy.Hierarchy r0; - int $i0; - - r0 := @this: de.upb.soot.basic.hierarchy.Hierarchy; - - $i0 = specialinvoke r0.(); - - return $i0; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A1.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A1.jimple deleted file mode 100644 index 9f25f190f77..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A1.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.basic.interfaces.A1 extends java.lang.Object -{ - - public abstract void printA1(); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A2.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A2.jimple deleted file mode 100644 index c87c9aaee7e..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.A2.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.basic.interfaces.A2 extends java.lang.Object -{ - - public abstract void printA2(); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.B.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.B.jimple deleted file mode 100644 index f311fe9a4d5..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.B.jimple +++ /dev/null @@ -1,28 +0,0 @@ -class de.upb.soot.basic.interfaces.B extends java.lang.Object implements de.upb.soot.basic.interfaces.A1 -{ - - void () - { - de.upb.soot.basic.interfaces.B r0; - - r0 := @this: de.upb.soot.basic.interfaces.B; - - specialinvoke r0.()>(); - - return; - } - - public void printA1() - { - de.upb.soot.basic.interfaces.B r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.basic.interfaces.B; - - $r1 = ; - - virtualinvoke $r1.("Interface A1"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.C.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.C.jimple deleted file mode 100644 index 8cc36a55847..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.C.jimple +++ /dev/null @@ -1,42 +0,0 @@ -public class de.upb.soot.basic.interfaces.C extends java.lang.Object implements de.upb.soot.basic.interfaces.A1, de.upb.soot.basic.interfaces.A2 -{ - - public void () - { - de.upb.soot.basic.interfaces.C r0; - - r0 := @this: de.upb.soot.basic.interfaces.C; - - specialinvoke r0.()>(); - - return; - } - - public void printA1() - { - de.upb.soot.basic.interfaces.C r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.basic.interfaces.C; - - $r1 = ; - - virtualinvoke $r1.("Interface A1"); - - return; - } - - public void printA2() - { - de.upb.soot.basic.interfaces.C r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.basic.interfaces.C; - - $r1 = ; - - virtualinvoke $r1.("Interface A2"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.Interfaces.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.Interfaces.jimple deleted file mode 100644 index d7b67cfd4c5..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.interfaces.Interfaces.jimple +++ /dev/null @@ -1,52 +0,0 @@ -public class de.upb.soot.basic.interfaces.Interfaces extends java.lang.Object -{ - - public void () - { - de.upb.soot.basic.interfaces.Interfaces r0; - - r0 := @this: de.upb.soot.basic.interfaces.Interfaces; - - specialinvoke r0.()>(); - - return; - } - - public void singleInterface() - { - de.upb.soot.basic.interfaces.Interfaces r0; - de.upb.soot.basic.interfaces.C $r2; - - r0 := @this: de.upb.soot.basic.interfaces.Interfaces; - - $r2 = new de.upb.soot.basic.interfaces.C; - - specialinvoke $r2.()>(); - - interfaceinvoke $r2.(); - - return; - } - - public void multipleInterface() - { - de.upb.soot.basic.interfaces.Interfaces r0; - de.upb.soot.basic.interfaces.C $r3, $r4; - - r0 := @this: de.upb.soot.basic.interfaces.Interfaces; - - $r3 = new de.upb.soot.basic.interfaces.C; - - specialinvoke $r3.()>(); - - $r4 = new de.upb.soot.basic.interfaces.C; - - specialinvoke $r4.()>(); - - interfaceinvoke $r3.(); - - interfaceinvoke $r4.(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.A.jimple deleted file mode 100644 index 8e77a443dc2..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.invoke.A.jimple +++ /dev/null @@ -1,62 +0,0 @@ -public class de.upb.soot.basic.invoke.A extends java.lang.Object -{ - private java.lang.String name; - private int num; - - public void () - { - de.upb.soot.basic.invoke.A r0; - - r0 := @this: de.upb.soot.basic.invoke.A; - - specialinvoke r0.()>(); - - return; - } - - public void (java.lang.String, int) - { - de.upb.soot.basic.invoke.A r0; - java.lang.String r1; - int i0; - - r0 := @this: de.upb.soot.basic.invoke.A; - - r1 := @parameter0: java.lang.String; - - i0 := @parameter1: int; - - specialinvoke r0.()>(); - - r0. = r1; - - r0. = i0; - - return; - } - - public static int methodA() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.("Method A called"); - - return 0; - } - - public static int methodB(java.lang.String) - { - java.lang.String r0; - java.io.PrintStream $r1; - - r0 := @parameter0: java.lang.String; - - $r1 = ; - - virtualinvoke $r1.(r0); - - return 0; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.A.jimple deleted file mode 100644 index bd7cd101a30..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.A.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.basic.lambdaExpressions.A extends java.lang.Object -{ - - public abstract java.lang.String methodA(int); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.LambdaExpressions.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.LambdaExpressions.jimple deleted file mode 100644 index fc9dd17e10b..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.lambdaExpressions.LambdaExpressions.jimple +++ /dev/null @@ -1,85 +0,0 @@ -abstract class de.upb.soot.basic.lambdaExpressions.LambdaExpressions extends java.lang.Object -{ - - void () - { - de.upb.soot.basic.lambdaExpressions.LambdaExpressions r0; - - r0 := @this: de.upb.soot.basic.lambdaExpressions.LambdaExpressions; - - specialinvoke r0.()>(); - - return; - } - - public static void lambdaTarget() - { - de.upb.soot.basic.lambdaExpressions.A r0, r1; - java.io.PrintStream $r2, $r4; - java.lang.String $r3, $r5; - - r0 = dynamicinvoke "methodA" () (class "(I)Ljava/lang/String;", handle: , class "(I)Ljava/lang/String;"); - - r1 = dynamicinvoke "methodA" () (class "(I)Ljava/lang/String;", handle: , class "(I)Ljava/lang/String;"); - - $r2 = ; - - $r3 = interfaceinvoke r0.(7); - - virtualinvoke $r2.($r3); - - $r4 = ; - - $r5 = interfaceinvoke r1.(9); - - virtualinvoke $r4.($r5); - - return; - } - - private static java.lang.String lambda$lambdaTarget$1(int) - { - int i0; - java.lang.StringBuilder $r0, $r1, $r2, $r3; - java.lang.String $r4; - - i0 := @parameter0: int; - - $r0 = new java.lang.StringBuilder; - - specialinvoke $r0.()>(); - - $r1 = virtualinvoke $r0.("Hello "); - - $r2 = virtualinvoke $r1.(i0); - - $r3 = virtualinvoke $r2.("!"); - - $r4 = virtualinvoke $r3.(); - - return $r4; - } - - private static java.lang.String lambda$lambdaTarget$0(int) - { - int i0; - java.lang.StringBuilder $r0, $r1, $r2, $r3; - java.lang.String $r4; - - i0 := @parameter0: int; - - $r0 = new java.lang.StringBuilder; - - specialinvoke $r0.()>(); - - $r1 = virtualinvoke $r0.("Hello "); - - $r2 = virtualinvoke $r1.(i0); - - $r3 = virtualinvoke $r2.("!"); - - $r4 = virtualinvoke $r3.(); - - return $r4; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.AssignStmt.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.AssignStmt.jimple deleted file mode 100644 index 75da05f9ecf..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.AssignStmt.jimple +++ /dev/null @@ -1,67 +0,0 @@ -public class de.upb.soot.basic.locals.AssignStmt extends java.lang.Object -{ - int field; - - public void () - { - de.upb.soot.basic.locals.AssignStmt r0; - - r0 := @this: de.upb.soot.basic.locals.AssignStmt; - - specialinvoke r0.()>(); - - r0. = 3; - - return; - } - - void sth() - { - de.upb.soot.basic.locals.AssignStmt r0; - int[] r2; - int i1, i2, i3, $i6, $i7, $i8, $i9; - de.upb.soot.basic.expr.Dummy $r3; - - r0 := @this: de.upb.soot.basic.locals.AssignStmt; - - $r3 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r3.()>(); - - r2 = newarray (int)[666]; - - i1 = $r3.; - - i2 = r2[42]; - - $i6 = r0.; - - i3 = r2[$i6]; - - staticinvoke (-1); - - r0. = 42; - - r0. = 42; - - $r3. = 666; - - $i7 = r0.; - - $r3. = $i7; - - r2[0] = 42; - - r2[42] = 123; - - $i8 = staticinvoke (-1); - - r2[$i8] = 43; - - $i9 = r0.; - - r2[$i9] = 0; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.IdentityStmt.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.IdentityStmt.jimple deleted file mode 100644 index b1f0e449708..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.locals.IdentityStmt.jimple +++ /dev/null @@ -1,81 +0,0 @@ -public class de.upb.soot.basic.locals.IdentityStmt extends java.lang.Object -{ - int declProperty; - int initProperty; - - public void () - { - de.upb.soot.basic.locals.IdentityStmt r0; - - r0 := @this: de.upb.soot.basic.locals.IdentityStmt; - - specialinvoke r0.()>(); - - r0. = 42; - - return; - } - - public void atThis() - { - de.upb.soot.basic.locals.IdentityStmt r0; - int $i0, $i1; - java.io.PrintStream $r1, $r2; - - r0 := @this: de.upb.soot.basic.locals.IdentityStmt; - - $r1 = ; - - $i0 = r0.; - - virtualinvoke $r1.($i0); - - $r2 = ; - - $i1 = r0.; - - virtualinvoke $r2.($i1); - - return; - } - - public void atParameter(int, java.lang.String, boolean) - { - de.upb.soot.basic.locals.IdentityStmt r0; - int i0; - java.lang.String r1; - boolean z0; - java.io.PrintStream $r2, $r3, $r4; - - r0 := @this: de.upb.soot.basic.locals.IdentityStmt; - - i0 := @parameter0: int; - - r1 := @parameter1: java.lang.String; - - z0 := @parameter2: boolean; - - $r2 = ; - - virtualinvoke $r2.(i0); - - $r3 = ; - - virtualinvoke $r3.(r1); - - $r4 = ; - - virtualinvoke $r4.(z0); - - return; - } - - public void atException() - { - de.upb.soot.basic.locals.IdentityStmt r0; - - r0 := @this: de.upb.soot.basic.locals.IdentityStmt; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.A.jimple deleted file mode 100644 index 23c2f48fa59..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.A.jimple +++ /dev/null @@ -1,28 +0,0 @@ -class de.upb.soot.basic.nonPrimitiveLocals.A extends java.lang.Object -{ - - void () - { - de.upb.soot.basic.nonPrimitiveLocals.A r0; - - r0 := @this: de.upb.soot.basic.nonPrimitiveLocals.A; - - specialinvoke r0.()>(); - - return; - } - - public void foo() - { - de.upb.soot.basic.nonPrimitiveLocals.A r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.basic.nonPrimitiveLocals.A; - - $r1 = ; - - virtualinvoke $r1.("Something"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals.jimple deleted file mode 100644 index d90b04111d2..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals.jimple +++ /dev/null @@ -1,48 +0,0 @@ -public class de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals extends de.upb.soot.basic.nonPrimitiveLocals.A -{ - - public void () - { - de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals r0; - - r0 := @this: de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals; - - specialinvoke r0.()>(); - - return; - } - - public void nonPrimitiveLocalsTarget() - { - de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals r0; - int[] r1; - de.upb.soot.basic.nonPrimitiveLocals.A $r3; - - r0 := @this: de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals; - - r1 = newarray (int)[10]; - - $r3 = new de.upb.soot.basic.nonPrimitiveLocals.A; - - specialinvoke $r3.()>(); - - virtualinvoke $r3.(); - - r1[1] = 10; - - r1[7] = 70; - - return; - } - - public volatile void foo() - { - de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals r0; - - r0 := @this: de.upb.soot.basic.nonPrimitiveLocals.NonPrimitiveLocals; - - specialinvoke r0.(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.primitiveLocals.PrimitiveLocals.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.primitiveLocals.PrimitiveLocals.jimple deleted file mode 100644 index 9bacea63d1a..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.primitiveLocals.PrimitiveLocals.jimple +++ /dev/null @@ -1,140 +0,0 @@ -public class de.upb.soot.basic.primitiveLocals.PrimitiveLocals extends java.lang.Object -{ - - public void () - { - de.upb.soot.basic.primitiveLocals.PrimitiveLocals r0; - - r0 := @this: de.upb.soot.basic.primitiveLocals.PrimitiveLocals; - - specialinvoke r0.()>(); - - return; - } - - public void primitiveInt() - { - de.upb.soot.basic.primitiveLocals.PrimitiveLocals r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.basic.primitiveLocals.PrimitiveLocals; - - $r1 = ; - - virtualinvoke $r1.(512); - - return; - } - - public void primitiveByte() - { - de.upb.soot.basic.primitiveLocals.PrimitiveLocals r0; - java.io.PrintStream $r1; - int $i0; - byte b2; - - r0 := @this: de.upb.soot.basic.primitiveLocals.PrimitiveLocals; - - $r1 = ; - - virtualinvoke $r1.(0); - - $i0 = 0 + 1; - - b2 = (byte) $i0; - - return; - } - - public void primitiveChar() - { - de.upb.soot.basic.primitiveLocals.PrimitiveLocals r0; - java.io.PrintStream $r1, $r2; - - r0 := @this: de.upb.soot.basic.primitiveLocals.PrimitiveLocals; - - $r1 = ; - - virtualinvoke $r1.(97); - - $r2 = ; - - virtualinvoke $r2.(98); - - return; - } - - public void primitiveShort() - { - de.upb.soot.basic.primitiveLocals.PrimitiveLocals r0; - java.io.PrintStream $r1; - int $i0; - short s2; - - r0 := @this: de.upb.soot.basic.primitiveLocals.PrimitiveLocals; - - $r1 = ; - - virtualinvoke $r1.(10); - - $i0 = 10 + 1; - - s2 = (short) $i0; - - return; - } - - public void primitiveFloat() - { - de.upb.soot.basic.primitiveLocals.PrimitiveLocals r0; - java.io.PrintStream $r1, $r2; - - r0 := @this: de.upb.soot.basic.primitiveLocals.PrimitiveLocals; - - $r1 = ; - - virtualinvoke $r1.(3.14F); - - $r2 = ; - - virtualinvoke $r2.(7.77F); - - return; - } - - public void primitiveLong() - { - de.upb.soot.basic.primitiveLocals.PrimitiveLocals r0; - java.io.PrintStream $r1, $r2; - - r0 := @this: de.upb.soot.basic.primitiveLocals.PrimitiveLocals; - - $r1 = ; - - virtualinvoke $r1.(123456789L); - - $r2 = ; - - virtualinvoke $r2.(123456777L); - - return; - } - - public void primitiveDouble() - { - de.upb.soot.basic.primitiveLocals.PrimitiveLocals r0; - java.io.PrintStream $r1, $r2; - - r0 := @this: de.upb.soot.basic.primitiveLocals.PrimitiveLocals; - - $r1 = ; - - virtualinvoke $r1.(1.96969654); - - $r2 = ; - - virtualinvoke $r2.(1.787777777); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.A.jimple deleted file mode 100644 index 577293f6b72..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.A.jimple +++ /dev/null @@ -1,36 +0,0 @@ -class de.upb.soot.basic.staticFields.A extends java.lang.Object -{ - public static int a; - public static java.lang.String b; - - void () - { - de.upb.soot.basic.staticFields.A r0; - - r0 := @this: de.upb.soot.basic.staticFields.A; - - specialinvoke r0.()>(); - - return; - } - - public static void methodA() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.("Static methodA"); - - return; - } - - static void () - { - = 10; - - = " is a number."; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.StaticFields.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.StaticFields.jimple deleted file mode 100644 index 7e900fd97bb..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.basic.staticFields.StaticFields.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.basic.staticFields.StaticFields extends java.lang.Object -{ - - public void () - { - de.upb.soot.basic.staticFields.StaticFields r0; - - r0 := @this: de.upb.soot.basic.staticFields.StaticFields; - - specialinvoke r0.()>(); - - return; - } - - public static void staticFields() - { - java.lang.StringBuilder $r0, $r2, $r4; - java.io.PrintStream $r1; - int $i0; - java.lang.String $r3, $r5; - - staticinvoke (); - - $r1 = ; - - $r0 = new java.lang.StringBuilder; - - specialinvoke $r0.()>(); - - $i0 = ; - - $r2 = virtualinvoke $r0.($i0); - - $r3 = ; - - $r4 = virtualinvoke $r2.($r3); - - $r5 = virtualinvoke $r4.(); - - virtualinvoke $r1.($r5); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.constants.Constants.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.constants.Constants.jimple deleted file mode 100644 index cba54baaf82..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.constants.Constants.jimple +++ /dev/null @@ -1,140 +0,0 @@ -public class de.upb.soot.concrete.constants.Constants extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.constants.Constants r0; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - specialinvoke r0.()>(); - - return; - } - - public void intConstant() - { - de.upb.soot.concrete.constants.Constants r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - $r1 = ; - - virtualinvoke $r1.(512); - - return; - } - - public void byteConstant() - { - de.upb.soot.concrete.constants.Constants r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - $r1 = ; - - virtualinvoke $r1.(0); - - return; - } - - public void charConstant() - { - de.upb.soot.concrete.constants.Constants r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - $r1 = ; - - virtualinvoke $r1.(97); - - return; - } - - public void shortConstant() - { - de.upb.soot.concrete.constants.Constants r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - $r1 = ; - - virtualinvoke $r1.(10); - - return; - } - - public void floatConstant() - { - de.upb.soot.concrete.constants.Constants r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - $r1 = ; - - virtualinvoke $r1.(3.14F); - - return; - } - - public void longConstant() - { - de.upb.soot.concrete.constants.Constants r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - $r1 = ; - - virtualinvoke $r1.(123456789L); - - return; - } - - public void doubleConstant() - { - de.upb.soot.concrete.constants.Constants r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - $r1 = ; - - virtualinvoke $r1.(1.96969654); - - return; - } - - public void classConstant() - { - de.upb.soot.concrete.constants.Constants r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - $r1 = ; - - virtualinvoke $r1.(class "Lde/upb/soot/concrete/constants/Constants;"); - - return; - } - - public void stringConstant() - { - de.upb.soot.concrete.constants.Constants r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.constants.Constants; - - $r1 = ; - - virtualinvoke $r1.("foo"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects$Foo.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects$Foo.jimple deleted file mode 100644 index 64b4d61a169..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects$Foo.jimple +++ /dev/null @@ -1,23 +0,0 @@ -final class de.upb.soot.concrete.emulation.Objects$Foo extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.emulation.Objects$Foo r0; - - r0 := @this: de.upb.soot.concrete.emulation.Objects$Foo; - - specialinvoke r0.()>(); - - return; - } - - public java.lang.String toString() - { - de.upb.soot.concrete.emulation.Objects$Foo r0; - - r0 := @this: de.upb.soot.concrete.emulation.Objects$Foo; - - return "foo"; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects.jimple deleted file mode 100644 index 55aa8ff28d2..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.emulation.Objects.jimple +++ /dev/null @@ -1,47 +0,0 @@ -public class de.upb.soot.concrete.emulation.Objects extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.emulation.Objects r0; - - r0 := @this: de.upb.soot.concrete.emulation.Objects; - - specialinvoke r0.()>(); - - return; - } - - public void jObjectToJavaObject() - { - de.upb.soot.concrete.emulation.Objects r0; - de.upb.soot.concrete.emulation.Objects$Foo $r1; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.concrete.emulation.Objects; - - $r2 = ; - - $r1 = new de.upb.soot.concrete.emulation.Objects$Foo; - - specialinvoke $r1.()>(); - - virtualinvoke $r2.($r1); - - return; - } - - public void systemOut() - { - de.upb.soot.concrete.emulation.Objects r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.emulation.Objects; - - $r1 = ; - - virtualinvoke $r1.(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.A.jimple deleted file mode 100644 index d7dc3388e6d..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.A.jimple +++ /dev/null @@ -1,20 +0,0 @@ -class de.upb.soot.concrete.fieldReference.A extends java.lang.Object -{ - int i; - public java.lang.String j; - - void () - { - de.upb.soot.concrete.fieldReference.A r0; - - r0 := @this: de.upb.soot.concrete.fieldReference.A; - - specialinvoke r0.()>(); - - r0. = 15; - - r0. = "greater"; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.FieldReference.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.FieldReference.jimple deleted file mode 100644 index 160328f6821..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.fieldReference.FieldReference.jimple +++ /dev/null @@ -1,262 +0,0 @@ -public class de.upb.soot.concrete.fieldReference.FieldReference extends java.lang.Object -{ - private final int f; - protected java.lang.String b; - private int a; - - public void () - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - specialinvoke r0.()>(); - - r0. = 2; - - r0. = "foo"; - - r0. = 1; - - return; - } - - public void ownField() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - int $i0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $r1 = ; - - $i0 = r0.; - - virtualinvoke $r1.($i0); - - return; - } - - public void ownFieldWrite() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - int $i0, $i1, $i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $i0 = r0.; - - $i1 = $i0 + 1; - - r0. = $i1; - - $r1 = ; - - $i2 = r0.; - - virtualinvoke $r1.($i2); - - return; - } - - public void otherField() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - de.upb.soot.concrete.fieldReference.A $r2; - int $i0; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $r2 = new de.upb.soot.concrete.fieldReference.A; - - specialinvoke $r2.()>(); - - $r3 = ; - - $i0 = $r2.; - - virtualinvoke $r3.($i0); - - return; - } - - public void otherFieldWrite() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - de.upb.soot.concrete.fieldReference.A $r2; - int $i0, $i1, $i2; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $r2 = new de.upb.soot.concrete.fieldReference.A; - - specialinvoke $r2.()>(); - - $i0 = $r2.; - - $i1 = $i0 + 1; - - $r2. = $i1; - - $r3 = ; - - $i2 = $r2.; - - virtualinvoke $r3.($i2); - - return; - } - - public void otherFieldWrite2() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - de.upb.soot.concrete.fieldReference.A $r2; - int $i1, $i2; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $r2 = new de.upb.soot.concrete.fieldReference.A; - - specialinvoke $r2.()>(); - - $i1 = $r2.; - - $i2 = $i1 + 1; - - $r2. = $i2; - - $r3 = ; - - virtualinvoke $r3.($i1); - - return; - } - - public void ownFieldObject() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - java.lang.String $r1; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $r2 = ; - - $r1 = r0.; - - virtualinvoke $r2.($r1); - - return; - } - - public void ownFieldWriteObject() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - java.lang.String $r1; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - r0. = "new"; - - $r2 = ; - - $r1 = r0.; - - virtualinvoke $r2.($r1); - - return; - } - - public void otherFieldObject() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - de.upb.soot.concrete.fieldReference.A $r2; - java.lang.String $r3; - java.io.PrintStream $r4; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $r2 = new de.upb.soot.concrete.fieldReference.A; - - specialinvoke $r2.()>(); - - $r4 = ; - - $r3 = $r2.; - - virtualinvoke $r4.($r3); - - return; - } - - public void otherFieldWriteObject() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - de.upb.soot.concrete.fieldReference.A $r2; - java.lang.String $r3; - java.io.PrintStream $r4; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $r2 = new de.upb.soot.concrete.fieldReference.A; - - specialinvoke $r2.()>(); - - $r2. = "new"; - - $r4 = ; - - $r3 = $r2.; - - virtualinvoke $r4.($r3); - - return; - } - - public void otherFieldWrite2Object() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - java.lang.String r2; - de.upb.soot.concrete.fieldReference.A $r3; - java.io.PrintStream $r4; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $r3 = new de.upb.soot.concrete.fieldReference.A; - - specialinvoke $r3.()>(); - - r2 = $r3.; - - $r3. = "new"; - - $r4 = ; - - virtualinvoke $r4.(r2); - - return; - } - - public void finalField() - { - de.upb.soot.concrete.fieldReference.FieldReference r0; - java.lang.String $r1; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.concrete.fieldReference.FieldReference; - - $r2 = ; - - $r1 = r0.; - - virtualinvoke $r2.($r1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.A.jimple deleted file mode 100644 index aef8d62561a..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.A.jimple +++ /dev/null @@ -1,41 +0,0 @@ -public class de.upb.soot.concrete.generics.A extends java.lang.Object -{ - java.lang.Object t; - - public void () - { - de.upb.soot.concrete.generics.A r0; - - r0 := @this: de.upb.soot.concrete.generics.A; - - specialinvoke r0.()>(); - - return; - } - - void setT(java.lang.Object) - { - de.upb.soot.concrete.generics.A r0; - java.lang.Object r1; - - r0 := @this: de.upb.soot.concrete.generics.A; - - r1 := @parameter0: java.lang.Object; - - r0. = r1; - - return; - } - - java.lang.Object getT() - { - de.upb.soot.concrete.generics.A r0; - java.lang.Object $r1; - - r0 := @this: de.upb.soot.concrete.generics.A; - - $r1 = r0.; - - return $r1; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.Generics.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.Generics.jimple deleted file mode 100644 index a4f5c436ac8..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.generics.Generics.jimple +++ /dev/null @@ -1,95 +0,0 @@ -public class de.upb.soot.concrete.generics.Generics extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.generics.Generics r0; - - r0 := @this: de.upb.soot.concrete.generics.Generics; - - specialinvoke r0.()>(); - - return; - } - - public void list() - { - de.upb.soot.concrete.generics.Generics r0; - java.util.ArrayList $r2; - java.io.PrintStream $r3; - java.lang.Object $r4; - java.lang.String $r5; - - r0 := @this: de.upb.soot.concrete.generics.Generics; - - $r2 = new java.util.ArrayList; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.("foo"); - - $r3 = ; - - $r4 = virtualinvoke $r2.(0); - - $r5 = (java.lang.String) $r4; - - virtualinvoke $r3.($r5); - - return; - } - - public void boxedList() - { - de.upb.soot.concrete.generics.Generics r0; - java.util.ArrayList $r2; - java.lang.Integer $r3; - java.io.PrintStream $r4; - java.lang.Object $r5; - - r0 := @this: de.upb.soot.concrete.generics.Generics; - - $r2 = new java.util.ArrayList; - - specialinvoke $r2.()>(); - - $r3 = staticinvoke (1); - - virtualinvoke $r2.($r3); - - $r4 = ; - - $r5 = virtualinvoke $r2.(0); - - virtualinvoke $r4.($r5); - - return; - } - - public void nonJDK() - { - de.upb.soot.concrete.generics.Generics r0; - de.upb.soot.concrete.generics.A $r2; - java.io.PrintStream $r3; - java.lang.Object $r4; - java.lang.String $r5; - - r0 := @this: de.upb.soot.concrete.generics.Generics; - - $r2 = new de.upb.soot.concrete.generics.A; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.("foo"); - - $r3 = ; - - $r4 = virtualinvoke $r2.(); - - $r5 = (java.lang.String) $r4; - - virtualinvoke $r3.($r5); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.A.jimple deleted file mode 100644 index b57fc0fb6f1..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.A.jimple +++ /dev/null @@ -1,30 +0,0 @@ -abstract class de.upb.soot.concrete.inheritance.A extends java.lang.Object -{ - - void () - { - de.upb.soot.concrete.inheritance.A r0; - - r0 := @this: de.upb.soot.concrete.inheritance.A; - - specialinvoke r0.()>(); - - return; - } - - abstract void print(); - - public void methodA() - { - de.upb.soot.concrete.inheritance.A r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.A; - - $r1 = ; - - virtualinvoke $r1.("eval"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.B.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.B.jimple deleted file mode 100644 index ef7bbc61c63..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.B.jimple +++ /dev/null @@ -1,48 +0,0 @@ -class de.upb.soot.concrete.inheritance.B extends de.upb.soot.concrete.inheritance.A -{ - protected int a; - protected int b; - - void () - { - de.upb.soot.concrete.inheritance.B r0; - - r0 := @this: de.upb.soot.concrete.inheritance.B; - - specialinvoke r0.()>(); - - r0. = 5; - - r0. = 3; - - return; - } - - public void print() - { - de.upb.soot.concrete.inheritance.B r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.B; - - $r1 = ; - - virtualinvoke $r1.("printB"); - - return; - } - - public void methodB() - { - de.upb.soot.concrete.inheritance.B r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.B; - - $r1 = ; - - virtualinvoke $r1.("methodB"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.C.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.C.jimple deleted file mode 100644 index 4d082adc810..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.C.jimple +++ /dev/null @@ -1,67 +0,0 @@ -public class de.upb.soot.concrete.inheritance.C extends de.upb.soot.concrete.inheritance.B -{ - public int a; - - public void () - { - de.upb.soot.concrete.inheritance.C r0; - - r0 := @this: de.upb.soot.concrete.inheritance.C; - - specialinvoke r0.()>(); - - r0. = 4; - - return; - } - - public void methodA() - { - de.upb.soot.concrete.inheritance.C r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.C; - - $r1 = ; - - virtualinvoke $r1.("methodAinC"); - - return; - } - - public void methodC() - { - de.upb.soot.concrete.inheritance.C r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.C; - - $r1 = ; - - virtualinvoke $r1.("methodC"); - - return; - } - - public volatile void methodB() - { - de.upb.soot.concrete.inheritance.C r0; - - r0 := @this: de.upb.soot.concrete.inheritance.C; - - specialinvoke r0.(); - - return; - } - - public volatile void print() - { - de.upb.soot.concrete.inheritance.C r0; - - r0 := @this: de.upb.soot.concrete.inheritance.C; - - specialinvoke r0.(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.D.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.D.jimple deleted file mode 100644 index 574d3ad08fe..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.D.jimple +++ /dev/null @@ -1,39 +0,0 @@ -public class de.upb.soot.concrete.inheritance.D extends de.upb.soot.concrete.inheritance.A -{ - - public void () - { - de.upb.soot.concrete.inheritance.D r0; - - r0 := @this: de.upb.soot.concrete.inheritance.D; - - specialinvoke r0.()>(); - - return; - } - - void print() - { - de.upb.soot.concrete.inheritance.D r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.D; - - $r1 = ; - - virtualinvoke $r1.("D"); - - return; - } - - public volatile void methodA() - { - de.upb.soot.concrete.inheritance.D r0; - - r0 := @this: de.upb.soot.concrete.inheritance.D; - - specialinvoke r0.(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$1.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$1.jimple deleted file mode 100644 index 18a196bf594..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$1.jimple +++ /dev/null @@ -1,34 +0,0 @@ -class de.upb.soot.concrete.inheritance.Inheritance$1 extends de.upb.soot.concrete.inheritance.A -{ - final de.upb.soot.concrete.inheritance.Inheritance this$0; - - void (de.upb.soot.concrete.inheritance.Inheritance) - { - de.upb.soot.concrete.inheritance.Inheritance$1 r0; - de.upb.soot.concrete.inheritance.Inheritance r1; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance$1; - - r1 := @parameter0: de.upb.soot.concrete.inheritance.Inheritance; - - r0. = r1; - - specialinvoke r0.()>(); - - return; - } - - void print() - { - de.upb.soot.concrete.inheritance.Inheritance$1 r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance$1; - - $r1 = ; - - virtualinvoke $r1.("Abstract"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$X.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$X.jimple deleted file mode 100644 index 18a3140b009..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$X.jimple +++ /dev/null @@ -1,51 +0,0 @@ -class de.upb.soot.concrete.inheritance.Inheritance$X extends de.upb.soot.concrete.inheritance.A -{ - final de.upb.soot.concrete.inheritance.Inheritance this$0; - - private void (de.upb.soot.concrete.inheritance.Inheritance) - { - de.upb.soot.concrete.inheritance.Inheritance$X r0; - de.upb.soot.concrete.inheritance.Inheritance r1; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance$X; - - r1 := @parameter0: de.upb.soot.concrete.inheritance.Inheritance; - - r0. = r1; - - specialinvoke r0.()>(); - - return; - } - - void print() - { - de.upb.soot.concrete.inheritance.Inheritance$X r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance$X; - - $r1 = ; - - virtualinvoke $r1.("X"); - - return; - } - - void (de.upb.soot.concrete.inheritance.Inheritance, de.upb.soot.concrete.inheritance.Inheritance$1) - { - de.upb.soot.concrete.inheritance.Inheritance$X r0; - de.upb.soot.concrete.inheritance.Inheritance r1; - de.upb.soot.concrete.inheritance.Inheritance$1 r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance$X; - - r1 := @parameter0: de.upb.soot.concrete.inheritance.Inheritance; - - r2 := @parameter1: de.upb.soot.concrete.inheritance.Inheritance$1; - - specialinvoke r0.(de.upb.soot.concrete.inheritance.Inheritance)>(r1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$Y.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$Y.jimple deleted file mode 100644 index 686979365e8..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance$Y.jimple +++ /dev/null @@ -1,42 +0,0 @@ -class de.upb.soot.concrete.inheritance.Inheritance$Y extends de.upb.soot.concrete.inheritance.A -{ - - private void () - { - de.upb.soot.concrete.inheritance.Inheritance$Y r0; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance$Y; - - specialinvoke r0.()>(); - - return; - } - - void print() - { - de.upb.soot.concrete.inheritance.Inheritance$Y r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance$Y; - - $r1 = ; - - virtualinvoke $r1.("Y"); - - return; - } - - void (de.upb.soot.concrete.inheritance.Inheritance$1) - { - de.upb.soot.concrete.inheritance.Inheritance$Y r0; - de.upb.soot.concrete.inheritance.Inheritance$1 r1; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance$Y; - - r1 := @parameter0: de.upb.soot.concrete.inheritance.Inheritance$1; - - specialinvoke r0.()>(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance.jimple deleted file mode 100644 index 935acc454d7..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.Inheritance.jimple +++ /dev/null @@ -1,208 +0,0 @@ -public class de.upb.soot.concrete.inheritance.Inheritance extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.inheritance.Inheritance r0; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - specialinvoke r0.()>(); - - return; - } - - public void dynDispatch1() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.D $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.D; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } - - public void dynDispatch2() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.B $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.B; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } - - public void singleLevel() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.B $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.B; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } - - public void twoLevels() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.C $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.C; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } - - public void fieldOverwrite() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.C $r2; - int $i0, $i1, $i2; - java.io.PrintStream $r3, $r4, $r5; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.C; - - specialinvoke $r2.()>(); - - $r3 = ; - - $i0 = $r2.; - - virtualinvoke $r3.($i0); - - $r4 = ; - - $i1 = $r2.; - - virtualinvoke $r4.($i1); - - $r5 = ; - - $i2 = $r2.; - - virtualinvoke $r5.($i2); - - return; - } - - public void constructorOverwrite() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.SubConstructor $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.SubConstructor; - - specialinvoke $r2.()>(); - - return; - } - - public void constructorOverwriteArg() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.SubConstructor $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.SubConstructor; - - specialinvoke $r2.(java.lang.String)>("sup"); - - return; - } - - public void nestedClass() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.Inheritance$X $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.Inheritance$X; - - specialinvoke $r2.(de.upb.soot.concrete.inheritance.Inheritance,de.upb.soot.concrete.inheritance.Inheritance$1)>(r0, null); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } - - public void staticNestedClass() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.Inheritance$Y $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.Inheritance$Y; - - specialinvoke $r2.(de.upb.soot.concrete.inheritance.Inheritance$1)>(null); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } - - public void anonymousInheritance() - { - de.upb.soot.concrete.inheritance.Inheritance r0; - de.upb.soot.concrete.inheritance.Inheritance$1 $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.Inheritance; - - $r2 = new de.upb.soot.concrete.inheritance.Inheritance$1; - - specialinvoke $r2.(de.upb.soot.concrete.inheritance.Inheritance)>(r0); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SubConstructor.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SubConstructor.jimple deleted file mode 100644 index 8f3204b4c22..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SubConstructor.jimple +++ /dev/null @@ -1,38 +0,0 @@ -public class de.upb.soot.concrete.inheritance.SubConstructor extends de.upb.soot.concrete.inheritance.SuperConstructor -{ - - public void () - { - de.upb.soot.concrete.inheritance.SubConstructor r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.SubConstructor; - - specialinvoke r0.()>(); - - $r1 = ; - - virtualinvoke $r1.("sub"); - - return; - } - - public void (java.lang.String) - { - de.upb.soot.concrete.inheritance.SubConstructor r0; - java.lang.String r1; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.SubConstructor; - - r1 := @parameter0: java.lang.String; - - specialinvoke r0.(java.lang.String)>(r1); - - $r2 = ; - - virtualinvoke $r2.("sub"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SuperConstructor.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SuperConstructor.jimple deleted file mode 100644 index 8dd5d47297e..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.inheritance.SuperConstructor.jimple +++ /dev/null @@ -1,38 +0,0 @@ -public class de.upb.soot.concrete.inheritance.SuperConstructor extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.inheritance.SuperConstructor r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.inheritance.SuperConstructor; - - specialinvoke r0.()>(); - - $r1 = ; - - virtualinvoke $r1.("sup"); - - return; - } - - public void (java.lang.String) - { - de.upb.soot.concrete.inheritance.SuperConstructor r0; - java.lang.String r1; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.concrete.inheritance.SuperConstructor; - - r1 := @parameter0: java.lang.String; - - specialinvoke r0.()>(); - - $r2 = ; - - virtualinvoke $r2.(r1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.A.jimple deleted file mode 100644 index 73d1d1002e9..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.A.jimple +++ /dev/null @@ -1,39 +0,0 @@ -public class de.upb.soot.concrete.interfaces.A extends de.upb.soot.concrete.interfaces.B implements de.upb.soot.concrete.interfaces.I2 -{ - - public void () - { - de.upb.soot.concrete.interfaces.A r0; - - r0 := @this: de.upb.soot.concrete.interfaces.A; - - specialinvoke r0.()>(); - - return; - } - - public void printI2() - { - de.upb.soot.concrete.interfaces.A r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.interfaces.A; - - $r1 = ; - - virtualinvoke $r1.("implements i2"); - - return; - } - - public volatile void printI1() - { - de.upb.soot.concrete.interfaces.A r0; - - r0 := @this: de.upb.soot.concrete.interfaces.A; - - specialinvoke r0.(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.B.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.B.jimple deleted file mode 100644 index 13564cced51..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.B.jimple +++ /dev/null @@ -1,28 +0,0 @@ -class de.upb.soot.concrete.interfaces.B extends java.lang.Object implements de.upb.soot.concrete.interfaces.I1 -{ - - void () - { - de.upb.soot.concrete.interfaces.B r0; - - r0 := @this: de.upb.soot.concrete.interfaces.B; - - specialinvoke r0.()>(); - - return; - } - - public void printI1() - { - de.upb.soot.concrete.interfaces.B r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.interfaces.B; - - $r1 = ; - - virtualinvoke $r1.("Interface I1"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.C.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.C.jimple deleted file mode 100644 index d02e5676464..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.C.jimple +++ /dev/null @@ -1,42 +0,0 @@ -public class de.upb.soot.concrete.interfaces.C extends java.lang.Object implements de.upb.soot.concrete.interfaces.I1, de.upb.soot.concrete.interfaces.I2 -{ - - public void () - { - de.upb.soot.concrete.interfaces.C r0; - - r0 := @this: de.upb.soot.concrete.interfaces.C; - - specialinvoke r0.()>(); - - return; - } - - public void printI1() - { - de.upb.soot.concrete.interfaces.C r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.interfaces.C; - - $r1 = ; - - virtualinvoke $r1.("Interface I1"); - - return; - } - - public void printI2() - { - de.upb.soot.concrete.interfaces.C r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.interfaces.C; - - $r1 = ; - - virtualinvoke $r1.("Interface I2"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.D.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.D.jimple deleted file mode 100644 index b04816a1172..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.D.jimple +++ /dev/null @@ -1,28 +0,0 @@ -public class de.upb.soot.concrete.interfaces.D extends de.upb.soot.concrete.interfaces.C -{ - - public void () - { - de.upb.soot.concrete.interfaces.D r0; - - r0 := @this: de.upb.soot.concrete.interfaces.D; - - specialinvoke r0.()>(); - - return; - } - - public void printI2() - { - de.upb.soot.concrete.interfaces.D r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.interfaces.D; - - $r1 = ; - - virtualinvoke $r1.("overwrites i2"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I1.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I1.jimple deleted file mode 100644 index 0ee6a8c0f50..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I1.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.concrete.interfaces.I1 extends java.lang.Object -{ - - public abstract void printI1(); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I2.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I2.jimple deleted file mode 100644 index 77867c9acfd..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.I2.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.concrete.interfaces.I2 extends java.lang.Object -{ - - public abstract void printI2(); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces$1.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces$1.jimple deleted file mode 100644 index 60b206ffdfd..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces$1.jimple +++ /dev/null @@ -1,34 +0,0 @@ -class de.upb.soot.concrete.interfaces.Interfaces$1 extends java.lang.Object implements de.upb.soot.concrete.interfaces.I2 -{ - final de.upb.soot.concrete.interfaces.Interfaces this$0; - - void (de.upb.soot.concrete.interfaces.Interfaces) - { - de.upb.soot.concrete.interfaces.Interfaces$1 r0; - de.upb.soot.concrete.interfaces.Interfaces r1; - - r0 := @this: de.upb.soot.concrete.interfaces.Interfaces$1; - - r1 := @parameter0: de.upb.soot.concrete.interfaces.Interfaces; - - r0. = r1; - - specialinvoke r0.()>(); - - return; - } - - public void printI2() - { - de.upb.soot.concrete.interfaces.Interfaces$1 r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.interfaces.Interfaces$1; - - $r1 = ; - - virtualinvoke $r1.("anonymous i2"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces.jimple deleted file mode 100644 index 3dcd95194bd..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.interfaces.Interfaces.jimple +++ /dev/null @@ -1,118 +0,0 @@ -public class de.upb.soot.concrete.interfaces.Interfaces extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.interfaces.Interfaces r0; - - r0 := @this: de.upb.soot.concrete.interfaces.Interfaces; - - specialinvoke r0.()>(); - - return; - } - - public void singleInterface() - { - de.upb.soot.concrete.interfaces.Interfaces r0; - de.upb.soot.concrete.interfaces.B $r2; - - r0 := @this: de.upb.soot.concrete.interfaces.Interfaces; - - $r2 = new de.upb.soot.concrete.interfaces.B; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - return; - } - - public void singleInterfaceDynDispatch() - { - de.upb.soot.concrete.interfaces.Interfaces r0; - de.upb.soot.concrete.interfaces.B $r2; - - r0 := @this: de.upb.soot.concrete.interfaces.Interfaces; - - $r2 = new de.upb.soot.concrete.interfaces.B; - - specialinvoke $r2.()>(); - - interfaceinvoke $r2.(); - - return; - } - - public void multipleInterface() - { - de.upb.soot.concrete.interfaces.Interfaces r0; - de.upb.soot.concrete.interfaces.C $r2; - - r0 := @this: de.upb.soot.concrete.interfaces.Interfaces; - - $r2 = new de.upb.soot.concrete.interfaces.C; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } - - public void inheritanceAndInterface() - { - de.upb.soot.concrete.interfaces.Interfaces r0; - de.upb.soot.concrete.interfaces.A $r2; - - r0 := @this: de.upb.soot.concrete.interfaces.Interfaces; - - $r2 = new de.upb.soot.concrete.interfaces.A; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } - - public void overwriteInterfaceMethod() - { - de.upb.soot.concrete.interfaces.Interfaces r0; - de.upb.soot.concrete.interfaces.D $r2; - - r0 := @this: de.upb.soot.concrete.interfaces.Interfaces; - - $r2 = new de.upb.soot.concrete.interfaces.D; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - virtualinvoke $r2.(); - - return; - } - - public void anonymousImpl() - { - de.upb.soot.concrete.interfaces.Interfaces r0; - de.upb.soot.concrete.interfaces.Interfaces$1 $r2; - - r0 := @this: de.upb.soot.concrete.interfaces.Interfaces; - - $r2 = new de.upb.soot.concrete.interfaces.Interfaces$1; - - specialinvoke $r2.(de.upb.soot.concrete.interfaces.Interfaces)>(r0); - - interfaceinvoke $r2.(); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.LambdaExpressions.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.LambdaExpressions.jimple deleted file mode 100644 index ad3cb2f8dc5..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.LambdaExpressions.jimple +++ /dev/null @@ -1,194 +0,0 @@ -public class de.upb.soot.concrete.lambdaExpressions.LambdaExpressions extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.lambdaExpressions.LambdaExpressions r0; - - r0 := @this: de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - specialinvoke r0.()>(); - - return; - } - - private static void doSomethingStatic() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.("something"); - - return; - } - - public void lambdaRet() - { - de.upb.soot.concrete.lambdaExpressions.LambdaExpressions r0; - de.upb.soot.concrete.lambdaExpressions.functionalRet r1; - java.io.PrintStream $r2; - java.lang.String $r3; - - r0 := @this: de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - r1 = dynamicinvoke "eval" () (class "()Ljava/lang/String;", handle: , class "()Ljava/lang/String;"); - - $r2 = ; - - $r3 = interfaceinvoke r1.(); - - virtualinvoke $r2.($r3); - - return; - } - - public void lambdaParam() - { - de.upb.soot.concrete.lambdaExpressions.LambdaExpressions r0; - de.upb.soot.concrete.lambdaExpressions.functionalArg r1; - - r0 := @this: de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - r1 = dynamicinvoke "eval" () (class "(Ljava/lang/String;)V", handle: , class "(Ljava/lang/String;)V"); - - interfaceinvoke r1.("arg"); - - return; - } - - public void lambdaVoid() - { - de.upb.soot.concrete.lambdaExpressions.LambdaExpressions r0; - de.upb.soot.concrete.lambdaExpressions.functionalVoid r1; - - r0 := @this: de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - r1 = dynamicinvoke "eval" () (class "()V", handle: , class "()V"); - - interfaceinvoke r1.(); - - return; - } - - public void passToMethod() - { - de.upb.soot.concrete.lambdaExpressions.LambdaExpressions r0; - de.upb.soot.concrete.lambdaExpressions.functionalVoid $r1; - - r0 := @this: de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - $r1 = dynamicinvoke "eval" () (class "()V", handle: , class "()V"); - - specialinvoke r0.($r1); - - return; - } - - private void doEval(de.upb.soot.concrete.lambdaExpressions.functionalVoid) - { - de.upb.soot.concrete.lambdaExpressions.LambdaExpressions r0; - de.upb.soot.concrete.lambdaExpressions.functionalVoid r1; - - r0 := @this: de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - r1 := @parameter0: de.upb.soot.concrete.lambdaExpressions.functionalVoid; - - interfaceinvoke r1.(); - - return; - } - - public void functionPointer() - { - de.upb.soot.concrete.lambdaExpressions.LambdaExpressions r0, $r2; - de.upb.soot.concrete.lambdaExpressions.functionalVoid $r4; - - r0 := @this: de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - $r2 = new de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - specialinvoke $r2.()>(); - - virtualinvoke $r2.(); - - $r4 = dynamicinvoke "eval" ($r2) (class "()V", handle: , class "()V"); - - specialinvoke r0.($r4); - - return; - } - - private void doSomething() - { - de.upb.soot.concrete.lambdaExpressions.LambdaExpressions r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - $r1 = ; - - virtualinvoke $r1.("something"); - - return; - } - - public void functionPointerStatic() - { - de.upb.soot.concrete.lambdaExpressions.LambdaExpressions r0, $r2; - de.upb.soot.concrete.lambdaExpressions.functionalVoid $r3; - - r0 := @this: de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - $r2 = new de.upb.soot.concrete.lambdaExpressions.LambdaExpressions; - - specialinvoke $r2.()>(); - - $r3 = dynamicinvoke "eval" () (class "()V", handle: , class "()V"); - - specialinvoke r0.($r3); - - return; - } - - private static void lambda$passToMethod$3() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.("passed as param"); - - return; - } - - private static void lambda$lambdaVoid$2() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.("void"); - - return; - } - - private static void lambda$lambdaParam$1(java.lang.String) - { - java.lang.String r0; - java.io.PrintStream $r1; - - r0 := @parameter0: java.lang.String; - - $r1 = ; - - virtualinvoke $r1.(r0); - - return; - } - - private static java.lang.String lambda$lambdaRet$0() - { - return "foo"; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalArg.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalArg.jimple deleted file mode 100644 index f05b1322639..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalArg.jimple +++ /dev/null @@ -1,5 +0,0 @@ -public interface de.upb.soot.concrete.lambdaExpressions.functionalArg extends java.lang.Object -{ - - public abstract void eval(java.lang.String); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalRet.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalRet.jimple deleted file mode 100644 index b8ca60f9ab0..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalRet.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.concrete.lambdaExpressions.functionalRet extends java.lang.Object -{ - - public abstract java.lang.String eval(); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalVoid.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalVoid.jimple deleted file mode 100644 index e10517ea852..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.lambdaExpressions.functionalVoid.jimple +++ /dev/null @@ -1,5 +0,0 @@ -public interface de.upb.soot.concrete.lambdaExpressions.functionalVoid extends java.lang.Object -{ - - public abstract void eval(); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.nestedControlStatements.NestedControlStatements.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.nestedControlStatements.NestedControlStatements.jimple deleted file mode 100644 index 08fd0fd6bc9..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.nestedControlStatements.NestedControlStatements.jimple +++ /dev/null @@ -1,1674 +0,0 @@ -public class de.upb.soot.concrete.nestedControlStatements.NestedControlStatements extends java.lang.Object -{ - private int[][] permutations3; - - public void () - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[][] $r1; - int[] $r2, $r3, $r4, $r5, $r6, $r7; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - specialinvoke r0.()>(); - - $r1 = newarray (int[])[6]; - - $r2 = newarray (int)[3]; - - $r2[0] = 1; - - $r2[1] = 2; - - $r2[2] = 3; - - $r1[0] = $r2; - - $r3 = newarray (int)[3]; - - $r3[0] = 2; - - $r3[1] = 1; - - $r3[2] = 3; - - $r1[1] = $r3; - - $r4 = newarray (int)[3]; - - $r4[0] = 3; - - $r4[1] = 1; - - $r4[2] = 2; - - $r1[2] = $r4; - - $r5 = newarray (int)[3]; - - $r5[0] = 1; - - $r5[1] = 3; - - $r5[2] = 2; - - $r1[3] = $r5; - - $r6 = newarray (int)[3]; - - $r6[0] = 2; - - $r6[1] = 3; - - $r6[2] = 1; - - $r1[4] = $r6; - - $r7 = newarray (int)[3]; - - $r7[0] = 3; - - $r7[1] = 2; - - $r7[2] = 1; - - $r1[5] = $r7; - - r0. = $r1; - - return; - } - - public void nestedIfElse() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedIfElse(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2; - java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 := @parameter2: int; - - if i0 >= i1 goto label2; - - $r7 = ; - - virtualinvoke $r7.(1); - - if i1 >= i2 goto label1; - - $r9 = ; - - virtualinvoke $r9.(2); - - goto label6; - - label1: - $r8 = ; - - virtualinvoke $r8.(3); - - goto label6; - - label2: - if i0 >= i2 goto label4; - - $r4 = ; - - virtualinvoke $r4.(4); - - if i1 >= i2 goto label3; - - $r6 = ; - - virtualinvoke $r6.(5); - - goto label6; - - label3: - $r5 = ; - - virtualinvoke $r5.(6); - - goto label6; - - label4: - $r1 = ; - - virtualinvoke $r1.(7); - - if i1 >= i2 goto label5; - - $r3 = ; - - virtualinvoke $r3.(8); - - goto label6; - - label5: - $r2 = ; - - virtualinvoke $r2.(9); - - label6: - return; - } - - public void nestedSwitchIf() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedSwitchIf(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2; - java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 := @parameter2: int; - - if i0 >= i1 goto label04; - - lookupswitch(i0) - { - case 1: goto label01; - case 2: goto label02; - default: goto label03; - }; - - label01: - $r8 = ; - - virtualinvoke $r8.(1); - - label02: - $r7 = ; - - virtualinvoke $r7.(2); - - label03: - $r9 = ; - - virtualinvoke $r9.(3); - - goto label12; - - label04: - if i0 >= i2 goto label08; - - $r4 = ; - - virtualinvoke $r4.(4); - - lookupswitch(i0) - { - case 1: goto label05; - case 2: goto label06; - default: goto label07; - }; - - label05: - $r6 = ; - - virtualinvoke $r6.(5); - - label06: - $r5 = ; - - virtualinvoke $r5.(6); - - label07: - $r10 = ; - - virtualinvoke $r10.(7); - - goto label12; - - label08: - $r1 = ; - - virtualinvoke $r1.(8); - - lookupswitch(i0) - { - case 1: goto label09; - case 2: goto label10; - default: goto label11; - }; - - label09: - $r3 = ; - - virtualinvoke $r3.(9); - - label10: - $r2 = ; - - virtualinvoke $r2.(10); - - label11: - $r11 = ; - - virtualinvoke $r11.(11); - - label12: - return; - } - - public void nestedWhileIf() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedWhileIf(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2; - java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i2 := @parameter0: int; - - i0 := @parameter1: int; - - i1 := @parameter2: int; - - if i2 >= i0 goto label2; - - $r5 = ; - - virtualinvoke $r5.(1); - - label1: - if i2 >= i0 goto label6; - - $r6 = ; - - virtualinvoke $r6.(2); - - i2 = i2 + 1; - - goto label1; - - label2: - if i2 >= i1 goto label4; - - $r3 = ; - - virtualinvoke $r3.(3); - - label3: - if i2 >= i0 goto label6; - - $r4 = ; - - virtualinvoke $r4.(4); - - i2 = i2 + 1; - - goto label3; - - label4: - $r1 = ; - - virtualinvoke $r1.(5); - - label5: - if i2 >= i0 goto label6; - - $r2 = ; - - virtualinvoke $r2.(6); - - i2 = i2 + 1; - - goto label5; - - label6: - return; - } - - public void nestedForIf() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedForIf(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2, i3, i4, i5; - java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 := @parameter2: int; - - if i0 >= i1 goto label3; - - $r5 = ; - - virtualinvoke $r5.(1); - - i3 = 0; - - label1: - if i3 >= i0 goto label2; - - $r6 = ; - - virtualinvoke $r6.(2); - - i3 = i3 + 1; - - goto label1; - - label2: - goto label8; - - label3: - if i0 >= i2 goto label6; - - $r3 = ; - - virtualinvoke $r3.(3); - - i4 = 0; - - label4: - if i4 >= i0 goto label5; - - $r4 = ; - - virtualinvoke $r4.(4); - - i4 = i4 + 1; - - goto label4; - - label5: - goto label8; - - label6: - $r1 = ; - - virtualinvoke $r1.(5); - - i5 = 0; - - label7: - if i5 >= i0 goto label8; - - $r2 = ; - - virtualinvoke $r2.(6); - - i5 = i5 + 1; - - goto label7; - - label8: - return; - } - - public void nestedSwitchSwitch() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedSwitchSwitch(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2; - java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 := @parameter2: int; - - lookupswitch(i0) - { - case 1: goto label01; - case 2: goto label05; - default: goto label09; - }; - - label01: - $r5 = ; - - virtualinvoke $r5.(1); - - lookupswitch(i1) - { - case 1: goto label03; - case 5: goto label02; - default: goto label04; - }; - - label02: - $r6 = ; - - virtualinvoke $r6.(2); - - label03: - $r7 = ; - - virtualinvoke $r7.(3); - - label04: - $r8 = ; - - virtualinvoke $r8.(4); - - label05: - $r9 = ; - - virtualinvoke $r9.(5); - - lookupswitch(i1) - { - case 1: goto label07; - case 5: goto label06; - default: goto label08; - }; - - label06: - $r1 = ; - - virtualinvoke $r1.(6); - - label07: - $r2 = ; - - virtualinvoke $r2.(7); - - label08: - $r10 = ; - - virtualinvoke $r10.(8); - - label09: - $r11 = ; - - virtualinvoke $r11.(9); - - lookupswitch(i1) - { - case 1: goto label11; - case 5: goto label10; - default: goto label12; - }; - - label10: - $r3 = ; - - virtualinvoke $r3.(10); - - label11: - $r4 = ; - - virtualinvoke $r4.(11); - - label12: - $r12 = ; - - virtualinvoke $r12.(12); - - return; - } - - public void nestedIfSwitch() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedIfSwitch(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2; - java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 := @parameter2: int; - - lookupswitch(i0) - { - case 1: goto label01; - case 2: goto label04; - default: goto label07; - }; - - label01: - $r7 = ; - - virtualinvoke $r7.(1); - - if i0 >= i1 goto label02; - - $r10 = ; - - virtualinvoke $r10.(2); - - goto label04; - - label02: - if i0 >= i2 goto label03; - - $r9 = ; - - virtualinvoke $r9.(3); - - goto label04; - - label03: - $r8 = ; - - virtualinvoke $r8.(4); - - label04: - $r11 = ; - - virtualinvoke $r11.(5); - - if i0 >= i1 goto label05; - - $r6 = ; - - virtualinvoke $r6.(6); - - goto label07; - - label05: - if i0 >= i2 goto label06; - - $r5 = ; - - virtualinvoke $r5.(7); - - goto label07; - - label06: - $r1 = ; - - virtualinvoke $r1.(8); - - label07: - $r12 = ; - - virtualinvoke $r12.(9); - - if i0 >= i1 goto label08; - - $r4 = ; - - virtualinvoke $r4.(10); - - goto label10; - - label08: - if i0 >= i2 goto label09; - - $r3 = ; - - virtualinvoke $r3.(11); - - goto label10; - - label09: - $r2 = ; - - virtualinvoke $r2.(12); - - label10: - return; - } - - public void nestedWhileSwitch() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedWhileSwitch(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2; - java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i2 := @parameter0: int; - - i0 := @parameter1: int; - - i1 := @parameter2: int; - - lookupswitch(i2) - { - case 1: goto label1; - case 2: goto label3; - default: goto label5; - }; - - label1: - $r5 = ; - - virtualinvoke $r5.(1); - - label2: - if i2 >= i0 goto label3; - - i2 = i2 + 1; - - $r6 = ; - - virtualinvoke $r6.(2); - - goto label2; - - label3: - $r1 = ; - - virtualinvoke $r1.(3); - - label4: - if i2 >= i0 goto label5; - - i2 = i2 + 1; - - $r4 = ; - - virtualinvoke $r4.(4); - - goto label4; - - label5: - $r2 = ; - - virtualinvoke $r2.(5); - - label6: - if i2 >= i0 goto label7; - - i2 = i2 + 1; - - $r3 = ; - - virtualinvoke $r3.(6); - - goto label6; - - label7: - return; - } - - public void nestedForSwitch() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedForSwitch(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2, i3, i4, i5; - java.io.PrintStream $r1, $r2, $r3, $r4, $r5, $r6; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 := @parameter2: int; - - lookupswitch(i0) - { - case 1: goto label1; - case 2: goto label3; - default: goto label5; - }; - - label1: - $r5 = ; - - virtualinvoke $r5.(1); - - i3 = 0; - - label2: - if i3 >= i0 goto label3; - - $r6 = ; - - virtualinvoke $r6.(2); - - i3 = i3 + 1; - - goto label2; - - label3: - $r1 = ; - - virtualinvoke $r1.(3); - - i4 = 0; - - label4: - if i4 >= i0 goto label5; - - $r4 = ; - - virtualinvoke $r4.(4); - - i4 = i4 + 1; - - goto label4; - - label5: - $r2 = ; - - virtualinvoke $r2.(5); - - i5 = 0; - - label6: - if i5 >= i0 goto label7; - - $r3 = ; - - virtualinvoke $r3.(6); - - i5 = i5 + 1; - - goto label6; - - label7: - return; - } - - public void nestedWhileWhile() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedWhileWhile(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2; - java.io.PrintStream $r1, $r2; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i1 := @parameter0: int; - - i2 := @parameter1: int; - - i0 := @parameter2: int; - - label1: - if i1 >= i2 goto label4; - - $r1 = ; - - virtualinvoke $r1.(1); - - label2: - if i2 >= i0 goto label3; - - i2 = i2 + 1; - - $r2 = ; - - virtualinvoke $r2.(2); - - goto label2; - - label3: - i1 = i1 + 1; - - goto label1; - - label4: - return; - } - - public void nestedIfWhile() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedIfWhile(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2; - java.io.PrintStream $r1, $r2, $r3, $r4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i2 := @parameter0: int; - - i0 := @parameter1: int; - - i1 := @parameter2: int; - - label1: - if i2 >= i0 goto label5; - - $r1 = ; - - virtualinvoke $r1.(1); - - if i2 >= i0 goto label2; - - $r4 = ; - - virtualinvoke $r4.(2); - - goto label4; - - label2: - if i2 >= i1 goto label3; - - $r3 = ; - - virtualinvoke $r3.(3); - - goto label4; - - label3: - $r2 = ; - - virtualinvoke $r2.(4); - - label4: - i2 = i2 + 1; - - goto label1; - - label5: - return; - } - - public void nestedSwitchWhile() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedSwitchWhile(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2; - java.io.PrintStream $r1, $r2, $r3, $r4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i2 := @parameter0: int; - - i0 := @parameter1: int; - - i1 := @parameter2: int; - - label1: - if i2 >= i0 goto label5; - - $r1 = ; - - virtualinvoke $r1.(1); - - lookupswitch(i2) - { - case 1: goto label2; - case 2: goto label3; - default: goto label4; - }; - - label2: - $r3 = ; - - virtualinvoke $r3.(2); - - label3: - $r2 = ; - - virtualinvoke $r2.(3); - - label4: - $r4 = ; - - virtualinvoke $r4.(4); - - i2 = i2 + 1; - - goto label1; - - label5: - return; - } - - public void nestedForWhile() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedForWhile(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2, i3; - java.io.PrintStream $r1, $r2; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i2 := @parameter0: int; - - i0 := @parameter1: int; - - i1 := @parameter2: int; - - label1: - if i2 >= i0 goto label4; - - $r1 = ; - - virtualinvoke $r1.(1); - - i3 = 0; - - label2: - if i3 >= i2 goto label3; - - $r2 = ; - - virtualinvoke $r2.(2); - - i3 = i3 + 1; - - goto label2; - - label3: - i2 = i2 + 1; - - goto label1; - - label4: - return; - } - - public void nestedIfFor() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int[] r1; - int[][] $r2, $r3; - int $i0, $i1, $i2, $i3, i4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i4 = 0; - - label1: - $r2 = r0.; - - $i0 = lengthof $r2; - - if i4 >= $i0 goto label2; - - $r3 = r0.; - - r1 = $r3[i4]; - - $i3 = r1[0]; - - $i2 = r1[1]; - - $i1 = r1[2]; - - specialinvoke r0.($i3, $i2, $i1); - - i4 = i4 + 1; - - goto label1; - - label2: - return; - } - - private void nestedIfFor(int, int, int) - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int i0, i1, i2, i3; - java.io.PrintStream $r1, $r2, $r3, $r4; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 := @parameter2: int; - - i3 = 0; - - label1: - if i3 >= i0 goto label5; - - $r1 = ; - - virtualinvoke $r1.(1); - - if i0 >= i1 goto label2; - - $r4 = ; - - virtualinvoke $r4.(2); - - goto label4; - - label2: - if i0 >= i2 goto label3; - - $r3 = ; - - virtualinvoke $r3.(3); - - goto label4; - - label3: - $r2 = ; - - virtualinvoke $r2.(4); - - label4: - i3 = i3 + 1; - - goto label1; - - label5: - return; - } - - public void nested_switch_in_for() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - java.io.PrintStream $r1, $r2, $r3, $r4; - int i1, i2; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i1 = 0; - - i2 = 0; - - label1: - if i2 >= 5 goto label5; - - i1 = i1 + 1; - - $r1 = ; - - virtualinvoke $r1.(i1); - - lookupswitch(i1) - { - case 1: goto label2; - case 2: goto label3; - default: goto label4; - }; - - label2: - $r3 = ; - - virtualinvoke $r3.("a"); - - label3: - $r2 = ; - - virtualinvoke $r2.("b"); - - label4: - $r4 = ; - - virtualinvoke $r4.(i1); - - i2 = i2 + 1; - - goto label1; - - label5: - return; - } - - public void nestedWhileFor() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - java.io.PrintStream $r1, $r2; - int i1, i2; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i1 = 5; - - i2 = 0; - - label1: - if i2 >= i1 goto label4; - - $r1 = ; - - virtualinvoke $r1.(i2); - - label2: - if i1 >= 3 goto label3; - - $r2 = ; - - virtualinvoke $r2.("a is smaller than b"); - - i1 = i1 + 1; - - goto label2; - - label3: - i2 = i2 + 1; - - goto label1; - - label4: - return; - } - - public void nestedSwitchFor() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - java.io.PrintStream $r1, $r2; - int i1; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i1 = 0; - - label1: - if i1 >= 5 goto label4; - - lookupswitch(5) - { - case 1: goto label2; - default: goto label3; - }; - - label2: - $r1 = ; - - virtualinvoke $r1.("foo"); - - label3: - $r2 = ; - - virtualinvoke $r2.(5); - - i1 = i1 + 1; - - goto label1; - - label4: - return; - } - - public void nestedForFor() - { - de.upb.soot.concrete.nestedControlStatements.NestedControlStatements r0; - int $i1, i2, i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.nestedControlStatements.NestedControlStatements; - - i2 = 0; - - label1: - if i2 >= 5 goto label4; - - i3 = 0; - - label2: - if i3 > i2 goto label3; - - $r1 = ; - - $i1 = i2 + i3; - - virtualinvoke $r1.($i1); - - i3 = i3 + 1; - - goto label2; - - label3: - i2 = i2 + 1; - - goto label1; - - label4: - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.A.jimple deleted file mode 100644 index 267e81f23e0..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.A.jimple +++ /dev/null @@ -1,102 +0,0 @@ -public class de.upb.soot.concrete.objects.A extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.objects.A r0; - - r0 := @this: de.upb.soot.concrete.objects.A; - - specialinvoke r0.()>(); - - return; - } - - public void voidM() - { - de.upb.soot.concrete.objects.A r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.objects.A; - - $r1 = ; - - virtualinvoke $r1.("foo"); - - return; - } - - public java.lang.String returnM() - { - de.upb.soot.concrete.objects.A r0; - - r0 := @this: de.upb.soot.concrete.objects.A; - - return "bar"; - } - - public void argsM(java.lang.String, java.lang.String) - { - de.upb.soot.concrete.objects.A r0; - java.lang.String r1, r2; - java.io.PrintStream $r3, $r4; - - r0 := @this: de.upb.soot.concrete.objects.A; - - r1 := @parameter0: java.lang.String; - - r2 := @parameter1: java.lang.String; - - $r3 = ; - - virtualinvoke $r3.(r1); - - $r4 = ; - - virtualinvoke $r4.(r2); - - return; - } - - public transient void argsVar(java.lang.String[]) - { - de.upb.soot.concrete.objects.A r0; - java.lang.String[] r1; - int i0, i1; - java.lang.String r3; - java.io.PrintStream $r4; - - r0 := @this: de.upb.soot.concrete.objects.A; - - r1 := @parameter0: java.lang.String[]; - - i0 = lengthof r1; - - i1 = 0; - - label1: - if i1 >= i0 goto label2; - - r3 = r1[i1]; - - $r4 = ; - - virtualinvoke $r4.(r3); - - i1 = i1 + 1; - - goto label1; - - label2: - return; - } - - public java.lang.String toString() - { - de.upb.soot.concrete.objects.A r0; - - r0 := @this: de.upb.soot.concrete.objects.A; - - return "A"; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.B.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.B.jimple deleted file mode 100644 index 6d141c249e8..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.B.jimple +++ /dev/null @@ -1,28 +0,0 @@ -public class de.upb.soot.concrete.objects.B extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.objects.B r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.objects.B; - - specialinvoke r0.()>(); - - $r1 = ; - - virtualinvoke $r1.("constructor"); - - return; - } - - public java.lang.String toString() - { - de.upb.soot.concrete.objects.B r0; - - r0 := @this: de.upb.soot.concrete.objects.B; - - return "B"; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.Objects.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.Objects.jimple deleted file mode 100644 index 879b78572ed..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.objects.Objects.jimple +++ /dev/null @@ -1,129 +0,0 @@ -public class de.upb.soot.concrete.objects.Objects extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.objects.Objects r0; - - r0 := @this: de.upb.soot.concrete.objects.Objects; - - specialinvoke r0.()>(); - - return; - } - - public void emptyConstructor() - { - de.upb.soot.concrete.objects.Objects r0; - de.upb.soot.concrete.objects.A $r2; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.concrete.objects.Objects; - - $r2 = new de.upb.soot.concrete.objects.A; - - specialinvoke $r2.()>(); - - $r3 = ; - - virtualinvoke $r3.("A"); - - return; - } - - public void singleConstructor() - { - de.upb.soot.concrete.objects.Objects r0; - de.upb.soot.concrete.objects.B $r2; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.concrete.objects.Objects; - - $r2 = new de.upb.soot.concrete.objects.B; - - specialinvoke $r2.()>(); - - $r3 = ; - - virtualinvoke $r3.("B"); - - return; - } - - public void methodCall() - { - de.upb.soot.concrete.objects.Objects r0; - de.upb.soot.concrete.objects.A $r1; - - r0 := @this: de.upb.soot.concrete.objects.Objects; - - $r1 = new de.upb.soot.concrete.objects.A; - - specialinvoke $r1.()>(); - - virtualinvoke $r1.(); - - return; - } - - public void methodCallReturn() - { - de.upb.soot.concrete.objects.Objects r0; - de.upb.soot.concrete.objects.A $r1; - java.io.PrintStream $r2; - java.lang.String $r3; - - r0 := @this: de.upb.soot.concrete.objects.Objects; - - $r2 = ; - - $r1 = new de.upb.soot.concrete.objects.A; - - specialinvoke $r1.()>(); - - $r3 = virtualinvoke $r1.(); - - virtualinvoke $r2.($r3); - - return; - } - - public void methodCallArgs() - { - de.upb.soot.concrete.objects.Objects r0; - de.upb.soot.concrete.objects.A $r1; - - r0 := @this: de.upb.soot.concrete.objects.Objects; - - $r1 = new de.upb.soot.concrete.objects.A; - - specialinvoke $r1.()>(); - - virtualinvoke $r1.("foo", "bar"); - - return; - } - - public void methodCallVarArgs() - { - de.upb.soot.concrete.objects.Objects r0; - de.upb.soot.concrete.objects.A $r1; - java.lang.String[] $r2; - - r0 := @this: de.upb.soot.concrete.objects.Objects; - - $r1 = new de.upb.soot.concrete.objects.A; - - specialinvoke $r1.()>(); - - $r2 = newarray (java.lang.String)[2]; - - $r2[0] = "foo"; - - $r2[1] = "bar"; - - virtualinvoke $r1.($r2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.A.jimple deleted file mode 100644 index df322848493..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.A.jimple +++ /dev/null @@ -1,19 +0,0 @@ -public class de.upb.soot.concrete.operators.A extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.operators.A r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.A; - - specialinvoke r0.()>(); - - $r1 = ; - - virtualinvoke $r1.("A"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.BooleanOps.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.BooleanOps.jimple deleted file mode 100644 index 91f54d3627b..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.BooleanOps.jimple +++ /dev/null @@ -1,77 +0,0 @@ -public class de.upb.soot.concrete.operators.BooleanOps extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.operators.BooleanOps r0; - - r0 := @this: de.upb.soot.concrete.operators.BooleanOps; - - specialinvoke r0.()>(); - - return; - } - - public void logicalOr() - { - de.upb.soot.concrete.operators.BooleanOps r0; - java.io.PrintStream $r1; - boolean $z3; - - r0 := @this: de.upb.soot.concrete.operators.BooleanOps; - - goto label1; - - label1: - $z3 = 1; - - goto label2; - - label2: - $r1 = ; - - virtualinvoke $r1.($z3); - - return; - } - - public void logicalAnd() - { - de.upb.soot.concrete.operators.BooleanOps r0; - boolean $z3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.BooleanOps; - - $z3 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z3); - - return; - } - - public void logicalNot() - { - de.upb.soot.concrete.operators.BooleanOps r0; - java.io.PrintStream $r1; - boolean $z2; - - r0 := @this: de.upb.soot.concrete.operators.BooleanOps; - - $z2 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ByteOps.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ByteOps.jimple deleted file mode 100644 index 4b81ff63f42..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ByteOps.jimple +++ /dev/null @@ -1,382 +0,0 @@ -public class de.upb.soot.concrete.operators.ByteOps extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.operators.ByteOps r0; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - specialinvoke r0.()>(); - - return; - } - - public void addition() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $i3 = 5 + 5; - - b2 = (byte) $i3; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void subtraction() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $i3 = 5 - 5; - - b2 = (byte) $i3; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void multiplication() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $i3 = 5 * 5; - - b2 = (byte) $i3; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void division() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $i3 = 5 / 5; - - b2 = (byte) $i3; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void modulus() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $i3 = 5 % 5; - - b2 = (byte) $i3; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void simpleAssignmentOperator() - { - de.upb.soot.concrete.operators.ByteOps r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $r1 = ; - - virtualinvoke $r1.(5); - - return; - } - - public void bitwiseAnd() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b2, $b3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $b3 = 5 & 5; - - b2 = (byte) $b3; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void bitwiseOr() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b2, $b3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $b3 = 5 | 5; - - b2 = (byte) $b3; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void bitwiseXor() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b2, $b3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $b3 = 5 ^ 5; - - b2 = (byte) $b3; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void bitwiseCompliment() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b1, $b2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $b2 = 5 ^ -1; - - b1 = (byte) $b2; - - $r1 = ; - - virtualinvoke $r1.(b1); - - return; - } - - public void bitwiseLeftShift() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b1; - int $i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $i2 = 5 << 2; - - b1 = (byte) $i2; - - $r1 = ; - - virtualinvoke $r1.(b1); - - return; - } - - public void bitwiseRightShift() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b1, $b2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $b2 = 5 >> 2; - - b1 = (byte) $b2; - - $r1 = ; - - virtualinvoke $r1.(b1); - - return; - } - - public void bitwiseRightShiftZerofill() - { - de.upb.soot.concrete.operators.ByteOps r0; - byte b1, $b2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $b2 = 5 >>> 2; - - b1 = (byte) $b2; - - $r1 = ; - - virtualinvoke $r1.(b1); - - return; - } - - public void equals() - { - de.upb.soot.concrete.operators.ByteOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $z1 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void notEquals() - { - de.upb.soot.concrete.operators.ByteOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - goto label1; - - label1: - $z1 = 0; - - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greateThan() - { - de.upb.soot.concrete.operators.ByteOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - goto label1; - - label1: - $z1 = 0; - - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessThan() - { - de.upb.soot.concrete.operators.ByteOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - goto label1; - - label1: - $z1 = 0; - - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greaterOrEqualsThan() - { - de.upb.soot.concrete.operators.ByteOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $z1 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessOrEqualsThan() - { - de.upb.soot.concrete.operators.ByteOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ByteOps; - - $z1 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.DoubleOps.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.DoubleOps.jimple deleted file mode 100644 index b0f4f61107e..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.DoubleOps.jimple +++ /dev/null @@ -1,281 +0,0 @@ -public class de.upb.soot.concrete.operators.DoubleOps extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.operators.DoubleOps r0; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - specialinvoke r0.()>(); - - return; - } - - public void addition() - { - de.upb.soot.concrete.operators.DoubleOps r0; - double d2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - d2 = 1.6777217E7 + 5.0; - - $r1 = ; - - virtualinvoke $r1.(d2); - - return; - } - - public void subtraction() - { - de.upb.soot.concrete.operators.DoubleOps r0; - double d2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - d2 = 5.0 - 1.6777217E7; - - $r1 = ; - - virtualinvoke $r1.(d2); - - return; - } - - public void multiplication() - { - de.upb.soot.concrete.operators.DoubleOps r0; - double d2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - d2 = 5.0 * 1.6777217E7; - - $r1 = ; - - virtualinvoke $r1.(d2); - - return; - } - - public void division() - { - de.upb.soot.concrete.operators.DoubleOps r0; - double d2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - d2 = 5.0 / 1.6777217E7; - - $r1 = ; - - virtualinvoke $r1.(d2); - - return; - } - - public void modulus() - { - de.upb.soot.concrete.operators.DoubleOps r0; - double d2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - d2 = 5.0 % 1.6777217E7; - - $r1 = ; - - virtualinvoke $r1.(d2); - - return; - } - - public void simpleAssignmentOperator() - { - de.upb.soot.concrete.operators.DoubleOps r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - $r1 = ; - - virtualinvoke $r1.(1.6777217E7); - - return; - } - - public void equals() - { - de.upb.soot.concrete.operators.DoubleOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - $b0 = 1.6777217E7 cmpl 5.0; - - if $b0 != 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void notEquals() - { - de.upb.soot.concrete.operators.DoubleOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - $b0 = 1.6777217E7 cmpl 5.0; - - if $b0 == 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greateThan() - { - de.upb.soot.concrete.operators.DoubleOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - $b0 = 1.6777217E7 cmpl 5.0; - - if $b0 <= 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessThan() - { - de.upb.soot.concrete.operators.DoubleOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - $b0 = 1.6777217E7 cmpg 5.0; - - if $b0 >= 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greaterOrEqualsThan() - { - de.upb.soot.concrete.operators.DoubleOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - $b0 = 1.6777217E7 cmpl 5.0; - - if $b0 < 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessOrEqualsThan() - { - de.upb.soot.concrete.operators.DoubleOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.DoubleOps; - - $b0 = 1.6777217E7 cmpg 5.0; - - if $b0 > 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.FloatOps.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.FloatOps.jimple deleted file mode 100644 index 6e6c1543526..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.FloatOps.jimple +++ /dev/null @@ -1,281 +0,0 @@ -public class de.upb.soot.concrete.operators.FloatOps extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.operators.FloatOps r0; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - specialinvoke r0.()>(); - - return; - } - - public void addition() - { - de.upb.soot.concrete.operators.FloatOps r0; - float f2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - f2 = 5.5F + 5.0F; - - $r1 = ; - - virtualinvoke $r1.(f2); - - return; - } - - public void subtraction() - { - de.upb.soot.concrete.operators.FloatOps r0; - float f2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - f2 = 5.0F - 5.5F; - - $r1 = ; - - virtualinvoke $r1.(f2); - - return; - } - - public void multiplication() - { - de.upb.soot.concrete.operators.FloatOps r0; - float f2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - f2 = 5.0F * 5.5F; - - $r1 = ; - - virtualinvoke $r1.(f2); - - return; - } - - public void division() - { - de.upb.soot.concrete.operators.FloatOps r0; - float f2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - f2 = 5.0F / 5.5F; - - $r1 = ; - - virtualinvoke $r1.(f2); - - return; - } - - public void modulus() - { - de.upb.soot.concrete.operators.FloatOps r0; - float f2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - f2 = 5.0F % 5.5F; - - $r1 = ; - - virtualinvoke $r1.(f2); - - return; - } - - public void simpleAssignmentOperator() - { - de.upb.soot.concrete.operators.FloatOps r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - $r1 = ; - - virtualinvoke $r1.(5.5F); - - return; - } - - public void equals() - { - de.upb.soot.concrete.operators.FloatOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - $b0 = 5.5F cmpl 5.0F; - - if $b0 != 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void notEquals() - { - de.upb.soot.concrete.operators.FloatOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - $b0 = 5.5F cmpl 5.0F; - - if $b0 == 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greateThan() - { - de.upb.soot.concrete.operators.FloatOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - $b0 = 5.5F cmpl 5.0F; - - if $b0 <= 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessThan() - { - de.upb.soot.concrete.operators.FloatOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - $b0 = 5.5F cmpg 5.0F; - - if $b0 >= 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greaterOrEqualsThan() - { - de.upb.soot.concrete.operators.FloatOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - $b0 = 5.5F cmpl 5.0F; - - if $b0 < 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessOrEqualsThan() - { - de.upb.soot.concrete.operators.FloatOps r0; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.FloatOps; - - $b0 = 5.5F cmpg 5.0F; - - if $b0 > 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.IntOps.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.IntOps.jimple deleted file mode 100644 index 0107ac1011e..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.IntOps.jimple +++ /dev/null @@ -1,352 +0,0 @@ -public class de.upb.soot.concrete.operators.IntOps extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.operators.IntOps r0; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - specialinvoke r0.()>(); - - return; - } - - public void addition() - { - de.upb.soot.concrete.operators.IntOps r0; - int i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - i2 = 5 + 5; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void subtraction() - { - de.upb.soot.concrete.operators.IntOps r0; - int i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - i2 = 5 - 5; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void multiplication() - { - de.upb.soot.concrete.operators.IntOps r0; - int i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - i2 = 5 * 5; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void division() - { - de.upb.soot.concrete.operators.IntOps r0; - int i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - i2 = 5 / 5; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void modulus() - { - de.upb.soot.concrete.operators.IntOps r0; - int i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - i2 = 5 % 5; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void simpleAssignmentOperator() - { - de.upb.soot.concrete.operators.IntOps r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - $r1 = ; - - virtualinvoke $r1.(5); - - return; - } - - public void bitwiseAnd() - { - de.upb.soot.concrete.operators.IntOps r0; - byte b2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - b2 = 5 & 5; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void bitwiseOr() - { - de.upb.soot.concrete.operators.IntOps r0; - byte b2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - b2 = 5 | 5; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void bitwiseXor() - { - de.upb.soot.concrete.operators.IntOps r0; - byte b2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - b2 = 5 ^ 5; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } - - public void bitwiseCompliment() - { - de.upb.soot.concrete.operators.IntOps r0; - byte b1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - b1 = 5 ^ -1; - - $r1 = ; - - virtualinvoke $r1.(b1); - - return; - } - - public void bitwiseLeftShift() - { - de.upb.soot.concrete.operators.IntOps r0; - int i1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - i1 = 5 << 2; - - $r1 = ; - - virtualinvoke $r1.(i1); - - return; - } - - public void bitwiseRightShift() - { - de.upb.soot.concrete.operators.IntOps r0; - byte b1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - b1 = 5 >> 2; - - $r1 = ; - - virtualinvoke $r1.(b1); - - return; - } - - public void bitwiseRightShiftZerofill() - { - de.upb.soot.concrete.operators.IntOps r0; - byte b1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - b1 = 5 >>> 2; - - $r1 = ; - - virtualinvoke $r1.(b1); - - return; - } - - public void equals() - { - de.upb.soot.concrete.operators.IntOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - $z1 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void notEquals() - { - de.upb.soot.concrete.operators.IntOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - goto label1; - - label1: - $z1 = 0; - - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greateThan() - { - de.upb.soot.concrete.operators.IntOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - goto label1; - - label1: - $z1 = 0; - - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessThan() - { - de.upb.soot.concrete.operators.IntOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - goto label1; - - label1: - $z1 = 0; - - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greaterOrEqualsThan() - { - de.upb.soot.concrete.operators.IntOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - $z1 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessOrEqualsThan() - { - de.upb.soot.concrete.operators.IntOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.IntOps; - - $z1 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.LongOps.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.LongOps.jimple deleted file mode 100644 index d1a5fc0a0c7..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.LongOps.jimple +++ /dev/null @@ -1,400 +0,0 @@ -public class de.upb.soot.concrete.operators.LongOps extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.operators.LongOps r0; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - specialinvoke r0.()>(); - - return; - } - - public void addition() - { - de.upb.soot.concrete.operators.LongOps r0; - long l2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l2 = 2147483648L + 5L; - - $r1 = ; - - virtualinvoke $r1.(l2); - - return; - } - - public void subtraction() - { - de.upb.soot.concrete.operators.LongOps r0; - long l2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l2 = 5L - 2147483648L; - - $r1 = ; - - virtualinvoke $r1.(l2); - - return; - } - - public void multiplication() - { - de.upb.soot.concrete.operators.LongOps r0; - long l2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l2 = 5L * 2147483648L; - - $r1 = ; - - virtualinvoke $r1.(l2); - - return; - } - - public void division() - { - de.upb.soot.concrete.operators.LongOps r0; - long l2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l2 = 5L / 2147483648L; - - $r1 = ; - - virtualinvoke $r1.(l2); - - return; - } - - public void modulus() - { - de.upb.soot.concrete.operators.LongOps r0; - long l2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l2 = 5L % 2147483648L; - - $r1 = ; - - virtualinvoke $r1.(l2); - - return; - } - - public void simpleAssignmentOperator() - { - de.upb.soot.concrete.operators.LongOps r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - $r1 = ; - - virtualinvoke $r1.(2147483648L); - - return; - } - - public void bitwiseAnd() - { - de.upb.soot.concrete.operators.LongOps r0; - long l2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l2 = 2147483648L & 5L; - - $r1 = ; - - virtualinvoke $r1.(l2); - - return; - } - - public void bitwiseOr() - { - de.upb.soot.concrete.operators.LongOps r0; - long l2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l2 = 2147483648L | 5L; - - $r1 = ; - - virtualinvoke $r1.(l2); - - return; - } - - public void bitwiseXor() - { - de.upb.soot.concrete.operators.LongOps r0; - long l2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l2 = 2147483648L ^ 5L; - - $r1 = ; - - virtualinvoke $r1.(l2); - - return; - } - - public void bitwiseCompliment() - { - de.upb.soot.concrete.operators.LongOps r0; - long l1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l1 = 2147483648L ^ -1L; - - $r1 = ; - - virtualinvoke $r1.(l1); - - return; - } - - public void bitwiseLeftShift() - { - de.upb.soot.concrete.operators.LongOps r0; - long l1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l1 = 2147483648L << 2; - - $r1 = ; - - virtualinvoke $r1.(l1); - - return; - } - - public void bitwiseRightShift() - { - de.upb.soot.concrete.operators.LongOps r0; - long l1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l1 = 2147483648L >> 2; - - $r1 = ; - - virtualinvoke $r1.(l1); - - return; - } - - public void bitwiseRightShiftZerofill() - { - de.upb.soot.concrete.operators.LongOps r0; - long l1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - l1 = 2147483648L >>> 2; - - $r1 = ; - - virtualinvoke $r1.(l1); - - return; - } - - public void equals() - { - de.upb.soot.concrete.operators.LongOps r0; - byte $b2; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - $b2 = 2147483648L cmp 5L; - - if $b2 != 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void notEquals() - { - de.upb.soot.concrete.operators.LongOps r0; - byte $b2; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - $b2 = 2147483648L cmp 5L; - - if $b2 == 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greateThan() - { - de.upb.soot.concrete.operators.LongOps r0; - byte $b2; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - $b2 = 2147483648L cmp 5L; - - if $b2 <= 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessThan() - { - de.upb.soot.concrete.operators.LongOps r0; - byte $b2; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - $b2 = 2147483648L cmp 5L; - - if $b2 >= 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greaterOrEqualsThan() - { - de.upb.soot.concrete.operators.LongOps r0; - byte $b2; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - $b2 = 2147483648L cmp 5L; - - if $b2 < 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessOrEqualsThan() - { - de.upb.soot.concrete.operators.LongOps r0; - byte $b2; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.LongOps; - - $b2 = 2147483648L cmp 5L; - - if $b2 > 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.MiscOps.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.MiscOps.jimple deleted file mode 100644 index 51d27d1f990..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.MiscOps.jimple +++ /dev/null @@ -1,73 +0,0 @@ -public class de.upb.soot.concrete.operators.MiscOps extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.operators.MiscOps r0; - - r0 := @this: de.upb.soot.concrete.operators.MiscOps; - - specialinvoke r0.()>(); - - return; - } - - public void instanceofOperator() - { - de.upb.soot.concrete.operators.MiscOps r0; - boolean z0; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.concrete.operators.MiscOps; - - z0 = "Java" instanceof java.lang.String; - - $r2 = ; - - virtualinvoke $r2.(z0); - - return; - } - - public void instanceofOperator2() - { - de.upb.soot.concrete.operators.MiscOps r0; - boolean z0; - de.upb.soot.concrete.operators.A $r2; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.concrete.operators.MiscOps; - - $r2 = new de.upb.soot.concrete.operators.A; - - specialinvoke $r2.()>(); - - z0 = $r2 instanceof de.upb.soot.concrete.operators.A; - - $r3 = ; - - virtualinvoke $r3.(z0); - - return; - } - - public void ternaryOperator() - { - de.upb.soot.concrete.operators.MiscOps r0; - java.io.PrintStream $r2; - java.lang.String $r3; - - r0 := @this: de.upb.soot.concrete.operators.MiscOps; - - $r3 = "foo"; - - goto label1; - - label1: - $r2 = ; - - virtualinvoke $r2.($r3); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ShortOps.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ShortOps.jimple deleted file mode 100644 index 54b700114ce..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.operators.ShortOps.jimple +++ /dev/null @@ -1,388 +0,0 @@ -public class de.upb.soot.concrete.operators.ShortOps extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.operators.ShortOps r0; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - specialinvoke r0.()>(); - - return; - } - - public void addition() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $i3 = 5 + 5; - - s2 = (short) $i3; - - $r1 = ; - - virtualinvoke $r1.(s2); - - return; - } - - public void subtraction() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $i3 = 5 - 5; - - s2 = (short) $i3; - - $r1 = ; - - virtualinvoke $r1.(s2); - - return; - } - - public void multiplication() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $i3 = 5 * 5; - - s2 = (short) $i3; - - $r1 = ; - - virtualinvoke $r1.(s2); - - return; - } - - public void division() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $i3 = 5 / 5; - - s2 = (short) $i3; - - $r1 = ; - - virtualinvoke $r1.(s2); - - return; - } - - public void modulus() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s2; - int $i3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $i3 = 5 % 5; - - s2 = (short) $i3; - - $r1 = ; - - virtualinvoke $r1.(s2); - - return; - } - - public void simpleAssignmentOperator() - { - de.upb.soot.concrete.operators.ShortOps r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $r1 = ; - - virtualinvoke $r1.(5); - - return; - } - - public void bitwiseAnd() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s2; - byte $b3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $b3 = 5 & 5; - - s2 = (short) $b3; - - $r1 = ; - - virtualinvoke $r1.(s2); - - return; - } - - public void bitwiseOr() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s2; - byte $b3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $b3 = 5 | 5; - - s2 = (short) $b3; - - $r1 = ; - - virtualinvoke $r1.(s2); - - return; - } - - public void bitwiseXor() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s2; - byte $b3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $b3 = 5 ^ 5; - - s2 = (short) $b3; - - $r1 = ; - - virtualinvoke $r1.(s2); - - return; - } - - public void bitwiseCompliment() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s1; - byte $b2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $b2 = 5 ^ -1; - - s1 = (short) $b2; - - $r1 = ; - - virtualinvoke $r1.(s1); - - return; - } - - public void bitwiseLeftShift() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s1; - int $i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $i2 = 5 << 2; - - s1 = (short) $i2; - - $r1 = ; - - virtualinvoke $r1.(s1); - - return; - } - - public void bitwiseRightShift() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s1; - byte $b2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $b2 = 5 >> 2; - - s1 = (short) $b2; - - $r1 = ; - - virtualinvoke $r1.(s1); - - return; - } - - public void bitwiseRightShiftZerofill() - { - de.upb.soot.concrete.operators.ShortOps r0; - short s1; - byte $b2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $b2 = 5 >>> 2; - - s1 = (short) $b2; - - $r1 = ; - - virtualinvoke $r1.(s1); - - return; - } - - public void equals() - { - de.upb.soot.concrete.operators.ShortOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $z1 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void notEquals() - { - de.upb.soot.concrete.operators.ShortOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - goto label1; - - label1: - $z1 = 0; - - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greateThan() - { - de.upb.soot.concrete.operators.ShortOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - goto label1; - - label1: - $z1 = 0; - - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessThan() - { - de.upb.soot.concrete.operators.ShortOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - goto label1; - - label1: - $z1 = 0; - - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void greaterOrEqualsThan() - { - de.upb.soot.concrete.operators.ShortOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $z1 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void lessOrEqualsThan() - { - de.upb.soot.concrete.operators.ShortOps r0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.concrete.operators.ShortOps; - - $z1 = 1; - - goto label1; - - label1: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.A.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.A.jimple deleted file mode 100644 index 45f8dcb3821..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.reflection.A.jimple +++ /dev/null @@ -1,25 +0,0 @@ -public class de.upb.soot.concrete.reflection.A extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.reflection.A r0; - - r0 := @this: de.upb.soot.concrete.reflection.A; - - specialinvoke r0.()>(); - - return; - } - - public static void staticFoo() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.("foo"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticFields.StaticFields.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticFields.StaticFields.jimple deleted file mode 100644 index 4d4988ce1b0..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticFields.StaticFields.jimple +++ /dev/null @@ -1,70 +0,0 @@ -public class de.upb.soot.concrete.staticFields.StaticFields extends java.lang.Object -{ - private static final int finalInt; - private static int nonFinalInt; - - public void () - { - de.upb.soot.concrete.staticFields.StaticFields r0; - - r0 := @this: de.upb.soot.concrete.staticFields.StaticFields; - - specialinvoke r0.()>(); - - return; - } - - public static void finalField() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.(10); - - return; - } - - public static void nonFinalField() - { - int $i0; - java.io.PrintStream $r0; - - $r0 = ; - - $i0 = ; - - virtualinvoke $r0.($i0); - - return; - } - - public static void nonFinalFieldAltered() - { - int $i0, $i1, $i2; - java.io.PrintStream $r0; - - $i0 = ; - - $i1 = $i0 + 1; - - = $i1; - - $r0 = ; - - $i2 = ; - - virtualinvoke $r0.($i2); - - return; - } - - static void () - { - = 10; - - = 5; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticInvoke.StaticInvoke.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticInvoke.StaticInvoke.jimple deleted file mode 100644 index 8b115fbfb82..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.concrete.staticInvoke.StaticInvoke.jimple +++ /dev/null @@ -1,32 +0,0 @@ -public class de.upb.soot.concrete.staticInvoke.StaticInvoke extends java.lang.Object -{ - - public void () - { - de.upb.soot.concrete.staticInvoke.StaticInvoke r0; - - r0 := @this: de.upb.soot.concrete.staticInvoke.StaticInvoke; - - specialinvoke r0.()>(); - - return; - } - - public static void staticInvoke() - { - staticinvoke (); - - return; - } - - private static void callee() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.("foo"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AddExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AddExprTest.jimple deleted file mode 100644 index 6b2dfa08b30..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AddExprTest.jimple +++ /dev/null @@ -1,54 +0,0 @@ -public class de.upb.soot.instructions.expr.AddExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.AddExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.AddExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void addition(int, int) - { - de.upb.soot.instructions.expr.AddExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.AddExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 + i1; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void addAssignmentOperator(int) - { - de.upb.soot.instructions.expr.AddExprTest r0; - int i0, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.AddExprTest; - - i0 := @parameter0: int; - - i2 = 0 + i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AndExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AndExprTest.jimple deleted file mode 100644 index d22a13f01b1..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.AndExprTest.jimple +++ /dev/null @@ -1,86 +0,0 @@ -public class de.upb.soot.instructions.expr.AndExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.AndExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.AndExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void logicalAND(boolean, boolean) - { - de.upb.soot.instructions.expr.AndExprTest r0; - boolean z0, z1, $z3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.AndExprTest; - - z0 := @parameter0: boolean; - - z1 := @parameter1: boolean; - - if z0 == 0 goto label1; - - if z1 == 0 goto label1; - - $z3 = 1; - - goto label2; - - label1: - $z3 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z3); - - return; - } - - public void bitwiseAND(int, int) - { - de.upb.soot.instructions.expr.AndExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.AndExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 & i1; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void bitwiseANDAssignment(int) - { - de.upb.soot.instructions.expr.AndExprTest r0; - int i0; - java.io.PrintStream $r1; - byte b2; - - r0 := @this: de.upb.soot.instructions.expr.AndExprTest; - - i0 := @parameter0: int; - - b2 = 0 & 2; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CastExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CastExprTest.jimple deleted file mode 100644 index c2f5f491fce..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CastExprTest.jimple +++ /dev/null @@ -1,105 +0,0 @@ -public class de.upb.soot.instructions.expr.CastExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.CastExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.CastExprTest; - - specialinvoke r0.()>(); - - return; - } - - void number() - { - de.upb.soot.instructions.expr.CastExprTest r0; - double d0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.CastExprTest; - - d0 = (double) 3; - - $r1 = ; - - virtualinvoke $r1.(d0); - - return; - } - - void numberExplicit() - { - de.upb.soot.instructions.expr.CastExprTest r0; - double d0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.CastExprTest; - - d0 = (double) 3; - - $r1 = ; - - virtualinvoke $r1.(d0); - - return; - } - - void numberExplicitNeeded() - { - de.upb.soot.instructions.expr.CastExprTest r0; - int i0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.CastExprTest; - - i0 = (int) 3.14; - - $r1 = ; - - virtualinvoke $r1.(i0); - - return; - } - - void nonPrimitive() - { - de.upb.soot.instructions.expr.CastExprTest r0; - java.lang.Boolean $r3; - java.io.PrintStream $r4; - - r0 := @this: de.upb.soot.instructions.expr.CastExprTest; - - $r3 = new java.lang.Boolean; - - specialinvoke $r3.(boolean)>(1); - - $r4 = ; - - virtualinvoke $r4.($r3); - - return; - } - - void nonPrimitiveExplicitNeeded() - { - de.upb.soot.instructions.expr.CastExprTest r0; - java.lang.Boolean r3, $r4; - java.io.PrintStream $r5; - - r0 := @this: de.upb.soot.instructions.expr.CastExprTest; - - $r4 = new java.lang.Boolean; - - specialinvoke $r4.(boolean)>(1); - - r3 = (java.lang.Boolean) $r4; - - $r5 = ; - - virtualinvoke $r5.(r3); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpgExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpgExprTest.jimple deleted file mode 100644 index f5d34043f33..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.CmpgExprTest.jimple +++ /dev/null @@ -1,80 +0,0 @@ -public class de.upb.soot.instructions.expr.CmpgExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.CmpgExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.CmpgExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void cmpgOperatorLower(float, float) - { - de.upb.soot.instructions.expr.CmpgExprTest r0; - float f0, f1; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.CmpgExprTest; - - f0 := @parameter0: float; - - f1 := @parameter1: float; - - $b0 = f0 cmpg f1; - - if $b0 >= 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } - - public void cmpgOperatorLowerEqual(float, float) - { - de.upb.soot.instructions.expr.CmpgExprTest r0; - float f0, f1; - byte $b0; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.CmpgExprTest; - - f0 := @parameter0: float; - - f1 := @parameter1: float; - - $b0 = f0 cmpg f1; - - if $b0 > 0 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DivExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DivExprTest.jimple deleted file mode 100644 index 95cd05ecf33..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DivExprTest.jimple +++ /dev/null @@ -1,56 +0,0 @@ -public class de.upb.soot.instructions.expr.DivExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.DivExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.DivExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void division(int, int) - { - de.upb.soot.instructions.expr.DivExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.DivExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 / i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void divisionAssignment(int, int) - { - de.upb.soot.instructions.expr.DivExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.DivExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 / i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DynamicInvokeExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DynamicInvokeExprTest.jimple deleted file mode 100644 index 78b17563db8..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.DynamicInvokeExprTest.jimple +++ /dev/null @@ -1,64 +0,0 @@ -public class de.upb.soot.instructions.expr.DynamicInvokeExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.DynamicInvokeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.DynamicInvokeExprTest; - - specialinvoke r0.()>(); - - return; - } - - java.lang.String sth() - { - de.upb.soot.instructions.expr.DynamicInvokeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.DynamicInvokeExprTest; - - return "something"; - } - - void invoke() throws java.lang.Throwable - { - de.upb.soot.instructions.expr.DynamicInvokeExprTest r0, $r5; - java.lang.invoke.MethodHandles$Lookup r1; - java.lang.invoke.MethodType r2; - java.lang.invoke.MethodHandle r3; - java.lang.String r4, $r10; - java.lang.StringBuilder $r6, $r8, $r9; - java.io.PrintStream $r7; - - r0 := @this: de.upb.soot.instructions.expr.DynamicInvokeExprTest; - - r1 = staticinvoke (); - - r2 = staticinvoke (class "Ljava/lang/String;"); - - r3 = virtualinvoke r1.(class "Lde/upb/soot/instructions/expr/DynamicInvokeExprTest;", "sth", r2); - - $r5 = new de.upb.soot.instructions.expr.DynamicInvokeExprTest; - - specialinvoke $r5.()>(); - - r4 = virtualinvoke r3.($r5); - - $r7 = ; - - $r6 = new java.lang.StringBuilder; - - specialinvoke $r6.()>(); - - $r8 = virtualinvoke $r6.("dynamic invoked method returned: "); - - $r9 = virtualinvoke $r8.(r4); - - $r10 = virtualinvoke $r9.(); - - virtualinvoke $r7.($r10); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.EqExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.EqExprTest.jimple deleted file mode 100644 index b8dc8779379..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.EqExprTest.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.EqExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.EqExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.EqExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void EqualTo(int, int) - { - de.upb.soot.instructions.expr.EqExprTest r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.EqExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 != i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GeExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GeExprTest.jimple deleted file mode 100644 index 6404b9c112d..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GeExprTest.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.GeExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.GeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.GeExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void greaterThan(int, int) - { - de.upb.soot.instructions.expr.GeExprTest r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.GeExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 < i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GtExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GtExprTest.jimple deleted file mode 100644 index 1f29f4dd977..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.GtExprTest.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.GtExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.GtExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.GtExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void greaterThan(int, int) - { - de.upb.soot.instructions.expr.GtExprTest r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.GtExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 <= i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.IThing.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.IThing.jimple deleted file mode 100644 index 4a300978b22..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.IThing.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.instructions.expr.IThing extends java.lang.Object -{ - - public abstract int getId(); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InterfaceInvokeExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InterfaceInvokeExprTest.jimple deleted file mode 100644 index 26111818789..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.InterfaceInvokeExprTest.jimple +++ /dev/null @@ -1,36 +0,0 @@ -public class de.upb.soot.instructions.expr.InterfaceInvokeExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.InterfaceInvokeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.InterfaceInvokeExprTest; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.expr.InterfaceInvokeExprTest r0; - int i0; - de.upb.soot.instructions.expr.Pear $r2; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.instructions.expr.InterfaceInvokeExprTest; - - $r2 = new de.upb.soot.instructions.expr.Pear; - - specialinvoke $r2.()>(); - - i0 = interfaceinvoke $r2.(); - - $r3 = ; - - virtualinvoke $r3.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LeExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LeExprTest.jimple deleted file mode 100644 index 8d739cbc0d4..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LeExprTest.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.LeExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.LeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.LeExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void lowerEqual(int, int) - { - de.upb.soot.instructions.expr.LeExprTest r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.LeExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 > i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LengthExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LengthExprTest.jimple deleted file mode 100644 index 6ac2c2a94ee..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LengthExprTest.jimple +++ /dev/null @@ -1,34 +0,0 @@ -public class de.upb.soot.instructions.expr.LengthExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.LengthExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.LengthExprTest; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.expr.LengthExprTest r0; - int[][] r1; - int i0; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.instructions.expr.LengthExprTest; - - r1 = newmultiarray (int)[42][10]; - - i0 = lengthof r1; - - $r2 = ; - - virtualinvoke $r2.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LtExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LtExprTest.jimple deleted file mode 100644 index 44ba0466429..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.LtExprTest.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.LtExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.LtExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.LtExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void lowerThan(int, int) - { - de.upb.soot.instructions.expr.LtExprTest r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.LtExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 >= i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.MulExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.MulExprTest.jimple deleted file mode 100644 index 8c484577e07..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.MulExprTest.jimple +++ /dev/null @@ -1,56 +0,0 @@ -public class de.upb.soot.instructions.expr.MulExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.MulExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.MulExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void multiplication(int, int) - { - de.upb.soot.instructions.expr.MulExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.MulExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 * i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void multiplicationAssignment(int, int) - { - de.upb.soot.instructions.expr.MulExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.MulExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 * i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NeExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NeExprTest.jimple deleted file mode 100644 index 888fa56bcda..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NeExprTest.jimple +++ /dev/null @@ -1,44 +0,0 @@ -public class de.upb.soot.instructions.expr.NeExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.NeExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void notEqual(int, int) - { - de.upb.soot.instructions.expr.NeExprTest r0; - int i0, i1; - java.io.PrintStream $r1; - boolean $z1; - - r0 := @this: de.upb.soot.instructions.expr.NeExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - if i0 == i1 goto label1; - - $z1 = 1; - - goto label2; - - label1: - $z1 = 0; - - label2: - $r1 = ; - - virtualinvoke $r1.($z1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NegateExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NegateExprTest.jimple deleted file mode 100644 index 48d045ae44d..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NegateExprTest.jimple +++ /dev/null @@ -1,31 +0,0 @@ -public class de.upb.soot.instructions.expr.NegateExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NegateExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.NegateExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void sth() - { - de.upb.soot.instructions.expr.NegateExprTest r0; - byte b1; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.NegateExprTest; - - b1 = neg 42; - - $r1 = ; - - virtualinvoke $r1.(b1); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewArrayExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewArrayExprTest.jimple deleted file mode 100644 index a82ec3dfc94..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewArrayExprTest.jimple +++ /dev/null @@ -1,52 +0,0 @@ -public class de.upb.soot.instructions.expr.NewArrayExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NewArrayExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.NewArrayExprTest; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.expr.NewArrayExprTest r0; - int[] r1, r2; - double[] r3; - boolean[] r4; - char[] r5; - java.lang.String[] r6; - java.lang.Integer[] r7; - java.lang.Double[] r8; - java.lang.Boolean[] r9; - java.lang.Object[] r10; - - r0 := @this: de.upb.soot.instructions.expr.NewArrayExprTest; - - r1 = newarray (int)[123]; - - r2 = newarray (int)[2]; - - r3 = newarray (double)[3]; - - r4 = newarray (boolean)[4]; - - r5 = newarray (char)[5]; - - r6 = newarray (java.lang.String)[6]; - - r7 = newarray (java.lang.Integer)[7]; - - r8 = newarray (java.lang.Double)[8]; - - r9 = newarray (java.lang.Boolean)[9]; - - r10 = newarray (java.lang.Object)[10]; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewExprTest.jimple deleted file mode 100644 index e2d5f15b93f..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewExprTest.jimple +++ /dev/null @@ -1,42 +0,0 @@ -public class de.upb.soot.instructions.expr.NewExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NewExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.NewExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void sth() - { - de.upb.soot.instructions.expr.NewExprTest r0; - java.lang.Integer $r3; - java.io.PrintStream $r4, $r6; - java.lang.Boolean $r5; - - r0 := @this: de.upb.soot.instructions.expr.NewExprTest; - - $r3 = new java.lang.Integer; - - specialinvoke $r3.(int)>(42); - - $r4 = ; - - virtualinvoke $r4.($r3); - - $r5 = new java.lang.Boolean; - - specialinvoke $r5.(boolean)>(1); - - $r6 = ; - - virtualinvoke $r6.($r5); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewMultiArrayExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewMultiArrayExprTest.jimple deleted file mode 100644 index be75ca15a15..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.NewMultiArrayExprTest.jimple +++ /dev/null @@ -1,57 +0,0 @@ -public class de.upb.soot.instructions.expr.NewMultiArrayExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.NewMultiArrayExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.NewMultiArrayExprTest; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.expr.NewMultiArrayExprTest r0; - int[][] r1; - int i0; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.instructions.expr.NewMultiArrayExprTest; - - r1 = newmultiarray (int)[42][10]; - - i0 = lengthof r1; - - $r2 = ; - - virtualinvoke $r2.(i0); - - return; - } - - void nonPrimitive() - { - de.upb.soot.instructions.expr.NewMultiArrayExprTest r0; - java.lang.String[][] r1; - int i0; - java.lang.String[] $r2; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.instructions.expr.NewMultiArrayExprTest; - - r1 = newmultiarray (java.lang.String)[3][10]; - - $r2 = r1[0]; - - i0 = lengthof $r2; - - $r3 = ; - - virtualinvoke $r3.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.OrExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.OrExprTest.jimple deleted file mode 100644 index d2f75cd4d79..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.OrExprTest.jimple +++ /dev/null @@ -1,88 +0,0 @@ -public class de.upb.soot.instructions.expr.OrExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.OrExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.OrExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void logicalOR(boolean, boolean) - { - de.upb.soot.instructions.expr.OrExprTest r0; - boolean z0, z1, $z3; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.OrExprTest; - - z0 := @parameter0: boolean; - - z1 := @parameter1: boolean; - - if z0 != 0 goto label1; - - if z1 == 0 goto label2; - - label1: - $z3 = 1; - - goto label3; - - label2: - $z3 = 0; - - label3: - $r1 = ; - - virtualinvoke $r1.($z3); - - return; - } - - public void bitwiseOR(int, int) - { - de.upb.soot.instructions.expr.OrExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.OrExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 | i1; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void bitwiseORAssignment(int, int) - { - de.upb.soot.instructions.expr.OrExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.OrExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 | i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.Pear.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.Pear.jimple deleted file mode 100644 index 6d7d41d83c2..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.Pear.jimple +++ /dev/null @@ -1,23 +0,0 @@ -class de.upb.soot.instructions.expr.Pear extends java.lang.Object implements de.upb.soot.instructions.expr.IThing -{ - - void () - { - de.upb.soot.instructions.expr.Pear r0; - - r0 := @this: de.upb.soot.instructions.expr.Pear; - - specialinvoke r0.()>(); - - return; - } - - public int getId() - { - de.upb.soot.instructions.expr.Pear r0; - - r0 := @this: de.upb.soot.instructions.expr.Pear; - - return 42; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.RemExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.RemExprTest.jimple deleted file mode 100644 index 8724fed1c66..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.RemExprTest.jimple +++ /dev/null @@ -1,56 +0,0 @@ -public class de.upb.soot.instructions.expr.RemExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.RemExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.RemExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void modulus(int, int) - { - de.upb.soot.instructions.expr.RemExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.RemExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 % i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } - - public void modulusAssign(int, int) - { - de.upb.soot.instructions.expr.RemExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.RemExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 % i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShlExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShlExprTest.jimple deleted file mode 100644 index ca1ae916cc0..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShlExprTest.jimple +++ /dev/null @@ -1,35 +0,0 @@ -public class de.upb.soot.instructions.expr.ShlExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.ShlExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.ShlExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void bitwiseLeftShift(int, int) - { - de.upb.soot.instructions.expr.ShlExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.ShlExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 << 2; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShrExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShrExprTest.jimple deleted file mode 100644 index d5aad785be0..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.ShrExprTest.jimple +++ /dev/null @@ -1,35 +0,0 @@ -public class de.upb.soot.instructions.expr.ShrExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.ShrExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.ShrExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void bitwiseRightShift(int, int) - { - de.upb.soot.instructions.expr.ShrExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.ShrExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 >> 2; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SpecialInvokeExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SpecialInvokeExprTest.jimple deleted file mode 100644 index 3bcadbc40e1..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SpecialInvokeExprTest.jimple +++ /dev/null @@ -1,78 +0,0 @@ -public class de.upb.soot.instructions.expr.SpecialInvokeExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.SpecialInvokeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExprTest; - - specialinvoke r0.()>(); - - return; - } - - private double someMethod() - { - de.upb.soot.instructions.expr.SpecialInvokeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExprTest; - - return 3.14; - } - - void local() - { - de.upb.soot.instructions.expr.SpecialInvokeExprTest r0, $r2; - double d0; - java.io.PrintStream $r3; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExprTest; - - $r2 = new de.upb.soot.instructions.expr.SpecialInvokeExprTest; - - specialinvoke $r2.()>(); - - d0 = specialinvoke $r2.(); - - $r3 = ; - - virtualinvoke $r3.(d0); - - return; - } - - void method() - { - de.upb.soot.instructions.expr.SpecialInvokeExprTest r0; - double d0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExprTest; - - d0 = specialinvoke r0.(); - - $r1 = ; - - virtualinvoke $r1.(d0); - - return; - } - - void fromsuperclass() - { - de.upb.soot.instructions.expr.SpecialInvokeExprTest r0; - int i0; - java.io.PrintStream $r2; - - r0 := @this: de.upb.soot.instructions.expr.SpecialInvokeExprTest; - - i0 = virtualinvoke r0.(); - - $r2 = ; - - virtualinvoke $r2.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.StaticInvokeExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.StaticInvokeExprTest.jimple deleted file mode 100644 index 0da70010bea..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.StaticInvokeExprTest.jimple +++ /dev/null @@ -1,43 +0,0 @@ -public class de.upb.soot.instructions.expr.StaticInvokeExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.StaticInvokeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.StaticInvokeExprTest; - - specialinvoke r0.()>(); - - return; - } - - public static java.lang.String somethingStatic() - { - return "Polyester Shirt"; - } - - public void staticInvoke() - { - de.upb.soot.instructions.expr.StaticInvokeExprTest r0; - java.lang.String r1; - int i0; - java.io.PrintStream $r2, $r3; - - r0 := @this: de.upb.soot.instructions.expr.StaticInvokeExprTest; - - r1 = staticinvoke (); - - $r2 = ; - - virtualinvoke $r2.(r1); - - i0 = staticinvoke (-42); - - $r3 = ; - - virtualinvoke $r3.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SubExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SubExprTest.jimple deleted file mode 100644 index 0bcc64b0805..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.SubExprTest.jimple +++ /dev/null @@ -1,35 +0,0 @@ -public class de.upb.soot.instructions.expr.SubExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.SubExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.SubExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void subtraction(int, int) - { - de.upb.soot.instructions.expr.SubExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.SubExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i1 - i0; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.UshrExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.UshrExprTest.jimple deleted file mode 100644 index dea9dde5c88..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.UshrExprTest.jimple +++ /dev/null @@ -1,35 +0,0 @@ -public class de.upb.soot.instructions.expr.UshrExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.UshrExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.UshrExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void bitwiseRightShiftZerofill(int, int) - { - de.upb.soot.instructions.expr.UshrExprTest r0; - int i0, i1, i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.UshrExprTest; - - i0 := @parameter0: int; - - i1 := @parameter1: int; - - i2 = i0 >>> 2; - - $r1 = ; - - virtualinvoke $r1.(i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.VirtualInvokeExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.VirtualInvokeExprTest.jimple deleted file mode 100644 index 1d11bd3d6e7..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.VirtualInvokeExprTest.jimple +++ /dev/null @@ -1,45 +0,0 @@ -public class de.upb.soot.instructions.expr.VirtualInvokeExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.VirtualInvokeExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.VirtualInvokeExprTest; - - specialinvoke r0.()>(); - - return; - } - - int postalcode(int) - { - de.upb.soot.instructions.expr.VirtualInvokeExprTest r0; - int i0, $i1; - - r0 := @this: de.upb.soot.instructions.expr.VirtualInvokeExprTest; - - i0 := @parameter0: int; - - $i1 = 33100 + i0; - - return $i1; - } - - void invoke() - { - de.upb.soot.instructions.expr.VirtualInvokeExprTest r0; - int i0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.expr.VirtualInvokeExprTest; - - i0 = virtualinvoke r0.(0); - - $r1 = ; - - virtualinvoke $r1.(i0); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.XorExprTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.XorExprTest.jimple deleted file mode 100644 index 827957e085c..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.expr.XorExprTest.jimple +++ /dev/null @@ -1,34 +0,0 @@ -public class de.upb.soot.instructions.expr.XorExprTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.expr.XorExprTest r0; - - r0 := @this: de.upb.soot.instructions.expr.XorExprTest; - - specialinvoke r0.()>(); - - return; - } - - public void bitwiseXOR(int) - { - de.upb.soot.instructions.expr.XorExprTest r0; - int i0; - java.io.PrintStream $r1; - byte b2; - - r0 := @this: de.upb.soot.instructions.expr.XorExprTest; - - i0 := @parameter0: int; - - b2 = 0 ^ 2; - - $r1 = ; - - virtualinvoke $r1.(b2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest.jimple deleted file mode 100644 index 88a3bda5130..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest.jimple +++ /dev/null @@ -1,36 +0,0 @@ -public class de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest r0; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest; - - specialinvoke r0.()>(); - - return; - } - - public void breaker() - { - de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest r0; - java.io.PrintStream $r1, $r2, $r3; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.BreakPointStmtTest; - - $r1 = ; - - virtualinvoke $r1.("A"); - - $r2 = ; - - virtualinvoke $r2.("B"); - - $r3 = ; - - virtualinvoke $r3.("C"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.RetStmtTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.RetStmtTest.jimple deleted file mode 100644 index acdbe547fe0..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.javabytecode.stmt.RetStmtTest.jimple +++ /dev/null @@ -1,61 +0,0 @@ -public class de.upb.soot.instructions.javabytecode.stmt.RetStmtTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.javabytecode.stmt.RetStmtTest r0; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmtTest; - - specialinvoke r0.()>(); - - return; - } - - int returnInt(int) - { - de.upb.soot.instructions.javabytecode.stmt.RetStmtTest r0; - int i0; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmtTest; - - i0 := @parameter0: int; - - return i0; - } - - double returnDouble(double) - { - de.upb.soot.instructions.javabytecode.stmt.RetStmtTest r0; - double d0; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmtTest; - - d0 := @parameter0: double; - - return d0; - } - - java.lang.String returnString(java.lang.String) - { - de.upb.soot.instructions.javabytecode.stmt.RetStmtTest r0; - java.lang.String r1; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmtTest; - - r1 := @parameter0: java.lang.String; - - return r1; - } - - de.upb.soot.instructions.javabytecode.stmt.RetStmtTest returnNonPrimitive(de.upb.soot.instructions.javabytecode.stmt.RetStmtTest) - { - de.upb.soot.instructions.javabytecode.stmt.RetStmtTest r0, r1; - - r0 := @this: de.upb.soot.instructions.javabytecode.stmt.RetStmtTest; - - r1 := @parameter0: de.upb.soot.instructions.javabytecode.stmt.RetStmtTest; - - return r1; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ArrayRefTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ArrayRefTest.jimple deleted file mode 100644 index 72b0d326fa3..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ArrayRefTest.jimple +++ /dev/null @@ -1,41 +0,0 @@ -public class de.upb.soot.instructions.ref.ArrayRefTest extends java.lang.Object -{ - int[] arr; - - public void () - { - de.upb.soot.instructions.ref.ArrayRefTest r0; - - r0 := @this: de.upb.soot.instructions.ref.ArrayRefTest; - - specialinvoke r0.()>(); - - return; - } - - boolean[] someMethod() - { - de.upb.soot.instructions.ref.ArrayRefTest r0; - java.lang.String[] r1; - int[] $r2, $r3; - boolean[] $r4; - - r0 := @this: de.upb.soot.instructions.ref.ArrayRefTest; - - $r2 = newarray (int)[123]; - - r0. = $r2; - - $r3 = r0.; - - $r3[100] = 42; - - r1 = newarray (java.lang.String)[2]; - - r1[0] = "zero"; - - $r4 = newarray (boolean)[0]; - - return $r4; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.CaughtExceptionRefTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.CaughtExceptionRefTest.jimple deleted file mode 100644 index 9811c36bc8b..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.CaughtExceptionRefTest.jimple +++ /dev/null @@ -1,55 +0,0 @@ -public class de.upb.soot.instructions.ref.CaughtExceptionRefTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.ref.CaughtExceptionRefTest r0; - - r0 := @this: de.upb.soot.instructions.ref.CaughtExceptionRefTest; - - specialinvoke r0.()>(); - - return; - } - - void throwExceptionAndCatch() - { - de.upb.soot.instructions.ref.CaughtExceptionRefTest r0; - java.lang.Exception $r2, $r3; - java.io.PrintStream $r4; - - r0 := @this: de.upb.soot.instructions.ref.CaughtExceptionRefTest; - - label1: - $r2 = new java.lang.Exception; - - specialinvoke $r2.()>(); - - throw $r2; - - label2: - $r3 := @caughtexception; - - $r4 = ; - - virtualinvoke $r4.("exception"); - - return; - - catch java.lang.Exception from label1 to label2 with label2; - } - - void throwException() throws java.lang.Exception - { - de.upb.soot.instructions.ref.CaughtExceptionRefTest r0; - java.lang.Exception $r1; - - r0 := @this: de.upb.soot.instructions.ref.CaughtExceptionRefTest; - - $r1 = new java.lang.Exception; - - specialinvoke $r1.()>(); - - throw $r1; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.InstanceFieldRefTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.InstanceFieldRefTest.jimple deleted file mode 100644 index b139691dd02..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.InstanceFieldRefTest.jimple +++ /dev/null @@ -1,40 +0,0 @@ -public class de.upb.soot.instructions.ref.InstanceFieldRefTest extends java.lang.Object -{ - int counter; - - public void () - { - de.upb.soot.instructions.ref.InstanceFieldRefTest r0; - - r0 := @this: de.upb.soot.instructions.ref.InstanceFieldRefTest; - - specialinvoke r0.()>(); - - r0. = 0; - - return; - } - - void sth() - { - de.upb.soot.instructions.ref.InstanceFieldRefTest r0; - int $i0, $i1, $i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.ref.InstanceFieldRefTest; - - $i0 = r0.; - - $i1 = $i0 + 1; - - r0. = $i1; - - $r1 = ; - - $i2 = r0.; - - virtualinvoke $r1.($i2); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.StaticFieldRefTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.StaticFieldRefTest.jimple deleted file mode 100644 index e7b996f2529..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.StaticFieldRefTest.jimple +++ /dev/null @@ -1,45 +0,0 @@ -public class de.upb.soot.instructions.ref.StaticFieldRefTest extends java.lang.Object -{ - static int globalCounter; - - public void () - { - de.upb.soot.instructions.ref.StaticFieldRefTest r0; - - r0 := @this: de.upb.soot.instructions.ref.StaticFieldRefTest; - - specialinvoke r0.()>(); - - return; - } - - void sth() - { - de.upb.soot.instructions.ref.StaticFieldRefTest r0; - int $i0, $i1, $i2; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.ref.StaticFieldRefTest; - - $i0 = ; - - $i1 = $i0 + 1; - - = $i1; - - $r1 = ; - - $i2 = ; - - virtualinvoke $r1.($i2); - - return; - } - - static void () - { - = 0; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ThisRefTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ThisRefTest.jimple deleted file mode 100644 index 06ed0623bc2..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.ref.ThisRefTest.jimple +++ /dev/null @@ -1,50 +0,0 @@ -public class de.upb.soot.instructions.ref.ThisRefTest extends java.lang.Object -{ - int property; - - public void () - { - de.upb.soot.instructions.ref.ThisRefTest r0; - - r0 := @this: de.upb.soot.instructions.ref.ThisRefTest; - - specialinvoke r0.()>(); - - r0. = 0; - - return; - } - - java.lang.String someMethod() - { - de.upb.soot.instructions.ref.ThisRefTest r0; - - r0 := @this: de.upb.soot.instructions.ref.ThisRefTest; - - return "sth"; - } - - void caller() - { - de.upb.soot.instructions.ref.ThisRefTest r0; - int $i0; - java.io.PrintStream $r1, $r2; - java.lang.String $r3; - - r0 := @this: de.upb.soot.instructions.ref.ThisRefTest; - - $r1 = ; - - $i0 = r0.; - - virtualinvoke $r1.($i0); - - $r2 = ; - - $r3 = virtualinvoke r0.(); - - virtualinvoke $r2.($r3); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.AssignStmtTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.AssignStmtTest.jimple deleted file mode 100644 index bef2c06a604..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.AssignStmtTest.jimple +++ /dev/null @@ -1,199 +0,0 @@ -public class de.upb.soot.instructions.stmt.AssignStmtTest extends java.lang.Object -{ - int field; - de.upb.soot.basic.expr.Dummy fieldObj; - - public void () - { - de.upb.soot.instructions.stmt.AssignStmtTest r0; - de.upb.soot.basic.expr.Dummy $r1; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmtTest; - - specialinvoke r0.()>(); - - r0. = 123; - - $r1 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r1.()>(); - - r0. = $r1; - - return; - } - - public void rvalue() - { - de.upb.soot.instructions.stmt.AssignStmtTest r0; - int[] r2; - int i0, i1, i2, i3, $i6; - de.upb.soot.basic.expr.Dummy $r3; - java.io.PrintStream $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmtTest; - - $r3 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r3.()>(); - - r2 = newarray (int)[123]; - - i0 = r0.; - - i1 = $r3.; - - i2 = r2[42]; - - $i6 = r0.; - - i3 = r2[$i6]; - - staticinvoke (-1); - - $r4 = ; - - virtualinvoke $r4.($r3); - - $r5 = ; - - virtualinvoke $r5.(r2); - - $r6 = ; - - virtualinvoke $r6.(i0); - - $r7 = ; - - virtualinvoke $r7.(i1); - - $r8 = ; - - virtualinvoke $r8.(i2); - - $r9 = ; - - virtualinvoke $r9.(i3); - - $r10 = ; - - virtualinvoke $r10.(42); - - $r11 = ; - - virtualinvoke $r11.(3); - - return; - } - - public void imm() - { - de.upb.soot.instructions.stmt.AssignStmtTest r0; - de.upb.soot.basic.expr.Dummy $r2; - java.io.PrintStream $r3, $r4, $r5; - int $i1, $i2; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmtTest; - - r0. = 42; - - $r2 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r2.()>(); - - $r2. = 2; - - $r3 = ; - - virtualinvoke $r3.(2); - - $r4 = ; - - $i1 = r0.; - - virtualinvoke $r4.($i1); - - $r5 = ; - - $i2 = $r2.; - - virtualinvoke $r5.($i2); - - return; - } - - public void property() - { - de.upb.soot.instructions.stmt.AssignStmtTest r0; - de.upb.soot.basic.expr.Dummy $r3, $r4, $r5, $r8; - int $i0, $i1, $i2, $i3; - java.io.PrintStream $r6, $r7, $r9; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmtTest; - - $r3 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r3.()>(); - - $r3. = 666; - - $r4 = new de.upb.soot.basic.expr.Dummy; - - specialinvoke $r4.()>(); - - $i0 = r0.; - - $r4. = $i0; - - $r5 = r0.; - - $r5. = 42; - - $r6 = ; - - $i1 = $r3.; - - virtualinvoke $r6.($i1); - - $r7 = ; - - $i2 = $r4.; - - virtualinvoke $r7.($i2); - - $r9 = ; - - $r8 = r0.; - - $i3 = $r8.; - - virtualinvoke $r9.($i3); - - return; - } - - public void array_field() - { - de.upb.soot.instructions.stmt.AssignStmtTest r0; - int[] r1; - int $i0, $i1; - - r0 := @this: de.upb.soot.instructions.stmt.AssignStmtTest; - - r1 = newarray (int)[123]; - - r1[0] = 1; - - r1[42] = 43; - - $i0 = staticinvoke (-1); - - r1[$i0] = -2; - - $i1 = r0.; - - r1[$i1] = 0; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.GotoStmtTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.GotoStmtTest.jimple deleted file mode 100644 index c0948d5d9ff..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.GotoStmtTest.jimple +++ /dev/null @@ -1,92 +0,0 @@ -public class de.upb.soot.instructions.stmt.GotoStmtTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.stmt.GotoStmtTest r0; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmtTest; - - specialinvoke r0.()>(); - - return; - } - - public void label() - { - de.upb.soot.instructions.stmt.GotoStmtTest r0; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmtTest; - - label1: - goto label1; - } - - public void whileloop(int) - { - de.upb.soot.instructions.stmt.GotoStmtTest r0; - int i0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmtTest; - - i0 := @parameter0: int; - - label1: - if i0 >= 42 goto label2; - - $r1 = ; - - virtualinvoke $r1.("A"); - - goto label1; - - label2: - return; - } - - public void forloop() - { - de.upb.soot.instructions.stmt.GotoStmtTest r0; - java.io.PrintStream $r1; - int i0; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmtTest; - - i0 = 5; - - label1: - if i0 >= 10 goto label2; - - $r1 = ; - - virtualinvoke $r1.("A"); - - i0 = i0 + 1; - - goto label1; - - label2: - return; - } - - public void dowhileloop(int) - { - de.upb.soot.instructions.stmt.GotoStmtTest r0; - int i0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.GotoStmtTest; - - i0 := @parameter0: int; - - label1: - $r1 = ; - - virtualinvoke $r1.("A"); - - if i0 != 0 goto label1; - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IThing.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IThing.jimple deleted file mode 100644 index 39964941b74..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.IThing.jimple +++ /dev/null @@ -1,5 +0,0 @@ -interface de.upb.soot.instructions.stmt.IThing extends java.lang.Object -{ - - public abstract void printId(); -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.InvokeStmtTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.InvokeStmtTest.jimple deleted file mode 100644 index bea576cc184..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.InvokeStmtTest.jimple +++ /dev/null @@ -1,99 +0,0 @@ -public class de.upb.soot.instructions.stmt.InvokeStmtTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.stmt.InvokeStmtTest r0; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmtTest; - - specialinvoke r0.()>(); - - return; - } - - private void someMethod() - { - de.upb.soot.instructions.stmt.InvokeStmtTest r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmtTest; - - $r1 = ; - - virtualinvoke $r1.("Sth"); - - return; - } - - public static void somethingStatic() - { - java.io.PrintStream $r0; - - $r0 = ; - - virtualinvoke $r0.("Polyester Shirt"); - - return; - } - - public void specialInvoke() - { - de.upb.soot.instructions.stmt.InvokeStmtTest r0, $r2; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmtTest; - - $r2 = new de.upb.soot.instructions.stmt.InvokeStmtTest; - - specialinvoke $r2.()>(); - - specialinvoke $r2.(); - - specialinvoke r0.(); - - return; - } - - public void interfaceInvoke() - { - de.upb.soot.instructions.stmt.InvokeStmtTest r0; - de.upb.soot.instructions.stmt.Pear $r2; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmtTest; - - $r2 = new de.upb.soot.instructions.stmt.Pear; - - specialinvoke $r2.()>(); - - interfaceinvoke $r2.(); - - return; - } - - public void virtualInvoke() - { - de.upb.soot.instructions.stmt.InvokeStmtTest r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmtTest; - - $r1 = ; - - virtualinvoke $r1.("virtual invoked"); - - return; - } - - public void staticInvoke() - { - de.upb.soot.instructions.stmt.InvokeStmtTest r0; - - r0 := @this: de.upb.soot.instructions.stmt.InvokeStmtTest; - - staticinvoke (); - - staticinvoke (); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.Pear.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.Pear.jimple deleted file mode 100644 index 80c4c341d5f..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.Pear.jimple +++ /dev/null @@ -1,28 +0,0 @@ -class de.upb.soot.instructions.stmt.Pear extends java.lang.Object implements de.upb.soot.instructions.stmt.IThing -{ - - void () - { - de.upb.soot.instructions.stmt.Pear r0; - - r0 := @this: de.upb.soot.instructions.stmt.Pear; - - specialinvoke r0.()>(); - - return; - } - - public void printId() - { - de.upb.soot.instructions.stmt.Pear r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.Pear; - - $r1 = ; - - virtualinvoke $r1.("Id"); - - return; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ReturnStmtsTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ReturnStmtsTest.jimple deleted file mode 100644 index f8ba45ae717..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ReturnStmtsTest.jimple +++ /dev/null @@ -1,94 +0,0 @@ -public class de.upb.soot.instructions.stmt.ReturnStmtsTest extends java.lang.Object -{ - - void (int) - { - de.upb.soot.instructions.stmt.ReturnStmtsTest r0; - int i0; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmtsTest; - - i0 := @parameter0: int; - - specialinvoke r0.()>(); - - if i0 >= 18 goto label1; - - return; - - label1: - return; - } - - public void returnnothing() - { - de.upb.soot.instructions.stmt.ReturnStmtsTest r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmtsTest; - - $r1 = ; - - virtualinvoke $r1.("A"); - - return; - } - - public void pointofnoreturn() - { - de.upb.soot.instructions.stmt.ReturnStmtsTest r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmtsTest; - - $r1 = ; - - virtualinvoke $r1.("A"); - - return; - } - - public int returnA(int) - { - de.upb.soot.instructions.stmt.ReturnStmtsTest r0; - int i0; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmtsTest; - - i0 := @parameter0: int; - - return i0; - } - - public int returnB() - { - de.upb.soot.instructions.stmt.ReturnStmtsTest r0; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmtsTest; - - return 42; - } - - public char returnC() - { - de.upb.soot.instructions.stmt.ReturnStmtsTest r0; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmtsTest; - - return 99; - } - - public java.lang.Integer returnObject() - { - de.upb.soot.instructions.stmt.ReturnStmtsTest r0; - java.lang.Integer $r1; - - r0 := @this: de.upb.soot.instructions.stmt.ReturnStmtsTest; - - $r1 = new java.lang.Integer; - - specialinvoke $r1.(int)>(5); - - return $r1; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ThrowStmtTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ThrowStmtTest.jimple deleted file mode 100644 index 21901502fc6..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.stmt.ThrowStmtTest.jimple +++ /dev/null @@ -1,28 +0,0 @@ -public class de.upb.soot.instructions.stmt.ThrowStmtTest extends java.lang.Object -{ - - public void () - { - de.upb.soot.instructions.stmt.ThrowStmtTest r0; - - r0 := @this: de.upb.soot.instructions.stmt.ThrowStmtTest; - - specialinvoke r0.()>(); - - return; - } - - public void throwsth() throws java.lang.Exception - { - de.upb.soot.instructions.stmt.ThrowStmtTest r0; - java.lang.Exception $r1; - - r0 := @this: de.upb.soot.instructions.stmt.ThrowStmtTest; - - $r1 = new java.lang.Exception; - - specialinvoke $r1.(java.lang.String)>("Banana"); - - throw $r1; - } -} diff --git a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.type.AllTypesTest.jimple b/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.type.AllTypesTest.jimple deleted file mode 100644 index e79327c4360..00000000000 --- a/de.upb.swt.soot.java.core/src/test/resources/jimple-target/de.upb.soot.instructions.type.AllTypesTest.jimple +++ /dev/null @@ -1,47 +0,0 @@ -public class de.upb.soot.instructions.type.AllTypesTest extends java.lang.Object -{ - int[] arr; - boolean z; - byte b; - char c; - double d; - float f; - int i; - long l; - java.lang.Object n; - de.upb.soot.instructions.type.AllTypesTest ref; - short s; - - public void () - { - de.upb.soot.instructions.type.AllTypesTest r0, $r1; - - r0 := @this: de.upb.soot.instructions.type.AllTypesTest; - - specialinvoke r0.()>(); - - r0. = null; - - $r1 = new de.upb.soot.instructions.type.AllTypesTest; - - specialinvoke $r1.()>(); - - r0. = $r1; - - return; - } - - void method() - { - de.upb.soot.instructions.type.AllTypesTest r0; - java.io.PrintStream $r1; - - r0 := @this: de.upb.soot.instructions.type.AllTypesTest; - - $r1 = ; - - virtualinvoke $r1.("void"); - - return; - } -} diff --git a/de.upb.swt.soot.java.sourcecode/pom.xml b/de.upb.swt.soot.java.sourcecode/pom.xml deleted file mode 100644 index 58dc1231dc9..00000000000 --- a/de.upb.swt.soot.java.sourcecode/pom.xml +++ /dev/null @@ -1,179 +0,0 @@ - - 4.0.0 - - Soot Java Sourcecode Frontend - soot.java.sourcecode - jar - - de.upb.swt - soot - 4.0.0-SNAPSHOT - - - - 1.5.7 - - - - - - - com.ibm.wala - com.ibm.wala.core - ${wala.version} - pom - import - - - com.ibm.wala - com.ibm.wala.util - ${wala.version} - pom - import - - - com.ibm.wala - com.ibm.wala.cast.java - ${wala.version} - pom - import - - - com.ibm.wala - com.ibm.wala.cast.java.ecj - ${wala.version} - pom - import - - - com.ibm.wala - com.ibm.wala.shrike - ${wala.version} - pom - import - - - com.ibm.wala - com.ibm.wala.dalvik - ${wala.version} - pom - import - - - - - - - - de.upb.swt - soot.core - 4.0.0-SNAPSHOT - - - de.upb.swt - soot.java.core - 4.0.0-SNAPSHOT - - - - com.ibm.wala - com.ibm.wala.core - ${wala.version} - - - com.ibm.wala - com.ibm.wala.cast - ${wala.version} - - - com.ibm.wala - com.ibm.wala.cast.java - ${wala.version} - - - com.ibm.wala - com.ibm.wala.cast.java.ecj - ${wala.version} - - - org.eclipse.platform - org.eclipse.core.runtime - - - org.eclipse.jdt - org.eclipse.jdt.core - - - org.eclipse.platform - org.eclipse.osgi - - - org.eclipse.platform - org.eclipse.core.jobs - - - - - - - org.eclipse.platform - org.eclipse.core.runtime - (,3.15) - runtime - - - org.eclipse.jdt - org.eclipse.jdt.core - (,3.15) - runtime - - - org.eclipse.platform - org.eclipse.equinox.preferences - - - - - org.eclipse.platform - org.eclipse.equinox.preferences - (,3.10) - runtime - - - org.eclipse.platform - org.eclipse.osgi - (,3.15) - runtime - - - org.eclipse.platform - org.eclipse.core.jobs - (,3.10) - runtime - - - org.eclipse.platform - org.eclipse.core.contenttype - (,3.8) - runtime - - - - com.ibm.wala - com.ibm.wala.util - ${wala.version} - - - com.ibm.wala - com.ibm.wala.shrike - ${wala.version} - - - com.ibm.wala - com.ibm.wala.dalvik - ${wala.version} - - - diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/GetInstructionConversionTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/GetInstructionConversionTest.java deleted file mode 100644 index 7b53cefa124..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/GetInstructionConversionTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; - -import static de.upb.swt.soot.core.util.Utils.assertEquiv; -import static de.upb.swt.soot.core.util.Utils.assertInstanceOfSatisfying; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.FieldSignature; -import de.upb.swt.soot.core.types.PrimitiveType; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.WalaClassLoaderTestUtils; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Linghui Luo */ -@Category(Java8Test.class) -public class GetInstructionConversionTest { - - private WalaJavaClassProvider loader; - private JavaIdentifierFactory typeFactory; - private JavaClassType declareClassSig; - - @Before - public void loadClassesWithWala() { - String srcDir = "../shared-test-resources/wala-tests/"; - loader = new WalaJavaClassProvider(srcDir); - typeFactory = JavaIdentifierFactory.getInstance(); - declareClassSig = typeFactory.getClassType("alreadywalaunittests.InnerClassAA"); - } - - @Test - public void test() { - Optional m = - WalaClassLoaderTestUtils.getSootMethod( - loader, - typeFactory.getMethodSignature( - declareClassSig, "getA_X", "int", Collections.emptyList())); - assertTrue(m.isPresent()); - SootMethod method = m.get(); - - Body body = method.getBody(); - assertNotNull(body); - - List stmts = body.getStmts(); - assertEquals(3, stmts.size()); - - assertInstanceOfSatisfying( - stmts.get(0), - JIdentityStmt.class, - stmt -> { - assertEquiv( - new Local("r0", typeFactory.getClassType("alreadywalaunittests.InnerClassAA")), - stmt.getLeftOp()); - assertEquiv( - Jimple.newThisRef(typeFactory.getClassType("alreadywalaunittests.InnerClassAA")), - stmt.getRightOp()); - }); - - assertInstanceOfSatisfying( - stmts.get(1), - JAssignStmt.class, - stmt -> { - assertEquiv(new Local("$i0", PrimitiveType.getInt()), stmt.getLeftOp()); - assertInstanceOfSatisfying( - stmt.getRightOp(), - JInstanceFieldRef.class, - JFieldRef -> { - assertEquiv( - new Local("r0", typeFactory.getClassType("alreadywalaunittests.InnerClassAA")), - JFieldRef.getBase()); - - FieldSignature fieldSig = JFieldRef.getFieldSignature(); - assertNotNull(fieldSig); - assertEquals("a_x", fieldSig.getName()); - Assert.assertEquals(PrimitiveType.getInt(), fieldSig.getType()); - Assert.assertEquals( - typeFactory.getClassType("alreadywalaunittests.InnerClassAA"), - fieldSig.getDeclClassType()); - }); - }); - - assertInstanceOfSatisfying( - stmts.get(2), - JReturnStmt.class, - stmt -> assertEquiv(new Local("$i0", PrimitiveType.getInt()), stmt.getOp())); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/WalaJavaClassProviderTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/WalaJavaClassProviderTest.java deleted file mode 100644 index 4345ca59239..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/frontend/WalaJavaClassProviderTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.frontend; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import categories.Java8Test; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.util.ImmutableUtils; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; -import java.nio.file.Paths; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class WalaJavaClassProviderTest { - - @Test - public void testCreateClassSource() { - // TODO It's not ideal that we need to pass exclusionFilePath twice - - String srcDir = "../shared-test-resources/wala-tests/"; - String exclusionFilePath = srcDir + "WalaExclusions.txt"; - JavaSourcePathAnalysisInputLocation inputLocation = - new JavaSourcePathAnalysisInputLocation( - ImmutableUtils.immutableSet(srcDir), exclusionFilePath); - JavaClassType type = new JavaClassType("Array1", PackageName.DEFAULT_PACKAGE); - - WalaJavaClassProvider provider = new WalaJavaClassProvider(srcDir, exclusionFilePath); - SootClassSource classSource = - provider.createClassSource(inputLocation, Paths.get(srcDir), type); - - assertEquals(type, classSource.getClassType()); - - SootClassSource content = classSource; - assertNotNull(content); - assertEquals(3, content.resolveMethods().size()); - assertEquals(0, content.resolveFields().size()); - - assertEquals(content, (classSource)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java10/TypeInferenceTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java10/TypeInferenceTest.java deleted file mode 100644 index 78b78787f57..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java10/TypeInferenceTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java10; - -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class TypeInferenceTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - @Ignore - public void ignoreTest() { - /** TODO Java 10 is not supported in WALA, feature can not be tested */ - } - - /** - * - * - *
-   *     public void printFile() throws Exception{
-   * var fileName="file.txt";
-   * var data = "";
-   * var fileReader= new FileReader(fileName);
-   * var bufferedReader= new BufferedReader(fileReader);
-   * while( (data= bufferedReader.readLine()) != null ){
-   * System.out.println(data);
-   * }
-   * bufferedReader.close();
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: TryWithResourcesConcise", - "$r1 = new java.io.BufferedReader", - "$r2 = new java.io.FileReader", - "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", - "specialinvoke $r1.(java.io.Reader)>($r2)", - "$r3 = \"\"", - "label1:", - "$r4 = virtualinvoke $r1.()", - "goto label2", - "$r5 := @caughtexception", - "throw $r5", - "label2:", - "$r3 = $r4", - "$z0 = $r4 != null", - "if $z0 == 0 goto label3", - "$r6 = ", - "virtualinvoke $r6.($r3)", - "goto label1", - "label3:", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AbstractClassTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AbstractClassTest.java deleted file mode 100644 index 91851ffe869..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AbstractClassTest.java +++ /dev/null @@ -1,58 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class AbstractClassTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - SootClass clazz = loadClass(getDeclaredClassSignature()); - // The SuperClass is the abstract one - System.out.println(clazz.getSuperclass()); - SootClass superClazz = loadClass(clazz.getSuperclass().get()); - assertTrue(superClazz.isAbstract()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "abstractClass", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void abstractClass(){
-   *         A obj = new AbstractClass();
-   *         obj.a();
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: AbstractClass", - "$r1 = new AbstractClass", - "specialinvoke $r1.()>()", - "virtualinvoke $r1.()", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AccessArraysTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AccessArraysTest.java deleted file mode 100644 index 1f50a984fcf..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AccessArraysTest.java +++ /dev/null @@ -1,248 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.*; -import org.junit.Ignore; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class AccessArraysTest extends MinimalSourceTestSuiteBase { - - @Ignore - public void test() { - - // FIXME [ms] see InstructionConverter.convertUnaryOpInstruction(...) - // TODO split into multiple test cases - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: AccessArrays", - "$r1 = newarray (int[])[3]", - "$r1[0] = 1", - "$r1[1] = 2", - "$r1[2] = 3", - "$i0 = 0", - "$r2 = $r1", - "$i1 = 0", - "label1:", - "$i2 = lengthof $r2", - "$z0 = $i1 < $i2", - "if $z0 == 0 goto label2", - "$r3 = $r2[$i1]", - "$i0 = $r3", - "$i3 = $i1", - "$i4 = $i1 + 1", - "$i1 = $i4", - "goto label1", - "label2:", - "return")); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: AccessArrays", - "$r1 = newarray (byte[])[3]", - "$r1[0] = 4", - "$r1[1] = 5", - "$r1[2] = 6", - "$i0 = 0", - "$r2 = $r1", - "$i1 = 0", - "label1:", - "$i2 = lengthof $r2", - "$z0 = $i1 < $i2", - "if $z0 == 0 goto label2", - "$r3 = $r2[$i1]", - "$i0 = $r3", - "$i3 = $i1", - "$i4 = $i1 + 1", - "$i1 = $i4", - "goto label1", - "label2:", - "return")); - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: AccessArrays", - "$r1 = newarray (short[])[3]", - "$r1[0] = 10", - "$r1[1] = 20", - "$r1[2] = 30", - "$i0 = 0", - "$r2 = $r1", - "$i1 = 0", - "label1:", - "$i2 = lengthof $r2", - "$z0 = $i1 < $i2", - "if $z0 == 0 goto label2", - "$r3 = $r2[$i1]", - "$i0 = $r3", - "$i3 = $i1", - "$i4 = $i1 + 1", - "$i1 = $i4", - "goto label1", - "label2:", - "return")); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: AccessArrays", - "$r1 = newarray (long[])[3]", - "$r1[0] = 547087L", - "$r1[1] = 564645L", - "$r1[2] = 654786L", - "$i0 = 0", - "$r2 = $r1", - "$i1 = 0", - "label1:", - "$i2 = lengthof $r2", - "$z0 = $i1 < $i2", - "if $z0 == 0 goto label2", - "$r3 = $r2[$i1]", - "$i0 = $r3", - "$i3 = $i1", - "$i4 = $i1 + 1", - "$i1 = $i4", - "goto label1", - "label2:", - "return")); - - method = loadMethod(getMethodSignature("floatArrays")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: AccessArrays", - "$r1 = newarray (float[])[4]", - "$r1[0] = 3.14F", - "$r1[1] = 5.46F", - "$r1[2] = 2.987F", - "$r1[3] = 4.87F", - "$d0 = 0.0", - "$r2 = $r1", - "$i0 = 0", - "label1:", - "$i1 = lengthof $r2", - "$z0 = $i0 < $i1", - "if $z0 == 0 goto label2", - "$r3 = $r2[$i0]", - "$d0 = $r3", - "$i2 = $i0", - "$i3 = $i0 + 1", - "$i0 = $i3", - "goto label1", - "label2:", - "return")); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: AccessArrays", - "$r1 = newarray (double[])[2]", - "$r1[0] = 6.765414", - "$r1[1] = 9.676565646", - "$d0 = 0.0", - "$r2 = $r1", - "$i0 = 0", - "label1:", - "$i1 = lengthof $r2", - "$z0 = $i0 < $i1", - "if $z0 == 0 goto label2", - "$r3 = $r2[$i0]", - "$d0 = $r3", - "$i2 = $i0", - "$i3 = $i0 + 1", - "$i0 = $i3", - "goto label1", - "label2:", - "return")); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: AccessArrays", - "$r1 = newarray (boolean[])[2]", - "$r1[0] = 1", - "$r1[1] = 0", - "$l2 = null", // TODO:[ms] CHECK! should this be null? --> "boolean val;" - "$r3 = $r1", - "$i0 = 0", - "label1:", - "$i1 = lengthof $r3", - "$z0 = $i0 < $i1", - "if $z0 == 0 goto label2", - "$r4 = $r3[$i0]", - "$r2 = $r4", - "$i2 = $i0", - "$i3 = $i0 + 1", - "$i0 = $i3", - "goto label1", - "label2:", - "return")); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: AccessArrays", - "$r1 = newarray (char[])[3]", - "$r1[0] = 65", - "$r1[1] = 98", - "$r1[2] = 38", - "$i0 = 0", - "$r2 = $r1", - "$i1 = 0", - "label1:", - "$i2 = lengthof $r2", - "$z0 = $i1 < $i2", - "if $z0 == 0 goto label2", - "$r3 = $r2[$i1]", - "$i0 = $r3", - "$i3 = $i1", - "$i4 = $i1 + 1", - "$i1 = $i4", - "goto label1", - "label2:", - "return")); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: AccessArrays", - "$r1 = newarray (java.lang.String[])[2]", - "$r1[0] = \"Hello World\"", - "$r1[1] = \"Greetings\"", - "$r2 = null", - "$r3 = $r1", - "$i0 = 0", - "label1:", - "$i1 = lengthof $r3", - "$z0 = $i0 < $i1", - "if $z0 == 0 goto label2", - "$r4 = $r3[$i0]", - "$r2 = $r4", - "$i2 = $i0", - "$i3 = $i0 + 1", - "$i0 = $i3", - "goto label1", - "label2:", - "return")); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AnnotationLibraryTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AnnotationLibraryTest.java deleted file mode 100644 index 739e1d4b8a2..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AnnotationLibraryTest.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import org.junit.Ignore; - -public class AnnotationLibraryTest extends MinimalSourceTestSuiteBase { - - @Ignore - public void testAnnotation() { - // TODO: [ms] annotations are not implemented yet - System.out.println(getDeclaredClassSignature()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java deleted file mode 100644 index a52cf92bd3d..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AnonymousClassInsideMethodTest.java +++ /dev/null @@ -1,61 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class AnonymousClassInsideMethodTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "anonymousClassInsideMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *
-   * public void anonymousClassInsideMethod() {
-   *
-   * MathOperation myMathOperation = new MathOperation() {
-   * int i = 0;
-   *
-   * @Override
-   * public void addition() {
-   * i++;
-   * }
-   * };
-   *
-   * myMathOperation.addition();
-   *
-   * }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: AnonymousClassInsideMethod", - "$r1 = new AnonymousClassInsideMethod$1", - "specialinvoke $r1.()>()", - "interfaceinvoke $r1.()", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AssertStatementTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AssertStatementTest.java deleted file mode 100644 index f223cf415c0..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AssertStatementTest.java +++ /dev/null @@ -1,137 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class AssertStatementTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "assertStatement", "void", Collections.emptyList()); - } - - public MethodSignature getMethodSignatureExtend() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "assertStatementExtend", "void", Collections.emptyList()); - } - - public MethodSignature getMethodSignatureExtend2() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "assertStatementExtend2", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void assertStatement() {
-   *         assert "" != null;
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: AssertStatement", - "$z0 = \"\" != null", - "$z1 = ", - "if $z1 == 1 goto label1", - "if $z0 == 1 goto label1", - "$r1 = new java.lang.AssertionError", - "specialinvoke $r1.()>()", - "throw $r1", - "label1:", - "nop", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void assertStatementExtend() {
-   *         assert "" != null;
-   *         int x = 4;
-   *     }
-   * 
- */ - public List expectedBodyStmtsExtend() { - return Stream.of( - "r0 := @this: AssertStatement", - "$z0 = \"\" != null", - "$z1 = ", - "if $z1 == 1 goto label1", - "if $z0 == 1 goto label1", - "$r1 = new java.lang.AssertionError", - "specialinvoke $r1.()>()", - "throw $r1", - "label1:", - "nop", - "$i0 = 4", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void assertStatementExtend2() {
-   *         assert "first" != null;
-   *         int x = 1;
-   *         assert "second" != null;
-   *         x = 2;
-   *     }
-   * 
- */ - public List expectedBodyStmtsExtend2() { - return Stream.of( - "r0 := @this: AssertStatement", - "$z0 = \"first\" != null", - "$z1 = ", - "if $z1 == 1 goto label1", - "if $z0 == 1 goto label1", - "$r1 = new java.lang.AssertionError", - "specialinvoke $r1.()>()", - "throw $r1", - "label1:", - "nop", - "$i0 = 1", - "$z2 = \"second\" != null", - "$z3 = ", - "if $z3 == 1 goto label2", - "if $z2 == 1 goto label2", - "$r2 = new java.lang.AssertionError", - "specialinvoke $r2.()>()", - "throw $r2", - "label2:", - "nop", - "$i0 = 2", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getMethodSignatureExtend()); - assertJimpleStmts(method, expectedBodyStmtsExtend()); - method = loadMethod(getMethodSignatureExtend2()); - assertJimpleStmts(method, expectedBodyStmtsExtend2()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AutoboxingTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AutoboxingTest.java deleted file mode 100644 index 90e3b2f28da..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AutoboxingTest.java +++ /dev/null @@ -1,52 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class AutoboxingTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "autoboxing", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void autoboxing(){
-   * int i = 5;
-   * i++;
-   * Integer j = i;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: Autoboxing", - "$i0 = 5", - "$i1 = $i0", - "$i2 = $i0 + 1", - "$i0 = $i2", - "$i3 = $i0", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AutomaticWideningTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AutomaticWideningTest.java deleted file mode 100644 index efc49584e5c..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/AutomaticWideningTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class AutomaticWideningTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "automaticWidening", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void automaticWidening(){
-   * int x = 10;
-   * long y = x;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: AutomaticWidening", "$i0 = 10", "$i1 = $i0", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java deleted file mode 100644 index 8c2e30f8b51..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/BitwiseOperationsIntTest.java +++ /dev/null @@ -1,173 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class BitwiseOperationsIntTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("bitwiseOpAnd")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpAnd()); - - method = loadMethod(getMethodSignature("bitwiseOpOr")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpOr()); - - method = loadMethod(getMethodSignature("bitwiseOpXor")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpXor()); - - method = loadMethod(getMethodSignature("bitwiseOpComplement")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpComplement()); - - method = loadMethod(getMethodSignature("bitwiseOpSignedRightShift")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpSignedRightShift()); - - method = loadMethod(getMethodSignature("bitwiseOpLeftShift")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpLeftShift()); - - method = loadMethod(getMethodSignature("bitwiseOpUnsignedRightShift")); - assertJimpleStmts(method, expectedBodyStmtsBitwiseOpUnsignedRightShift()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void bitwiseOpAnd(){
-   *         int a = 70;
-   *         int b = 20;
-   *         int c = a&b;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpAnd() { - return Stream.of( - "r0 := @this: BitwiseOperationsInt", - "$i0 = 70", - "$i1 = 20", - "$i2 = $i0 & $i1", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpOr(){
-   *         int a = 70;
-   *         int b = 20;
-   *         int c = a|b;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpOr() { - return Stream.of( - "r0 := @this: BitwiseOperationsInt", - "$i0 = 70", - "$i1 = 20", - "$i2 = $i0 | $i1", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpXor(){
-   *         int a = 70;
-   *         int b = 20;
-   *         int c = a^b;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpXor() { - return Stream.of( - "r0 := @this: BitwiseOperationsInt", - "$i0 = 70", - "$i1 = 20", - "$i2 = $i0 ^ $i1", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpComplement(){
-   *         int a = 70;
-   *         int b = ~a;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpComplement() { - return Stream.of("r0 := @this: BitwiseOperationsInt", "$i0 = 70", "$i1 = neg $i0", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpSignedRightShift(){
-   *         int a = 70;
-   *         int b = a >> 5;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpSignedRightShift() { - return Stream.of("r0 := @this: BitwiseOperationsInt", "$i0 = 70", "$i1 = $i0 >> 5", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpLeftShift(){
-   *         int a = 70;
-   *         int b = a << 5;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpLeftShift() { - return Stream.of("r0 := @this: BitwiseOperationsInt", "$i0 = 70", "$i1 = $i0 << 5", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void bitwiseOpUnsignedRightShift(){
-   *         int a = 70;
-   *         int b = a >>> 5;
-   *     }
-   * 
- */ - public List expectedBodyStmtsBitwiseOpUnsignedRightShift() { - return Stream.of("r0 := @this: BitwiseOperationsInt", "$i0 = 70", "$i1 = $i0 >>> 5", "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/BooleanOperatorsTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/BooleanOperatorsTest.java deleted file mode 100644 index 5c6cdc22f48..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/BooleanOperatorsTest.java +++ /dev/null @@ -1,549 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class BooleanOperatorsTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("relationalOpEqual")); - assertJimpleStmts(method, expectedBodyStmtsRelationalOpEqual()); - - method = loadMethod(getMethodSignature("relationalOpNotEqual")); - assertJimpleStmts(method, expectedBodyStmtsRelationalOpNotEqual()); - - method = loadMethod(getMethodSignature("complementOp")); - assertJimpleStmts(method, expectedBodyStmtsComplementOp()); - - method = loadMethod(getMethodSignature("logicalOpAnd")); - assertJimpleStmts(method, expectedBodyStmtsLogicalOpAnd()); - - method = loadMethod(getMethodSignature("logicalOpOr")); - - assertJimpleStmts(method, expectedBodyStmtsLogicalOpOr()); - - method = loadMethod(getMethodSignature("logicalOpXor")); - assertJimpleStmts(method, expectedBodyStmtsLogicalOpXor()); - - method = loadMethod(getMethodSignature("ConditionalOpAnd")); - assertJimpleStmts(method, expectedBodyStmtsConditionalOpAnd()); - method = loadMethod(getMethodSignature("conditionalOpOr")); - assertJimpleStmts(method, expectedBodyStmtsConditionalOpOr()); - method = loadMethod(getMethodSignature("conditionalOp")); - assertJimpleStmts(method, expectedBodyStmtsConditionalOp()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void relationalOpEqual(){
-   *         int i =  0;
-   *         while (i<=10){
-   *             i++;
-   *             if (i==5){
-   *                 break;
-   *             }
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsRelationalOpEqual() { - return Stream.of( - "r0 := @this: BooleanOperators", - "$i0 = 0", - "label1:", - "$z0 = $i0 <= 10", - "if $z0 == 0 goto label3", - "$i1 = $i0", - "$i2 = $i0 + 1", - "$i0 = $i2", - "$z1 = $i0 == 5", - "if $z1 == 0 goto label2", - "goto label3", - "label2:", - "goto label1", - "label3:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void relationalOpNotEqual(){
-   *         int i =  0;
-   *         String str = "";
-   *         while (i<10){
-   *             i++;
-   *             if (i!=5){
-   *                 str = "i != 5";
-   *             }
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsRelationalOpNotEqual() { - return Stream.of( - "r0 := @this: BooleanOperators", - "$i0 = 0", - "$r1 = \"\"", - "label1:", - "$z0 = $i0 < 10", - "if $z0 == 0 goto label3", - "$i1 = $i0", - "$i2 = $i0 + 1", - "$i0 = $i2", - "$z1 = $i0 != 5", - "if $z1 == 0 goto label2", - "$r1 = \"i != 5\"", - "goto label2", - "label2:", - "goto label1", - "label3:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void complementOp(){
-   *         boolean b = true;
-   *         if(b){
-   *             b = !b;
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsComplementOp() { - return Stream.of( - "r0 := @this: BooleanOperators", - "$z0 = 1", - "if $z0 == 0 goto label1", - "$z1 = neg $z0", - "$z0 = $z1", - "goto label1", - "label1:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void logicalOpAnd(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a & b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c & d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a & c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d & b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsLogicalOpAnd() { - return Stream.of( - "r0 := @this: BooleanOperators", - "$z0 = 1", - "$z1 = 1", - "$z2 = 0", - "$z3 = 0", - "$r1 = \"\"", - "$i0 = (int) $z0", - "$i1 = (int) $z1", - "$i2 = $i0 & $i1", - "if $i2 == 0 goto label1", - "$r1 = \"A\"", - "goto label1", - "label1:", - "$i3 = (int) $z2", - "$i4 = (int) $z3", - "$i5 = $i3 & $i4", - "if $i5 == 0 goto label2", - "$r1 = \"B\"", - "goto label2", - "label2:", - "$i6 = (int) $z0", - "$i7 = (int) $z2", - "$i8 = $i6 & $i7", - "if $i8 == 0 goto label3", - "$r1 = \"C\"", - "goto label3", - "label3:", - "$i9 = (int) $z3", - "$i10 = (int) $z1", - "$i11 = $i9 & $i10", - "if $i11 == 0 goto label4", - "$r1 = \"D\"", - "goto label4", - "label4:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void logicalOpOr(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a | b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c | d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a | c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d | b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsLogicalOpOr() { - return Stream.of( - "r0 := @this: BooleanOperators", - "$z0 = 1", - "$z1 = 1", - "$z2 = 0", - "$z3 = 0", - "$r1 = \"\"", - "$i0 = (int) $z0", - "$i1 = (int) $z1", - "$i2 = $i0 | $i1", - "if $i2 == 0 goto label1", - "$r1 = \"A\"", - "goto label1", - "label1:", - "$i3 = (int) $z2", - "$i4 = (int) $z3", - "$i5 = $i3 | $i4", - "if $i5 == 0 goto label2", - "$r1 = \"B\"", - "goto label2", - "label2:", - "$i6 = (int) $z0", - "$i7 = (int) $z2", - "$i8 = $i6 | $i7", - "if $i8 == 0 goto label3", - "$r1 = \"C\"", - "goto label3", - "label3:", - "$i9 = (int) $z3", - "$i10 = (int) $z1", - "$i11 = $i9 | $i10", - "if $i11 == 0 goto label4", - "$r1 = \"D\"", - "goto label4", - "label4:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void logicalOpXor(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a ^ b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c ^ d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a ^ c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d ^ b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsLogicalOpXor() { - return Stream.of( - "r0 := @this: BooleanOperators", - "$z0 = 1", - "$z1 = 1", - "$z2 = 0", - "$z3 = 0", - "$r1 = \"\"", - "$i0 = (int) $z0", - "$i1 = (int) $z1", - "$i2 = $i0 ^ $i1", - "if $i2 == 0 goto label1", - "$r1 = \"A\"", - "goto label1", - "label1:", - "$i3 = (int) $z2", - "$i4 = (int) $z3", - "$i5 = $i3 ^ $i4", - "if $i5 == 0 goto label2", - "$r1 = \"B\"", - "goto label2", - "label2:", - "$i6 = (int) $z0", - "$i7 = (int) $z2", - "$i8 = $i6 ^ $i7", - "if $i8 == 0 goto label3", - "$r1 = \"C\"", - "goto label3", - "label3:", - "$i9 = (int) $z3", - "$i10 = (int) $z1", - "$i11 = $i9 ^ $i10", - "if $i11 == 0 goto label4", - "$r1 = \"D\"", - "goto label4", - "label4:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void ConditionalOpAnd(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a && b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c && d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a && c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d && b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsConditionalOpAnd() { - return Stream.of( - "r0 := @this: BooleanOperators", - "$z0 = 1", - "$z1 = 1", - "$z2 = 0", - "$z3 = 0", - "$r1 = \"\"", - "if $z0 == 0 goto label01", - "$z4 = $z1", - "goto label02", - "label01:", - "$z4 = 0", - "label02:", - "if $z4 == 0 goto label03", - "$r1 = \"A\"", - "goto label03", - "label03:", - "if $z2 == 0 goto label04", - "$z5 = $z3", - "goto label05", - "label04:", - "$z5 = 0", - "label05:", - "if $z5 == 0 goto label06", - "$r1 = \"B\"", - "goto label06", - "label06:", - "if $z0 == 0 goto label07", - "$z6 = $z2", - "goto label08", - "label07:", - "$z6 = 0", - "label08:", - "if $z6 == 0 goto label09", - "$r1 = \"C\"", - "goto label09", - "label09:", - "if $z3 == 0 goto label10", - "$z7 = $z1", - "goto label11", - "label10:", - "$z7 = 0", - "label11:", - "if $z7 == 0 goto label12", - "$r1 = \"D\"", - "goto label12", - "label12:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void conditionalOpOr(){
-   *         boolean a = true;
-   *         boolean b = true;
-   *         boolean c = false;
-   *         boolean d = false;
-   *         String str = "";
-   *
-   *         if(a || b){
-   *             str = "A";
-   *         }
-   *
-   *         if (c || d){
-   *             str = "B";
-   *         }
-   *
-   *         if (a || c){
-   *             str = "C";
-   *         }
-   *
-   *         if (d || b){
-   *             str = "D";
-   *         }
-   *     }
-   * 
- */ - public List expectedBodyStmtsConditionalOpOr() { - return Stream.of( - "r0 := @this: BooleanOperators", - "$z0 = 1", - "$z1 = 1", - "$z2 = 0", - "$z3 = 0", - "$r1 = \"\"", - "if $z0 == 0 goto label01", - "$z4 = 1", - "goto label02", - "label01:", - "$z4 = $z1", - "label02:", - "if $z4 == 0 goto label03", - "$r1 = \"A\"", - "goto label03", - "label03:", - "if $z2 == 0 goto label04", - "$z5 = 1", - "goto label05", - "label04:", - "$z5 = $z3", - "label05:", - "if $z5 == 0 goto label06", - "$r1 = \"B\"", - "goto label06", - "label06:", - "if $z0 == 0 goto label07", - "$z6 = 1", - "goto label08", - "label07:", - "$z6 = $z2", - "label08:", - "if $z6 == 0 goto label09", - "$r1 = \"C\"", - "goto label09", - "label09:", - "if $z3 == 0 goto label10", - "$z7 = 1", - "goto label11", - "label10:", - "$z7 = $z1", - "label11:", - "if $z7 == 0 goto label12", - "$r1 = \"D\"", - "goto label12", - "label12:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void conditionalOp(){
-   *         int i = 5;
-   *         String str = "";
-   *         str = i <10 ? "i less than 10" : "i greater than 10";
-   *     }
-   * 
- */ - public List expectedBodyStmtsConditionalOp() { - return Stream.of( - "r0 := @this: BooleanOperators", - "$i0 = 5", - "$r1 = \"\"", - "$z0 = $i0 < 10", - "if $z0 == 0 goto label1", - "$r2 = \"i less than 10\"", - "goto label2", - "label1:", - "$r2 = \"i greater than 10\"", - "label2:", - "$r1 = $r2", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/BreakInWhileLoopTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/BreakInWhileLoopTest.java deleted file mode 100644 index e4aebb7e68b..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/BreakInWhileLoopTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class BreakInWhileLoopTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "breakInWhileLoop", "void", Collections.emptyList()); - } - - /**
-   * public void breakInWhileLoop() {
-   * int num = 10;
-   * int i = 5;
-   * while (num > 0) {
-   * num--;
-   * if (num == i) {
-   * break;
-   * }
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: BreakInWhileLoop",
-            "$i0 = 10",
-            "$i1 = 5",
-            "label1:",
-            "$z0 = $i0 > 0",
-            "if $z0 == 0 goto label3",
-            "$i2 = $i0",
-            "$i3 = $i0 - 1",
-            "$i0 = $i3",
-            "$z1 = $i0 == $i1",
-            "if $z1 == 0 goto label2",
-            "goto label3",
-            "label2:",
-            "goto label1",
-            "label3:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/CastingInNumTypesTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/CastingInNumTypesTest.java
deleted file mode 100644
index 0e439d63439..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/CastingInNumTypesTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-
-public class CastingInNumTypesTest extends MinimalSourceTestSuiteBase {
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "displayNum", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   *     public void displayNum(){
-   * byte num1 =1;
-   * short num2=2;
-   * int num3= 3;
-   * long num4=4551598461l;
-   * float num5= 5.4f;
-   * double num6= 4551595484654646464654684664646846713431.265;
-   *
-   * System.out.println(num1);
-   * System.out.println((byte)num3);
-   * System.out.println((double)num2);
-   * System.out.println((short)num4);
-   * System.out.println((double)num5);
-   * System.out.println((int)num4);
-   * System.out.println((float) num6);
-   * System.out.println(num6);
-   *
-   * double d = 4786777867867868654674678346734763478673478654478967.77;
-   * System.out.println((float)d);
-   * System.out.println((long)d);
-   * System.out.println((int)d);
-   * System.out.println((short)d);
-   * System.out.println((byte)d);
-   *
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: CastingInNumTypes", - "$i0 = 1", - "$i1 = 2", - "$i2 = 3", - "$l0 = 4551598461L", - "$f0 = 5.4F", - "$d0 = 4.5515954846546467E39", - "$r1 = ", - "virtualinvoke $r1.($i0)", - "$r2 = ", - "$b0 = (byte) $i2", - "virtualinvoke $r2.($b0)", - "$r3 = ", - "$d1 = (double) $i1", - "virtualinvoke $r3.($d1)", - "$r4 = ", - "$s0 = (short) $l0", - "virtualinvoke $r4.($s0)", - "$r5 = ", - "$d2 = (double) $f0", - "virtualinvoke $r5.($d2)", - "$r6 = ", - "$i3 = (int) $l0", - "virtualinvoke $r6.($i3)", - "$r7 = ", - "$f1 = (float) $d0", - "virtualinvoke $r7.($f1)", - "$r8 = ", - "virtualinvoke $r8.($d0)", - "$d3 = 4.7867778678678685E51", - "$r9 = ", - "$f2 = (float) $d3", - "virtualinvoke $r9.($f2)", - "$r10 = ", - "$l1 = (long) $d3", - "virtualinvoke $r10.($l1)", - "$r11 = ", - "$i4 = (int) $d3", - "virtualinvoke $r11.($i4)", - "$r12 = ", - "$s1 = (short) $d3", - "virtualinvoke $r12.($s1)", - "$r13 = ", - "$b1 = (byte) $d3", - "virtualinvoke $r13.($b1)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/CharLiteralsTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/CharLiteralsTest.java deleted file mode 100644 index 27ee5a52f89..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/CharLiteralsTest.java +++ /dev/null @@ -1,144 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class CharLiteralsTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("charCharacter")); - assertJimpleStmts(method, expectedBodyStmtsCharCharacter()); - - method = loadMethod(getMethodSignature("charSymbol")); - assertJimpleStmts(method, expectedBodyStmtsCharSymbol()); - - method = loadMethod(getMethodSignature("charBackslashT")); - assertJimpleStmts(method, expectedBodyStmtsCharBackslashT()); - - method = loadMethod(getMethodSignature("charBackslash")); - assertJimpleStmts(method, expectedBodyStmtsCharBackslash()); - - method = loadMethod(getMethodSignature("charSingleQuote")); - assertJimpleStmts(method, expectedBodyStmtsCharSingleQuote()); - - method = loadMethod(getMethodSignature("charUnicode")); - assertJimpleStmts(method, expectedBodyStmtsCharUnicode()); - - method = loadMethod(getMethodSignature("specialChar")); - assertJimpleStmts(method, expectedBodyStmtsSpecialChar()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void charCharacter(){
-   *         char val = 'a';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharCharacter() { - return Stream.of("r0 := @this: CharLiterals", "$i0 = 97", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charSymbol(){
-   *         char val = '%';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharSymbol() { - return Stream.of("r0 := @this: CharLiterals", "$i0 = 37", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void charBackslashT(){ char val = '\t'; }
-   * 
- */ - public List expectedBodyStmtsCharBackslashT() { - return Stream.of("r0 := @this: CharLiterals", "$i0 = 9", "return").collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charBackslash(){
-   *         char val = '\\';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharBackslash() { - return Stream.of("r0 := @this: CharLiterals", "$i0 = 92", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charSingleQuote(){
-   *         char val = '\'';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharSingleQuote() { - return Stream.of("r0 := @this: CharLiterals", "$i0 = 39", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charUnicode(){
-   *         char val = '\u03a9';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharUnicode() { - return Stream.of("r0 := @this: CharLiterals", "$i0 = 937", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void specialChar(){
-   *         char val = '™';
-   *     }
-   * 
- */ - public List expectedBodyStmtsSpecialChar() { - return Stream.of("r0 := @this: CharLiterals", "$i0 = 8482", "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java deleted file mode 100644 index d2b5c52330c..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ContinueInWhileLoopTest.java +++ /dev/null @@ -1,67 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class ContinueInWhileLoopTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "continueInWhileLoop", "void", Collections.emptyList()); - } - - /**
-   * public void continueInWhileLoop(){
-   * int num = 0;
-   * while (num < 10) {
-   * if (num == 5) {
-   * num++;
-   * continue;
-   * }
-   * num++;
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: ContinueInWhileLoop",
-            "$i0 = 0",
-            "label1:",
-            "$z0 = $i0 < 10",
-            "if $z0 == 0 goto label4",
-            "$z1 = $i0 == 5",
-            "if $z1 == 0 goto label2",
-            "$i1 = $i0",
-            "$i2 = $i0 + 1",
-            "$i0 = $i2",
-            "goto label3",
-            "label2:",
-            "$i3 = $i0",
-            "$i4 = $i0 + 1",
-            "$i0 = $i4",
-            "label3:",
-            "goto label1",
-            "label4:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/CreateNewInstanceTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/CreateNewInstanceTest.java
deleted file mode 100644
index 6438952e966..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/CreateNewInstanceTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/** @author: Hasitha Rajapakse */
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-@Category(Java8Test.class)
-public class CreateNewInstanceTest extends MinimalSourceTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "createNewInstance", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   *     public void createNewInstance(){
-   * Person person = new Person(20);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: CreateNewInstance", - "$r1 = new Person", - "specialinvoke $r1.(int)>(20)", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareConstructorTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareConstructorTest.java deleted file mode 100644 index c60469c90ec..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareConstructorTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class DeclareConstructorTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignatureInitOneParam() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Collections.singletonList("int")); - } - - public MethodSignature getMethodSignatureInitTwoParam() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Arrays.asList("int", "int")); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignatureInitOneParam()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getMethodSignatureInitTwoParam()); - assertJimpleStmts(method, expectedBodyStmts1()); - } - - /** - * - * - *
-   * public DeclareConstructor(int var1){
-   *         this.var1=var1;
-   *         this.var2=0;
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: DeclareConstructor", - "$i0 := @parameter0: int", - "specialinvoke r0.()>()", - "r0. = $i0", - "r0. = 0", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public DeclareConstructor(int var1, int var2){
-   *         this.var1=var1;
-   *         this.var2=var2;
-   *     }
-   * 
- */ - public List expectedBodyStmts1() { - return Stream.of( - "r0 := @this: DeclareConstructor", - "$i0 := @parameter0: int", - "$i1 := @parameter1: int", - "specialinvoke r0.()>()", - "r0. = $i0", - "r0. = $i1", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumTest.java deleted file mode 100644 index 91cbc94c1a5..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class DeclareEnumTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - SootClass sc = - loadClass( - identifierFactory.getClassType( - getDeclaredClassSignature().getFullyQualifiedName() + "$Type")); - assertTrue(sc.isEnum()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareEnum", "void", Collections.emptyList()); - } - - /**
-   * public void declareEnum(){
-   * for(Type type:Type.values()){
-   * System.out.println(type);
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return super.expectedBodyStmts(
-        "r0 := @this: DeclareEnum",
-        "$r1 = staticinvoke ()",
-        "$i0 = 0",
-        "label1:",
-        "$i1 = lengthof $r1",
-        "$z0 = $i0 < $i1",
-        "if $z0 == 0 goto label2",
-        "$r2 = $r1[$i0]",
-        "$r3 = ",
-        "virtualinvoke $r3.($r2)",
-        "$i2 = $i0",
-        "$i3 = $i0 + 1",
-        "$i0 = $i3",
-        "goto label1",
-        "label2:",
-        "return");
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java
deleted file mode 100644
index 7a2c6bfb1a7..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareEnumWithConstructorTest.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertTrue;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootClass;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class DeclareEnumWithConstructorTest extends MinimalSourceTestSuiteBase {
-
-  public MethodSignature getInitMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "", "void", Collections.emptyList());
-  }
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "getValue", "int", Collections.emptyList());
-  }
-
-  public MethodSignature getMainMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(),
-        "main",
-        "void",
-        Collections.singletonList("java.lang.String[]"));
-  }
-
-  public MethodSignature getEnumConstructorSignature() {
-    return identifierFactory.getMethodSignature(
-        identifierFactory.getClassType("DeclareEnumWithConstructor$Number"),
-        "",
-        "void",
-        Collections.emptyList());
-  }
-
-  public MethodSignature getEnumGetValueSignature() {
-    return identifierFactory.getMethodSignature(
-        identifierFactory.getClassType("DeclareEnumWithConstructor$Number"),
-        "getValue",
-        "int",
-        Collections.emptyList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod sootMethod = loadMethod(getInitMethodSignature());
-    assertJimpleStmts(sootMethod, expectedBodyStmts());
-
-    sootMethod = loadMethod(getMainMethodSignature());
-    assertJimpleStmts(sootMethod, expectedMainBodyStmts());
-
-    sootMethod = loadMethod(getEnumConstructorSignature());
-    assertJimpleStmts(sootMethod, expectedEnumConstructorStmts());
-
-    sootMethod = loadMethod(getEnumGetValueSignature());
-    assertJimpleStmts(sootMethod, expectedGetValueStmts());
-
-    SootClass sootClass =
-        loadClass(identifierFactory.getClassType("DeclareEnumWithConstructor$Number"));
-    System.out.println(sootClass.getModifiers());
-    assertTrue(sootClass.isEnum());
-  }
-
-  /**
-   *
-   *
-   * 
-   *
-   * private int getValue() {
-   * return value;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: DeclareEnumWithConstructor", - "specialinvoke r0.()>()", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public static void main(String[] args) {
-   *         Number number = Number.ONE;
-   *         System.out.println(number.getValue());
-   *     }
-   * 
- */ - public List expectedMainBodyStmts() { - return Stream.of( - "$r0 := @parameter0: java.lang.String[]", - "$r1 = ", - "$r2 = $r1", - "$r3 = ", - "$i0 = specialinvoke $r2.()", - "virtualinvoke $r3.($i0)", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public enum Number{
-   *         ZERO(0),
-   *         ONE(1),
-   *         TWO(2),
-   *         THREE(3);
-   *         private int value;
-   *         Number(int value){
-   *             this.value=value;
-   *         }
-   *  }
-   * 
- */ - public List expectedEnumConstructorStmts() { - return Stream.of( - "$r0 = new DeclareEnumWithConstructor$Number", - "specialinvoke $r0.(java.lang.String,int,int)>(\"ZERO\", 0, 0)", - " = $r0", - "$r1 = new DeclareEnumWithConstructor$Number", - "specialinvoke $r1.(java.lang.String,int,int)>(\"ONE\", 1, 1)", - " = $r1", - "$r2 = new DeclareEnumWithConstructor$Number", - "specialinvoke $r2.(java.lang.String,int,int)>(\"TWO\", 2, 2)", - " = $r2", - "$r3 = new DeclareEnumWithConstructor$Number", - "specialinvoke $r3.(java.lang.String,int,int)>(\"THREE\", 3, 3)", - " = $r3", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public enum Number{
-   *         ZERO(0),
-   *         ONE(1),
-   *         TWO(2),
-   *         THREE(3);
-   *         private int value;
-   *
-   *     private int getValue() {
-   *             return value;
-   *         }
-   *         }
-   * 
- */ - public List expectedGetValueStmts() { - return Stream.of( - "r0 := @this: DeclareEnumWithConstructor$Number", - "$i0 = r0.", - "return $i0") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareFieldTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareFieldTest.java deleted file mode 100644 index 5cd724a983b..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareFieldTest.java +++ /dev/null @@ -1,95 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** @author Kaustubh Kelkar */ -public class DeclareFieldTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "display", "void", Collections.emptyList()); - } - - public MethodSignature getStaticMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticDisplay", "void", Collections.emptyList()); - } - - @org.junit.Test - public void test() { - SootMethod method1 = loadMethod(getMethodSignature()); - assertJimpleStmts(method1, expectedBodyStmts()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getStaticMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts1()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> { - return sootField.getModifiers().contains(Modifier.PRIVATE) - && sootField.getModifiers().contains(Modifier.STATIC) - && sootField.getName().equals("i"); - })); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> { - return sootField.getModifiers().contains(Modifier.PUBLIC) - && sootField.getModifiers().contains(Modifier.FINAL) - && sootField.getName().equals("s"); - })); - } - - /** - * - * - *
-   *     public void display(){
-   *         System.out.println(s);
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: DeclareField", - "$r1 = ", - "$r2 = r0.", - "virtualinvoke $r1.(\"Java\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void staticDisplay(){
-   *         System.out.println(i);
-   *     }
-   * 
- */ - public List expectedBodyStmts1() { - return Stream.of( - "r0 := @this: DeclareField", - "$r1 = ", - "$i0 = ", - "virtualinvoke $r1.($i0)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareFloatTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareFloatTest.java deleted file mode 100644 index a88c7f2370e..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareFloatTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class DeclareFloatTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareFloatMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     void declareFloatMethod(){
-   * System.out.println(f1);
-   * System.out.println(f2);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: DeclareFloat", - "$r1 = ", - "$f0 = r0.", - "virtualinvoke $r1.($f0)", - "$r2 = ", - "$f1 = r0.", - "virtualinvoke $r2.($f1)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareInnerClassTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareInnerClassTest.java deleted file mode 100644 index e455fdca8eb..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareInnerClassTest.java +++ /dev/null @@ -1,80 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareInnerClassTest extends MinimalSourceTestSuiteBase { - - final JavaClassType innerClassType = - JavaIdentifierFactory.getInstance() - .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$InnerClass"); - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodDisplayOuter", "void", Collections.emptyList()); - } - - public MethodSignature getInnerMethodSignature() { - return identifierFactory.getMethodSignature( - innerClassType, "methodDisplayInner", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = loadMethod(getInnerMethodSignature()); - assertJimpleStmts(method, expectedInnerClassBodyStmts()); - } - - /** - * - * - *
-   *     public void methodDisplayOuter(){
-   *         System.out.println("methodDisplayOuter");
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: DeclareInnerClass", - "$r1 = ", - "virtualinvoke $r1.(\"methodDisplayOuter\")", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void methodDisplayInner(){
-   *             System.out.println("methodDisplayInner");
-   *         }
-   * 
- */ - public List expectedInnerClassBodyStmts() { - return Stream.of( - "r0 := @this: DeclareInnerClass$InnerClass", - "$r1 = ", - "virtualinvoke $r1.(\"methodDisplayInner\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareIntTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareIntTest.java deleted file mode 100644 index abc82fc0960..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareIntTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class DeclareIntTest extends MinimalSourceTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareIntMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     void declareIntMethod(){
-   * System.out.println(dec);
-   * System.out.println(hex);
-   * System.out.println(oct);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: DeclareInt", - "$r1 = ", - "$i0 = r0.", - "virtualinvoke $r1.($i0)", - "$r2 = ", - "$i1 = r0.", - "virtualinvoke $r2.($i1)", - "$r3 = ", - "$i2 = r0.", - "virtualinvoke $r3.($i2)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareLongTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareLongTest.java deleted file mode 100644 index 58b58bcf277..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DeclareLongTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class DeclareLongTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareLongMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     void declareLongMethod(){
-   * System.out.println(l1);
-   * System.out.println(l2);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: DeclareLong", - "$r1 = ", - "$l0 = r0.", - "virtualinvoke $r1.($l0)", - "$r2 = ", - "$l1 = r0.", - "virtualinvoke $r2.($l1)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DoWhileLoopTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DoWhileLoopTest.java deleted file mode 100644 index fff16c731ca..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/DoWhileLoopTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class DoWhileLoopTest extends MinimalSourceTestSuiteBase { - // TODO extends MinimalTestSuiteBase - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "doWhileLoop", "void", Collections.emptyList()); - } - - /**
-   * public void doWhileLoop() {
-   * int num = 10;
-   * int i = 0;
-   * do {
-   * i++;
-   * } while (num > i);
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: DoWhileLoop",
-            "$i0 = 10",
-            "$i1 = 0",
-            "label1:",
-            "$i2 = $i1",
-            "$i3 = $i1 + 1",
-            "$i1 = $i3",
-            "$z0 = $i0 > $i1",
-            "if $z0 != 0 goto label1",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/EmptyStatementTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/EmptyStatementTest.java
deleted file mode 100644
index 910b3e5f2d5..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/EmptyStatementTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/** @author: Hasitha Rajapakse */
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-@Category(Java8Test.class)
-public class EmptyStatementTest extends MinimalSourceTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "emptyStatement", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   *     public void emptyStatement(){
-   * int num  = 5;;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: EmptyStatement", "$i0 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java deleted file mode 100644 index a5ba3f67022..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/EscapeSequencesInStringTest.java +++ /dev/null @@ -1,185 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class EscapeSequencesInStringTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("escapeBackslashB")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashB()); - - method = loadMethod(getMethodSignature("escapeBackslashT")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashT()); - - method = loadMethod(getMethodSignature("escapeBackslashN")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashN()); - - method = loadMethod(getMethodSignature("escapeBackslashF")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashF()); - - method = loadMethod(getMethodSignature("escapeBackslashR")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslashR()); - - method = loadMethod(getMethodSignature("escapeDoubleQuotes")); - assertJimpleStmts(method, expectedBodyStmtsEscapeDoubleQuotes()); - - method = loadMethod(getMethodSignature("escapeSingleQuote")); - assertJimpleStmts(method, expectedBodyStmtsEscapeSingleQuote()); - - method = loadMethod(getMethodSignature("escapeBackslash")); - assertJimpleStmts(method, expectedBodyStmtsEscapeBackslash()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void escapeBackslashB(){
-   *         String str = "This escapes backslash b \b";
-   *     }
-   *     
- */ - public List expectedBodyStmtsEscapeBackslashB() { - return Stream.of( - "r0 := @this: EscapeSequencesInString", - "$r1 = \"This escapes backslash b \\u0008\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeBackslashT(){
-   *         String str = "This escapes backslash t \t";
-   *     }
- */ - public List expectedBodyStmtsEscapeBackslashT() { - return Stream.of( - "r0 := @this: EscapeSequencesInString", - "$r1 = \"This escapes backslash t \\t\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeBackslashN(){
-   *         String str = "This escapes backslash n \n";
-   *     }
- */ - public List expectedBodyStmtsEscapeBackslashN() { - return Stream.of( - "r0 := @this: EscapeSequencesInString", - "$r1 = \"This escapes backslash n \\n\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeBackslashF(){
-   *         String str = "This escapes backslash f \f";
-   *     }
-   *     
- */ - public List expectedBodyStmtsEscapeBackslashF() { - return Stream.of( - "r0 := @this: EscapeSequencesInString", - "$r1 = \"This escapes backslash f \\f\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void escapeBackslashR(){
-   *         String str = "This escapes backslash r \r";
-   *     }
-   * 
- */ - public List expectedBodyStmtsEscapeBackslashR() { - return Stream.of( - "r0 := @this: EscapeSequencesInString", - "$r1 = \"This escapes backslash r \\r\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeDoubleQuotes(){
-   *         String str = "This escapes double quotes \"";
-   *     }
-   * 
- */ - public List expectedBodyStmtsEscapeDoubleQuotes() { - return Stream.of( - "r0 := @this: EscapeSequencesInString", - "$r1 = \"This escapes double quotes \\\"\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeSingleQuote(){
-   *         String str = "This escapes single quote \'";
-   *     }
-   * 
- */ - public List expectedBodyStmtsEscapeSingleQuote() { - return Stream.of( - "r0 := @this: EscapeSequencesInString", - "$r1 = \"This escapes single quote \\\'\"", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void escapeBackslash(){
-   *         String str = "This escapes backslash \\";
-   *     }
-   * 
- */ - public List expectedBodyStmtsEscapeBackslash() { - return Stream.of( - "r0 := @this: EscapeSequencesInString", - "$r1 = \"This escapes backslash \\\\\"", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java deleted file mode 100644 index b6437a2a96b..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/EvaluationOrderWithParenthesesTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class EvaluationOrderWithParenthesesTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), - "evaluationOrderWithParentheses", - "void", - Collections.emptyList()); - } - - /** - * - * - *
-   *     public void evaluationOrderWithParentheses(){
-   * int b = ((1 + 2) * 3);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: EvaluationOrderWithParentheses", "$i0 = 1 + 2", "$i1 = $i0 * 3", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/FinalMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/FinalMethodTest.java deleted file mode 100644 index 696695a7994..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/FinalMethodTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class FinalMethodTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - assertTrue(method.isFinal()); - } - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "finalMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     final void finalMethod(){
-   * System.out.println("final method");
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: FinalMethod", - "$r1 = ", - "virtualinvoke $r1.(\"final method\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/FinalVariableTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/FinalVariableTest.java deleted file mode 100644 index bfc5dd5b76a..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/FinalVariableTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class FinalVariableTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "finalVariable", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void finalVariable() {
-   * final int num = 5;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: FinalVariable", "$i0 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ForEachLoopTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ForEachLoopTest.java deleted file mode 100644 index 327b197a5d5..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ForEachLoopTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class ForEachLoopTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "forEachLoop", "void", Collections.emptyList()); - } - - /**
-   * public void forEachLoop(){
-   * int[] numArray = {10,20,30,40,50,60,71,80,90};
-   * int count = 0;
-   * for (int item :numArray) {
-   * count++;
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: ForEachLoop",
-            "$r1 = newarray (int)[9]",
-            "$r1[0] = 10",
-            "$r1[1] = 20",
-            "$r1[2] = 30",
-            "$r1[3] = 40",
-            "$r1[4] = 50",
-            "$r1[5] = 60",
-            "$r1[6] = 71",
-            "$r1[7] = 80",
-            "$r1[8] = 90",
-            "$i0 = 0",
-            "$r2 = $r1",
-            "$i1 = 0",
-            "label1:",
-            "$i2 = lengthof $r2",
-            "$z0 = $i1 < $i2",
-            "if $z0 == 0 goto label2",
-            "$r3 = $r2[$i1]",
-            "$i3 = $i0",
-            "$i4 = $i0 + 1",
-            "$i0 = $i4",
-            "$i5 = $i1",
-            "$i6 = $i1 + 1",
-            "$i1 = $i6",
-            "goto label1",
-            "label2:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ForLoopTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ForLoopTest.java
deleted file mode 100644
index fdaa0edad1c..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ForLoopTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/** @author: Hasitha Rajapakse */
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-@Category(Java8Test.class)
-public class ForLoopTest extends MinimalSourceTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "forLoop", "void", Collections.emptyList());
-  }
-
-  /**  
-   * public void forLoop(){
-   * int j = 10;
-   * int num = 0;
-   * for(int i=0; i*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: ForLoop",
-            "$i0 = 10",
-            "$i1 = 0",
-            "$i2 = 0",
-            "label1:",
-            "$z0 = $i2 < $i0",
-            "if $z0 == 0 goto label2",
-            "$i3 = $i1",
-            "$i4 = $i1 + 1",
-            "$i1 = $i4",
-            "$i5 = $i2",
-            "$i6 = $i2 + 1",
-            "$i2 = $i6",
-            "goto label1",
-            "label2:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/GenTypeParamTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/GenTypeParamTest.java
deleted file mode 100644
index 71f69ea1f63..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/GenTypeParamTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-
-public class GenTypeParamTest extends MinimalSourceTestSuiteBase {
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "geneTypeParamDisplay", "void", Collections.emptyList());
-  }
-
-  /** Jimple code will change when Generics are incorporated */
-
-  /**
-   *
-   *
-   * 
-   *    public void geneTypeParamDisplay(){
-   * List output = new ArrayList< Object >(3);
-   * List input = Arrays.asList(1,2,3);
-   * GenTypeParam genTypeParam= new GenTypeParam();
-   * genTypeParam.copy(output,input);
-   * System.out.println(genTypeParam.largestNum(2,8,3));
-   * }
-   * 
-   */
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: GenTypeParam",
-            "$r1 = new java.util.ArrayList",
-            "specialinvoke $r1.(int)>(3)",
-            "$r2 = newarray (java.lang.Object)[3]",
-            "$r2[0] = 1",
-            "$r2[1] = 2",
-            "$r2[2] = 3",
-            "$r3 = staticinvoke ($r2)",
-            "$r4 = new GenTypeParam",
-            "specialinvoke $r4.()>()",
-            "virtualinvoke $r4.($r1, $r3)",
-            "$r5 = ",
-            "$r6 = virtualinvoke $r4.(2, 8, 3)",
-            "$r7 = (java.lang.Integer) $r6",
-            "virtualinvoke $r5.($r7)",
-            "return")
-        .collect(Collectors.toCollection(ArrayList::new));
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java
deleted file mode 100644
index c94fe1061bf..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnClassTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/** @author: Hasitha Rajapakse * */
-@Category(Java8Test.class)
-public class GenericTypeParamOnClassTest extends MinimalSourceTestSuiteBase {
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "genericTypeParamOnClass", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * public void genericTypeParamOnClass() {
-   * A a = new A();
-   * a.set(5);
-   * int x = a.get();
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: GenericTypeParamOnClass", - "$r1 = new GenericTypeParamOnClass$A", - "specialinvoke $r1.()>()", - "specialinvoke $r1.(5)", - "$r2 = virtualinvoke $r1.()", - "$r3 = (java.lang.Integer) $r2", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java deleted file mode 100644 index 7615cddd963..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/GenericTypeParamOnMethodTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author: Hasitha Rajapakse * */ -@Category(Java8Test.class) -public class GenericTypeParamOnMethodTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "genericTypeParamOnMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void genericTypeParamOnMethod() {
-   * a("Hello World");
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: GenericTypeParamOnMethod", - "virtualinvoke r0.(\"Hello World\")", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/IfElseStatementTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/IfElseStatementTest.java deleted file mode 100644 index 8a2d02499ee..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/IfElseStatementTest.java +++ /dev/null @@ -1,318 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class IfElseStatementTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("ifStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfStatement()); - - method = loadMethod(getMethodSignature("ifElseStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseStatement()); - - method = loadMethod(getMethodSignature("ifElseIfStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseIfStatement()); - - method = loadMethod(getMethodSignature("ifElseCascadingStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingStatement()); - - method = loadMethod(getMethodSignature("ifElseCascadingInElseStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingInElseStatement()); - - method = loadMethod(getMethodSignature("ifElseCascadingElseIfStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingElseIfStatement()); - - method = loadMethod(getMethodSignature("ifElseCascadingElseIfInElseStatement")); - assertJimpleStmts(method, expectedBodyStmtsIfElseCascadingElseIfInElseStatement()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "int", Collections.singletonList("int")); - } - - /** - * - * - *
-   *     public int ifStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfStatement() { - return Stream.of( - "r0 := @this: IfElseStatement", - "$i0 := @parameter0: int", - "$i1 = 0", - "$z0 = $i0 < 42", - "if $z0 == 0 goto label1", - "$i1 = 1", - "goto label1", - "label1:", - "return $i1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *  public int ifElseStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }else{
-   *             val = 2;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseStatement() { - return Stream.of( - "r0 := @this: IfElseStatement", - "$i0 := @parameter0: int", - "$i1 = 0", - "$z0 = $i0 < 42", - "if $z0 == 0 goto label1", - "$i1 = 1", - "goto label2", - "label1:", - "$i1 = 2", - "label2:", - "return $i1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseIfStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }else if( a > 123){
-   *             val = 2;
-   *         }else{
-   *             val = 3;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseIfStatement() { - return Stream.of( - "r0 := @this: IfElseStatement", - "$i0 := @parameter0: int", - "$i1 = 0", - "$z0 = $i0 < 42", - "if $z0 == 0 goto label1", - "$i1 = 1", - "goto label3", - "label1:", - "$z1 = $i0 > 123", - "if $z1 == 0 goto label2", - "$i1 = 2", - "goto label3", - "label2:", - "$i1 = 3", - "label3:", - "return $i1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseCascadingStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             if(a < 42){
-   *                 val = 11;
-   *             }else{
-   *                 val = 12;
-   *             }
-   *         }else{
-   *             val = 3;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseCascadingStatement() { - return Stream.of( - "r0 := @this: IfElseStatement", - "$i0 := @parameter0: int", - "$i1 = 0", - "$z0 = $i0 < 42", - "if $z0 == 0 goto label3", - "$z1 = $i0 < 42", - "if $z1 == 0 goto label1", - "$i1 = 11", - "goto label2", - "label1:", - "$i1 = 12", - "label2:", - "goto label4", - "label3:", - "$i1 = 3", - "label4:", - "return $i1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseCascadingInElseStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }else{
-   *             if(a < 42){
-   *                 val = 21;
-   *             }else{
-   *                 val = 22;
-   *             }
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseCascadingInElseStatement() { - return Stream.of( - "r0 := @this: IfElseStatement", - "$i0 := @parameter0: int", - "$i1 = 0", - "$z0 = $i0 < 42", - "if $z0 == 0 goto label1", - "$i1 = 1", - "goto label3", - "label1:", - "$z1 = $i0 < 42", - "if $z1 == 0 goto label2", - "$i1 = 21", - "goto label3", - "label2:", - "$i1 = 22", - "label3:", - "return $i1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseCascadingElseIfStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             if(a < 42){
-   *                 val = 11;
-   *             }else if(a > 123){
-   *                 val = 12;
-   *             }else{
-   *                 val = 13;
-   *             }
-   *         }else{
-   *             val = 2;
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseCascadingElseIfStatement() { - return Stream.of( - "r0 := @this: IfElseStatement", - "$i0 := @parameter0: int", - "$i1 = 0", - "$z0 = $i0 < 42", - "if $z0 == 0 goto label4", - "$z1 = $i0 < 42", - "if $z1 == 0 goto label1", - "$i1 = 11", - "goto label3", - "label1:", - "$z2 = $i0 > 123", - "if $z2 == 0 goto label2", - "$i1 = 12", - "goto label3", - "label2:", - "$i1 = 13", - "label3:", - "goto label5", - "label4:", - "$i1 = 2", - "label5:", - "return $i1") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public int ifElseCascadingElseIfInElseStatement(int a){
-   *         int val = 0;
-   *         if(a < 42){
-   *             val = 1;
-   *         }else{
-   *             if(a < 42){
-   *                 val = 21;
-   *             }else if(a > 123){
-   *                 val = 22;
-   *             }else{
-   *                 val = 23;
-   *             }
-   *         }
-   *         return val;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIfElseCascadingElseIfInElseStatement() { - return Stream.of( - "r0 := @this: IfElseStatement", - "$i0 := @parameter0: int", - "$i1 = 0", - "$z0 = $i0 < 42", - "if $z0 == 0 goto label1", - "$i1 = 1", - "goto label4", - "label1:", - "$z1 = $i0 < 42", - "if $z1 == 0 goto label2", - "$i1 = 21", - "goto label4", - "label2:", - "$z2 = $i0 > 123", - "if $z2 == 0 goto label3", - "$i1 = 22", - "goto label4", - "label3:", - "$i1 = 23", - "label4:", - "return $i1") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InfiniteLoopTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InfiniteLoopTest.java deleted file mode 100644 index 31ad5ff9ccc..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InfiniteLoopTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Markus Schmidt */ -@Category(Java8Test.class) -// FIXME: [ms] rename test (and in bytecodefrontend too) -public class InfiniteLoopTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stmtLoop", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *   void stmtLoop(){
-   * infloop:
-   * break infloop;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: InfiniteLoop", "goto label1", "label1:", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - Utils.printJimpleForTest(method); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java deleted file mode 100644 index 1a9d8521764..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/Initialize3DimensionalArraysTest.java +++ /dev/null @@ -1,395 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class Initialize3DimensionalArraysTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts(method, expectedBodyStmtsIntArrays()); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts(method, expectedBodyStmtsByteArrays()); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts(method, expectedBodyStmtsShortArrays()); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts(method, expectedBodyStmtsLongArrays()); - - method = loadMethod(getMethodSignature("floatArrays")); - assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts(method, expectedBodyStmtsCharArrays()); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts(method, expectedBodyStmtsStringArrays()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void intArrays(){
-   *         int[][][] intArray3D = {{{1, 2, 3},{5, 6}},{{7, 8, 9},{10,11}}};
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntArrays() { - return Stream.of( - "r0 := @this: Initialize3DimensionalArrays", - "$r1 = newarray (int[][])[2]", - "$r2 = newarray (int[])[2]", - "$r3 = newarray (int)[3]", - "$r3[0] = 1", - "$r3[1] = 2", - "$r3[2] = 3", - "$r2[0] = $r3", - "$r4 = newarray (int)[2]", - "$r4[0] = 5", - "$r4[1] = 6", - "$r2[1] = $r4", - "$r1[0] = $r2", - "$r5 = newarray (int[])[2]", - "$r6 = newarray (int)[3]", - "$r6[0] = 7", - "$r6[1] = 8", - "$r6[2] = 9", - "$r5[0] = $r6", - "$r7 = newarray (int)[2]", - "$r7[0] = 10", - "$r7[1] = 11", - "$r5[1] = $r7", - "$r1[1] = $r5", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void byteArrays(){
-   *         byte[][][] byteArray3D = {{{7, 8, 9},{10,11}},{{1, 2, 3},{5, 6}}};;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsByteArrays() { - return Stream.of( - "r0 := @this: Initialize3DimensionalArrays", - "$r1 = newarray (byte[][])[2]", - "$r2 = newarray (byte[])[2]", - "$r3 = newarray (byte)[3]", - "$r3[0] = 7", - "$r3[1] = 8", - "$r3[2] = 9", - "$r2[0] = $r3", - "$r4 = newarray (byte)[2]", - "$r4[0] = 10", - "$r4[1] = 11", - "$r2[1] = $r4", - "$r1[0] = $r2", - "$r5 = newarray (byte[])[2]", - "$r6 = newarray (byte)[3]", - "$r6[0] = 1", - "$r6[1] = 2", - "$r6[2] = 3", - "$r5[0] = $r6", - "$r7 = newarray (byte)[2]", - "$r7[0] = 5", - "$r7[1] = 6", - "$r5[1] = $r7", - "$r1[1] = $r5", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void shortArrays(){
-   *         short[][][] shortArray3D = {{{10,20},{40,85}},{{56,59},{95,35}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsShortArrays() { - return Stream.of( - "r0 := @this: Initialize3DimensionalArrays", - "$r1 = newarray (short[][])[2]", - "$r2 = newarray (short[])[2]", - "$r3 = newarray (short)[2]", - "$r3[0] = 10", - "$r3[1] = 20", - "$r2[0] = $r3", - "$r4 = newarray (short)[2]", - "$r4[0] = 40", - "$r4[1] = 85", - "$r2[1] = $r4", - "$r1[0] = $r2", - "$r5 = newarray (short[])[2]", - "$r6 = newarray (short)[2]", - "$r6[0] = 56", - "$r6[1] = 59", - "$r5[0] = $r6", - "$r7 = newarray (short)[2]", - "$r7[0] = 95", - "$r7[1] = 35", - "$r5[1] = $r7", - "$r1[1] = $r5", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void longArrays(){
-   *         long[][][] longArray3D = {{{547087L, 654786L},{547287L, 864645L, 6533786L}},{{34565L,234L},{9851L,63543L}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsLongArrays() { - return Stream.of( - "r0 := @this: Initialize3DimensionalArrays", - "$r1 = newarray (long[][])[2]", - "$r2 = newarray (long[])[2]", - "$r3 = newarray (long)[2]", - "$r3[0] = 547087L", - "$r3[1] = 654786L", - "$r2[0] = $r3", - "$r4 = newarray (long)[3]", - "$r4[0] = 547287L", - "$r4[1] = 864645L", - "$r4[2] = 6533786L", - "$r2[1] = $r4", - "$r1[0] = $r2", - "$r5 = newarray (long[])[2]", - "$r6 = newarray (long)[2]", - "$r6[0] = 34565L", - "$r6[1] = 234L", - "$r5[0] = $r6", - "$r7 = newarray (long)[2]", - "$r7[0] = 9851L", - "$r7[1] = 63543L", - "$r5[1] = $r7", - "$r1[1] = $r5", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatArrays(){
-   *         float[][][] floatrray3D = {{{3.14f, 5.46f}, {2.987f, 4.87f}},{{65.15f,854.18f},{16.51f,58.14f}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatArrays() { - return Stream.of( - "r0 := @this: Initialize3DimensionalArrays", - "$r1 = newarray (float[][])[2]", - "$r2 = newarray (float[])[2]", - "$r3 = newarray (float)[2]", - "$r3[0] = 3.14F", - "$r3[1] = 5.46F", - "$r2[0] = $r3", - "$r4 = newarray (float)[2]", - "$r4[0] = 2.987F", - "$r4[1] = 4.87F", - "$r2[1] = $r4", - "$r1[0] = $r2", - "$r5 = newarray (float[])[2]", - "$r6 = newarray (float)[2]", - "$r6[0] = 65.15F", - "$r6[1] = 854.18F", - "$r5[0] = $r6", - "$r7 = newarray (float)[2]", - "$r7[0] = 16.51F", - "$r7[1] = 58.14F", - "$r5[1] = $r7", - "$r1[1] = $r5", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleArrays(){
-   *         double[][][] doubleArray3D = {{{6.765414d, 9.676565646d},{45.345435d}},{{3.5656d,68.234234d},{68416.651d,65416.5d}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleArrays() { - return Stream.of( - "r0 := @this: Initialize3DimensionalArrays", - "$r1 = newarray (double[][])[2]", - "$r2 = newarray (double[])[2]", - "$r3 = newarray (double)[2]", - "$r3[0] = 6.765414", - "$r3[1] = 9.676565646", - "$r2[0] = $r3", - "$r4 = newarray (double)[1]", - "$r4[0] = 45.345435", - "$r2[1] = $r4", - "$r1[0] = $r2", - "$r5 = newarray (double[])[2]", - "$r6 = newarray (double)[2]", - "$r6[0] = 3.5656", - "$r6[1] = 68.234234", - "$r5[0] = $r6", - "$r7 = newarray (double)[2]", - "$r7[0] = 68416.651", - "$r7[1] = 65416.5", - "$r5[1] = $r7", - "$r1[1] = $r5", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void booleanArrays(){
-   *         boolean[][][] boolArray3D = {{{true, false},{true}},{{false,false},{true}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsBooleanArrays() { - return Stream.of( - "r0 := @this: Initialize3DimensionalArrays", - "$r1 = newarray (boolean[][])[2]", - "$r2 = newarray (boolean[])[2]", - "$r3 = newarray (boolean)[2]", - "$r3[0] = 1", - "$r3[1] = 0", - "$r2[0] = $r3", - "$r4 = newarray (boolean)[1]", - "$r4[0] = 1", - "$r2[1] = $r4", - "$r1[0] = $r2", - "$r5 = newarray (boolean[])[2]", - "$r6 = newarray (boolean)[2]", - "$r6[0] = 0", - "$r6[1] = 0", - "$r5[0] = $r6", - "$r7 = newarray (boolean)[1]", - "$r7[0] = 1", - "$r5[1] = $r7", - "$r1[1] = $r5", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charArrays(){
-   *         char[][][] charArray3D = {{{'A', 'b', '&'},{'c','$'}},{{'2','G'},{'a','%'}}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharArrays() { - return Stream.of( - "r0 := @this: Initialize3DimensionalArrays", - "$r1 = newarray (char[][])[2]", - "$r2 = newarray (char[])[2]", - "$r3 = newarray (char)[3]", - "$r3[0] = 65", - "$r3[1] = 98", - "$r3[2] = 38", - "$r2[0] = $r3", - "$r4 = newarray (char)[2]", - "$r4[0] = 99", - "$r4[1] = 36", - "$r2[1] = $r4", - "$r1[0] = $r2", - "$r5 = newarray (char[])[2]", - "$r6 = newarray (char)[2]", - "$r6[0] = 50", - "$r6[1] = 71", - "$r5[0] = $r6", - "$r7 = newarray (char)[2]", - "$r7[0] = 97", - "$r7[1] = 37", - "$r5[1] = $r7", - "$r1[1] = $r5", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void stringArrays() {
-   *         String[][][] stringArray3D = {{{"Hello World"}, {"Greetings", "Welcome"}}, {{"Future","Soot"},{"UPB","HNI"}}};
-   *     }
-   * 
- */ - public List expectedBodyStmtsStringArrays() { - return Stream.of( - "r0 := @this: Initialize3DimensionalArrays", - "$r1 = newarray (java.lang.String[][])[2]", - "$r2 = newarray (java.lang.String[])[2]", - "$r3 = newarray (java.lang.String)[1]", - "$r3[0] = \"Hello World\"", - "$r2[0] = $r3", - "$r4 = newarray (java.lang.String)[2]", - "$r4[0] = \"Greetings\"", - "$r4[1] = \"Welcome\"", - "$r2[1] = $r4", - "$r1[0] = $r2", - "$r5 = newarray (java.lang.String[])[2]", - "$r6 = newarray (java.lang.String)[2]", - "$r6[0] = \"Future\"", - "$r6[1] = \"Soot\"", - "$r5[0] = $r6", - "$r7 = newarray (java.lang.String)[2]", - "$r7[0] = \"UPB\"", - "$r7[1] = \"HNI\"", - "$r5[1] = $r7", - "$r1[1] = $r5", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java deleted file mode 100644 index 8587557045c..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWhileDeclarationTest.java +++ /dev/null @@ -1,236 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class InitializeArraysWhileDeclarationTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts(method, expectedBodyStmtsIntArrays()); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts(method, expectedBodyStmtsByteArrays()); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts(method, expectedBodyStmtsShortArrays()); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts(method, expectedBodyStmtsLongArrays()); - - method = loadMethod(getMethodSignature("floatArrays")); - assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts(method, expectedBodyStmtsCharArrays()); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts(method, expectedBodyStmtsStringArrays()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void intArrays(){
-   *         int[] anArrayOfInts = {1, 2, 3};
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWhileDeclaration", - "$r1 = newarray (int)[3]", - "$r1[0] = 1", - "$r1[1] = 2", - "$r1[2] = 3", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void byteArrays(){
-   *         byte[] anArrayOfBytes = {4, 5, 6};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsByteArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWhileDeclaration", - "$r1 = newarray (byte)[3]", - "$r1[0] = 4", - "$r1[1] = 5", - "$r1[2] = 6", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void shortArrays(){
-   *         short[] anArrayOfShorts = {10, 20, 30};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsShortArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWhileDeclaration", - "$r1 = newarray (short)[3]", - "$r1[0] = 10", - "$r1[1] = 20", - "$r1[2] = 30", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void longArrays(){
-   *         long[] anArrayOfLongs = {547087L, 564645L, 654786L};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsLongArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWhileDeclaration", - "$r1 = newarray (long)[3]", - "$r1[0] = 547087L", - "$r1[1] = 564645L", - "$r1[2] = 654786L", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatArrays(){
-   *         float[] anArrayOfFloats = {3.14f, 5.46f, 2.987f, 4.87f};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWhileDeclaration", - "$r1 = newarray (float)[4]", - "$r1[0] = 3.14F", - "$r1[1] = 5.46F", - "$r1[2] = 2.987F", - "$r1[3] = 4.87F", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleArrays(){
-   *         double[] anArrayOfDoubles = {6.765414d, 9.676565646d};
-   *
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWhileDeclaration", - "$r1 = newarray (double)[2]", - "$r1[0] = 6.765414", - "$r1[1] = 9.676565646", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void booleanArrays(){
-   *         boolean[] anArrayOfBooleans = {true, false};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsBooleanArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWhileDeclaration", - "$r1 = newarray (boolean)[2]", - "$r1[0] = 1", - "$r1[1] = 0", - "return") - .collect(Collectors.toList()); - } - - /** - * public void charArrays(){ char[] anArrayOfChars = {'A', 'b', '&'}; - * - *

} - */ - public List expectedBodyStmtsCharArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWhileDeclaration", - "$r1 = newarray (char)[3]", - "$r1[0] = 65", - "$r1[1] = 98", - "$r1[2] = 38", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *

-   *     public void stringArrays(){
-   *         String[] anArrayOfStrings = {"Hello World", "Greetings"};
-   *     }
-   * 
- */ - public List expectedBodyStmtsStringArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWhileDeclaration", - "$r1 = newarray (java.lang.String)[2]", - "$r1[0] = \"Hello World\"", - "$r1[1] = \"Greetings\"", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java deleted file mode 100644 index 9673142042a..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InitializeArraysWithIndexTest.java +++ /dev/null @@ -1,267 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class InitializeArraysWithIndexTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts(method, expectedBodyStmtsIntArrays()); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts(method, expectedBodyStmtsByteArrays()); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts(method, expectedBodyStmtsShortArrays()); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts(method, expectedBodyStmtsLongArrays()); - - method = loadMethod(getMethodSignature("floatArrays")); - - assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts(method, expectedBodyStmtsCharArrays()); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts(method, expectedBodyStmtsStringArrays()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *    public void intArrays(){
-   *         int[] anArrayOfInts = new int[3];
-   *         anArrayOfInts[0] = 1;
-   *         anArrayOfInts[1] = 2;
-   *         anArrayOfInts[2] = 3;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWithIndex", - "$r1 = newarray (int)[3]", - "$r1[0] = 1", - "$r1[1] = 2", - "$r1[2] = 3", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void byteArrays(){
-   *         byte[] anArrayOfBytes = new byte[3];
-   *         anArrayOfBytes[0] = 4;
-   *         anArrayOfBytes[1] = 5;
-   *         anArrayOfBytes[2] = 6;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsByteArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWithIndex", - "$r1 = newarray (byte)[3]", - "$r1[0] = 4", - "$r1[1] = 5", - "$r1[2] = 6", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void shortArrays(){
-   *         short[] anArrayOfShorts = new short[3];
-   *         anArrayOfShorts[0] = 10;
-   *         anArrayOfShorts[1] = 20;
-   *         anArrayOfShorts[2] = 30;
-   *
-   *     }
- */ - public List expectedBodyStmtsShortArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWithIndex", - "$r1 = newarray (short)[3]", - "$r1[0] = 10", - "$r1[1] = 20", - "$r1[2] = 30", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void longArrays(){
-   *         long[] anArrayOfLongs = new long[3];
-   *         anArrayOfLongs[0] = 547087L;
-   *         anArrayOfLongs[1] = 564645L;
-   *         anArrayOfLongs[2] = 654786L;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsLongArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWithIndex", - "$r1 = newarray (long)[3]", - "$r1[0] = 547087L", - "$r1[1] = 564645L", - "$r1[2] = 654786L", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatArrays(){
-   *         float[] anArrayOfFloats = new float[4];
-   *         anArrayOfFloats[0] = 3.14f;
-   *         anArrayOfFloats[1] = 5.46f;
-   *         anArrayOfFloats[2] = 2.987f;
-   *         anArrayOfFloats[3] = 4.87f;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWithIndex", - "$r1 = newarray (float)[4]", - "$r1[0] = 3.14F", - "$r1[1] = 5.46F", - "$r1[2] = 2.987F", - "$r1[3] = 4.87F", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleArrays(){
-   *         double[] anArrayOfDoubles = new double[2];
-   *         anArrayOfDoubles[0] = 6.765414d;
-   *         anArrayOfDoubles[1] = 9.676565646d;
-   *
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWithIndex", - "$r1 = newarray (double)[2]", - "$r1[0] = 6.765414", - "$r1[1] = 9.676565646", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void booleanArrays(){
-   *         boolean[] anArrayOfBooleans = new boolean[2];
-   *         anArrayOfBooleans[0] = true;
-   *         anArrayOfBooleans[1] = false;
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsBooleanArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWithIndex", - "$r1 = newarray (boolean)[2]", - "$r1[0] = 1", - "$r1[1] = 0", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charArrays(){
-   *         char[] anArrayOfChars = new char[3];
-   *         anArrayOfChars[0] = 'A';
-   *         anArrayOfChars[1] = 'b';
-   *         anArrayOfChars[2] = '&';
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWithIndex", - "$r1 = newarray (char)[3]", - "$r1[0] = 65", - "$r1[1] = 98", - "$r1[2] = 38", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void stringArrays(){
-   *         String[] anArrayOfStrings = new String[2];
-   *         anArrayOfStrings[0] = "Hello World";
-   *         anArrayOfStrings[1] = "Greetings";
-   *     }
-   * 
- */ - public List expectedBodyStmtsStringArrays() { - return Stream.of( - "r0 := @this: InitializeArraysWithIndex", - "$r1 = newarray (java.lang.String)[2]", - "$r1[0] = \"Hello World\"", - "$r1[1] = \"Greetings\"", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java deleted file mode 100644 index 885aa83b9b0..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InitializeMultidimensionalArraysTest.java +++ /dev/null @@ -1,299 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class InitializeMultidimensionalArraysTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts(method, expectedBodyStmtsIntArrays()); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts(method, expectedBodyStmtsByteArrays()); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts(method, expectedBodyStmtsShortArrays()); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts(method, expectedBodyStmtsLongArrays()); - - method = loadMethod(getMethodSignature("floatArrays")); - assertJimpleStmts(method, expectedBodyStmtsFloatArrays()); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts(method, expectedBodyStmtsDoubleArrays()); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts(method, expectedBodyStmtsBooleanArrays()); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts(method, expectedBodyStmtsCharArrays()); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts(method, expectedBodyStmtsStringArrays()); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void intArrays(){
-   *         int[][] anArrayOfInts = {{1, 2, 3},{5, 6},{7, 8, 9}};
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntArrays() { - return Stream.of( - "r0 := @this: InitializeMultidimensionalArrays", - "$r1 = newarray (int[])[3]", - "$r2 = newarray (int)[3]", - "$r2[0] = 1", - "$r2[1] = 2", - "$r2[2] = 3", - "$r1[0] = $r2", - "$r3 = newarray (int)[2]", - "$r3[0] = 5", - "$r3[1] = 6", - "$r1[1] = $r3", - "$r4 = newarray (int)[3]", - "$r4[0] = 7", - "$r4[1] = 8", - "$r4[2] = 9", - "$r1[2] = $r4", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void byteArrays(){
-   *         byte[][] anArrayOfBytes = {{4, 5},{2}};
-   *
-   *     }
- */ - public List expectedBodyStmtsByteArrays() { - return Stream.of( - "r0 := @this: InitializeMultidimensionalArrays", - "$r1 = newarray (byte[])[2]", - "$r2 = newarray (byte)[2]", - "$r2[0] = 4", - "$r2[1] = 5", - "$r1[0] = $r2", - "$r3 = newarray (byte)[1]", - "$r3[0] = 2", - "$r1[1] = $r3", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
public void shortArrays(){
-   *         short[][] anArrayOfShorts = {{10, 20, 30},{40}};
-   *
-   *     }
- */ - public List expectedBodyStmtsShortArrays() { - return Stream.of( - "r0 := @this: InitializeMultidimensionalArrays", - "$r1 = newarray (short[])[2]", - "$r2 = newarray (short)[3]", - "$r2[0] = 10", - "$r2[1] = 20", - "$r2[2] = 30", - "$r1[0] = $r2", - "$r3 = newarray (short)[1]", - "$r3[0] = 40", - "$r1[1] = $r3", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
public void longArrays(){
-   *         long[][] anArrayOfLongs = {{547087L, 654786L},{547287L, 864645L, 6533786L},{34565L,234L}};
-   *
-   *     }
- */ - public List expectedBodyStmtsLongArrays() { - return Stream.of( - "r0 := @this: InitializeMultidimensionalArrays", - "$r1 = newarray (long[])[3]", - "$r2 = newarray (long)[2]", - "$r2[0] = 547087L", - "$r2[1] = 654786L", - "$r1[0] = $r2", - "$r3 = newarray (long)[3]", - "$r3[0] = 547287L", - "$r3[1] = 864645L", - "$r3[2] = 6533786L", - "$r1[1] = $r3", - "$r4 = newarray (long)[2]", - "$r4[0] = 34565L", - "$r4[1] = 234L", - "$r1[2] = $r4", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatArrays(){
-   *         float[][] anArrayOfFloats = {{3.14f, 5.46f}, {2.987f, 4.87f}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatArrays() { - return Stream.of( - "r0 := @this: InitializeMultidimensionalArrays", - "$r1 = newarray (float[])[2]", - "$r2 = newarray (float)[2]", - "$r2[0] = 3.14F", - "$r2[1] = 5.46F", - "$r1[0] = $r2", - "$r3 = newarray (float)[2]", - "$r3[0] = 2.987F", - "$r3[1] = 4.87F", - "$r1[1] = $r3", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleArrays(){
-   *         double[][] anArrayOfDoubles = {{6.765414d, 9.676565646d},{45.345435d},{3.5656d,68.234234d}};
-   *
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleArrays() { - return Stream.of( - "r0 := @this: InitializeMultidimensionalArrays", - "$r1 = newarray (double[])[3]", - "$r2 = newarray (double)[2]", - "$r2[0] = 6.765414", - "$r2[1] = 9.676565646", - "$r1[0] = $r2", - "$r3 = newarray (double)[1]", - "$r3[0] = 45.345435", - "$r1[1] = $r3", - "$r4 = newarray (double)[2]", - "$r4[0] = 3.5656", - "$r4[1] = 68.234234", - "$r1[2] = $r4", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void booleanArrays(){
-   *         boolean[][] anArrayOfBooleans = {{true, false},{true}};
-   *
-   *     }
- */ - public List expectedBodyStmtsBooleanArrays() { - return Stream.of( - "r0 := @this: InitializeMultidimensionalArrays", - "$r1 = newarray (boolean[])[2]", - "$r2 = newarray (boolean)[2]", - "$r2[0] = 1", - "$r2[1] = 0", - "$r1[0] = $r2", - "$r3 = newarray (boolean)[1]", - "$r3[0] = 1", - "$r1[1] = $r3", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charArrays(){
-   *         char[][] anArrayOfChars = {{'A', 'b', '&'},{'c','$'},{'2','G'}};
-   *
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharArrays() { - return Stream.of( - "r0 := @this: InitializeMultidimensionalArrays", - "$r1 = newarray (char[])[3]", - "$r2 = newarray (char)[3]", - "$r2[0] = 65", - "$r2[1] = 98", - "$r2[2] = 38", - "$r1[0] = $r2", - "$r3 = newarray (char)[2]", - "$r3[0] = 99", - "$r3[1] = 36", - "$r1[1] = $r3", - "$r4 = newarray (char)[2]", - "$r4[0] = 50", - "$r4[1] = 71", - "$r1[2] = $r4", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void stringArrays(){
-   *         String[][] anArrayOfStrings = {{"Hello World"}, {"Greetings", "Welcome"}};
-   *     }
-   * 
- */ - public List expectedBodyStmtsStringArrays() { - return Stream.of( - "r0 := @this: InitializeMultidimensionalArrays", - "$r1 = newarray (java.lang.String[])[2]", - "$r2 = newarray (java.lang.String)[1]", - "$r2[0] = \"Hello World\"", - "$r1[0] = $r2", - "$r3 = newarray (java.lang.String)[2]", - "$r3[0] = \"Greetings\"", - "$r3[1] = \"Welcome\"", - "$r1[1] = $r3", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InstanceOfCheckTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InstanceOfCheckTest.java deleted file mode 100644 index 317d3e0efb5..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InstanceOfCheckTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** @author Kaustubh Kelkar */ -public class InstanceOfCheckTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "instanceOfCheckMethod", "void", Collections.emptyList()); - } - - @org.junit.Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(sootClass.getSuperclass().get().getClassName().equals("InstanceOfCheckSuper")); - } - - /** - * - * - *
-   *     public void instanceOfCheckMethod(){
-   * InstanceOfCheck obj= new InstanceOfCheck();
-   * System.out.println(obj instanceof InstanceOfCheckSuper);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: InstanceOfCheck", - "$r1 = new InstanceOfCheck", - "specialinvoke $r1.()>()", - "$r2 = ", - "$z0 = $r1 instanceof InstanceOfCheckSuper", - "virtualinvoke $r2.($z0)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InterfaceImplClassTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InterfaceImplClassTest.java deleted file mode 100644 index 9ede47ab5b1..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/InterfaceImplClassTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class InterfaceImplClassTest extends MinimalSourceTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equalsIgnoreCase("InterfaceImpl"); - })); - } - - /** - * - * - *
-   *     public void interfaceMethod(){
-   * System.out.print("Method from InterfaceImpl is implemented");
-   * System.out.println("Variable from InterfaceImpl is "+a);
-   * };
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: InterfaceImplClass", - "$r1 = ", - "virtualinvoke $r1.(\"Method from InterfaceImpl is implemented\")", - "$r2 = ", - "$r4 = new java.lang.StringBuilder", - "specialinvoke $r4.(java.lang.String)>(\"Variable from InterfaceImpl is \")", - "$r5 = virtualinvoke $r4.(10)", - "$r3 = virtualinvoke $r5.()", - "virtualinvoke $r2.($r3)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/LabelStatementTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/LabelStatementTest.java deleted file mode 100644 index 6ddca97d210..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/LabelStatementTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class LabelStatementTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "labelStatement", "void", Collections.emptyList()); - } - - /**
-   * public void labelStatement(){
-   * int num = 20;
-   * int i = 1;
-   * start:
-   * while (i*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: LabelStatement",
-            "$i0 = 20",
-            "$i1 = 1",
-            "label1:",
-            "$z0 = $i1 < $i0",
-            "if $z0 == 0 goto label3",
-            "$i2 = $i1 % 10",
-            "$z1 = $i2 == 0",
-            "if $z1 == 0 goto label2",
-            "goto label3",
-            "label2:",
-            "$i3 = $i1",
-            "$i4 = $i1 + 1",
-            "$i1 = $i4",
-            "goto label1",
-            "label3:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/LabelledLoopBreakTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/LabelledLoopBreakTest.java
deleted file mode 100644
index ac7191b90db..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/LabelledLoopBreakTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/** @author: Hasitha Rajapakse */
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-@Category(Java8Test.class)
-public class LabelledLoopBreakTest extends MinimalSourceTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "labelledLoopBreak", "void", Collections.emptyList());
-  }
-
-  /**  
-   * public void labelledLoopBreak() {
-   * start:
-   * for (int i = 0; i < 5; i++) {
-   * for (int j = 0; j < 5; j++) {
-   * if (i == 1) {
-   * break start;
-   * }
-   * }
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: LabelledLoopBreak",
-            "$i0 = 0",
-            "label1:",
-            "$z0 = $i0 < 5",
-            "if $z0 == 0 goto label5",
-            "$i1 = 0",
-            "label2:",
-            "$z1 = $i1 < 5",
-            "if $z1 == 0 goto label4",
-            "$z2 = $i0 == 1",
-            "if $z2 == 0 goto label3",
-            "goto label5",
-            "label3:",
-            "$i2 = $i1",
-            "$i3 = $i1 + 1",
-            "$i1 = $i3",
-            "goto label2",
-            "label4:",
-            "$i4 = $i0",
-            "$i5 = $i0 + 1",
-            "$i0 = $i5",
-            "goto label1",
-            "label5:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/LocalClassShadowTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/LocalClassShadowTest.java
deleted file mode 100644
index b1f87d5db8e..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/LocalClassShadowTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertEquals;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.jimple.basic.Local;
-import de.upb.swt.soot.core.jimple.basic.Value;
-import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef;
-import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt;
-import de.upb.swt.soot.core.jimple.common.stmt.Stmt;
-import de.upb.swt.soot.core.model.Body;
-import de.upb.swt.soot.core.model.SootClass;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.core.types.ClassType;
-import de.upb.swt.soot.core.types.Type;
-import de.upb.swt.soot.java.core.types.JavaClassType;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-@Category(Java8Test.class)
-public class LocalClassShadowTest extends MinimalSourceTestSuiteBase {
-
-  JavaClassType localClass =
-      identifierFactory.getClassType(
-          getClassName(customTestWatcher.getClassPath()) + "1$LocalClass");
-  SootClass sootLocalClass = loadClass(localClass);
-
-  /** Test: OuterClass of LocalClass is LocalClassShadow */
-  @Test
-  public void testOuterClass() {
-    assertEquals(getDeclaredClassSignature(), sootLocalClass.getOuterClass().get());
-  }
-
-  /** Test: How many Locals with ClassType {@link java.lang.String} */
-  @Test
-  public void testNumOfLocalsWithString() {
-    SootMethod method = sootLocalClass.getMethod(getMethodSignature().getSubSignature()).get();
-    Body methodBody = method.getBody();
-    Set locals = methodBody.getLocals();
-    Set stringLocals =
-        locals.stream()
-            .filter(local -> local.getType().toString().equals("java.lang.String"))
-            .collect(Collectors.toSet());
-    assertEquals(3, stringLocals.size());
-  }
-
-  /** Test: Locals--info are from different classes */
-  @Test
-  public void testClassesOfStringLocalAreDifferent() {
-    SootMethod method = sootLocalClass.getMethod(getMethodSignature().getSubSignature()).get();
-    Body methodBody = method.getBody();
-    List stmts = methodBody.getStmts();
-    Set classTypes = new HashSet();
-    for (Stmt stmt : stmts) {
-      if (stmt instanceof JAssignStmt) {
-        final Value rightOp = ((JAssignStmt) stmt).getRightOp();
-        if (rightOp instanceof JInstanceFieldRef) {
-          final ClassType declClassType =
-              ((JInstanceFieldRef) rightOp).getFieldSignature().getDeclClassType();
-          classTypes.add(declClassType);
-        }
-      }
-    }
-    assertEquals(2, classTypes.size());
-  }
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        localClass, "printInfo", "void", Collections.singletonList("java.lang.String"));
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodAcceptingVarTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodAcceptingVarTest.java
deleted file mode 100644
index 1380b5665f5..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodAcceptingVarTest.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.*;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-/**
- * @author Hasitha Rajapakse
- * @author Kaustubh Kelkar
- */
-@Category(Java8Test.class)
-public class MethodAcceptingVarTest extends MinimalSourceTestSuiteBase {
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature("short"));
-    assertJimpleStmts(method, expectedBodyStmtsShort());
-
-    method = loadMethod(getMethodSignature("byte"));
-    assertJimpleStmts(method, expectedBodyStmtsByte());
-
-    method = loadMethod(getMethodSignature("char"));
-    assertJimpleStmts(method, expectedBodyStmtsChar());
-
-    method = loadMethod(getMethodSignature("int"));
-    assertJimpleStmts(method, expectedBodyStmtsInt());
-
-    method = loadMethod(getMethodSignature("long"));
-    assertJimpleStmts(method, expectedBodyStmtsLong());
-
-    method = loadMethod(getMethodSignature("float"));
-    assertJimpleStmts(method, expectedBodyStmtsFloat());
-
-    method = loadMethod(getMethodSignature("double"));
-    assertJimpleStmts(method, expectedBodyStmtsDouble());
-  }
-
-  public MethodSignature getMethodSignature(String datatype) {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(),
-        datatype + "Variable",
-        "void",
-        Collections.singletonList(datatype));
-  }
-
-  /**
-   *
-   *
-   * 
-   *    public void shortVariable(short a) {
-   *        a++;
-   * }
-   * 
- */ - public List expectedBodyStmtsShort() { - return Stream.of( - "r0 := @this: MethodAcceptingVar", - "$s0 := @parameter0: short", - "$s1 = $s0", - "$s2 = $s0 + 1", - "$s0 = $s2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void byteVariable(byte b) {
-   *     b++;
-   * }
-   * 
- */ - public List expectedBodyStmtsByte() { - return Stream.of( - "r0 := @this: MethodAcceptingVar", - "$b0 := @parameter0: byte", - "$b1 = $b0", - "$b2 = $b0 + 1", - "$b0 = $b2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void charVariable(char c) {
-   *    c = 'a';
-   * }
-   * 
- */ - public List expectedBodyStmtsChar() { - return Stream.of( - "r0 := @this: MethodAcceptingVar", "$c0 := @parameter0: char", "$c0 = 97", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void intVariable(int d) {
-   *    d++;
-   * }
-   * 
- */ - public List expectedBodyStmtsInt() { - return Stream.of( - "r0 := @this: MethodAcceptingVar", - "$i0 := @parameter0: int", - "$i1 = $i0", - "$i2 = $i0 + 1", - "$i0 = $i2", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void longVariable(long e) {
-   *     e = 123456777;
-   * }
-   * 
- */ - public List expectedBodyStmtsLong() { - return Stream.of( - "r0 := @this: MethodAcceptingVar", - "$l0 := @parameter0: long", - "$l0 = 123456777", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void floatVariable(float f) {
-   *         f = 7.77f;
-   * }
-   * 
- */ - public List expectedBodyStmtsFloat() { - return Stream.of( - "r0 := @this: MethodAcceptingVar", "$f0 := @parameter0: float", "$f0 = 7.77F", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public void doubleVariable(double g) {
-   *     g = 1.787777777;
-   * }
-   * 
- */ - public List expectedBodyStmtsDouble() { - return Stream.of( - "r0 := @this: MethodAcceptingVar", - "$d0 := @parameter0: double", - "$d0 = 1.787777777", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodOverloadingTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodOverloadingTest.java deleted file mode 100644 index 635d5ca29a3..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodOverloadingTest.java +++ /dev/null @@ -1,89 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class MethodOverloadingTest extends MinimalSourceTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "calculate", "int", Arrays.asList("int", "int")); - } - /** @returns the method signature needed for second method in testCase */ - public MethodSignature getMethodSignatureSingleParam() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "calculate", "int", Collections.singletonList("int")); - } - - public MethodSignature getMethodSignatureInit() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = loadMethod(getMethodSignatureSingleParam()); - assertJimpleStmts(method, expectedBodyStmts1()); - - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(sootClass.getMethod(getMethodSignature().getSubSignature()).isPresent()); - assertTrue(sootClass.getMethod(getMethodSignatureSingleParam().getSubSignature()).isPresent()); - assertTrue(sootClass.getMethod(getMethodSignatureInit().getSubSignature()).isPresent()); - assertEquals(3, sootClass.getMethods().size()); - } - - /** - * - * - *
-   *     int calculate(int a, int b){
-   *         return a+b;
-   *
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: MethodOverloading", - "$i0 := @parameter0: int", - "$i1 := @parameter1: int", - "$i2 = $i0 + $i1", - "return $i2") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   * int calculate(int a){
-   *         return a+a;
-   *
-   *     }
-   *     
- */ - public List expectedBodyStmts1() { - return Stream.of( - "r0 := @this: MethodOverloading", - "$i0 := @parameter0: int", - "$i1 = $i0 + $i0", - "return $i1") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodOverridingTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodOverridingTest.java deleted file mode 100644 index c10d5b349ca..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodOverridingTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class MethodOverridingTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignature() { - - return identifierFactory.getMethodSignature( - identifierFactory.getClassType("MethodOverridingSubclass"), - "calculateArea", - "void", - Collections.emptyList()); - } - - /** - * - * - *
-   *     public void calculateArea(){
-   * System.out.println("Inside MethodOverriding-calculateArea()");
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: MethodOverridingSubclass", - "$r1 = ", - "virtualinvoke $r1.(\"Inside MethodOverridingSubclass-calculateArea()\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodReturningVarTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodReturningVarTest.java deleted file mode 100644 index c0aacb30415..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MethodReturningVarTest.java +++ /dev/null @@ -1,154 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class MethodReturningVarTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("short")); - assertJimpleStmts(method, expectedBodyStmtsShort()); - - method = loadMethod(getMethodSignature("byte")); - assertJimpleStmts(method, expectedBodyStmtsByte()); - - method = loadMethod(getMethodSignature("char")); - assertJimpleStmts(method, expectedBodyStmtsChar()); - - method = loadMethod(getMethodSignature("int")); - assertJimpleStmts(method, expectedBodyStmtsInt()); - - method = loadMethod(getMethodSignature("long")); - assertJimpleStmts(method, expectedBodyStmtsLong()); - - method = loadMethod(getMethodSignature("float")); - assertJimpleStmts(method, expectedBodyStmtsFloat()); - - method = loadMethod(getMethodSignature("double")); - assertJimpleStmts(method, expectedBodyStmtsDouble()); - } - - public MethodSignature getMethodSignature(String datatype) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), datatype + "Variable", datatype, Collections.emptyList()); - } - - /** - * - * - *
-   * public short shortVariable() {
-   *         short a = 10;
-   *         return a;
-   *     }
-   * 
- */ - public List expectedBodyStmtsShort() { - return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 10", "return $i0") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public byte byteVariable() {
-   *         byte b = 0;
-   *         return b;
-   *     }
-   * 
- */ - public List expectedBodyStmtsByte() { - return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 0", "return $i0") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public char charVariable() {
-   *         char c = 'a';
-   *         return c;
-   *     }
-   * 
- */ - public List expectedBodyStmtsChar() { - return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 97", "return $i0") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public int intVariable() {
-   *         int d = 512;
-   *         return d;
-   *     }
-   *     
- */ - public List expectedBodyStmtsInt() { - return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 512", "return $i0") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   * public long longVariable() {
-   *         long e = 123456789;
-   *         return e;
-   *
-   *     }
-   *     
- */ - public List expectedBodyStmtsLong() { - return Stream.of("r0 := @this: MethodReturningVar", "$i0 = 123456789", "return $i0") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public float floatVariable() {
-   *         float f = 3.14f;
-   *         return f;
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloat() { - return Stream.of("r0 := @this: MethodReturningVar", "$f0 = 3.14F", "return $f0") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public double doubleVariable() {
-   *         double g = 1.96969654d;
-   *         return g;
-   *     }
-   * 
- */ - public List expectedBodyStmtsDouble() { - return Stream.of("r0 := @this: MethodReturningVar", "$d0 = 1.96969654", "return $d0") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java deleted file mode 100644 index eab81290d71..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/MultiInterfaceImplClassTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class MultiInterfaceImplClassTest extends MinimalSourceTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equals("InterfaceImplDummy"); - })); - } - - /** - * /** - * - *
-   *     public void interfaceMethod(){
-   * System.out.print("Method from InterfaceImpl is implemented");
-   * System.out.println("Variable from InterfaceImpl is "+a);
-   * };
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: MultiInterfaceImplClass", - "$r1 = ", - "virtualinvoke $r1.(\"Method from InterfaceImpl is implemented\")", - "$r2 = ", - "$r4 = new java.lang.StringBuilder", - "specialinvoke $r4.(java.lang.String)>(\"Variable from InterfaceImpl is \")", - "$r5 = virtualinvoke $r4.(10)", - "$r3 = virtualinvoke $r5.()", - "virtualinvoke $r2.($r3)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java deleted file mode 100644 index c2f6955077a..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NamedClassInsideMethodTest.java +++ /dev/null @@ -1,55 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class NamedClassInsideMethodTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "namedClassInsideMethod", "void", Collections.emptyList()); - } - - /**
-   * public void namedClassInsideMethod() {
-   *
-   * class MyMathOperation implements MathOperation {
-   * int i = 0;
-   * public void addition() {
-   * i++;
-   * }
-   * }
-   *
-   * MathOperation myMathOperation = new MyMathOperation();
-   * myMathOperation.addition();
-   *
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: NamedClassInsideMethod",
-            "$r1 = new NamedClassInsideMethod1$MyMathOperation",
-            "specialinvoke $r1.()>()",
-            "interfaceinvoke $r1.()",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NativeMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NativeMethodTest.java
deleted file mode 100644
index 7e2d7025f77..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NativeMethodTest.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertTrue;
-
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import org.junit.Test;
-
-public class NativeMethodTest extends MinimalSourceTestSuiteBase {
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "returnResult", "int", Collections.singletonList("int"));
-  }
-
-  @Test
-  public void nativeMethod() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertTrue(method.isNative());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NestedClassShadowTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NestedClassShadowTest.java
deleted file mode 100644
index ee7b95a1798..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NestedClassShadowTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertEquals;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.jimple.basic.Local;
-import de.upb.swt.soot.core.jimple.basic.Value;
-import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef;
-import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt;
-import de.upb.swt.soot.core.jimple.common.stmt.Stmt;
-import de.upb.swt.soot.core.model.Body;
-import de.upb.swt.soot.core.model.SootClass;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.core.types.ClassType;
-import de.upb.swt.soot.core.types.Type;
-import de.upb.swt.soot.java.core.types.JavaClassType;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-@Category(Java8Test.class)
-public class NestedClassShadowTest extends MinimalSourceTestSuiteBase {
-
-  JavaClassType nestedClass =
-      identifierFactory.getClassType(
-          getClassName(customTestWatcher.getClassPath()) + "$NestedClass");
-  SootClass sootNestedClass = loadClass(nestedClass);
-
-  /** Test: OuterClass of NestedClass is NestedClassShadow */
-  @Test
-  public void testOuterClass() {
-    assertEquals(getDeclaredClassSignature(), sootNestedClass.getOuterClass().get());
-  }
-
-  /** Test: How many Locals with ClassType {@link java.lang.String} */
-  @Test
-  public void testNumOfLocalsWithString() {
-    SootMethod method = sootNestedClass.getMethod(getMethodSignature().getSubSignature()).get();
-    Body methodBody = method.getBody();
-    Set locals = methodBody.getLocals();
-    Set stringLocals =
-        locals.stream()
-            .filter(local -> local.getType().toString().equals("java.lang.String"))
-            .collect(Collectors.toSet());
-    assertEquals(3, stringLocals.size());
-  }
-
-  /** Test: Locals--info are from different classes */
-  @Test
-  public void testClassesOfStringLocalAreDifferent() {
-    SootMethod method = sootNestedClass.getMethod(getMethodSignature().getSubSignature()).get();
-    Body methodBody = method.getBody();
-    List stmts = methodBody.getStmts();
-    Set classTypes = new HashSet();
-    for (Stmt stmt : stmts) {
-      if (stmt instanceof JAssignStmt) {
-        final Value rightOp = ((JAssignStmt) stmt).getRightOp();
-        if (rightOp instanceof JInstanceFieldRef) {
-          final ClassType declClassType =
-              ((JInstanceFieldRef) rightOp).getFieldSignature().getDeclClassType();
-          classTypes.add(declClassType);
-        }
-      }
-    }
-    assertEquals(2, classTypes.size());
-  }
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        nestedClass, "printInfo", "void", Collections.singletonList("java.lang.String"));
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java
deleted file mode 100644
index 190e93574bc..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NewCodeBlockInMethodTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/** @author: Hasitha Rajapakse */
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-@Category(Java8Test.class)
-public class NewCodeBlockInMethodTest extends MinimalSourceTestSuiteBase {
-
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "newCodeBlockInMethod", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   *     public void newCodeBlockInMethod(){
-   * {
-   * int i = 5;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: NewCodeBlockInMethod", "$i0 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NoModifierClassTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NoModifierClassTest.java deleted file mode 100644 index 71f2abba854..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NoModifierClassTest.java +++ /dev/null @@ -1,41 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.*; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author: Hasitha Rajapakse */ -@Category(Java8Test.class) -public class NoModifierClassTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - JavaSootClass clazz = loadClass(getDeclaredClassSignature()); - assertEquals(EnumSet.noneOf(Modifier.class), clazz.getModifiers()); - - assertTrue(clazz.getMethod(getMethodSignature("private").getSubSignature()).get().isPrivate()); - assertTrue( - clazz.getMethod(getMethodSignature("protected").getSubSignature()).get().isProtected()); - assertTrue(clazz.getMethod(getMethodSignature("public").getSubSignature()).get().isPublic()); - assertTrue( - clazz - .getMethod(getMethodSignature("noModifier").getSubSignature()) - .get() - .getModifiers() - .isEmpty()); - } - - public MethodSignature getMethodSignature(String modifier) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NullVariableTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NullVariableTest.java deleted file mode 100644 index 716e7fa7e77..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/NullVariableTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertEquals; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.util.Utils; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class NullVariableTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "nullVariable", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void nullVariable(){
-   * String str = null;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: NullVariable", "$r1 = null", "return") - .collect(Collectors.toList()); - } - - @Ignore - public void test() { - // FIXME see InstructionConverter.convertUnaryOpInstruction(...) - SootMethod method = loadMethod(getMethodSignature()); - assertEquals( - "[java.lang.String $r1, NullVariable r0, r0 := @this: NullVariable, $r1 = null, return]", - Utils.filterJimple(method.getBody().toString())); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/PublicClassTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/PublicClassTest.java deleted file mode 100644 index 85ca8447fb1..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/PublicClassTest.java +++ /dev/null @@ -1,72 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author: Hasitha Rajapakse */ -@Category(Java8Test.class) -public class PublicClassTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertEquals(EnumSet.of(Modifier.PUBLIC), clazz.getModifiers()); - - SootMethod method; - method = clazz.getMethod(getMethodSignature("private").getSubSignature()).get(); - assertTrue(method.isPrivate()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = clazz.getMethod(getMethodSignature("protected").getSubSignature()).get(); - assertTrue(method.isProtected()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = clazz.getMethod(getMethodSignature("public").getSubSignature()).get(); - assertTrue(method.isPublic()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = clazz.getMethod(getMethodSignature("noModifier").getSubSignature()).get(); - assertTrue(method.getModifiers().isEmpty()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - public MethodSignature getMethodSignature(String modifier) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void publicMethod() {
-   *
-   * }
-   * private void privateMethod() {
-   *
-   * }
-   * protected void protectedMethod() {
-   *
-   * }
-   * void noModifierMethod() {
-   *
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: PublicClass", "return").collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java deleted file mode 100644 index 076daa41d25..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ReferenceVarDeclarationTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class ReferenceVarDeclarationTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringVariable", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void stringVariable() {
-   * String str = "Hello World";
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: ReferenceVarDeclaration", "$r1 = \"Hello World\"", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ReferencingThisTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ReferencingThisTest.java deleted file mode 100644 index 2a72f3e2a4c..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ReferencingThisTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class ReferencingThisTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "thisMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * void thisMethod(){
-   * System.out.println(" this keyword as an argument in the constructor call");
-   * ReferencingThis obj= new ReferencingThis(this.a, this.b);
-   * obj.show();
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: ReferencingThis", - "$r1 = ", - "virtualinvoke $r1.(\" this keyword as an argument in the constructor call\")", - "$r2 = new ReferencingThis", - "$i0 = r0.", - "$i1 = r0.", - "specialinvoke $r2.(int,int)>($i0, $i1)", - "virtualinvoke $r2.()", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ReflectionTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ReflectionTest.java deleted file mode 100644 index e6759e5b483..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ReflectionTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class ReflectionTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "checkReflection", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void checkReflection()  throws  NoSuchMethodException{
-   *
-   * Reflection reflection = new Reflection();
-   * Class reflectionClass = Reflection.class;
-   * System.out.println(reflectionClass);
-   * Constructor constructor = reflectionClass.getConstructor();
-   * System.out.println(constructor.getName());
-   * System.out.println(reflectionClass.getMethods().length);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: Reflection", - "$r1 = new Reflection", - "specialinvoke $r1.()>()", - // TODO: [ms] check whether this representation of the class is like intended/correct - "$r2 = class \"Ljava/lang/Class\"", - "$r3 = ", - "virtualinvoke $r3.($r2)", - "$r4 = newarray (java.lang.Class)[0]", - "$r5 = virtualinvoke $r2.($r4)", - "$r6 = ", - "$r7 = virtualinvoke $r5.()", - "virtualinvoke $r6.($r7)", - "$r8 = ", - "$r9 = virtualinvoke $r2.()", - "$i0 = lengthof $r9", - "virtualinvoke $r8.($i0)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StatementEvalTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StatementEvalTest.java deleted file mode 100644 index 3e5d29a8c40..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StatementEvalTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class StatementEvalTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "statementEval", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void statementEval(){
-   * int b = 1;
-   * b = b + (b = 3);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: StatementEval", - "$i0 = 1", - "$i0 = 3", - "$i1 = $i0 + 3", - "$i0 = $i1", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticImportTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticImportTest.java deleted file mode 100644 index 31e7e55bf1b..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticImportTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class StaticImportTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "mathFunctions", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - } - - /** - * - * - *
-   *     public void mathFunctions(){
-   * out.println(sqrt(4));
-   * out.println(pow(2,5));
-   * out.println(ceil(5.6));
-   * out.println("Static import for System.out");
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: StaticImport", - "$r1 = ", - "$d0 = staticinvoke (4)", - "virtualinvoke $r1.($d0)", - "$r2 = ", - "$d1 = staticinvoke (2, 5)", - "virtualinvoke $r2.($d1)", - "$r3 = ", - "$d2 = staticinvoke (5.6)", - "virtualinvoke $r3.($d2)", - "$r4 = ", - "virtualinvoke $r4.(\"Static import for System.out\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticInitializerTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticInitializerTest.java deleted file mode 100644 index df8a3600f96..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticInitializerTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class StaticInitializerTest extends MinimalSourceTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodStaticInitializer", "void", Collections.emptyList()); - } - - public MethodSignature getStaticMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch(sootField -> sootField.getName().equals("i") && sootField.isStatic())); - - final SootMethod staticMethod = loadMethod(getStaticMethodSignature()); - assertTrue(staticMethod.isStatic()); - assertJimpleStmts(staticMethod, expectedBodyStmtsOfClinit()); - } - - /** - * - * - *
-   * static int i=5;
-   *
-   *     static{
-   *         if(i>4)
-   *         {
-   *             i=4;
-   *         }
-   *     }
-   *    
- */ - public List expectedBodyStmtsOfClinit() { - return Stream.of( - " = 5", - "$i0 = ", - "$z0 = $i0 > 4", - "if $z0 == 0 goto label1", - " = 4", - "goto label1", - "label1:", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     static void methodStaticInitializer(){
-   * System.out.println(i);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "$r0 = ", - "$i0 = ", - "virtualinvoke $r0.($i0)", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticMethodInvocationTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticMethodInvocationTest.java deleted file mode 100644 index 300e7284c1b..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticMethodInvocationTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author: Hasitha Rajapakse * */ -@Category(Java8Test.class) -public class StaticMethodInvocationTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticMethodInvocation", "void", Collections.emptyList()); - } - - /** - *
-   * public void staticMethodInvocation(){
-   * StaticMethodInvocation.staticmethod();
-   * }
-   * }
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: StaticMethodInvocation",
-            "staticinvoke ()",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticMethodTest.java
deleted file mode 100644
index a51bc2b0b52..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticMethodTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*Author Kaustubh Kelkar*/
-
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertTrue;
-
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-
-/** @author Kaustubh Kelkar */
-public class StaticMethodTest extends MinimalSourceTestSuiteBase {
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "staticMethod", "void", Collections.emptyList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method1 = loadMethod(getMethodSignature());
-    assertJimpleStmts(method1, expectedBodyStmts());
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-    assertTrue(method.isStatic());
-  }
-
-  /**
-   *
-   *
-   * 
-   *     static void staticMethod(){
-   * System.out.println("static method");
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "$r0 = ", - "virtualinvoke $r0.(\"static method\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticVariableTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticVariableTest.java deleted file mode 100644 index 25cf1440852..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StaticVariableTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class StaticVariableTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticVariable", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - element -> { - return element.getName().equals("num") && element.isStatic(); - })); - } - - /** - * - * - *
-   *     public static void staticVariable(){
-   * System.out.println(num);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "$r0 = ", - "$i0 = ", - "virtualinvoke $r0.($i0)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StringConcatenationTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StringConcatenationTest.java deleted file mode 100644 index 1119568cdad..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StringConcatenationTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class StringConcatenationTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void stringConcatenation(){
-   * String str = "the" + "string";
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: StringConcatenation", - "$r2 = new java.lang.StringBuilder", - "specialinvoke $r2.(java.lang.String)>(\"the\")", - "$r3 = virtualinvoke $r2.(\"string\")", - "$r1 = virtualinvoke $r3.()", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java deleted file mode 100644 index f99e7181f72..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/StringWithUnicodeCharTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class StringWithUnicodeCharTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringWithUnicodeChar", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void stringWithUnicodeChar(){
-   * String str = "\u0024"+"123";
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: StringWithUnicodeChar", - "$r2 = new java.lang.StringBuilder", - "specialinvoke $r2.(java.lang.String)>(\"$\")", - "$r3 = virtualinvoke $r2.(\"123\")", - "$r1 = virtualinvoke $r3.()", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SubClassShadowingTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SubClassShadowingTest.java deleted file mode 100644 index 301fdcbe303..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SubClassShadowingTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertEquals; - -import categories.Java8Test; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.Value; -import de.upb.swt.soot.core.jimple.common.ref.JInstanceFieldRef; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.jimple.common.stmt.Stmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class SubClassShadowingTest extends MinimalSourceTestSuiteBase { - - SootMethod sootMethod = loadMethod(getMethodSignature()); - Body methodBody = sootMethod.getBody(); - - /** Test: How many Locals with ClassType {@link java.lang.String} */ - @Test - public void testNumOfLocalsWithString() { - Set locals = methodBody.getLocals(); - Set stringLocals = - locals.stream() - .filter(local -> local.getType().toString().equals("java.lang.String")) - .collect(Collectors.toSet()); - assertEquals(3, stringLocals.size()); - } - - /** Test: Locals--info are from different class */ - @Test - public void testClassesOfStringLocalAreDifferent() { - List stmts = methodBody.getStmts(); - Set classTypes = new HashSet(); - for (Stmt stmt : stmts) { - if (stmt instanceof JAssignStmt) { - final Value rightOp = ((JAssignStmt) stmt).getRightOp(); - if (rightOp instanceof JInstanceFieldRef) { - final ClassType declClassType = - ((JInstanceFieldRef) rightOp).getFieldSignature().getDeclClassType(); - classTypes.add(declClassType); - } - } - } - assertEquals(2, classTypes.size()); - } - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), - "printInfo", - "void", - Collections.singletonList("java.lang.String")); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SubClassTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SubClassTest.java deleted file mode 100644 index 951091459df..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SubClassTest.java +++ /dev/null @@ -1,85 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class SubClassTest extends MinimalSourceTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "subclassMethod", "void", Collections.emptyList()); - } - - /** @returns the method signature needed for second method in testCase */ - public MethodSignature getMethodSignature1() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void subclassMethod() {
-   *         aa=10;
-   *         bb=20;
-   *         cc=30;
-   *         dd=40;
-   *     }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: SubClass", - "r0. = 10", - "r0. = 20", - "r0. = 30", - "r0. = 40", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   *     public void superclassMethod(){
-   *         super.superclassMethod();
-   *         a=100;
-   *         b=200;
-   *         c=300;
-   *    }
-   * 
- */ - public List expectedBodyStmts1() { - return Stream.of( - "r0 := @this: SubClass", - "specialinvoke r0.()", - "r0. = 100", - "r0. = 200", - "r0. = 300", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getMethodSignature1()); - assertJimpleStmts(method, expectedBodyStmts1()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(sootClass.getSuperclass().get().getClassName().equals("SuperClass")); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SuperClassTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SuperClassTest.java deleted file mode 100644 index 6a74ea15fe1..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SuperClassTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class SuperClassTest extends MinimalSourceTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void superclassMethod() {
-   * a=10;
-   * b=20;
-   * c=30;
-   * d=40;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: SuperClass", - "r0. = 10", - "r0. = 20", - "r0. = 30", - "r0. = 40", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SwitchCaseStatementTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SwitchCaseStatementTest.java deleted file mode 100644 index 582bcf89f2f..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SwitchCaseStatementTest.java +++ /dev/null @@ -1,281 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; -import org.junit.experimental.categories.Category; - -/** - * @author Hasitha Rajapakse - * @author Kaustubh Kelkar - */ -@Category(Java8Test.class) -public class SwitchCaseStatementTest extends MinimalSourceTestSuiteBase { - - @Ignore - // FIXME: [ms] only 3 successor flows from switch but 4 needed - public void switchCaseStatementEnumKey() { - SootMethod method = loadMethod(getMethodSignature("switchCaseStatementEnum")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: SwitchCaseStatement", - "$r1 = ", - "$r2 = \"\"", - "$r3 = ", - "if $r1 == $r3 goto label1", - "$r4 = ", - "if $r1 == $r4 goto label2", - "goto label3", - "label1:", - "$r5 = ", - "$r2 = \"red\"", - "goto label4", - "label2:", - "$r6 = ", - "$r2 = \"green\"", - "goto label4", - "label3:", - "$r2 = \"invalid\"", - "goto label4", - "label4:", - "return")); - } - - @Ignore - public void testSwitchWithInt() { - // FIXME: [ms] Jimple is not correct - // 1. multiple goto labels are null - // 2. default label is missing - // 3. order of statements is not correct: the assignment of case 2 is after *goto label* and - // before another label - // 4. $r1 = null (refers to "String str;" ) is NullType; current state: set it to UnknownType - - SootMethod method = loadMethod(getMethodSignature("switchCaseStatementInt")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: SwitchCaseStatement", - "$i0 = 5", - "$u0 = null", - "switch($i0)", - "case 1: goto label1", - "case 2: goto label2", - "case 3: goto label3", - "default: goto label4", - "label1:", - "$u0 = \"one\"", - "goto label5", - "label2:", - "$u0 = \"two\"", - "goto label5", - "label3:", - "$u0 = \"three\"", - "goto label5", - "label4:", - "$u0 = \"invalid\"", - "label5:", - "return")); - } - - @Ignore - public void testSwitchCaseWithoutDefault() { - // FIXME: [ms] Jimple is not correct: target labels are wrong and jumped code has an offset by 1 - // another stmt - SootMethod method = loadMethod(getMethodSignature("switchCaseWithoutDefault")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: SwitchCaseStatement", - "$i0 = 6", - "$u0 = null", - "switch($i0)", - "case 1: goto label1", - "case 2: goto label2", - "case 3: goto label3", - "default: goto label4", - "label1:", - "$u0 = \"one\"", - "goto label4", - "label2:", - "$u0 = \"two\"", - "goto label4", - "label3:", - "$u0 = \"three\"", - "label4:", - "return")); - } - - @Ignore - public void testSwitchCaseGroupedTargets() { - // FIXME: [ms] Jimple is not correct; stmt in case as well as the target labels have an offset - // by one - SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargets")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: SwitchCaseStatement", - "$i0 = 7", - "$u0 = null", - "switch($i0)", - "case 1: goto label1", - "case 2: goto label1", - "case 3: goto label2", - "default: goto label3", - "label1:", - "$u0 = \"first\"", - "goto label4", - "label2:", - "$u0 = \"second\"", - "goto label4", - "label4:", - "return")); - } - - @Ignore - public void testSwitchCaseGroupedTargetsDefault() { - SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargetsDefault")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: SwitchCaseStatement", - "$i0 = 8", - "$u0 = null", - "switch($i0)", - "case 1: goto label1", - "case 2: goto label1", - "case 3: goto label2", - "default: goto label3", - "label1:", - "$u0 = \"first\"", - "goto label4", - "label2:", - "$u0 = \"second\"", - "goto label4", - "label3:", - "$u0 = \"other\"", - "label4:", - "return")); - } - - @Ignore - // FIXME:[ms] buggy jimple from sourcecodefrontend - public void switchCaseStatementCaseIncludingIf() { - SootMethod method = loadMethod(getMethodSignature("switchCaseStatementCaseIncludingIf")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: SwitchCaseStatement", - "$i0 = 2", - "$i1 = 0", - "switch($i0)", - "case 1: goto label4", - "case 2: goto [?= null]", - "case 3: goto [?= null]", - "default: goto label1", - "label1:", - "$i1 = 1", - "$z0 = $i0 == 666", - "if $z0 == 0 goto label2", - "$i1 = 11", - "goto label3", - "label2:", - "$i1 = 12", - "label3:", - "goto label5", - "$i1 = 2", - "goto label5", - "$i1 = 3", - "label4:", - "goto label5", - "label5:", - "return")); - } - - @Ignore - // FIXME:[ms] buggy jimple from sourcecodefrontend - public void switchCaseStatementCaseIncludingSwitch() { - SootMethod method = loadMethod(getMethodSignature("switchWithSwitch")); - assertJimpleStmts( - method, - expectedBodyStmts( - "r0 := @this: SwitchCaseStatement", - "$i0 = 2", - "$i1 = 0", - "switch($i0)", - "case 1: goto label2", - "case 2: goto [?= null]", - "case 3: goto [?= null]", - "default: goto label1", - "label1:", - "switch($i0)", - "case 10: goto label4", - "case 20: goto [?= null]", - "default: goto label3", - "label2:", - "$i1 = 11", - "label3:", - "goto label4", - "$i1 = 12", - "goto label4", - "label4:", - "goto label8", - "$i1 = 2", - "switch($i0)", - "case 20: goto label6", - "case 30: goto [?= null]", - "case 40: goto [?= null]", - "default: goto label5", - "$i1 = 220", - "goto label7", - "label5:", - "$i1 = 230", - "goto label7", - "$i1 = 240", - "label6:", - "goto label7", - "label7:", - "goto label8", - "$i1 = 3", - "goto label8", - "label8:", - "return")); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - public List expectedBodyStmtsSwitchCaseStatementEnum() { - return Stream.of( - "r0 := @this: SwitchCaseStatement", - "$r1 = \"RED\"", - "$r2 = \"\"", - "$r3 = staticinvoke ($r1)", - "$r4 = ", - "if $r3 == $r4 goto label1", - "$r5 = ", - "if $r3 == $r5 goto label2", - "goto label3", - "label1:", - "$r6 = ", - "$r2 = \"color red detected\"", - "goto label4", - "label2:", - "$r7 = ", - "$r2 = \"color green detected\"", - "goto label4", - "label3:", - "$r2 = \"invalid color\"", - "goto label4", - "label4:", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SynchronizedBlockTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SynchronizedBlockTest.java deleted file mode 100644 index ae1d8a80db5..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SynchronizedBlockTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class SynchronizedBlockTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "run", "void", Collections.emptyList()); - } - - /**
-   * public void run()
-   * {
-   * synchronized(msg)
-   * {
-   * System.out.println(msg);
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: SynchronizedBlock",
-            "label1:",
-            "$r1 = r0.",
-            "entermonitor $r1",
-            "$r2 = ",
-            "$r3 = r0.",
-            "virtualinvoke $r2.($r3)",
-            "goto label3",
-            "label2:",
-            "$r4 := @caughtexception",
-            "exitmonitor $r1",
-            "throw $r4",
-            "label3:",
-            "exitmonitor $r1",
-            "return",
-            "catch java.lang.Throwable from label1 to label2 with label2")
-        .collect(Collectors.toCollection(ArrayList::new));
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SynchronizedMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SynchronizedMethodTest.java
deleted file mode 100644
index 3edd2d3407e..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/SynchronizedMethodTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import static org.junit.Assert.assertTrue;
-
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-
-public class SynchronizedMethodTest extends MinimalSourceTestSuiteBase {
-
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "run", "void", Collections.emptyList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-    assertTrue(method.isSynchronized());
-  }
-
-  /**  
-   * public synchronized void run()
-   * {
-   * System.out.println("test");
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: SynchronizedMethod",
-            "$r1 = ",
-            "virtualinvoke $r1.(\"test\")",
-            "return")
-        .collect(Collectors.toCollection(ArrayList::new));
-  }
-}
diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/TernaryOperatorTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/TernaryOperatorTest.java
deleted file mode 100644
index a1b9bf8ea3f..00000000000
--- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/TernaryOperatorTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Test;
-
-/** @author Kaustubh Kelkar */
-public class TernaryOperatorTest extends MinimalSourceTestSuiteBase {
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "ternaryOperatorMethod", "boolean", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   *     boolean ternaryOperatorMethod(){
-   * return num < 0 ? false : true;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: TernaryOperator", - "$i0 = r0.", - "$z0 = $i0 < 0", - "if $z0 == 0 goto label1", - "$z1 = 0", - "goto label2", - "label1:", - "$z1 = 1", - "label2:", - "return $z1") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java deleted file mode 100644 index f9077a22e6c..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/ThrowExceptionMethodTest.java +++ /dev/null @@ -1,79 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class ThrowExceptionMethodTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "divideByZero", "void", Collections.emptyList()); - } - - public MethodSignature getThrowCustomExceptionSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "throwCustomException", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     void divideByZero() throws ArithmeticException{
-   * 			int i=8/0;
-   *        }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: ThrowExceptionMethod", "$i0 = 8 / 0", "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public MethodSignature getMethodSignature1() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "throwCustomException", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     void throwCustomException() throws CustomException {
-   * 		throw new CustomException("Custom Exception");
-   *        }
-   * 
- */ - public List expectedBodyStmts1() { - return Stream.of( - "r0 := @this: ThrowExceptionMethod", - "$r1 = new CustomException", - "specialinvoke $r1.(java.lang.String)>(\"Custom Exception\")", - "throw $r1") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Ignore - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - assertTrue( - method.getExceptionSignatures().stream() - .anyMatch(classType -> classType.getClassName().equals("ArithmeticException"))); - method = loadMethod(getMethodSignature1()); - assertJimpleStmts(method, expectedBodyStmts1()); - assertTrue( - method.getExceptionSignatures().stream() - .anyMatch(classType -> classType.getClassName().equals("CustomException"))); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/TransientVariableTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/TransientVariableTest.java deleted file mode 100644 index aa317b7b3de..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/TransientVariableTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class TransientVariableTest extends MinimalSourceTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "transientVariable", "void", Collections.emptyList()); - } - - @Ignore - public void testTransientVar() { - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> - sootField.getName().equals("transientVar") - && sootField.getModifiers().contains(Modifier.TRANSIENT))); - } - - /** - * - * - *
-   *     public void transientVariable(){
-   * System.out.println(transientVar);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: TransientVariable", - "$r1 = ", - "$i0 = r0.", - "virtualinvoke $r1.($i0)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/TryCatchFinallyTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/TryCatchFinallyTest.java deleted file mode 100644 index 1c7cfc5eb21..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/TryCatchFinallyTest.java +++ /dev/null @@ -1,366 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Hasitha Rajapakse */ -@Category(Java8Test.class) -public class TryCatchFinallyTest extends MinimalSourceTestSuiteBase { - - @Test - public void tryCatch() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatch")); - assertJimpleStmts( - sootMethod, - expectedBodyStmts( - "r0 := @this: TryCatchFinally", - "label1:", - "$r1 = \"\"", - "$r1 = \"try\"", - "$r2 = ", - "virtualinvoke $r2.($r1)", - "goto label3", - "label2:", - "$r3 := @caughtexception", - "$r4 = $r3", - "$r1 = \"catch\"", - "$r5 = ", - "virtualinvoke $r5.($r1)", - "label3:", - "return", - "catch java.lang.Exception from label1 to label2 with label2")); - } - - @Test - public void tryCatchFinally() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinally")); - assertJimpleStmts( - sootMethod, - expectedBodyStmts( - "r0 := @this: TryCatchFinally", - "label1:", - "$r1 = \"\"", - "$r1 = \"try\"", - "$r2 = ", - "virtualinvoke $r2.($r1)", - "goto label4", - "label2:", - "$r3 := @caughtexception", - "$r4 = $r3", - "$r1 = \"catch\"", - "$r5 = ", - "virtualinvoke $r5.($r1)", - "goto label4", - "label3:", - "$r6 := @caughtexception", - "$r1 = \"finally\"", - "$r7 = ", - "virtualinvoke $r7.($r1)", - "throw $r6", - "label4:", - "$r1 = \"finally\"", - "$r8 = ", - "virtualinvoke $r8.($r1)", - "return", - "catch java.lang.Exception from label1 to label2 with label2", - "catch java.lang.Throwable from label1 to label3 with label3")); - } - - @Test - public void tryCatchCombined() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchCombined")); - assertJimpleStmts( - sootMethod, - expectedBodyStmts( - "r0 := @this: TryCatchFinally", - "label1:", - "$r1 = \"\"", - "$r1 = \"try\"", - "$r2 = ", - "virtualinvoke $r2.($r1)", - "goto label3", - "label2:", - "$r3 := @caughtexception", - "$r4 = $r3", - "$r1 = \"catch\"", - "$r5 = ", - "virtualinvoke $r5.($r1)", - "label3:", - "return", - "catch java.lang.RuntimeException from label1 to label2 with label2", - "catch java.lang.StackOverflowError from label1 to label2 with label2")); - } - - @Test - public void tryCatchFinallyCombined() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyCombined")); - assertJimpleStmts( - sootMethod, - expectedBodyStmts( - "r0 := @this: TryCatchFinally", - "label1:", - "$r1 = \"\"", - "$r1 = \"try\"", - "$r2 = ", - "virtualinvoke $r2.($r1)", - "goto label4", - "label2:", - "$r3 := @caughtexception", - "$r4 = $r3", - "$r1 = \"catch\"", - "$r5 = ", - "virtualinvoke $r5.($r1)", - "goto label4", - "label3:", - "$r6 := @caughtexception", - "$r1 = \"finally\"", - "$r7 = ", - "virtualinvoke $r7.($r1)", - "throw $r6", - "label4:", - "$r1 = \"finally\"", - "$r8 = ", - "virtualinvoke $r8.($r1)", - "return", - "catch java.lang.RuntimeException from label1 to label2 with label2", - "catch java.lang.StackOverflowError from label1 to label2 with label2", - "catch java.lang.Throwable from label1 to label3 with label3")); - } - - @Test - public void tryCatchNested() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNested")); - assertJimpleStmts( - sootMethod, - expectedBodyStmts( - "r0 := @this: TryCatchFinally", - "$r1 = \"\"", - "$r1 = \"1try\"", - "$r2 = ", - "virtualinvoke $r2.($r1)", - "label1:", - "$r1 = \"2try\"", - "$r3 = ", - "virtualinvoke $r3.($r1)", - "goto label3", - "label2:", - "$r4 := @caughtexception", - "$r5 = $r4", - "$r1 = \"2catch\"", - "$r6 = ", - "virtualinvoke $r6.($r1)", - "label3:", - "goto label5", - "label4:", - "$r7 := @caughtexception", - "$r8 = $r7", - "$r1 = \"1catch\"", - "$r9 = ", - "virtualinvoke $r9.($r1)", - "label5:", - "return", - "catch java.lang.Exception from label1 to label2 with label2", - "catch java.lang.Exception from label1 to label4 with label4")); - } - - @Test - public void tryCatchFinallyNested() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNested")); - assertJimpleStmts( - sootMethod, - expectedBodyStmts( - "r0 := @this: TryCatchFinally", - "$r1 = \"\"", - "$r1 = \"1try\"", - "$r2 = ", - "virtualinvoke $r2.($r1)", - "label1:", - "$r1 = \"2try\"", - "$r3 = ", - "virtualinvoke $r3.($r1)", - "goto label3", - "label2:", - "$r4 := @caughtexception", - "$r5 = $r4", - "$r1 = \"2catch\"", - "$r6 = ", - "virtualinvoke $r6.($r1)", - "label3:", - "goto label6", - "label4:", - "$r7 := @caughtexception", - "$r8 = $r7", - "$r1 = \"1catch\"", - "$r9 = ", - "virtualinvoke $r9.($r1)", - "goto label6", - "label5:", - "$r10 := @caughtexception", - "$r1 = \"1finally\"", - "$r11 = ", - "virtualinvoke $r11.($r1)", - "throw $r10", - "label6:", - "$r1 = \"1finally\"", - "$r12 = ", - "virtualinvoke $r12.($r1)", - "return", - "catch java.lang.Exception from label1 to label2 with label2", - "catch java.lang.Exception from label1 to label4 with label4", - "catch java.lang.Throwable from label1 to label5 with label5")); - } - - @Test - public void tryCatchNestedInCatch() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNestedInCatch")); - assertJimpleStmts( - sootMethod, - expectedBodyStmts( - "r0 := @this: TryCatchFinally", - "label1:", - "$r1 = \"\"", - "$r1 = \"1try\"", - "$r2 = ", - "virtualinvoke $r2.($r1)", - "goto label5", - "label2:", - "$r3 := @caughtexception", - "$r4 = $r3", - "$r1 = \"1catch\"", - "$r5 = ", - "virtualinvoke $r5.($r1)", - "label3:", - "$r1 = \"2try\"", - "$r6 = ", - "virtualinvoke $r6.($r1)", - "goto label5", - "label4:", - "$r7 := @caughtexception", - "$r8 = $r7", - "$r1 = \"2catch\"", - "$r9 = ", - "virtualinvoke $r9.($r1)", - "label5:", - "return", - "catch java.lang.Exception from label1 to label2 with label2", - "catch java.lang.Exception from label3 to label4 with label4")); - } - - @Test - public void tryCatchFinallyNestedInCatch() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInCatch")); - assertJimpleStmts( - sootMethod, - expectedBodyStmts( - "r0 := @this: TryCatchFinally", - "label1:", - "$r1 = \"\"", - "$r1 = \"1try\"", - "$r2 = ", - "virtualinvoke $r2.($r1)", - "goto label5", - "label2:", - "$r3 := @caughtexception", - "$r4 = $r3", - "$r1 = \"1catch\"", - "$r5 = ", - "virtualinvoke $r5.($r1)", - "goto label6", - "label3:", - "$r6 := @caughtexception", - "$r1 = \"1finally\"", - "$r7 = ", - "virtualinvoke $r7.($r1)", - "throw $r6", - "label4:", - "$r9 := @caughtexception", - "$r10 = $r9", - "$r1 = \"2catch\"", - "$r11 = ", - "virtualinvoke $r11.($r1)", - "label5:", - "$r1 = \"1finally\"", - "$r12 = ", - "virtualinvoke $r12.($r1)", - "return", - "label6:", - "$r1 = \"2try\"", - "$r8 = ", - "virtualinvoke $r8.($r1)", - "goto label5", - "catch java.lang.Exception from label1 to label2 with label2", - "catch java.lang.Throwable from label1 to label3 with label3", - "catch java.lang.Exception from label6 to label4 with label4")); - } - - @Test - public void tryCatchFinallyNestedInFinally() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInFinally")); - assertJimpleStmts( - sootMethod, - expectedBodyStmts( - "r0 := @this: TryCatchFinally", - "label01:", - "$r1 = \"\"", - "$r1 = \"1try\"", - "$r2 = ", - "virtualinvoke $r2.($r1)", - "goto label09", - "label02:", - "$r3 := @caughtexception", - "$r4 = $r3", - "$r1 = \"1catch\"", - "$r5 = ", - "virtualinvoke $r5.($r1)", - "goto label09", - "label03:", - "$r6 := @caughtexception", - "$r1 = \"1finally\"", - "$r7 = ", - "virtualinvoke $r7.($r1)", - "label04:", - "$r1 = \"2try\"", - "$r8 = ", - "virtualinvoke $r8.($r1)", - "goto label06", - "label05:", - "$r9 := @caughtexception", - "$r10 = $r9", - "$r1 = \"2catch\"", - "$r11 = ", - "virtualinvoke $r11.($r1)", - "label06:", - "throw $r6", - "label07:", - "$r14 := @caughtexception", - "$r15 = $r14", - "$r1 = \"2catch\"", - "$r16 = ", - "virtualinvoke $r16.($r1)", - "label08:", - "return", - "label09:", - "$r1 = \"1finally\"", - "$r12 = ", - "virtualinvoke $r12.($r1)", - "label10:", - "$r1 = \"2try\"", - "$r13 = ", - "virtualinvoke $r13.($r1)", - "goto label08", - "catch java.lang.Exception from label01 to label02 with label02", - "catch java.lang.Throwable from label01 to label03 with label03", - "catch java.lang.Throwable from label04 to label05 with label05", - "catch java.lang.Exception from label10 to label07 with label07")); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/UnaryOpIntTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/UnaryOpIntTest.java deleted file mode 100644 index 95644eb6e43..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/UnaryOpIntTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class UnaryOpIntTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodUnaryOpInt", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - /** - * TODO Do we need to check the type of variable as int? - * assertTrue(getFields().stream().anyMatch(sootField -> {return - * sootField.getType().equals("int");})); - */ - } - - /** - * - * - *
-   *     void methodUnaryOpInt(){
-   * int k = i+j;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: UnaryOpInt", - "$i0 = r0.", - "$i1 = r0.", - "$i2 = $i0 + $i1", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/UncheckedCastTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/UncheckedCastTest.java deleted file mode 100644 index f74032e3875..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/UncheckedCastTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class UncheckedCastTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "uncheckedCastDisplay", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void uncheckedCastDisplay(){
-   * List list = Arrays.asList(5,8,9,6);
-   * List intList= list;
-   * System.out.println(intList);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: UncheckedCast", - "$r1 = newarray (java.lang.Object)[4]", - "$r1[0] = 5", - "$r1[1] = 8", - "$r1[2] = 9", - "$r1[3] = 6", - "$r2 = staticinvoke ($r1)", - "$r3 = $r2", - "$r4 = ", - "virtualinvoke $r4.($r3)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/UnicodeMethodNameTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/UnicodeMethodNameTest.java deleted file mode 100644 index d03aa896dc9..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/UnicodeMethodNameTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class UnicodeMethodNameTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public class UnicodeMethodName {
-   *     public void αρετη(){
-   *         System.out.println("this is αρετη method");
-   *     }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: αρετη", - "$r1 = ", - "virtualinvoke $r1.(\"this is αρετη class\")", - "return") - .collect(Collectors.toList()); - } - - @Ignore - public void test() { - // this only works on Unicode filesystems - /** - * Exception in thread "main" java.nio.file.InvalidPathException: Illegal char at index 1: - * a?et?.java - */ - SootClass sootClass = loadClass(getDeclaredClassSignature()); - System.out.println(sootClass.getClassSource().getClassType().getClassName()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VariableDeclarationTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VariableDeclarationTest.java deleted file mode 100644 index 0c2307043e0..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VariableDeclarationTest.java +++ /dev/null @@ -1,170 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static de.upb.swt.soot.core.util.Utils.filterJimple; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class VariableDeclarationTest extends MinimalSourceTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("shortVariable")); - assertJimpleStmts(method, expectedBodyStmtsShortVariable()); - - method = loadMethod(getMethodSignature("byteVariable")); - assertJimpleStmts(method, expectedBodyStmtsByteVariable()); - - method = loadMethod(getMethodSignature("charVariable")); - assertJimpleStmts(method, expectedBodyStmtsCharVariable()); - - method = loadMethod(getMethodSignature("intVariable")); - assertJimpleStmts(method, expectedBodyStmtsIntVariable()); - - method = loadMethod(getMethodSignature("longVariable")); - assertJimpleStmts(method, expectedBodyStmtsLongVariable()); - - method = loadMethod(getMethodSignature("floatVariable")); - assertJimpleStmts(method, expectedBodyStmtsFloatVariable()); - - method = loadMethod(getMethodSignature("doubleVariable")); - assertJimpleStmts(method, expectedBodyStmtsDoubleVariable()); - } - - @Ignore - public void classTypeDefWithoutAssignment() { - // TODO: [ms] fix: Type of Local $r1 is should be (java.lang.)String - // TODO [kk]: Actual :[unknown $u0, VariableDeclaration r0, r0 := @this: VariableDeclaration, - // $u0 = null, return] - SootMethod method = loadMethod(getMethodSignature("classTypeDefWithoutAssignment")); - Body body = method.getBody(); - assertNotNull(body); - - List actualStmts = filterJimple(body.toString()); - assertEquals( - expectedBodyStmts( - "java.lang.String $r1", - "VariableDeclaration r0", - "r0 := @this: VariableDeclaration", - "$r1 = null", - "return"), - actualStmts); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void shortVariable() {
-   *         short a = 10;
-   *     }
-   * 
- */ - public List expectedBodyStmtsShortVariable() { - return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 10", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void byteVariable() {
-   *         byte b = 0;
-   *     }
-   * 
- */ - public List expectedBodyStmtsByteVariable() { - return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 0", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void charVariable() {
-   *         char c = 'a';
-   *     }
-   * 
- */ - public List expectedBodyStmtsCharVariable() { - return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 97", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void intVariable() {
-   *         int d = 512;
-   *     }
-   * 
- */ - public List expectedBodyStmtsIntVariable() { - return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 512", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void longVariable() {
-   *         long e = 123456789;
-   *     }
-   * 
- */ - public List expectedBodyStmtsLongVariable() { - return Stream.of("r0 := @this: VariableDeclaration", "$i0 = 123456789", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void floatVariable() {
-   *         float f = 3.14f;
-   *     }
-   * 
- */ - public List expectedBodyStmtsFloatVariable() { - return Stream.of("r0 := @this: VariableDeclaration", "$f0 = 3.14F", "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     public void doubleVariable() {
-   *         double g = 1.96969654d;
-   *     }
-   * 
- */ - public List expectedBodyStmtsDoubleVariable() { - return Stream.of("r0 := @this: VariableDeclaration", "$d0 = 1.96969654", "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VariableShadowingTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VariableShadowingTest.java deleted file mode 100644 index 6e957ee55ed..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VariableShadowingTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class VariableShadowingTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "variableShadowing", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void variableShadowing(){
-   * int val = num;
-   * int num = 10;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: VariableShadowing", - "$i0 = r0.", - "$i1 = 10", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VirtualMethodTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VirtualMethodTest.java deleted file mode 100644 index 0448cf819af..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VirtualMethodTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class VirtualMethodTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "virtualMethodDemo", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void virtualMethodDemo(){
-   * Employee e1= new TempEmployee(1500,150);
-   * Employee e2= new RegEmployee(1500,500);
-   * System.out.println(e1.getSalary());
-   * System.out.println(e2.getSalary());
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: VirtualMethod", - "$r1 = new TempEmployee", - "specialinvoke $r1.(int,int)>(1500, 150)", - "$r2 = new RegEmployee", - "specialinvoke $r2.(int,int)>(1500, 500)", - "$r3 = ", - "$i0 = virtualinvoke $r1.()", - "virtualinvoke $r3.($i0)", - "$r4 = ", - "$i1 = virtualinvoke $r2.()", - "virtualinvoke $r4.($i1)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VolatileVariableTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VolatileVariableTest.java deleted file mode 100644 index 48144b39eee..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/VolatileVariableTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class VolatileVariableTest extends MinimalSourceTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "increaseCounter", "int", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> { - return sootField.getName().equals("counter") - && sootField.getModifiers().contains(Modifier.VOLATILE); - })); - } - - /** - * - * - *
-   *     public int increaseCounter(){
-   * return counter++;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: VolatileVariable", - "$i0 = r0.", - "$i1 = $i0 + 1", - "r0. = $i1", - "return $i0") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/WhileLoopTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/WhileLoopTest.java deleted file mode 100644 index a10e0a3596b..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/WhileLoopTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/** @author: Hasitha Rajapakse */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class WhileLoopTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "whileLoop", "void", Collections.emptyList()); - } - - /**
-   * public void whileLoop(){
-   * int num = 10;
-   * int i = 0;
-   * while(num>i){
-   * num--;
-   * }
-   * }
-   *
-   * 
*/
-  @Override
-  public List expectedBodyStmts() {
-    return Stream.of(
-            "r0 := @this: WhileLoop",
-            "$i0 = 10",
-            "$i1 = 0",
-            "label1:",
-            "$z0 = $i0 > $i1",
-            "if $z0 == 0 goto label2",
-            "$i2 = $i0",
-            "$i3 = $i0 - 1",
-            "$i0 = $i3",
-            "goto label1",
-            "label2:",
-            "return")
-        .collect(Collectors.toList());
-  }
-
-  @Test
-  public void test() {
-    SootMethod method = loadMethod(getMethodSignature());
-    assertJimpleStmts(method, expectedBodyStmts());
-  }
-}
diff --git "a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" "b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java"
deleted file mode 100644
index c813bc268ef..00000000000
--- "a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java"
+++ /dev/null
@@ -1,51 +0,0 @@
-package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java6;
-
-import categories.Java8Test;
-import de.upb.swt.soot.core.model.SootMethod;
-import de.upb.swt.soot.core.signatures.MethodSignature;
-import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-import org.junit.Ignore;
-import org.junit.experimental.categories.Category;
-
-/** @author Kaustubh Kelkar */
-@Category(Java8Test.class)
-public class αρετηTest extends MinimalSourceTestSuiteBase {
-  @Override
-  public MethodSignature getMethodSignature() {
-    return identifierFactory.getMethodSignature(
-        getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList());
-  }
-
-  /**
-   *
-   *
-   * 
-   * public class αρετη {
-   *     public void αρετηAsClassName(){
-   *         System.out.println("this is αρετη class");
-   *     }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - // TODO: likely the Jimple lines need a change when it works until here - return Stream.of( - "l0 := @this: \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7", - "$stack1 = ", - "virtualinvoke $stack1.(\"this is \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7 class\")", - "return") - .collect(Collectors.toList()); - } - - @Ignore - public void test() { - // fails due to missing unicode support in some filesystems - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java deleted file mode 100644 index da046296694..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/BinaryLiteralInIntTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java7; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author: Hasitha Rajapakse * */ -@Category(Java8Test.class) -public class BinaryLiteralInIntTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "binaryLiteralInInt", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void binaryLiteralInInt(){
-   * int a = 0b10100001010001011010000101000101;
-   * int b = 0b101;
-   * int c = 0B101;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: BinaryLiteralInInt", "$i0 = -1589272251", "$i1 = 5", "$i2 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/MultiTryCatchTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/MultiTryCatchTest.java deleted file mode 100644 index a7cf7a177ce..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/MultiTryCatchTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java7; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class MultiTryCatchTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - @Override - public List expectedBodyStmts() { - // ms: weird jimple: sequence of gotos - underlying wala instructions have the same anomaly! - return Stream.of( - "r0 := @this: MultiTryCatch", - "label1:", - "$r1 = new java.io.BufferedReader", - "$r2 = new java.io.FileReader", - "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", - "specialinvoke $r1.(java.io.Reader)>($r2)", - "$r3 = \"\"", - "$i0 = 10 / 5", - "$r4 = ", - "virtualinvoke $r4.($i0)", - "label2:", - "$r5 = virtualinvoke $r1.()", - "$r3 = $r5", - "$z0 = $r5 != null", - "if $z0 == 0 goto label3", - "$r6 = ", - "virtualinvoke $r6.($r3)", - "goto label2", - "label3:", - "goto label5", - "label4:", - "$r7 := @caughtexception", - "$r8 = $r7", - "label5:", - "virtualinvoke $r1.()", - "goto label7", - "label6:", - "$r9 := @caughtexception", - "$r10 = $r9", - "label7:", - "return", - "catch java.io.IOException from label1 to label4 with label4", - "catch java.lang.NumberFormatException from label1 to label4 with label4", - "catch java.io.IOException from label1 to label6 with label6") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java deleted file mode 100644 index 75d2502fd16..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/SwitchCaseStatementWithStringTest.java +++ /dev/null @@ -1,133 +0,0 @@ -/** - * @author: Markus Schmidt - * @author: Hasitha Rajapakse - */ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java7; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -@Category(Java8Test.class) -public class SwitchCaseStatementWithStringTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "switchCaseStatementString", "void", Collections.emptyList()); - } - - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: SwitchCaseStatementWithString", - "$r1 = \"something\"", - "$i0 = 0", - "$i1 = \"one\"", - "if $r1 == $i1 goto label3", - "$i2 = \"two\"", - "if $r1 == $i2 goto label2", - "$i3 = \"three\"", - "if $r1 == $i3 goto label1", - "goto label4", - "label1:", - "$i0 = 3", - "goto label5", - "label2:", - "$i0 = 2", - "goto label5", - "label3:", - "$i0 = 1", - "goto label5", - "label4:", - "$i4 = 0 - 1", - "$i0 = $i4", - "label5:", - "return") - .collect(Collectors.toList()); - } - - public MethodSignature getMethodSignature2() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "switchCaseStatementInt", "void", Collections.emptyList()); - } - - public List expectedBodyStmts2() { - return Stream.of( - "r0 := @this: SwitchCaseStatementWithString", - "$i0 = 2", - "$u0 = null", - "switch($i0)", - "case 1: goto label1", - "case 2: goto label2", - "case 3: goto label3", - "default: goto label4", - "label1:", - "$u0 = \"number 1 detected\"", - "goto label6", - "label2:", - "$u0 = \"number 2 detected\"", - "goto label6", - "label3:", - "$u0 = \"number 3 detected\"", - "goto label6", - "label4:", - "goto label5", - "label5:", - "$u0 = \"invalid number\"", - "goto label6", - "label6:", - "return") - .collect(Collectors.toList()); - } - - public MethodSignature getMethodSignature3() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "switchCaseStatementEnum", "void", Collections.emptyList()); - } - - public List expectedBodyStmts3() { - return Stream.of( - "r0 := @this: SwitchCaseStatementWithString", - "$r1 = \"RED\"", - "$r2 = \"\"", - "$r3 = staticinvoke ($r1)", - "$r4 = ", - "if $r3 == $r4 goto label2", - "$r5 = ", - "if $r3 == $r5 goto label1", - "goto label3", - "label1:", - "$r7 = ", - "$r2 = \"color green detected\"", - "goto label4", - "label2:", - "$r6 = ", - "$r2 = \"color red detected\"", - "goto label4", - "label3:", - "$r2 = \"invalid color\"", - "goto label4", - "label4:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - - SootMethod method2 = loadMethod(getMethodSignature2()); - assertJimpleStmts(method2, expectedBodyStmts2()); - - SootMethod method3 = loadMethod(getMethodSignature3()); - assertJimpleStmts(method3, expectedBodyStmts3()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/TryWithResourcesTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/TryWithResourcesTest.java deleted file mode 100644 index bc35c745be6..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/TryWithResourcesTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java7; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -/** @author Kaustubh Kelkar */ -public class TryWithResourcesTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: TryWithResources", - "label1:", - "$r1 = new java.io.BufferedReader", - "$r2 = new java.io.FileReader", - "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", - "specialinvoke $r1.(java.io.Reader)>($r2)", - "$r3 = \"\"", - "label2:", - "$r4 = virtualinvoke $r1.()", - "goto label4", - "label3:", - "$r5 := @caughtexception", - "virtualinvoke $r1.()", - "throw $r5", - "label4:", - "$r3 = $r4", - "$z0 = $r4 != null", - "if $z0 == 0 goto label5", - "$r6 = ", - "virtualinvoke $r6.($r3)", - "goto label2", - "label5:", - "virtualinvoke $r1.()", - "return", - "catch java.lang.Throwable from label1 to label3 with label3") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/UnderscoreInIntTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/UnderscoreInIntTest.java deleted file mode 100644 index bda322e3fcf..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java7/UnderscoreInIntTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java7; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author: Hasitha Rajapakse * */ -@Category(Java8Test.class) -public class UnderscoreInIntTest extends MinimalSourceTestSuiteBase { - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "underscoreInInt", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *     public void underscoreInInt(){
-   * int a = 0b0111_1111_1111_1111_1111_1111_1111_1111;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: UnderscoreInInt", "$i0 = 2147483647", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java deleted file mode 100644 index 540828aefe4..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/DefaultMethodInterfaceImplTest.java +++ /dev/null @@ -1,87 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java8; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class DefaultMethodInterfaceImplTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); - } - - public MethodSignature getDefaultMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "defaultInterfaceMethod", "void", Collections.emptyList()); - } - - /** - * - * - *
-   *
-   * public void interfaceMethod(){
-   * System.out.println("Method interfaceMethod() is implemented");
-   * }
-   *
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: DefaultMethodInterfaceImpl", - "$r1 = ", - "virtualinvoke $r1.(\"Method interfaceMethod() is implemented\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** - * - * - *
-   * public void defaultInterfaceMethod(){
-   *
-   * //Add this line after default methods are supported
-   *
-   * //DefaultMethodInterface.super.defaultInterfaceMethod();
-   *
-   * System.out.println("Method defaultInterfaceMethod() is implemented");
-   * };
-   * 
- */ - public List expectedBodyStmts1() { - return Stream.of( - "r0 := @this: DefaultMethodInterfaceImpl", - "$r1 = ", - "virtualinvoke $r1.(\"Method defaultInterfaceMethod() is implemented\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - /** TODO Update the source code once default methods in WALA are supported */ - @Ignore - public void test() { - - assertJimpleStmts(loadMethod(getMethodSignature()), expectedBodyStmts()); - assertJimpleStmts(loadMethod(getDefaultMethodSignature()), expectedBodyStmts1()); - - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getInterfaces().stream() - .anyMatch( - javaClassType -> - javaClassType.getClassName().equalsIgnoreCase("DefaultMethodInterface"))); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java deleted file mode 100644 index 3a961c4ee82..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/MethodAcceptingLamExprTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java8; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class MethodAcceptingLamExprTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "lambdaAsParamMethod", "void", Collections.emptyList()); - } - - @org.junit.Test - @Ignore - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - /** TODO update the expectedBodyStmts when Lambda are supported by Wala */ - - /** - * - * - *
-   *     public void lambdaAsParamMethod(){
-   * //        Percentage percentageValue = (value -> value/100);
-   * //        System.out.println("Percentage : " + percentageValue.calcPercentage(45.0));
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: MethodAcceptingLamExpr", "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/MethodReferenceTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/MethodReferenceTest.java deleted file mode 100644 index b15e952bbcd..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/MethodReferenceTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java8; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -public class MethodReferenceTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodRefMethod", "void", Collections.emptyList()); - } - - /** TODO Update the source code when WALA supports lambda expression */ - @Ignore - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - /** - * - * - *
-   *     public void methodRefMethod(){
-   * System.out.println("Instance Method");
-   * MethodReference obj1 = new MethodReference();
-   *
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: MethodReference", - "$r1 = ", - "virtualinvoke $r1.(\"Instance Method\")", - "$r2 = new MethodReference", - "specialinvoke $r2.()>()", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java deleted file mode 100644 index 3dbf44972ba..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/RepeatingAnnotationsTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java8; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class RepeatingAnnotationsTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "annotaionMethod", "void", Collections.emptyList()); - } - - @Ignore - public void annotationTest() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); - } - - @Override - public List expectedBodyStmts() { - return Stream.of("r0 := @this: RepeatingAnnotations", "$r1 = \"\"", "$r2 = \"\"", "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java deleted file mode 100644 index f338a7f7b2f..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java8/StaticMethodInterfaceImplTest.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java8; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -public class StaticMethodInterfaceImplTest extends MinimalSourceTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), - "methodStaticMethodInterfaceImpl", - "void", - Collections.emptyList()); - } - - private MethodSignature getStaticMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "initStatic", "void", Collections.emptyList()); - } - - /** - * - * - *
-   * public void display(){
-   * System.out.println("Inside display - StaticmethodInterfaceImpl");
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: StaticMethodInterfaceImpl", - "$r1 = ", - "virtualinvoke $r1.(\"Inside display - StaticmethodInterfaceImpl\")", - "return") - .collect(Collectors.toList()); - } - - /** - * - * - *
-   *     static public void initStatic(){
-   * System.out.println("Inside initStatic - StaticmethodInterface");
-   * }
-   * 
- */ - public List expectedBodyStmts1() { - return Stream.of( - "$r0 = ", - "virtualinvoke $r0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", - "return") - .collect(Collectors.toList()); - } - - // TODO: enable test when TypeMethodReference is Supported by Wala/SourceCodeFrontend - @Ignore - public void test() { - assertJimpleStmts(loadMethod(getStaticMethodSignature()), expectedBodyStmts1()); - - SootMethod staticMethod = loadMethod(getStaticMethodSignature()); - assertJimpleStmts(staticMethod, expectedBodyStmts1()); - assertTrue(staticMethod.isStatic() && staticMethod.getName().equals("initStatic")); - - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue( - sootClass.getInterfaces().stream() - .anyMatch( - javaClassType -> javaClassType.getClassName().equals("StaticMethodInterface"))); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java deleted file mode 100644 index ad7f27f9fe7..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java9/AnonymousDiamondOperatorTest.java +++ /dev/null @@ -1,68 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java9; - -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class AnonymousDiamondOperatorTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "innerClassDiamond", "void", Collections.emptyList()); - } - - @Ignore - public void test() { - /** TODO Check for anonymous declarations once Java 9 is supported in WALA */ - } - - /** - * - * - *
-   *    public int innerClassDiamond() {
-   * MyClass obj = new MyClass<>() {
-   * Integer add(Integer x, Integer y) {
-   * return x+y;
-   * }
-   * };
-   * Integer sum = obj.add(22,23);
-   * return sum;
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: AnonymousDiamondOperator", - "$r1 = new java.io.BufferedReader", - "$r2 = new java.io.FileReader", - "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", - "specialinvoke $r1.(java.io.Reader)>($r2)", - "$r3 = \"\"", - "label1:", - "$r4 = virtualinvoke $r1.()", - "goto label2", - "$r5 := @caughtexception", - "virtualinvoke $r1.()", - "throw $r5", - "label2:", - "$r3 = $r4", - "$z0 = $r4 != null", - "if $z0 == 0 goto label3", - "$r6 = ", - "virtualinvoke $r6.($r3)", - "goto label1", - "label3:", - "virtualinvoke $r1.()", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java deleted file mode 100644 index 6558716bd6e..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java9/PrivateMethodInterfaceImplTest.java +++ /dev/null @@ -1,56 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java9; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class PrivateMethodInterfaceImplTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodInterfaceImpl", "void", Collections.emptyList()); - } - - @Ignore - /** TODO WALA does not support Java9 constructs */ - public void ignoreTest() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue( - sootClass.getInterfaces().stream() - .anyMatch( - javaClassType -> - javaClassType.getClassName().equalsIgnoreCase("PrivateMethodInterface"))); - } - - /** - * - * - *
-   *     public void methodInterfaceImpl(){
-   * methodInterface(4,2);
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: PrivateMethodInterfaceImpl", - "interfaceinvoke r0.(4, 2)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java b/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java deleted file mode 100644 index 1bfec8ad919..00000000000 --- a/de.upb.swt.soot.java.sourcecode/src/test/java/de/upb/swt/soot/test/java/sourcecode/minimaltestsuite/java9/TryWithResourcesConciseTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.java9; - -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.test.java.sourcecode.minimaltestsuite.MinimalSourceTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; - -/** @author Kaustubh Kelkar */ -public class TryWithResourcesConciseTest extends MinimalSourceTestSuiteBase { - - @Override - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - @Ignore - public void test() { - /** TODO [kk] Java 9 is not supported by WALA, feature can not be tested */ - } - - /** - * - * - *
-   *     public void printFile() throws Exception{
-   * try(BufferedReader bufferedReader = new BufferedReader(new FileReader("file.txt"))){
-   * String data = "";
-   * while( (data= bufferedReader.readLine()) != null ){
-   * System.out.println(data);
-   * }
-   * }
-   * }
-   * 
- */ - @Override - public List expectedBodyStmts() { - return Stream.of( - "r0 := @this: TryWithResourcesConcise", - "$r1 = new java.io.BufferedReader", - "$r2 = new java.io.FileReader", - "specialinvoke $r2.(java.lang.String)>(\"file.txt\")", - "specialinvoke $r1.(java.io.Reader)>($r2)", - "$r3 = \"\"", - "label1:", - "$r4 = virtualinvoke $r1.()", - "goto label2", - "$r5 := @caughtexception", - "throw $r5", - "label2:", - "$r3 = $r4", - "$z0 = $r4 != null", - "if $z0 == 0 goto label3", - "$r6 = ", - "virtualinvoke $r6.($r3)", - "goto label1", - "label3:", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/pom.xml b/de.upb.swt.soot.jimple.parser/pom.xml deleted file mode 100644 index a2e839887df..00000000000 --- a/de.upb.swt.soot.jimple.parser/pom.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - 4.0.0 - - Soot Jimple Frontend - soot.jimple.parser - jar - - soot - de.upb.swt - 4.0.0-SNAPSHOT - - - - UTF-8 - true - true - - - - - - - - org.antlr - antlr4-maven-plugin - 4.7 - - - - antlr4 - - - - - - - - - - - - de.upb.swt - soot.core - 4.0.0-SNAPSHOT - - - - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT - - - - de.upb.swt - soot.java.core - 4.0.0-SNAPSHOT - - - - - org.antlr - antlr4-runtime - 4.7.2 - - - - - - - - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT - pom - import - - - - \ No newline at end of file diff --git a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleClassProvider.java b/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleClassProvider.java deleted file mode 100644 index d178c987e7a..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleClassProvider.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.upb.swt.soot.jimple.parser; - -import de.upb.swt.soot.core.frontend.ClassProvider; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.FileType; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.transform.BodyInterceptor; -import de.upb.swt.soot.core.types.ClassType; -import java.io.IOException; -import java.nio.file.Path; -import java.util.List; -import javax.annotation.Nonnull; -import org.antlr.v4.runtime.CharStreams; - -/** @author Markus Schmidt */ -public class JimpleClassProvider>> - implements ClassProvider { - - @Nonnull private final List bodyInterceptors; - - public JimpleClassProvider(List bodyInterceptors) { - this.bodyInterceptors = bodyInterceptors; - } - - @Override - public SootClassSource createClassSource( - AnalysisInputLocation> inputlocation, - Path sourcePath, - ClassType classSignature) { - - try { - final JimpleConverter jimpleConverter = new JimpleConverter(); - return jimpleConverter.run( - CharStreams.fromPath(sourcePath), inputlocation, sourcePath, bodyInterceptors); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public FileType getHandledFileType() { - return FileType.JIMPLE; - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleLanguage.java b/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleLanguage.java deleted file mode 100644 index 2888f52bb75..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/main/java/de/upb/swt/soot/jimple/parser/JimpleLanguage.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.upb.swt.soot.jimple.parser; - -import de.upb.swt.soot.core.IdentifierFactory; -import de.upb.swt.soot.core.Language; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; - -public class JimpleLanguage extends Language { - - private static JimpleLanguage INSTANCE = new JimpleLanguage(); - - public static JimpleLanguage getInstance() { - return INSTANCE; - } - - @Override - public String getName() { - return "Jimple"; - } - - @Override - public int getVersion() { - return -1; // there is no real versioning other than "old" Soot and FutureSoot at the moment - } - - @Override - public IdentifierFactory getIdentifierFactory() { - // FIXME [ms] ? - return JavaIdentifierFactory.getInstance(); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/categories/Java8Test.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/categories/Java8Test.java deleted file mode 100644 index c459749c90b..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/categories/Java8Test.java +++ /dev/null @@ -1,5 +0,0 @@ -package de.upb.swt.soot.jimple.parser.categories; - -public interface Java8Test { - - /* category marker */ } diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java10/TypeInferenceTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java10/TypeInferenceTest.java deleted file mode 100644 index 96dcfc3b563..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java10/TypeInferenceTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java10; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class TypeInferenceTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TypeInference", - "l1 = \"file.txt\"", - "l2 = \"\"", - "$stack5 = new java.io.FileReader", - "specialinvoke $stack5.(java.lang.String)>(l1)", - "l3 = $stack5", - "$stack6 = new java.io.BufferedReader", - "specialinvoke $stack6.(java.io.Reader)>(l3)", - "l4 = $stack6", - "label1:", - "$stack9 = l4", - "$stack7 = virtualinvoke $stack9.()", - "l2 = $stack7", - "if $stack7 == null goto label2", - "$stack8 = ", - "virtualinvoke $stack8.(l2)", - "goto label1", - "label2:", - "virtualinvoke l4.()", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AbstractClassTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AbstractClassTest.java deleted file mode 100644 index d4c551f0339..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AbstractClassTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AbstractClassTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootClass clazz = loadClass(getDeclaredClassSignature()); - // The SuperClass is the abstract one - SootClass superClazz = loadClass(clazz.getSuperclass().get()); - assertTrue(superClazz.isAbstract()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "abstractClass", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: AbstractClass", - "$stack2 = new AbstractClass", - "specialinvoke $stack2.()>()", - "l1 = $stack2", - "virtualinvoke l1.()", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AccessArraysTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AccessArraysTest.java deleted file mode 100644 index 89a01c81c40..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AccessArraysTest.java +++ /dev/null @@ -1,244 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AccessArraysTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (int)[3]", - "$stack7[0] = 1", - "$stack7[1] = 2", - "$stack7[2] = 3", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (byte)[3]", - "$stack7[0] = 4", - "$stack7[1] = 5", - "$stack7[2] = 6", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (short)[3]", - "$stack7[0] = 10", - "$stack7[1] = 20", - "$stack7[2] = 30", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: AccessArrays", - "$stack9 = newarray (long)[3]", - "$stack9[0] = 547087L", - "$stack9[1] = 564645L", - "$stack9[2] = 654786L", - "l1 = $stack9", - "l4 = l1", - "l5 = lengthof l4", - "l6 = 0", - "label1:", - "$stack11 = l6", - "$stack10 = l5", - "if $stack11 >= $stack10 goto label2", - "l7 = l4[l6]", - "l2 = l7", - "l6 = l6 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("floatArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (float)[4]", - "$stack7[0] = 3.14F", - "$stack7[1] = 5.46F", - "$stack7[2] = 2.987F", - "$stack7[3] = 4.87F", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: AccessArrays", - "$stack9 = newarray (double)[2]", - "$stack9[0] = 6.765414", - "$stack9[1] = 9.676565646", - "l1 = $stack9", - "l4 = l1", - "l5 = lengthof l4", - "l6 = 0", - "label1:", - "$stack11 = l6", - "$stack10 = l5", - "if $stack11 >= $stack10 goto label2", - "l7 = l4[l6]", - "l2 = l7", - "l6 = l6 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (boolean)[2]", - "$stack7[0] = 1", - "$stack7[1] = 0", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (char)[3]", - "$stack7[0] = 65", - "$stack7[1] = 98", - "$stack7[2] = 38", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: AccessArrays", - "$stack7 = newarray (java.lang.String)[2]", - "$stack7[0] = \"Hello World\"", - "$stack7[1] = \"Greetings\"", - "l1 = $stack7", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l6", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AnnotationLibraryTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AnnotationLibraryTest.java deleted file mode 100644 index d8df7659ad9..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AnnotationLibraryTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import org.junit.Ignore; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AnnotationLibraryTest extends JimpleTestSuiteBase { - - @Ignore - public void testAnnotation() { - // TODO: annotations are not supported yet - System.out.println(getDeclaredClassSignature()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AnonymousClassInsideMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AnonymousClassInsideMethodTest.java deleted file mode 100644 index 4ab610f536b..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AnonymousClassInsideMethodTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AnonymousClassInsideMethodTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "anonymousClassInsideMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: AnonymousClassInsideMethod", - "$stack2 = new AnonymousClassInsideMethod$1", - "specialinvoke $stack2.(AnonymousClassInsideMethod)>(l0)", - "l1 = $stack2", - "interfaceinvoke l1.()", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AssertStatementTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AssertStatementTest.java deleted file mode 100644 index a322905c8c6..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AssertStatementTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AssertStatementTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "assertStatement", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: AssertStatement", - "$stack1 = ", - "if $stack1 != 0 goto label1", - "if \"\" != null goto label1", - "$stack2 = new java.lang.AssertionError", - "specialinvoke $stack2.()>()", - "throw $stack2", - "label1:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AutoboxingTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AutoboxingTest.java deleted file mode 100644 index 20aa82dec2f..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AutoboxingTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AutoboxingTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "autoboxing", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: Autoboxing", - "l1 = 5", - "l1 = l1 + 1", - "$stack3 = staticinvoke (l1)", - "l2 = $stack3", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AutomaticWideningTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AutomaticWideningTest.java deleted file mode 100644 index eba5220801e..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/AutomaticWideningTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AutomaticWideningTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "automaticWidening", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: AutomaticWidening", "l1 = 10", "l2 = (long) l1", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/BitwiseOperationsIntTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/BitwiseOperationsIntTest.java deleted file mode 100644 index 6a76d2f7e97..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/BitwiseOperationsIntTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class BitwiseOperationsIntTest extends JimpleTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("bitwiseOpAnd")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 & l2", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("bitwiseOpOr")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 | l2", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("bitwiseOpXor")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = 20", "l3 = l1 ^ l2", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("bitwiseOpComplement")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 ^ -1", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("bitwiseOpSignedRightShift")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 >> 5", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("bitwiseOpLeftShift")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 << 5", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("bitwiseOpUnsignedRightShift")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: BitwiseOperationsInt", "l1 = 70", "l2 = l1 >>> 5", "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/BooleanOperatorsTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/BooleanOperatorsTest.java deleted file mode 100644 index 1c372999b7a..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/BooleanOperatorsTest.java +++ /dev/null @@ -1,298 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class BooleanOperatorsTest extends JimpleTestSuiteBase { - - @Test - public void testRelOpEq() { - - SootMethod method = loadMethod(getMethodSignature("relationalOpEqual")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 0", - "label1:", - "$stack3 = l1", - "$stack2 = 10", - "if $stack3 > $stack2 goto label2", - "l1 = l1 + 1", - "if l1 != 5 goto label1", - "goto label2", - "label2:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testrelOpNotEq() { - SootMethod method = loadMethod(getMethodSignature("relationalOpNotEqual")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 0", - "l2 = \"\"", - "label1:", - "$stack4 = l1", - "$stack3 = 10", - "if $stack4 >= $stack3 goto label2", - "l1 = l1 + 1", - "if l1 == 5 goto label1", - "l2 = \"i != 5\"", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testComplementOP() { - SootMethod method = loadMethod(getMethodSignature("complementOp")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "if l1 == 0 goto label3", - "if l1 != 0 goto label1", - "$stack2 = 1", - "goto label2", - "label1:", - "$stack2 = 0", - "label2:", - "l1 = $stack2", - "label3:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testLogicalAnd() { - SootMethod method = loadMethod(getMethodSignature("logicalOpAnd")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "$stack6 = l1 & l2", - "if $stack6 == 0 goto label1", - "l5 = \"A\"", - "label1:", - "$stack15 = l3", - "$stack14 = l4", - "$stack7 = $stack15 & $stack14", - "if $stack7 == 0 goto label2", - "l5 = \"B\"", - "label2:", - "$stack13 = l1", - "$stack12 = l3", - "$stack8 = $stack13 & $stack12", - "if $stack8 == 0 goto label3", - "l5 = \"C\"", - "label3:", - "$stack11 = l4", - "$stack10 = l2", - "$stack9 = $stack11 & $stack10", - "if $stack9 == 0 goto label4", - "l5 = \"D\"", - "label4:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testLogicalOr() { - SootMethod method = loadMethod(getMethodSignature("logicalOpOr")); - - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "$stack6 = l1 | l2", - "if $stack6 == 0 goto label1", - "l5 = \"A\"", - "label1:", - "$stack15 = l3", - "$stack14 = l4", - "$stack7 = $stack15 | $stack14", - "if $stack7 == 0 goto label2", - "l5 = \"B\"", - "label2:", - "$stack13 = l1", - "$stack12 = l3", - "$stack8 = $stack13 | $stack12", - "if $stack8 == 0 goto label3", - "l5 = \"C\"", - "label3:", - "$stack11 = l4", - "$stack10 = l2", - "$stack9 = $stack11 | $stack10", - "if $stack9 == 0 goto label4", - "l5 = \"D\"", - "label4:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testLocgicalOpXor() { - SootMethod method = loadMethod(getMethodSignature("logicalOpXor")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "$stack6 = l1 ^ l2", - "if $stack6 == 0 goto label1", - "l5 = \"A\"", - "label1:", - "$stack15 = l3", - "$stack14 = l4", - "$stack7 = $stack15 ^ $stack14", - "if $stack7 == 0 goto label2", - "l5 = \"B\"", - "label2:", - "$stack13 = l1", - "$stack12 = l3", - "$stack8 = $stack13 ^ $stack12", - "if $stack8 == 0 goto label3", - "l5 = \"C\"", - "label3:", - "$stack11 = l4", - "$stack10 = l2", - "$stack9 = $stack11 ^ $stack10", - "if $stack9 == 0 goto label4", - "l5 = \"D\"", - "label4:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testCondOpAnd() { - SootMethod method = loadMethod(getMethodSignature("ConditionalOpAnd")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "if l1 == 0 goto label1", - "if l2 == 0 goto label1", - "l5 = \"A\"", - "label1:", - "$stack8 = l3", - "if $stack8 == 0 goto label2", - "if l4 == 0 goto label2", - "l5 = \"B\"", - "label2:", - "$stack7 = l1", - "if $stack7 == 0 goto label3", - "if l3 == 0 goto label3", - "l5 = \"C\"", - "label3:", - "$stack6 = l4", - "if $stack6 == 0 goto label4", - "if l2 == 0 goto label4", - "l5 = \"D\"", - "label4:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testCondOpOr() { - SootMethod method = loadMethod(getMethodSignature("conditionalOpOr")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 1", - "l2 = 1", - "l3 = 0", - "l4 = 0", - "l5 = \"\"", - "if l1 != 0 goto label1", - "if l2 == 0 goto label2", - "label1:", - "$stack12 = \"A\"", - "l5 = $stack12", - "label2:", - "$stack11 = l3", - "if $stack11 != 0 goto label3", - "if l4 == 0 goto label4", - "label3:", - "$stack10 = \"B\"", - "l5 = $stack10", - "label4:", - "$stack9 = l1", - "if $stack9 != 0 goto label5", - "if l3 == 0 goto label6", - "label5:", - "$stack8 = \"C\"", - "l5 = $stack8", - "label6:", - "$stack7 = l4", - "if $stack7 != 0 goto label7", - "if l2 == 0 goto label8", - "label7:", - "$stack6 = \"D\"", - "l5 = $stack6", - "label8:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testCondOp() { - SootMethod method = loadMethod(getMethodSignature("conditionalOp")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: BooleanOperators", - "l1 = 5", - "l2 = \"\"", - "if l1 >= 10 goto label1", - "$stack3 = \"i less than 10\"", - "goto label2", - "label1:", - "$stack3 = \"i greater than 10\"", - "label2:", - "l2 = $stack3", - "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/BreakInWhileLoopTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/BreakInWhileLoopTest.java deleted file mode 100644 index e8d34b0e10b..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/BreakInWhileLoopTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class BreakInWhileLoopTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "breakInWhileLoop", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: BreakInWhileLoop", - "l1 = 10", - "l2 = 5", - "label1:", - "$stack3 = l1", - "if $stack3 <= 0 goto label2", - "l1 = l1 + -1", - "if l1 != l2 goto label1", - "goto label2", - "label2:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/CastingInNumTypesTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/CastingInNumTypesTest.java deleted file mode 100644 index 8a623ee95a0..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/CastingInNumTypesTest.java +++ /dev/null @@ -1,83 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class CastingInNumTypesTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "displayNum", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: CastingInNumTypes", - "l1 = 1", - "l2 = 2", - "l3 = 3", - "l4 = 4551598461L", - "l6 = 5.4F", - "l7 = 4.5515954846546467E39", - "$stack11 = ", - "virtualinvoke $stack11.(l1)", - "$stack13 = ", - "$stack12 = (byte) l3", - "virtualinvoke $stack13.($stack12)", - "$stack15 = ", - "$stack14 = (double) l2", - "virtualinvoke $stack15.($stack14)", - "$stack18 = ", - "$stack16 = (int) l4", - "$stack17 = (short) $stack16", - "virtualinvoke $stack18.($stack17)", - "$stack20 = ", - "$stack19 = (double) l6", - "virtualinvoke $stack20.($stack19)", - "$stack22 = ", - "$stack21 = (int) l4", - "virtualinvoke $stack22.($stack21)", - "$stack24 = ", - "$stack23 = (float) l7", - "virtualinvoke $stack24.($stack23)", - "$stack25 = ", - "virtualinvoke $stack25.(l7)", - "l9 = 4.7867778678678685E51", - "$stack27 = ", - "$stack26 = (float) l9", - "virtualinvoke $stack27.($stack26)", - "$stack29 = ", - "$stack28 = (long) l9", - "virtualinvoke $stack29.($stack28)", - "$stack31 = ", - "$stack30 = (int) l9", - "virtualinvoke $stack31.($stack30)", - "$stack34 = ", - "$stack32 = (int) l9", - "$stack33 = (short) $stack32", - "virtualinvoke $stack34.($stack33)", - "$stack37 = ", - "$stack35 = (int) l9", - "$stack36 = (byte) $stack35", - "virtualinvoke $stack37.($stack36)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/CharLiteralsTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/CharLiteralsTest.java deleted file mode 100644 index 82da9fde469..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/CharLiteralsTest.java +++ /dev/null @@ -1,59 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class CharLiteralsTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("charCharacter")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: CharLiterals", "l1 = 97", "return").collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charSymbol")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: CharLiterals", "l1 = 37", "return").collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charBackslashT")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: CharLiterals", "l1 = 9", "return").collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charBackslash")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: CharLiterals", "l1 = 92", "return").collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charSingleQuote")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: CharLiterals", "l1 = 39", "return").collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charUnicode")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: CharLiterals", "l1 = 937", "return").collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("specialChar")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: CharLiterals", "l1 = 8482", "return").collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ContinueInWhileLoopTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ContinueInWhileLoopTest.java deleted file mode 100644 index 770fce790a4..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ContinueInWhileLoopTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ContinueInWhileLoopTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "continueInWhileLoop", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: ContinueInWhileLoop", - "l1 = 0", - "label1:", - "$stack3 = l1", - "$stack2 = 10", - "if $stack3 >= $stack2 goto label3", - "if l1 != 5 goto label2", - "l1 = l1 + 1", - "goto label1", - "label2:", - "l1 = l1 + 1", - "goto label1", - "label3:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/CreateNewInstanceTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/CreateNewInstanceTest.java deleted file mode 100644 index 87043293719..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/CreateNewInstanceTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class CreateNewInstanceTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "createNewInstance", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: CreateNewInstance", - "$stack2 = new Person", - "specialinvoke $stack2.(int)>(20)", - "l1 = $stack2", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareConstructorTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareConstructorTest.java deleted file mode 100644 index ce0e5898b48..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareConstructorTest.java +++ /dev/null @@ -1,60 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareConstructorTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignatureInitOneParam() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Collections.singletonList("int")); - } - - public MethodSignature getMethodSignatureInitTwoParam() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Arrays.asList("int", "int")); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignatureInitOneParam()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getMethodSignatureInitTwoParam()); - assertJimpleStmts(method, expectedBodyStmts1()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareConstructor", - "l1 := @parameter0: int", - "specialinvoke l0.()>()", - "l0. = l1", - "l0. = 0", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: DeclareConstructor", - "l1 := @parameter0: int", - "l2 := @parameter1: int", - "specialinvoke l0.()>()", - "l0. = l1", - "l0. = l2", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareEnumTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareEnumTest.java deleted file mode 100644 index 9be90a82777..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareEnumTest.java +++ /dev/null @@ -1,24 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareEnumTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootClass sc = - loadClass( - JavaIdentifierFactory.getInstance() - .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$Type")); - assertTrue(sc.isEnum()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareEnumWithConstructorTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareEnumWithConstructorTest.java deleted file mode 100644 index 5a9a1793727..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareEnumWithConstructorTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Set; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareEnumWithConstructorTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootClass sc = - loadClass( - JavaIdentifierFactory.getInstance() - .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$Number")); - assertTrue(sc.isEnum()); - - final Set methods = (Set) sc.getMethods(); - assertTrue(methods.stream().anyMatch(m -> m.getSignature().getName().equals("getValue"))); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareFieldTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareFieldTest.java deleted file mode 100644 index 881ffef055f..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareFieldTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareFieldTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "display", "void", Collections.emptyList()); - } - - public MethodSignature getStaticMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticDisplay", "void", Collections.emptyList()); - } - - @org.junit.Test - public void test() { - SootMethod method1 = loadMethod(getMethodSignature()); - assertJimpleStmts(method1, expectedBodyStmts()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getStaticMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts1()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> { - return sootField.getModifiers().contains(Modifier.PRIVATE) - && sootField.getModifiers().contains(Modifier.STATIC) - && sootField.getName().equals("i"); - })); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> { - return sootField.getModifiers().contains(Modifier.PUBLIC) - && sootField.getModifiers().contains(Modifier.FINAL) - && sootField.getName().equals("s"); - })); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareField", - "$stack1 = ", - "virtualinvoke $stack1.(\"Java\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: DeclareField", - "$stack2 = ", - "$stack1 = ", - "virtualinvoke $stack2.($stack1)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareFloatTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareFloatTest.java deleted file mode 100644 index 2e7d631b0d2..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareFloatTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareFloatTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareFloatMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareFloat", - "$stack2 = ", - "$stack1 = l0.", - "virtualinvoke $stack2.($stack1)", - "$stack4 = ", - "$stack3 = l0.", - "virtualinvoke $stack4.($stack3)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareInnerClassTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareInnerClassTest.java deleted file mode 100644 index e6c0282058a..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareInnerClassTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareInnerClassTest extends JimpleTestSuiteBase { - - final JavaClassType innerClassType = - JavaIdentifierFactory.getInstance() - .getClassType(getDeclaredClassSignature().getFullyQualifiedName() + "$InnerClass"); - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodDisplayOuter", "void", Collections.emptyList()); - } - - public MethodSignature getInnerMethodSignature() { - return identifierFactory.getMethodSignature( - innerClassType, "methodDisplayInner", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - // SootClass sootClass = loadClass(getDeclaredClassSignature()); - - SootMethod sootMethod = loadMethod(getMethodSignature()); - assertJimpleStmts(sootMethod, expectedBodyStmts()); - - // SootClass innerClass = loadClass(innerClassType); - SootMethod innerMethod = loadMethod(getInnerMethodSignature()); - assertJimpleStmts(innerMethod, expectedInnerClassBodyStmts()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareInnerClass", - "$stack1 = ", - "virtualinvoke $stack1.(\"methodDisplayOuter\")", - "return") - .collect(Collectors.toList()); - } - - public List expectedInnerClassBodyStmts() { - return Stream.of( - "l0 := @this: DeclareInnerClass$InnerClass", - "$stack1 = ", - "virtualinvoke $stack1.(\"methodDisplayInner\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareIntTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareIntTest.java deleted file mode 100644 index 4878ee9d111..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareIntTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareIntTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareIntMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareInt", - "$stack2 = ", - "$stack1 = l0.", - "virtualinvoke $stack2.($stack1)", - "$stack4 = ", - "$stack3 = l0.", - "virtualinvoke $stack4.($stack3)", - "$stack6 = ", - "$stack5 = l0.", - "virtualinvoke $stack6.($stack5)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareLongTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareLongTest.java deleted file mode 100644 index 90d8a76feca..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DeclareLongTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DeclareLongTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "declareLongMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DeclareLong", - "$stack2 = ", - "$stack1 = l0.", - "virtualinvoke $stack2.($stack1)", - "$stack4 = ", - "$stack3 = l0.", - "virtualinvoke $stack4.($stack3)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DoWhileLoopTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DoWhileLoopTest.java deleted file mode 100644 index 5237b7f58f2..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/DoWhileLoopTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DoWhileLoopTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "doWhileLoop", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DoWhileLoop", - "l1 = 10", - "l2 = 0", - "label1:", - "l2 = l2 + 1", - "$stack4 = l1", - "$stack3 = l2", - "if $stack4 > $stack3 goto label1", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/EmptyStatementTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/EmptyStatementTest.java deleted file mode 100644 index 80be1f28f8e..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/EmptyStatementTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class EmptyStatementTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "emptyStatement", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: EmptyStatement", "l1 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/EscapeSequencesInStringTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/EscapeSequencesInStringTest.java deleted file mode 100644 index 33af4c3bb24..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/EscapeSequencesInStringTest.java +++ /dev/null @@ -1,96 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class EscapeSequencesInStringTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("escapeBackslashB")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash b \\u0008\"", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("escapeBackslashT")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash t \\t\"", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("escapeBackslashN")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash n \\n\"", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("escapeBackslashF")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash f \\f\"", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("escapeBackslashR")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash r \\r\"", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("escapeDoubleQuotes")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes double quotes \\\"\"", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("escapeSingleQuote")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes single quote \\'\"", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("escapeBackslash")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: EscapeSequencesInString", - "l1 = \"This escapes backslash \\\\\"", - "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/EvaluationOrderWithParenthesesTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/EvaluationOrderWithParenthesesTest.java deleted file mode 100644 index 7c39a1063cd..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/EvaluationOrderWithParenthesesTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class EvaluationOrderWithParenthesesTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), - "evaluationOrderWithParentheses", - "void", - Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: EvaluationOrderWithParentheses", "l1 = 9", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/FinalMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/FinalMethodTest.java deleted file mode 100644 index d9e0750fd34..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/FinalMethodTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class FinalMethodTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - assertTrue(method.isFinal()); - } - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "finalMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: FinalMethod", - "$stack1 = ", - "virtualinvoke $stack1.(\"final method\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/FinalVariableTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/FinalVariableTest.java deleted file mode 100644 index ded90b811b1..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/FinalVariableTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class FinalVariableTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "finalVariable", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: FinalVariable", "return").collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ForEachLoopTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ForEachLoopTest.java deleted file mode 100644 index d2dd833cf7d..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ForEachLoopTest.java +++ /dev/null @@ -1,59 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ForEachLoopTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "forEachLoop", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: ForEachLoop", - "$stack7 = newarray (int)[9]", - "$stack7[0] = 10", - "$stack7[1] = 20", - "$stack7[2] = 30", - "$stack7[3] = 40", - "$stack7[4] = 50", - "$stack7[5] = 60", - "$stack7[6] = 71", - "$stack7[7] = 80", - "$stack7[8] = 90", - "l1 = $stack7", - "l2 = 0", - "l3 = l1", - "l4 = lengthof l3", - "l5 = 0", - "label1:", - "$stack9 = l5", - "$stack8 = l4", - "if $stack9 >= $stack8 goto label2", - "l6 = l3[l5]", - "l2 = l2 + 1", - "l5 = l5 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ForLoopTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ForLoopTest.java deleted file mode 100644 index f5ee3c9f5c8..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ForLoopTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ForLoopTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "forLoop", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: ForLoop", - "l1 = 10", - "l2 = 0", - "l3 = 0", - "label1:", - "$stack5 = l3", - "$stack4 = l1", - "if $stack5 >= $stack4 goto label2", - "l2 = l2 + 1", - "l3 = l3 + 1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/GenTypeParamTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/GenTypeParamTest.java deleted file mode 100644 index 774bd0460b3..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/GenTypeParamTest.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class GenTypeParamTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "geneTypeParamDisplay", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: GenTypeParam", - "$stack4 = new java.util.ArrayList", - "specialinvoke $stack4.(int)>(3)", - "l1 = $stack4", - "$stack5 = newarray (java.lang.Integer)[3]", - "$stack6 = 0", - "$stack7 = staticinvoke (1)", - "$stack5[$stack6] = $stack7", - "$stack8 = 1", - "$stack9 = staticinvoke (2)", - "$stack5[$stack8] = $stack9", - "$stack10 = 2", - "$stack11 = staticinvoke (3)", - "$stack5[$stack10] = $stack11", - "$stack12 = staticinvoke ($stack5)", - "l2 = $stack12", - "$stack13 = new GenTypeParam", - "specialinvoke $stack13.()>()", - "l3 = $stack13", - "virtualinvoke l3.(l1, l2)", - "$stack14 = ", - "$stack15 = staticinvoke (2)", - "$stack16 = staticinvoke (8)", - "$stack17 = staticinvoke (3)", - "$stack18 = virtualinvoke l3.($stack15, $stack16, $stack17)", - "virtualinvoke $stack14.($stack18)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/GenericTypeParamOnClassTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/GenericTypeParamOnClassTest.java deleted file mode 100644 index 0e134b48190..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/GenericTypeParamOnClassTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class GenericTypeParamOnClassTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "genericTypeParamOnClass", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: GenericTypeParamOnClass", - "$stack3 = new GenericTypeParamOnClass$A", - "specialinvoke $stack3.(GenericTypeParamOnClass)>(l0)", - "l1 = $stack3", - "$stack4 = staticinvoke (5)", - "staticinvoke (l1, $stack4)", - "$stack5 = virtualinvoke l1.()", - "$stack6 = (java.lang.Integer) $stack5", - "$stack7 = virtualinvoke $stack6.()", - "l2 = $stack7", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/GenericTypeParamOnMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/GenericTypeParamOnMethodTest.java deleted file mode 100644 index 3f0cb2624b0..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/GenericTypeParamOnMethodTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class GenericTypeParamOnMethodTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "genericTypeParamOnMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: GenericTypeParamOnMethod", - "virtualinvoke l0.(\"Hello World\")", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/IfElseStatementTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/IfElseStatementTest.java deleted file mode 100644 index 74d76a701b0..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/IfElseStatementTest.java +++ /dev/null @@ -1,186 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class IfElseStatementTest extends JimpleTestSuiteBase { - - @Test - public void ifStatement() { - SootMethod method = loadMethod(getMethodSignature("ifStatement")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "label1:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList())); - } - - @Test - public void ifElseStatement() { - SootMethod method = loadMethod(getMethodSignature("ifElseStatement")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "goto label2", - "label1:", - "l2 = 2", - "label2:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList())); - } - - @Test - public void ifElseIfStatement() { - SootMethod method = loadMethod(getMethodSignature("ifElseIfStatement")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "goto label3", - "label1:", - "if l1 <= 123 goto label2", - "l2 = 2", - "goto label3", - "label2:", - "l2 = 3", - "label3:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList())); - } - - @Test - public void ifElseCascadingStatement() { - SootMethod method = loadMethod(getMethodSignature("ifElseCascadingStatement")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label2", - "if l1 >= 42 goto label1", - "l2 = 11", - "goto label3", - "label1:", - "l2 = 12", - "goto label3", - "label2:", - "l2 = 3", - "label3:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList())); - } - - @Test - public void ifElseCascadingInElseStatement() { - SootMethod method = loadMethod(getMethodSignature("ifElseCascadingInElseStatement")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "goto label3", - "label1:", - "if l1 >= 42 goto label2", - "l2 = 21", - "goto label3", - "label2:", - "l2 = 22", - "label3:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList())); - } - - @Test - public void ifElseCascadingElseIfStatement() { - SootMethod method = loadMethod(getMethodSignature("ifElseCascadingElseIfStatement")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label3", - "if l1 >= 42 goto label1", - "l2 = 11", - "goto label4", - "label1:", - "if l1 <= 123 goto label2", - "l2 = 12", - "goto label4", - "label2:", - "l2 = 13", - "goto label4", - "label3:", - "l2 = 2", - "label4:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList())); - } - - @Test - public void ifElseCascadingElseIfInElseStatement() { - SootMethod method = loadMethod(getMethodSignature("ifElseCascadingElseIfInElseStatement")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: IfElseStatement", - "l1 := @parameter0: int", - "l2 = 0", - "if l1 >= 42 goto label1", - "l2 = 1", - "goto label4", - "label1:", - "if l1 >= 42 goto label2", - "l2 = 21", - "goto label4", - "label2:", - "if l1 <= 123 goto label3", - "l2 = 22", - "goto label4", - "label3:", - "l2 = 23", - "label4:", - "$stack3 = l2", - "return $stack3") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "int", Collections.singletonList("int")); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InfiniteLoopTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InfiniteLoopTest.java deleted file mode 100644 index 059b78ec880..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InfiniteLoopTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Markus Schmidt */ -@Category(Java8Test.class) -public class InfiniteLoopTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stmtLoop", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: InfiniteLoop", "return").collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/Initialize3DimensionalArraysTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/Initialize3DimensionalArraysTest.java deleted file mode 100644 index 559629d0098..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/Initialize3DimensionalArraysTest.java +++ /dev/null @@ -1,299 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class Initialize3DimensionalArraysTest extends JimpleTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (int[][])[2]", - "$stack3 = newarray (int[])[2]", - "$stack4 = newarray (int)[3]", - "$stack4[0] = 1", - "$stack4[1] = 2", - "$stack4[2] = 3", - "$stack3[0] = $stack4", - "$stack5 = newarray (int)[2]", - "$stack5[0] = 5", - "$stack5[1] = 6", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (int[])[2]", - "$stack7 = newarray (int)[3]", - "$stack7[0] = 7", - "$stack7[1] = 8", - "$stack7[2] = 9", - "$stack6[0] = $stack7", - "$stack8 = newarray (int)[2]", - "$stack8[0] = 10", - "$stack8[1] = 11", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("byteArrays")); - - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (byte[][])[2]", - "$stack3 = newarray (byte[])[2]", - "$stack4 = newarray (byte)[3]", - "$stack4[0] = 7", - "$stack4[1] = 8", - "$stack4[2] = 9", - "$stack3[0] = $stack4", - "$stack5 = newarray (byte)[2]", - "$stack5[0] = 10", - "$stack5[1] = 11", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (byte[])[2]", - "$stack7 = newarray (byte)[3]", - "$stack7[0] = 1", - "$stack7[1] = 2", - "$stack7[2] = 3", - "$stack6[0] = $stack7", - "$stack8 = newarray (byte)[2]", - "$stack8[0] = 5", - "$stack8[1] = 6", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (short[][])[2]", - "$stack3 = newarray (short[])[2]", - "$stack4 = newarray (short)[2]", - "$stack4[0] = 10", - "$stack4[1] = 20", - "$stack3[0] = $stack4", - "$stack5 = newarray (short)[2]", - "$stack5[0] = 40", - "$stack5[1] = 85", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (short[])[2]", - "$stack7 = newarray (short)[2]", - "$stack7[0] = 56", - "$stack7[1] = 59", - "$stack6[0] = $stack7", - "$stack8 = newarray (short)[2]", - "$stack8[0] = 95", - "$stack8[1] = 35", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (long[][])[2]", - "$stack3 = newarray (long[])[2]", - "$stack4 = newarray (long)[2]", - "$stack4[0] = 547087L", - "$stack4[1] = 654786L", - "$stack3[0] = $stack4", - "$stack5 = newarray (long)[3]", - "$stack5[0] = 547287L", - "$stack5[1] = 864645L", - "$stack5[2] = 6533786L", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (long[])[2]", - "$stack7 = newarray (long)[2]", - "$stack7[0] = 34565L", - "$stack7[1] = 234L", - "$stack6[0] = $stack7", - "$stack8 = newarray (long)[2]", - "$stack8[0] = 9851L", - "$stack8[1] = 63543L", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("floatArrays")); - - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (float[][])[2]", - "$stack3 = newarray (float[])[2]", - "$stack4 = newarray (float)[2]", - "$stack4[0] = 3.14F", - "$stack4[1] = 5.46F", - "$stack3[0] = $stack4", - "$stack5 = newarray (float)[2]", - "$stack5[0] = 2.987F", - "$stack5[1] = 4.87F", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (float[])[2]", - "$stack7 = newarray (float)[2]", - "$stack7[0] = 65.15F", - "$stack7[1] = 854.18F", - "$stack6[0] = $stack7", - "$stack8 = newarray (float)[2]", - "$stack8[0] = 16.51F", - "$stack8[1] = 58.14F", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (double[][])[2]", - "$stack3 = newarray (double[])[2]", - "$stack4 = newarray (double)[2]", - "$stack4[0] = 6.765414", - "$stack4[1] = 9.676565646", - "$stack3[0] = $stack4", - "$stack5 = newarray (double)[1]", - "$stack5[0] = 45.345435", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (double[])[2]", - "$stack7 = newarray (double)[2]", - "$stack7[0] = 3.5656", - "$stack7[1] = 68.234234", - "$stack6[0] = $stack7", - "$stack8 = newarray (double)[2]", - "$stack8[0] = 68416.651", - "$stack8[1] = 65416.5", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (boolean[][])[2]", - "$stack3 = newarray (boolean[])[2]", - "$stack4 = newarray (boolean)[2]", - "$stack4[0] = 1", - "$stack4[1] = 0", - "$stack3[0] = $stack4", - "$stack5 = newarray (boolean)[1]", - "$stack5[0] = 1", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (boolean[])[2]", - "$stack7 = newarray (boolean)[2]", - "$stack7[0] = 0", - "$stack7[1] = 0", - "$stack6[0] = $stack7", - "$stack8 = newarray (boolean)[1]", - "$stack8[0] = 1", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (char[][])[2]", - "$stack3 = newarray (char[])[2]", - "$stack4 = newarray (char)[3]", - "$stack4[0] = 65", - "$stack4[1] = 98", - "$stack4[2] = 38", - "$stack3[0] = $stack4", - "$stack5 = newarray (char)[2]", - "$stack5[0] = 99", - "$stack5[1] = 36", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (char[])[2]", - "$stack7 = newarray (char)[2]", - "$stack7[0] = 50", - "$stack7[1] = 71", - "$stack6[0] = $stack7", - "$stack8 = newarray (char)[2]", - "$stack8[0] = 97", - "$stack8[1] = 37", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: Initialize3DimensionalArrays", - "$stack2 = newarray (java.lang.String[][])[2]", - "$stack3 = newarray (java.lang.String[])[2]", - "$stack4 = newarray (java.lang.String)[1]", - "$stack4[0] = \"Hello World\"", - "$stack3[0] = $stack4", - "$stack5 = newarray (java.lang.String)[2]", - "$stack5[0] = \"Greetings\"", - "$stack5[1] = \"Welcome\"", - "$stack3[1] = $stack5", - "$stack2[0] = $stack3", - "$stack6 = newarray (java.lang.String[])[2]", - "$stack7 = newarray (java.lang.String)[2]", - "$stack7[0] = \"Future\"", - "$stack7[1] = \"Soot\"", - "$stack6[0] = $stack7", - "$stack8 = newarray (java.lang.String)[2]", - "$stack8[0] = \"UPB\"", - "$stack8[1] = \"HNI\"", - "$stack6[1] = $stack8", - "$stack2[1] = $stack6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InitializeArraysWhileDeclarationTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InitializeArraysWhileDeclarationTest.java deleted file mode 100644 index 508fe3f1fab..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InitializeArraysWhileDeclarationTest.java +++ /dev/null @@ -1,139 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InitializeArraysWhileDeclarationTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (int)[3]", - "$stack2[0] = 1", - "$stack2[1] = 2", - "$stack2[2] = 3", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (byte)[3]", - "$stack2[0] = 4", - "$stack2[1] = 5", - "$stack2[2] = 6", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (short)[3]", - "$stack2[0] = 10", - "$stack2[1] = 20", - "$stack2[2] = 30", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (long)[3]", - "$stack2[0] = 547087L", - "$stack2[1] = 564645L", - "$stack2[2] = 654786L", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("floatArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (float)[4]", - "$stack2[0] = 3.14F", - "$stack2[1] = 5.46F", - "$stack2[2] = 2.987F", - "$stack2[3] = 4.87F", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (double)[2]", - "$stack2[0] = 6.765414", - "$stack2[1] = 9.676565646", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (boolean)[2]", - "$stack2[0] = 1", - "$stack2[1] = 0", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (char)[3]", - "$stack2[0] = 65", - "$stack2[1] = 98", - "$stack2[2] = 38", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWhileDeclaration", - "$stack2 = newarray (java.lang.String)[2]", - "$stack2[0] = \"Hello World\"", - "$stack2[1] = \"Greetings\"", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InitializeArraysWithIndexTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InitializeArraysWithIndexTest.java deleted file mode 100644 index c8f247f82f9..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InitializeArraysWithIndexTest.java +++ /dev/null @@ -1,132 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InitializeArraysWithIndexTest extends JimpleTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (int)[3]", - "l1[0] = 1", - "l1[1] = 2", - "l1[2] = 3", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("byteArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (byte)[3]", - "l1[0] = 4", - "l1[1] = 5", - "l1[2] = 6", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (short)[3]", - "l1[0] = 10", - "l1[1] = 20", - "l1[2] = 30", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (long)[3]", - "l1[0] = 547087L", - "l1[1] = 564645L", - "l1[2] = 654786L", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("floatArrays")); - - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (float)[4]", - "l1[0] = 3.14F", - "l1[1] = 5.46F", - "l1[2] = 2.987F", - "l1[3] = 4.87F", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (double)[2]", - "l1[0] = 6.765414", - "l1[1] = 9.676565646", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (boolean)[2]", - "l1[0] = 1", - "l1[1] = 0", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (char)[3]", - "l1[0] = 65", - "l1[1] = 98", - "l1[2] = 38", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeArraysWithIndex", - "l1 = newarray (java.lang.String)[2]", - "l1[0] = \"Hello World\"", - "l1[1] = \"Greetings\"", - "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InitializeMultidimensionalArraysTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InitializeMultidimensionalArraysTest.java deleted file mode 100644 index 01efb09d8a4..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InitializeMultidimensionalArraysTest.java +++ /dev/null @@ -1,205 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InitializeMultidimensionalArraysTest extends JimpleTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("intArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (int[])[3]", - "$stack3 = newarray (int)[3]", - "$stack3[0] = 1", - "$stack3[1] = 2", - "$stack3[2] = 3", - "$stack2[0] = $stack3", - "$stack4 = newarray (int)[2]", - "$stack4[0] = 5", - "$stack4[1] = 6", - "$stack2[1] = $stack4", - "$stack5 = newarray (int)[3]", - "$stack5[0] = 7", - "$stack5[1] = 8", - "$stack5[2] = 9", - "$stack2[2] = $stack5", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("byteArrays")); - - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (byte[])[2]", - "$stack3 = newarray (byte)[2]", - "$stack3[0] = 4", - "$stack3[1] = 5", - "$stack2[0] = $stack3", - "$stack4 = newarray (byte)[1]", - "$stack4[0] = 2", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("shortArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (short[])[2]", - "$stack3 = newarray (short)[3]", - "$stack3[0] = 10", - "$stack3[1] = 20", - "$stack3[2] = 30", - "$stack2[0] = $stack3", - "$stack4 = newarray (short)[1]", - "$stack4[0] = 40", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("longArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (long[])[3]", - "$stack3 = newarray (long)[2]", - "$stack3[0] = 547087L", - "$stack3[1] = 654786L", - "$stack2[0] = $stack3", - "$stack4 = newarray (long)[3]", - "$stack4[0] = 547287L", - "$stack4[1] = 864645L", - "$stack4[2] = 6533786L", - "$stack2[1] = $stack4", - "$stack5 = newarray (long)[2]", - "$stack5[0] = 34565L", - "$stack5[1] = 234L", - "$stack2[2] = $stack5", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("floatArrays")); - - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (float[])[2]", - "$stack3 = newarray (float)[2]", - "$stack3[0] = 3.14F", - "$stack3[1] = 5.46F", - "$stack2[0] = $stack3", - "$stack4 = newarray (float)[2]", - "$stack4[0] = 2.987F", - "$stack4[1] = 4.87F", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("doubleArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (double[])[3]", - "$stack3 = newarray (double)[2]", - "$stack3[0] = 6.765414", - "$stack3[1] = 9.676565646", - "$stack2[0] = $stack3", - "$stack4 = newarray (double)[1]", - "$stack4[0] = 45.345435", - "$stack2[1] = $stack4", - "$stack5 = newarray (double)[2]", - "$stack5[0] = 3.5656", - "$stack5[1] = 68.234234", - "$stack2[2] = $stack5", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("booleanArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (boolean[])[2]", - "$stack3 = newarray (boolean)[2]", - "$stack3[0] = 1", - "$stack3[1] = 0", - "$stack2[0] = $stack3", - "$stack4 = newarray (boolean)[1]", - "$stack4[0] = 1", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (char[])[3]", - "$stack3 = newarray (char)[3]", - "$stack3[0] = 65", - "$stack3[1] = 98", - "$stack3[2] = 38", - "$stack2[0] = $stack3", - "$stack4 = newarray (char)[2]", - "$stack4[0] = 99", - "$stack4[1] = 36", - "$stack2[1] = $stack4", - "$stack5 = newarray (char)[2]", - "$stack5[0] = 50", - "$stack5[1] = 71", - "$stack2[2] = $stack5", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("stringArrays")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: InitializeMultidimensionalArrays", - "$stack2 = newarray (java.lang.String[])[2]", - "$stack3 = newarray (java.lang.String)[1]", - "$stack3[0] = \"Hello World\"", - "$stack2[0] = $stack3", - "$stack4 = newarray (java.lang.String)[2]", - "$stack4[0] = \"Greetings\"", - "$stack4[1] = \"Welcome\"", - "$stack2[1] = $stack4", - "l1 = $stack2", - "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InstanceOfCheckTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InstanceOfCheckTest.java deleted file mode 100644 index f9644869dd8..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InstanceOfCheckTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertEquals; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InstanceOfCheckTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "instanceOfCheckMethod", "void", Collections.emptyList()); - } - - @org.junit.Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - if (sootClass.getSuperclass().isPresent()) { - assertEquals("InstanceOfCheckSuper", sootClass.getSuperclass().get().getClassName()); - } - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: InstanceOfCheck", - "$stack2 = new InstanceOfCheck", - "specialinvoke $stack2.()>()", - "l1 = $stack2", - "$stack4 = ", - "$stack3 = l1 instanceof InstanceOfCheckSuper", - "virtualinvoke $stack4.($stack3)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InterfaceImplClassTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InterfaceImplClassTest.java deleted file mode 100644 index a7ccd9f91d1..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/InterfaceImplClassTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class InterfaceImplClassTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equalsIgnoreCase("InterfaceImpl"); - })); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: InterfaceImplClass", - "$stack1 = ", - "virtualinvoke $stack1.(\"Method from InterfaceImpl is implemented\")", - "$stack2 = ", - "virtualinvoke $stack2.(\"Variable from InterfaceImpl is 10\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/LabelledLoopBreakTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/LabelledLoopBreakTest.java deleted file mode 100644 index 2b36a54ec25..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/LabelledLoopBreakTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class LabelledLoopBreakTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "labelledLoopBreak", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: LabelledLoopBreak", - "l1 = 0", - "label1:", - "$stack4 = l1", - "$stack3 = 5", - "if $stack4 >= $stack3 goto label5", - "l2 = 0", - "label2:", - "$stack6 = l2", - "$stack5 = 5", - "if $stack6 >= $stack5 goto label4", - "if l1 != 1 goto label3", - "goto label5", - "label3:", - "l2 = l2 + 1", - "goto label2", - "label4:", - "l1 = l1 + 1", - "goto label1", - "label5:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodAcceptingVarTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodAcceptingVarTest.java deleted file mode 100644 index 5de97b86809..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodAcceptingVarTest.java +++ /dev/null @@ -1,96 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MethodAcceptingVarTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("short")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: short", - "$stack2 = l1 + 1", - "l1 = (short) $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("byte")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: byte", - "$stack2 = l1 + 1", - "l1 = (byte) $stack2", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("char")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: MethodAcceptingVar", "l1 := @parameter0: char", "l1 = 97", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("int")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: int", - "l1 = l1 + 1", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("long")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: long", - "l1 = 123456777L", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("float")); - - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: float", - "l1 = 7.77F", - "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("double")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: MethodAcceptingVar", - "l1 := @parameter0: double", - "l1 = 1.787777777", - "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String datatype) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), - datatype + "Variable", - "void", - Collections.singletonList(datatype)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodOverloadingTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodOverloadingTest.java deleted file mode 100644 index d8a9d84c45b..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodOverloadingTest.java +++ /dev/null @@ -1,71 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MethodOverloadingTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "calculate", "int", Arrays.asList("int", "int")); - } - /** @returns the method signature needed for second method in testCase */ - public MethodSignature getMethodSignatureSingleParam() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "calculate", "int", Collections.singletonList("int")); - } - - public MethodSignature getMethodSignatureInit() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = loadMethod(getMethodSignatureSingleParam()); - assertJimpleStmts(method, expectedBodyStmts1()); - - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(sootClass.getMethod(getMethodSignature().getSubSignature()).isPresent()); - assertTrue(sootClass.getMethod(getMethodSignatureSingleParam().getSubSignature()).isPresent()); - assertTrue(sootClass.getMethod(getMethodSignatureInit().getSubSignature()).isPresent()); - assertEquals(3, sootClass.getMethods().size()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MethodOverloading", - "l1 := @parameter0: int", - "l2 := @parameter1: int", - "$stack3 = l1 + l2", - "return $stack3") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: MethodOverloading", - "l1 := @parameter0: int", - "$stack2 = l1 + l1", - "return $stack2") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodOverridingTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodOverridingTest.java deleted file mode 100644 index 979b08a123e..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodOverridingTest.java +++ /dev/null @@ -1,42 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MethodOverridingTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - - return identifierFactory.getMethodSignature( - identifierFactory.getClassType("MethodOverridingSubclass"), - "calculateArea", - "void", - Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MethodOverridingSubclass", - "$stack1 = ", - "virtualinvoke $stack1.(\"Inside MethodOverridingSubclass-calculateArea()\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodReturningVarTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodReturningVarTest.java deleted file mode 100644 index 9481b951285..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MethodReturningVarTest.java +++ /dev/null @@ -1,66 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MethodReturningVarTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature("short")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: MethodReturningVar", "l1 = 10", "return l1") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("byte")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: MethodReturningVar", "l1 = 0", "return l1") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("char")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: MethodReturningVar", "l1 = 97", "return l1") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("int")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: MethodReturningVar", "l1 = 512", "return l1") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("long")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: MethodReturningVar", "l1 = 123456789L", "return l1") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("float")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: MethodReturningVar", "l1 = 3.14F", "return l1") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("double")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: MethodReturningVar", "l1 = 1.96969654", "return l1") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String datatype) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), datatype + "Variable", datatype, Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MultiInterfaceImplClassTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MultiInterfaceImplClassTest.java deleted file mode 100644 index 7c5d793508b..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/MultiInterfaceImplClassTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MultiInterfaceImplClassTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equals("InterfaceImplDummy"); - })); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MultiInterfaceImplClass", - "$stack1 = ", - "virtualinvoke $stack1.(\"Method from InterfaceImpl is implemented\")", - "$stack2 = ", - "virtualinvoke $stack2.(\"Variable from InterfaceImpl is 10\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NamedClassInsideMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NamedClassInsideMethodTest.java deleted file mode 100644 index 526a67ec3cf..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NamedClassInsideMethodTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class NamedClassInsideMethodTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "namedClassInsideMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: NamedClassInsideMethod", - "$stack2 = new NamedClassInsideMethod$1MyMathOperation", - "specialinvoke $stack2.(NamedClassInsideMethod)>(l0)", - "l1 = $stack2", - "interfaceinvoke l1.()", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NativeMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NativeMethodTest.java deleted file mode 100644 index d4a8e117f32..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NativeMethodTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class NativeMethodTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "returnResult", "int", Collections.singletonList("int")); - } - - @Test - public void nativeMethod() { - SootMethod sootMethod = loadMethod(getMethodSignature()); - assertTrue(sootMethod.isNative()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: NativeMethod", - "specialinvoke l0.()>();", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NewCodeBlockInMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NewCodeBlockInMethodTest.java deleted file mode 100644 index 7eae7c68a19..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NewCodeBlockInMethodTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class NewCodeBlockInMethodTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "newCodeBlockInMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: NewCodeBlockInMethod", "l1 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NoModifierClassTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NoModifierClassTest.java deleted file mode 100644 index 1d8213937ac..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NoModifierClassTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class NoModifierClassTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootClass clazz = loadClass(getDeclaredClassSignature()); - // TODO SYNCHRONIZED modifier does not work - // assertEquals(EnumSet.noneOf(Modifier.class), clazz.getModifiers()); - assertTrue(clazz.getMethod(getMethodSignature("private").getSubSignature()).get().isPrivate()); - assertTrue( - clazz.getMethod(getMethodSignature("protected").getSubSignature()).get().isProtected()); - assertTrue(clazz.getMethod(getMethodSignature("public").getSubSignature()).get().isPublic()); - assertTrue( - clazz - .getMethod(getMethodSignature("noModifier").getSubSignature()) - .get() - .getModifiers() - .isEmpty()); - } - - public MethodSignature getMethodSignature(String modifier) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NullVariableTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NullVariableTest.java deleted file mode 100644 index 69f5f5edcfc..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/NullVariableTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class NullVariableTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "nullVariable", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: NullVariable", "l1 = null", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/PublicClassTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/PublicClassTest.java deleted file mode 100644 index ac1dd0b06c5..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/PublicClassTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.EnumSet; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class PublicClassTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertEquals(EnumSet.of(Modifier.PUBLIC, Modifier.SYNCHRONIZED), clazz.getModifiers()); - - SootMethod method; - method = clazz.getMethod(getMethodSignature("private").getSubSignature()).get(); - assertTrue(method.isPrivate()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = clazz.getMethod(getMethodSignature("protected").getSubSignature()).get(); - assertTrue(method.isProtected()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = clazz.getMethod(getMethodSignature("public").getSubSignature()).get(); - assertTrue(method.isPublic()); - assertJimpleStmts(method, expectedBodyStmts()); - - method = clazz.getMethod(getMethodSignature("noModifier").getSubSignature()).get(); - assertTrue(method.getModifiers().isEmpty()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - public MethodSignature getMethodSignature(String modifier) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), modifier + "Method", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: PublicClass", "return").collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ReferenceVarDeclarationTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ReferenceVarDeclarationTest.java deleted file mode 100644 index 91c40e6ca1a..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ReferenceVarDeclarationTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ReferenceVarDeclarationTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringVariable", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: ReferenceVarDeclaration", "l1 = \"Hello World\"", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ReferencingThisTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ReferencingThisTest.java deleted file mode 100644 index 291096b27b1..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ReferencingThisTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ReferencingThisTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "thisMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: ReferencingThis", - "$stack2 = ", - "virtualinvoke $stack2.(\" this keyword as an argument in the constructor call\")", - "$stack3 = new ReferencingThis", - "$stack5 = l0.", - "$stack4 = l0.", - "specialinvoke $stack3.(int,int)>($stack5, $stack4)", - "l1 = $stack3", - "virtualinvoke l1.()", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ReflectionTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ReflectionTest.java deleted file mode 100644 index 73d0450c563..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ReflectionTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ReflectionTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "checkReflection", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: Reflection", - "$stack4 = new Reflection", - "specialinvoke $stack4.()>()", - "l1 = $stack4", - "l2 = class Reflection", - "$stack5 = ", - "virtualinvoke $stack5.(l2)", - "$stack6 = newarray (java.lang.Class)[0]", - "$stack7 = virtualinvoke l2.($stack6)", - "l3 = $stack7", - "$stack8 = ", - "$stack9 = virtualinvoke l3.()", - "virtualinvoke $stack8.($stack9)", - "$stack10 = ", - "$stack11 = virtualinvoke l2.()", - "$stack12 = lengthof $stack11", - "virtualinvoke $stack10.($stack12)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StatementEvalTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StatementEvalTest.java deleted file mode 100644 index 6ae0e135792..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StatementEvalTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StatementEvalTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "statementEval", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: StatementEval", - "l1 = 1", - "$stack2 = l1", - "l1 = 3", - "l1 = $stack2 + 3", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticImportTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticImportTest.java deleted file mode 100644 index 0f8db401e34..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticImportTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticImportTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "mathFunctions", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: StaticImport", - "$stack1 = ", - "$stack2 = staticinvoke (4.0)", - "virtualinvoke $stack1.($stack2)", - "$stack3 = ", - "$stack4 = staticinvoke (2.0, 5.0)", - "virtualinvoke $stack3.($stack4)", - "$stack5 = ", - "$stack6 = staticinvoke (5.6)", - "virtualinvoke $stack5.($stack6)", - "$stack7 = ", - "virtualinvoke $stack7.(\"Static import for System.out\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticInitializerTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticInitializerTest.java deleted file mode 100644 index 3d2fc9a9996..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticInitializerTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticInitializerTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodStaticInitializer", "void", Collections.emptyList()); - } - - public MethodSignature getStaticMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - - assertTrue( - clazz.getFields().stream() - .anyMatch(sootField -> sootField.getName().equals("i") && sootField.isStatic())); - - final SootMethod staticMethod = loadMethod(getStaticMethodSignature()); - assertTrue(staticMethod.isStatic()); - assertJimpleStmts(staticMethod, expectedBodyStmtsOfClinit()); - } - - public List expectedBodyStmtsOfClinit() { - return Stream.of( - " = 5", - "$stack0 = ", - "if $stack0 <= 4 goto label1", - " = 4", - "label1:", - "return") - .collect(Collectors.toList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "$stack1 = ", - "$stack0 = ", - "virtualinvoke $stack1.($stack0)", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticMethodInvocationTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticMethodInvocationTest.java deleted file mode 100644 index 1ae0c76db8c..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticMethodInvocationTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticMethodInvocationTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticMethodInvocation", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: StaticMethodInvocation", - "staticinvoke ()", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticMethodTest.java deleted file mode 100644 index 4cb9c5b766b..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticMethodTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticMethodTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method1 = loadMethod(getMethodSignature()); - assertJimpleStmts(method1, expectedBodyStmts()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - assertTrue(method.isStatic()); - } - - public List expectedBodyStmts() { - return Stream.of( - "$stack0 = ", - "virtualinvoke $stack0.(\"static method\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticVariableTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticVariableTest.java deleted file mode 100644 index 5cf3375b530..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StaticVariableTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticVariableTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "staticVariable", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - element -> { - return element.getName().equals("num") && element.isStatic(); - })); - } - - public List expectedBodyStmts() { - return Stream.of( - "$stack1 = ", - "$stack0 = ", - "virtualinvoke $stack1.($stack0)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StringConcatenationTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StringConcatenationTest.java deleted file mode 100644 index 27d2fae30fe..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StringConcatenationTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StringConcatenationTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: StringConcatenation", "l1 = \"thestring\"", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StringWithUnicodeCharTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StringWithUnicodeCharTest.java deleted file mode 100644 index 9248ebaa399..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/StringWithUnicodeCharTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StringWithUnicodeCharTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringWithUnicodeChar", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: StringWithUnicodeChar", "l1 = \"$123\"", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SubClassTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SubClassTest.java deleted file mode 100644 index 98efa12d7bd..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SubClassTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SubClassTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "subclassMethod", "void", Collections.emptyList()); - } - - /** @returns the method signature needed for second method in testCase */ - public MethodSignature getMethodSignature1() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); - } - - @Test - public void testSuperClassStmts() { - SootMethod m = loadMethod(getMethodSignature1()); - assertJimpleStmts(m, expectedBodyStmts1()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(sootClass.getSuperclass().get().getClassName().equals("SuperClass")); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: SubClass", - "l0. = 10", - "l0. = 20", - "l0. = 30", - "l0. = 40", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: SubClass", - "specialinvoke l0.()", - "l0. = 100", - "l0. = 200", - "l0. = 300", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SuperClassTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SuperClassTest.java deleted file mode 100644 index 0b4218bf3b3..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SuperClassTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SuperClassTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "superclassMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: SuperClass", - "l0. = 10", - "l0. = 20", - "l0. = 30", - "l0. = 40", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SwitchCaseStatementTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SwitchCaseStatementTest.java deleted file mode 100644 index ad8f6394c86..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SwitchCaseStatementTest.java +++ /dev/null @@ -1,240 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SwitchCaseStatementTest extends JimpleTestSuiteBase { - - @Test - public void switchCaseStatementEnum() { - SootMethod method = loadMethod(getMethodSignature("switchCaseStatementEnum")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: SwitchCaseStatement", - "l1 = ", - "l2 = \"\"", - "$stack3 = ", - "$stack4 = virtualinvoke l1.()", - "$stack5 = $stack3[$stack4]", - "switch($stack5)", - "case 1: goto label1", - "case 2: goto label2", - "default: goto label3", - "label1:", - "l2 = \"red\"", - "goto label4", - "label2:", - "l2 = \"green\"", - "goto label4", - "label3:", - "l2 = \"invalid\"", - "label4:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testSwitchInt() { - SootMethod method = loadMethod(getMethodSignature("switchCaseStatementInt")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: SwitchCaseStatement", - "l1 = 5", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label2", - "case 3: goto label3", - "default: goto label4", - "label1:", - "l2 = \"one\"", - "goto label5", - "label2:", - "l2 = \"two\"", - "goto label5", - "label3:", - "l2 = \"three\"", - "goto label5", - "label4:", - "l2 = \"invalid\"", - "label5:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testSwitchCaseWithoutDefault() { - SootMethod method = loadMethod(getMethodSignature("switchCaseWithoutDefault")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: SwitchCaseStatement", - "l1 = 6", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label2", - "case 3: goto label3", - "default: goto label4", - "label1:", - "l2 = \"one\"", - "goto label4", - "label2:", - "l2 = \"two\"", - "goto label4", - "label3:", - "l2 = \"three\"", - "label4:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testSwitchCaseGroupedTargets() { - SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargets")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: SwitchCaseStatement", - "l1 = 7", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label1", - "case 3: goto label2", - "default: goto label3", - "label1:", - "l2 = \"first\"", - "goto label3", - "label2:", - "l2 = \"second\"", - "label3:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void testSwitchCaseGroupedTargetsDefault() { - SootMethod method = loadMethod(getMethodSignature("switchCaseGroupedTargetsDefault")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: SwitchCaseStatement", - "l1 = 8", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label1", - "case 3: goto label2", - "default: goto label3", - "label1:", - "l2 = \"first\"", - "goto label4", - "label2:", - "l2 = \"second\"", - "goto label4", - "label3:", - "l2 = \"other\"", - "label4:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void switchCaseStatementCaseIncludingIf() { - SootMethod method = loadMethod(getMethodSignature("switchCaseStatementCaseIncludingIf")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: SwitchCaseStatement", - "l1 = 2", - "switch(l1)", - "case 1: goto label1", - "case 2: goto label3", - "case 3: goto label4", - "default: goto label5", - "label1:", - "l2 = 1", - "if l1 != 666 goto label2", - "l2 = 11", - "goto label6", - "label2:", - "l2 = 12", - "goto label6", - "label3:", - "l2 = 2", - "goto label6", - "label4:", - "l2 = 3", - "goto label6", - "label5:", - "l2 = -1", - "label6:", - "return") - .collect(Collectors.toList())); - } - - @Test - public void switchCaseStatementCaseIncludingSwitch() { - SootMethod method = loadMethod(getMethodSignature("switchWithSwitch")); - assertJimpleStmts( - method, - Stream.of( - "l0 := @this: SwitchCaseStatement", - "l1 = 2", - "switch(l1)", - "case 1: goto label01", - "case 2: goto label05", - "case 3: goto label10", - "default: goto label11", - "label01:", - "switch(l1)", - "case 10: goto label02", - "case 20: goto label03", - "default: goto label04", - "label02:", - "l2 = 11", - "goto label04", - "label03:", - "l2 = 12", - "label04:", - "goto label12", - "label05:", - "l2 = 2", - "switch(l1)", - "case 20: goto label06", - "case 30: goto label07", - "case 40: goto label08", - "default: goto label09", - "label06:", - "l2 = 220", - "goto label09", - "label07:", - "l2 = 230", - "goto label09", - "label08:", - "l2 = 240", - "label09:", - "goto label12", - "label10:", - "l2 = 3", - "goto label12", - "label11:", - "l2 = -1", - "label12:", - "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SynchronizedBlockTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SynchronizedBlockTest.java deleted file mode 100644 index 940d2cad108..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SynchronizedBlockTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SynchronizedBlockTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "run", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: SynchronizedBlock", - "$stack3 = l0.", - "l1 = $stack3", - "entermonitor $stack3", - "label1:", - "$stack5 = ", - "$stack4 = l0.", - "virtualinvoke $stack5.($stack4)", - "$stack6 = l1", - "exitmonitor $stack6", - "label2:", - "goto label5", - "label3:", - "$stack7 := @caughtexception", - "l2 = $stack7", - "$stack8 = l1", - "exitmonitor $stack8", - "label4:", - "throw l2", - "label5:", - "return", - "catch java.lang.Throwable from label1 to label2 with label3", - "catch java.lang.Throwable from label3 to label4 with label3") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SynchronizedMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SynchronizedMethodTest.java deleted file mode 100644 index ee84ed014e5..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/SynchronizedMethodTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SynchronizedMethodTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "run", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - assertTrue(method.isSynchronized()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: SynchronizedMethod", - "$stack1 = ", - "virtualinvoke $stack1.(\"test\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/TernaryOperatorTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/TernaryOperatorTest.java deleted file mode 100644 index 658d408a32f..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/TernaryOperatorTest.java +++ /dev/null @@ -1,42 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class TernaryOperatorTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "ternaryOperatorMethod", "boolean", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TernaryOperator", - "$stack1 = l0.", - "if $stack1 >= 0 goto label1", - "$stack2 = 0", - "goto label2", - "label1:", - "$stack2 = 1", - "label2:", - "return $stack2") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ThrowExceptionMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ThrowExceptionMethodTest.java deleted file mode 100644 index 97f077a67d5..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/ThrowExceptionMethodTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class ThrowExceptionMethodTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "divideByZero", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: ThrowExceptionMethod", "l1 = 8 / 0", "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public MethodSignature getMethodSignature1() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "throwCustomException", "void", Collections.emptyList()); - } - - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: ThrowExceptionMethod", - "$stack1 = new CustomException", - "specialinvoke $stack1.(java.lang.String)>(\"Custom Exception\")", - "throw $stack1") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - assertTrue( - method.getExceptionSignatures().stream() - .anyMatch(classType -> classType.getClassName().equals("ArithmeticException"))); - method = loadMethod(getMethodSignature1()); - assertJimpleStmts(method, expectedBodyStmts1()); - assertTrue( - method.getExceptionSignatures().stream() - .anyMatch(classType -> classType.getClassName().equals("CustomException"))); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/TransientVariableTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/TransientVariableTest.java deleted file mode 100644 index 1d8520aae8f..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/TransientVariableTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class TransientVariableTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "transientVariable", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> - sootField.getName().equals("transientVar") - && sootField.getModifiers().contains(Modifier.TRANSIENT))); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TransientVariable", - "$stack2 = ", - "$stack1 = l0.", - "virtualinvoke $stack2.($stack1)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/TryCatchFinallyTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/TryCatchFinallyTest.java deleted file mode 100644 index b9ebba45f9c..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/TryCatchFinallyTest.java +++ /dev/null @@ -1,441 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar, Markus Schmidt */ -@Category(Java8Test.class) -public class TryCatchFinallyTest extends JimpleTestSuiteBase { - - @Test - public void tryCatch() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatch")); - assertJimpleStmts( - sootMethod, - Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"try\"", - "$stack3 = ", - "virtualinvoke $stack3.(l1)", - "label2:", - "goto label4", - "label3:", - "$stack4 := @caughtexception", - "l2 = $stack4", - "l1 = \"catch\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label4:", - "return", - "catch java.lang.Exception from label1 to label2 with label3") - .collect(Collectors.toList())); - } - - @Test - public void tryCatchFinally() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinally")); - assertJimpleStmts( - sootMethod, - Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label2:", - "l1 = \"finally\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "goto label6", - "label3:", - "$stack8 := @caughtexception", - "l2 = $stack8", - "l1 = \"catch\"", - "$stack9 = ", - "virtualinvoke $stack9.(l1)", - "label4:", - "l1 = \"finally\"", - "$stack10 = ", - "virtualinvoke $stack10.(l1)", - "goto label6", - "label5:", - "$stack6 := @caughtexception", - "l3 = $stack6", - "l1 = \"finally\"", - "$stack7 = ", - "virtualinvoke $stack7.(l1)", - "throw l3", - "label6:", - "return", - "catch java.lang.Exception from label1 to label2 with label3", - "catch java.lang.Throwable from label1 to label2 with label5", - "catch java.lang.Throwable from label3 to label4 with label5") - .collect(Collectors.toList())); - } - - @Test - public void tryCatchCombined() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchCombined")); - assertJimpleStmts( - sootMethod, - Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"try\"", - "$stack3 = ", - "virtualinvoke $stack3.(l1)", - "label2:", - "goto label4", - "label3:", - "$stack4 := @caughtexception", - "l2 = $stack4", - "l1 = \"catch\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label4:", - "return", - "catch java.lang.RuntimeException from label1 to label2 with label3", - "catch java.lang.StackOverflowError from label1 to label2 with label3") - .collect(Collectors.toList())); - } - - @Test - public void tryCatchFinallyCombined() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyCombined")); - assertJimpleStmts( - sootMethod, - Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label2:", - "l1 = \"finally\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "goto label6", - "label3:", - "$stack8 := @caughtexception", - "l2 = $stack8", - "l1 = \"catch\"", - "$stack9 = ", - "virtualinvoke $stack9.(l1)", - "label4:", - "l1 = \"finally\"", - "$stack10 = ", - "virtualinvoke $stack10.(l1)", - "goto label6", - "label5:", - "$stack6 := @caughtexception", - "l3 = $stack6", - "l1 = \"finally\"", - "$stack7 = ", - "virtualinvoke $stack7.(l1)", - "throw l3", - "label6:", - "return", - "catch java.lang.RuntimeException from label1 to label2 with label3", - "catch java.lang.StackOverflowError from label1 to label2 with label3", - "catch java.lang.Throwable from label1 to label2 with label5", - "catch java.lang.Throwable from label3 to label4 with label5") - .collect(Collectors.toList())); - } - - @Test - public void tryCatchNested() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNested")); - assertJimpleStmts( - sootMethod, - Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"1try\"", - "$stack3 = ", - "virtualinvoke $stack3.(l1)", - "label2:", - "l1 = \"2try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label3:", - "goto label5", - "label4:", - "$stack7 := @caughtexception", - "l2 = $stack7", - "l1 = \"2catch\"", - "$stack8 = ", - "virtualinvoke $stack8.(l1)", - "label5:", - "goto label7", - "label6:", - "$stack5 := @caughtexception", - "l2 = $stack5", - "l1 = \"1catch\"", - "$stack6 = ", - "virtualinvoke $stack6.(l1)", - "label7:", - "return", - "catch java.lang.Exception from label2 to label3 with label4", - "catch java.lang.Exception from label1 to label5 with label6") - .collect(Collectors.toList())); - } - - @Test - public void tryCatchFinallyNested() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNested")); - assertJimpleStmts( - sootMethod, - Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"1try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label2:", - "l1 = \"2try\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label3:", - "goto label5", - "label4:", - "$stack12 := @caughtexception", - "l2 = $stack12", - "l1 = \"2catch\"", - "$stack13 = ", - "virtualinvoke $stack13.(l1)", - "label5:", - "$stack14 = \"1finally\"", - "l1 = $stack14", - "$stack6 = ", - "$stack15 = l1", - "virtualinvoke $stack6.($stack15)", - "goto label9", - "label6:", - "$stack9 := @caughtexception", - "l2 = $stack9", - "l1 = \"1catch\"", - "$stack10 = ", - "virtualinvoke $stack10.(l1)", - "label7:", - "l1 = \"1finally\"", - "$stack11 = ", - "virtualinvoke $stack11.(l1)", - "goto label9", - "label8:", - "$stack7 := @caughtexception", - "l3 = $stack7", - "l1 = \"1finally\"", - "$stack8 = ", - "virtualinvoke $stack8.(l1)", - "throw l3", - "label9:", - "return", - "catch java.lang.Exception from label2 to label3 with label4", - "catch java.lang.Exception from label1 to label5 with label6", - "catch java.lang.Throwable from label1 to label5 with label8", - "catch java.lang.Throwable from label6 to label7 with label8") - .collect(Collectors.toList())); - } - - @Test - public void tryCatchNestedInCatch() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchNestedInCatch")); - assertJimpleStmts( - sootMethod, - Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label1:", - "l1 = \"1try\"", - "$stack4 = ", - "virtualinvoke $stack4.(l1)", - "label2:", - "goto label7", - "label3:", - "$stack7 := @caughtexception", - "l2 = $stack7", - "l1 = \"1catch\"", - "$stack8 = ", - "virtualinvoke $stack8.(l1)", - "label4:", - "l1 = \"2try\"", - "$stack9 = ", - "virtualinvoke $stack9.(l1)", - "label5:", - "goto label7", - "label6:", - "$stack5 := @caughtexception", - "l3 = $stack5", - "l1 = \"2catch\"", - "$stack6 = ", - "virtualinvoke $stack6.(l1)", - "label7:", - "return", - "catch java.lang.Exception from label1 to label2 with label3", - "catch java.lang.Exception from label4 to label5 with label6") - .collect(Collectors.toList())); - } - - @Test - public void tryCatchFinallyNestedInCatch() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInCatch")); - assertJimpleStmts( - sootMethod, - Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label01:", - "l1 = \"1try\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label02:", - "l1 = \"1finally\"", - "$stack6 = ", - "virtualinvoke $stack6.(l1)", - "goto label10", - "label03:", - "$stack12 := @caughtexception", - "l2 = $stack12", - "l1 = \"1catch\"", - "$stack13 = ", - "virtualinvoke $stack13.(l1)", - "label04:", - "l1 = \"2try\"", - "$stack14 = ", - "virtualinvoke $stack14.(l1)", - "label05:", - "goto label07", - "label06:", - "$stack9 := @caughtexception", - "l3 = $stack9", - "l1 = \"2catch\"", - "$stack10 = ", - "virtualinvoke $stack10.(l1)", - "label07:", - "$stack15 = \"1finally\"", - "l1 = $stack15", - "$stack11 = ", - "$stack16 = l1", - "virtualinvoke $stack11.($stack16)", - "goto label10", - "label08:", - "$stack7 := @caughtexception", - "l4 = $stack7", - "label09:", - "l1 = \"1finally\"", - "$stack8 = ", - "virtualinvoke $stack8.(l1)", - "throw l4", - "label10:", - "return", - "catch java.lang.Exception from label01 to label02 with label03", - "catch java.lang.Exception from label04 to label05 with label06", - "catch java.lang.Throwable from label01 to label02 with label08", - "catch java.lang.Throwable from label03 to label07 with label08", - "catch java.lang.Throwable from label08 to label09 with label08") - .collect(Collectors.toList())); - } - - @Test - public void tryCatchFinallyNestedInFinally() { - SootMethod sootMethod = loadMethod(getMethodSignature("tryCatchFinallyNestedInFinally")); - assertJimpleStmts( - sootMethod, - Stream.of( - "l0 := @this: TryCatchFinally", - "l1 = \"\"", - "label01:", - "l1 = \"1try\"", - "$stack5 = ", - "virtualinvoke $stack5.(l1)", - "label02:", - "l1 = \"1finally\"", - "$stack6 = ", - "virtualinvoke $stack6.(l1)", - "label03:", - "l1 = \"2try\"", - "$stack7 = ", - "virtualinvoke $stack7.(l1)", - "label04:", - "goto label16", - "label05:", - "$stack20 := @caughtexception", - "l2 = $stack20", - "l1 = \"2catch\"", - "$stack21 = ", - "virtualinvoke $stack21.(l1)", - "goto label16", - "label06:", - "$stack16 := @caughtexception", - "l2 = $stack16", - "l1 = \"1catch\"", - "$stack17 = ", - "virtualinvoke $stack17.(l1)", - "label07:", - "l1 = \"1finally\"", - "$stack18 = ", - "virtualinvoke $stack18.(l1)", - "label08:", - "l1 = \"2try\"", - "$stack19 = ", - "virtualinvoke $stack19.(l1)", - "label09:", - "goto label16", - "label10:", - "$stack14 := @caughtexception", - "l2 = $stack14", - "l1 = \"2catch\"", - "$stack15 = ", - "virtualinvoke $stack15.(l1)", - "goto label16", - "label11:", - "$stack10 := @caughtexception", - "l3 = $stack10", - "l1 = \"1finally\"", - "$stack11 = ", - "virtualinvoke $stack11.(l1)", - "label12:", - "l1 = \"2try\"", - "$stack12 = ", - "virtualinvoke $stack12.(l1)", - "label13:", - "goto label15", - "label14:", - "$stack8 := @caughtexception", - "l4 = $stack8", - "l1 = \"2catch\"", - "$stack9 = ", - "virtualinvoke $stack9.(l1)", - "label15:", - "$stack13 = l3", - "throw $stack13", - "label16:", - "return", - "catch java.lang.Exception from label03 to label04 with label05", - "catch java.lang.Exception from label01 to label02 with label06", - "catch java.lang.Exception from label08 to label09 with label10", - "catch java.lang.Throwable from label01 to label02 with label11", - "catch java.lang.Throwable from label06 to label07 with label11", - "catch java.lang.Exception from label12 to label13 with label14") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/UnaryOpIntTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/UnaryOpIntTest.java deleted file mode 100644 index e210c8d9dfd..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/UnaryOpIntTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class UnaryOpIntTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodUnaryOpInt", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - /** - * TODO Do we need to check the type of variable as int? - * assertTrue(getFields().stream().anyMatch(sootField -> {return - * sootField.getType().equals("int");})); - */ - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: UnaryOpInt", - "$stack3 = l0.", - "$stack2 = l0.", - "l1 = $stack3 + $stack2", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/UncheckedCastTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/UncheckedCastTest.java deleted file mode 100644 index 50169d84f13..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/UncheckedCastTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class UncheckedCastTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "uncheckedCastDisplay", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: UncheckedCast", - "$stack3 = newarray (java.lang.Integer)[4]", - "$stack4 = 0", - "$stack5 = staticinvoke (5)", - "$stack3[$stack4] = $stack5", - "$stack6 = 1", - "$stack7 = staticinvoke (8)", - "$stack3[$stack6] = $stack7", - "$stack8 = 2", - "$stack9 = staticinvoke (9)", - "$stack3[$stack8] = $stack9", - "$stack10 = 3", - "$stack11 = staticinvoke (6)", - "$stack3[$stack10] = $stack11", - "$stack12 = staticinvoke ($stack3)", - "l1 = $stack12", - "l2 = l1", - "$stack13 = ", - "virtualinvoke $stack13.(l2)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VariableDeclarationTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VariableDeclarationTest.java deleted file mode 100644 index ae1fe4056a3..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VariableDeclarationTest.java +++ /dev/null @@ -1,70 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class VariableDeclarationTest extends JimpleTestSuiteBase { - - @Test - public void test() { - - SootMethod method = loadMethod(getMethodSignature("shortVariable")); - - assertJimpleStmts( - method, - Stream.of("l0 := @this: VariableDeclaration", "l1 = 10", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("byteVariable")); - - assertJimpleStmts( - method, - Stream.of("l0 := @this: VariableDeclaration", "l1 = 0", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("charVariable")); - - assertJimpleStmts( - method, - Stream.of("l0 := @this: VariableDeclaration", "l1 = 97", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("intVariable")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: VariableDeclaration", "l1 = 512", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("longVariable")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: VariableDeclaration", "l1 = 123456789L", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("floatVariable")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: VariableDeclaration", "l1 = 3.14F", "return") - .collect(Collectors.toList())); - - method = loadMethod(getMethodSignature("doubleVariable")); - assertJimpleStmts( - method, - Stream.of("l0 := @this: VariableDeclaration", "l1 = 1.96969654", "return") - .collect(Collectors.toList())); - } - - public MethodSignature getMethodSignature(String methodName) { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), methodName, "void", Collections.emptyList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VariableShadowingTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VariableShadowingTest.java deleted file mode 100644 index bfa371b1392..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VariableShadowingTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class VariableShadowingTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "variableShadowing", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: VariableShadowing", - "l1 = l0.", - "l2 = 10", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VirtualMethodTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VirtualMethodTest.java deleted file mode 100644 index ed2ef3125ba..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VirtualMethodTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class VirtualMethodTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "virtualMethodDemo", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: VirtualMethod", - "$stack3 = new TempEmployee", - "specialinvoke $stack3.(int,int)>(1500, 150)", - "l1 = $stack3", - "$stack4 = new RegEmployee", - "specialinvoke $stack4.(int,int)>(1500, 500)", - "l2 = $stack4", - "$stack5 = ", - "$stack6 = virtualinvoke l1.()", - "virtualinvoke $stack5.($stack6)", - "$stack7 = ", - "$stack8 = virtualinvoke l2.()", - "virtualinvoke $stack7.($stack8)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VolatileVariableTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VolatileVariableTest.java deleted file mode 100644 index 3b9142d9e0e..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/VolatileVariableTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class VolatileVariableTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "increaseCounter", "int", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getFields().stream() - .anyMatch( - sootField -> { - return sootField.getName().equals("counter") - && sootField.getModifiers().contains(Modifier.VOLATILE); - })); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: VolatileVariable", - "$stack1 = l0.", - "$stack2 = $stack1 + 1", - "l0. = $stack2", - "return $stack1") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/WhileLoopTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/WhileLoopTest.java deleted file mode 100644 index 18945c6fa5a..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/WhileLoopTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class WhileLoopTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "whileLoop", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: WhileLoop", - "l1 = 10", - "l2 = 0", - "label1:", - "$stack4 = l1", - "$stack3 = l2", - "if $stack4 <= $stack3 goto label2", - "l1 = l1 + -1", - "goto label1", - "label2:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git "a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" "b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" deleted file mode 100644 index 3dc57fd8509..00000000000 --- "a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java6/\316\261\317\201\316\265\317\204\316\267Test.java" +++ /dev/null @@ -1,37 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java6; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class αρετηTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "αρετηAsClassName", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7", - "$stack1 = ", - "virtualinvoke $stack1.(\"this is \\u03b1\\u03c1\\u03b5\\u03c4\\u03b7 class\")", - "return") - .collect(Collectors.toList()); - } - - @Test - // test only works on a filesystem that supports unicode - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/BinaryLiteralInIntTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/BinaryLiteralInIntTest.java deleted file mode 100644 index feae7dea986..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/BinaryLiteralInIntTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java7; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class BinaryLiteralInIntTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "binaryLiteralInInt", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: BinaryLiteralInInt", "l1 = -1589272251", "l2 = 5", "l3 = 5", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/MultiTryCatchTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/MultiTryCatchTest.java deleted file mode 100644 index 4c5709a43a9..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/MultiTryCatchTest.java +++ /dev/null @@ -1,107 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java7; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MultiTryCatchTest extends JimpleTestSuiteBase { - - @Test - public void test() { - SootMethod sootMethod = loadMethod(getMethodSignature()); - assertJimpleStmts(sootMethod, expectedBodyStmts()); - } - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MultiTryCatch", - "$stack6 = new java.io.BufferedReader", - "$stack7 = new java.io.FileReader", - "specialinvoke $stack7.(java.lang.String)>(\"file.txt\")", - "specialinvoke $stack6.(java.io.Reader)>($stack7)", - "l1 = $stack6", - "label01:", - "l2 = \"\"", - "l3 = 2", - "$stack8 = ", - "virtualinvoke $stack8.(l3)", - "label02:", - "$stack11 = l1", - "$stack9 = virtualinvoke $stack11.()", - "l2 = $stack9", - "if $stack9 == null goto label03", - "$stack10 = ", - "virtualinvoke $stack10.(l2)", - "goto label02", - "label03:", - "virtualinvoke l1.()", - "label04:", - "goto label19", - "label05:", - "$stack19 := @caughtexception", - "l2 = $stack19", - "goto label19", - "label06:", - "$stack18 := @caughtexception", - "l2 = $stack18", - "label07:", - "virtualinvoke l1.()", - "label08:", - "goto label19", - "label09:", - "$stack17 := @caughtexception", - "l2 = $stack17", - "goto label19", - "label10:", - "$stack16 := @caughtexception", - "l2 = $stack16", - "label11:", - "virtualinvoke l1.()", - "label12:", - "goto label19", - "label13:", - "$stack15 := @caughtexception", - "l2 = $stack15", - "goto label19", - "label14:", - "$stack13 := @caughtexception", - "l4 = $stack13", - "label15:", - "virtualinvoke l1.()", - "label16:", - "goto label18", - "label17:", - "$stack12 := @caughtexception", - "l5 = $stack12", - "label18:", - "$stack14 = l4", - "throw $stack14", - "label19:", - "return", - "catch java.io.IOException from label03 to label04 with label05", - "catch java.io.IOException from label01 to label03 with label06", - "catch java.lang.NumberFormatException from label01 to label03 with label06", - "catch java.io.IOException from label07 to label08 with label09", - "catch java.lang.Exception from label01 to label03 with label10", - "catch java.io.IOException from label11 to label12 with label13", - "catch java.lang.Throwable from label01 to label03 with label14", - "catch java.io.IOException from label15 to label16 with label17", - "catch java.lang.Throwable from label14 to label15 with label14") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/SwitchCaseStatementWithStringTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/SwitchCaseStatementWithStringTest.java deleted file mode 100644 index 82ec50482e2..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/SwitchCaseStatementWithStringTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java7; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class SwitchCaseStatementWithStringTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "switchCaseStatementString", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: SwitchCaseStatementWithString", - "l1 = \"something\"", - "l3 = l1", - "l4 = -1", - "$stack5 = virtualinvoke l3.()", - "switch($stack5)", - "case 110182: goto label1", - "case 115276: goto label2", - "case 110339486: goto label3", - "default: goto label4", - "label1:", - "$stack9 = virtualinvoke l3.(\"one\")", - "if $stack9 == 0 goto label4", - "l4 = 0", - "goto label4", - "label2:", - "$stack8 = virtualinvoke l3.(\"two\")", - "if $stack8 == 0 goto label4", - "l4 = 1", - "goto label4", - "label3:", - "$stack6 = virtualinvoke l3.(\"three\")", - "if $stack6 == 0 goto label4", - "l4 = 2", - "label4:", - "$stack7 = l4", - "switch($stack7)", - "case 0: goto label5", - "case 1: goto label6", - "case 2: goto label7", - "default: goto label8", - "label5:", - "l2 = 1", - "goto label9", - "label6:", - "l2 = 2", - "goto label9", - "label7:", - "l2 = 3", - "goto label9", - "label8:", - "l2 = -1", - "label9:", - "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/TryWithResourcesTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/TryWithResourcesTest.java deleted file mode 100644 index dce3421a39c..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/TryWithResourcesTest.java +++ /dev/null @@ -1,98 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java7; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class TryWithResourcesTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod sootMethod = loadMethod(getMethodSignature()); - assertJimpleStmts(sootMethod, expectedBodyStmts()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TryWithResources", - "$stack6 = new java.io.BufferedReader", - "$stack7 = new java.io.FileReader", - "specialinvoke $stack7.(java.lang.String)>(\"file.txt\")", - "specialinvoke $stack6.(java.io.Reader)>($stack7)", - "l1 = $stack6", - "l2 = null", - "label01:", - "l3 = \"\"", - "label02:", - "$stack10 = l1", - "$stack8 = virtualinvoke $stack10.()", - "l3 = $stack8", - "if $stack8 == null goto label03", - "$stack9 = ", - "virtualinvoke $stack9.(l3)", - "goto label02", - "label03:", - "if l1 == null goto label16", - "if l2 == null goto label07", - "label04:", - "virtualinvoke l1.()", - "label05:", - "goto label16", - "label06:", - "$stack15 := @caughtexception", - "l3 = $stack15", - "virtualinvoke l2.(l3)", - "goto label16", - "label07:", - "virtualinvoke l1.()", - "goto label16", - "label08:", - "$stack14 := @caughtexception", - "l3 = $stack14", - "l2 = l3", - "throw l3", - "label09:", - "$stack12 := @caughtexception", - "l4 = $stack12", - "label10:", - "if l1 == null goto label15", - "if l2 == null goto label14", - "label11:", - "virtualinvoke l1.()", - "label12:", - "goto label15", - "label13:", - "$stack11 := @caughtexception", - "l5 = $stack11", - "virtualinvoke l2.(l5)", - "goto label15", - "label14:", - "virtualinvoke l1.()", - "label15:", - "$stack13 = l4", - "throw $stack13", - "label16:", - "return", - "catch java.lang.Throwable from label04 to label05 with label06", - "catch java.lang.Throwable from label01 to label03 with label08", - "catch java.lang.Throwable from label01 to label03 with label09", - "catch java.lang.Throwable from label11 to label12 with label13", - "catch java.lang.Throwable from label08 to label10 with label09") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/UnderscoreInIntTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/UnderscoreInIntTest.java deleted file mode 100644 index eaa51d1ffe1..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java7/UnderscoreInIntTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java7; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class UnderscoreInIntTest extends JimpleTestSuiteBase { - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "underscoreInInt", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of("l0 := @this: UnderscoreInInt", "l1 = 2147483647", "return") - .collect(Collectors.toList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/DefaultMethodInterfaceImplTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/DefaultMethodInterfaceImplTest.java deleted file mode 100644 index c5d42aeb2c3..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/DefaultMethodInterfaceImplTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java8; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class DefaultMethodInterfaceImplTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "interfaceMethod", "void", Collections.emptyList()); - } - - public MethodSignature getDefaultMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "defaultInterfaceMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method1 = loadMethod(getMethodSignature()); - assertJimpleStmts(method1, expectedBodyStmts()); - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - method = loadMethod(getDefaultMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts1()); - SootClass clazz = loadClass(getDeclaredClassSignature()); - assertTrue( - clazz.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equalsIgnoreCase("DefaultMethodInterface"); - })); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: DefaultMethodInterfaceImpl", - "$stack1 = ", - "virtualinvoke $stack1.(\"Method interfaceMethod() is implemented\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - public List expectedBodyStmts1() { - return Stream.of( - "l0 := @this: DefaultMethodInterfaceImpl", - "specialinvoke l0.()", - "$stack1 = ", - "virtualinvoke $stack1.(\"Method defaultInterfaceMethod() is implemented\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/MethodAcceptingLamExprTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/MethodAcceptingLamExprTest.java deleted file mode 100644 index 3305ce042a7..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/MethodAcceptingLamExprTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java8; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar, Bastian Haverkamp */ -@Category(Java8Test.class) -public class MethodAcceptingLamExprTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "lambdaAsParamMethod", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MethodAcceptingLamExpr", - "$stack2 = dynamicinvoke calcPercentage () (methodtype: double __METHODTYPE__(double), handle: , methodtype: double __METHODTYPE__(double))", - "l1 = $stack2", - "$stack4 = ", - "$stack3 = new java.lang.StringBuilder", - "specialinvoke $stack3.()>()", - "$stack5 = virtualinvoke $stack3.(\"Percentage : \")", - "$stack6 = interfaceinvoke l1.(45.0)", - "$stack7 = virtualinvoke $stack5.($stack6)", - "$stack8 = virtualinvoke $stack7.()", - "virtualinvoke $stack4.($stack8)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/MethodReferenceTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/MethodReferenceTest.java deleted file mode 100644 index 79d192735ce..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/MethodReferenceTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java8; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class MethodReferenceTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodRefMethod", "void", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: MethodReference", - "$stack1 = ", - "virtualinvoke $stack1.(\"Instance Method\")", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/RepeatingAnnotationsTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/RepeatingAnnotationsTest.java deleted file mode 100644 index fe979d38cc2..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/RepeatingAnnotationsTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java8; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.Modifier; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Ignore; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class RepeatingAnnotationsTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "annotaionMethod", "void", Collections.emptyList()); - } - - @Ignore - public void annotationTest() { - // TODO: after annotations are implemented - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue(Modifier.isAnnotation(sootClass.getModifiers())); - } - - public List expectedBodyStmts() { - return Stream.of("r0 := @this: RepeatingAnnotations", "$r1 = \"\"", "$r2 = \"\"", "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/StaticMethodInterfaceImplTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/StaticMethodInterfaceImplTest.java deleted file mode 100644 index d589a699be7..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java8/StaticMethodInterfaceImplTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java8; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class StaticMethodInterfaceImplTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), - "methodStaticMethodInterfaceImpl", - "void", - Collections.emptyList()); - } - - private MethodSignature getStaticMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "initStatic", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getStaticMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts1()); - SootMethod staticMethod = loadMethod(getStaticMethodSignature()); - assertJimpleStmts(staticMethod, expectedBodyStmts1()); - assertTrue(staticMethod.isStatic() && staticMethod.getName().equals("initStatic")); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue( - sootClass.getInterfaces().stream() - .anyMatch( - javaClassType -> { - return javaClassType.getClassName().equals("StaticMethodInterface"); - })); - } - - public List expectedBodyStmts() { - return Stream.of( - "$stack0 = ", - "virtualinvoke $stack0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", - "return") - .collect(Collectors.toList()); - } - - public List expectedBodyStmts1() { - return Stream.of( - "$stack0 = ", - "virtualinvoke $stack0.(\"Inside initStatic - StaticmethodInterfaceImpl\")", - "return") - .collect(Collectors.toList()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/AnonymousDiamondOperatorTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/AnonymousDiamondOperatorTest.java deleted file mode 100644 index 6a688cdfe5f..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/AnonymousDiamondOperatorTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java9; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class AnonymousDiamondOperatorTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "innerClassDiamond", "int", Collections.emptyList()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: AnonymousDiamondOperator", - "$stack3 = new AnonymousDiamondOperator$1", - "specialinvoke $stack3.(AnonymousDiamondOperator)>(l0)", - "l1 = $stack3", - "$stack4 = staticinvoke (22)", - "$stack5 = staticinvoke (23)", - "$stack6 = virtualinvoke l1.($stack4, $stack5)", - "l2 = (java.lang.Integer) $stack6", - "$stack7 = virtualinvoke l2.()", - "return $stack7") - .collect(Collectors.toCollection(ArrayList::new)); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/DynamicInvokeTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/DynamicInvokeTest.java deleted file mode 100644 index 41b8b002b10..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/DynamicInvokeTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java9; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; - -public class DynamicInvokeTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "stringConcatenation", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 = \"This test\"", - "$stack1 = dynamicinvoke makeConcatWithConstants (l0) (\"\\u0001 is cool\")", - "l0 = $stack1", - "$stack2 = ", - "virtualinvoke $stack2.(l0)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/PrivateMethodInterfaceImplTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/PrivateMethodInterfaceImplTest.java deleted file mode 100644 index 9a3727aa0a9..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/PrivateMethodInterfaceImplTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java9; - -import static org.junit.Assert.assertTrue; - -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class PrivateMethodInterfaceImplTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "methodInterfaceImpl", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod method = loadMethod(getMethodSignature()); - assertJimpleStmts(method, expectedBodyStmts()); - SootClass sootClass = loadClass(getDeclaredClassSignature()); - assertTrue( - sootClass.getInterfaces().stream() - .anyMatch( - javaClassType -> - javaClassType.getClassName().equalsIgnoreCase("PrivateMethodInterface"))); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: PrivateMethodInterfaceImpl", - "virtualinvoke l0.(4, 2)", - "return") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/TryWithResourcesConciseTest.java b/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/TryWithResourcesConciseTest.java deleted file mode 100644 index b078827854a..00000000000 --- a/de.upb.swt.soot.jimple.parser/src/test/java/de/upb/swt/soot/jimple/parser/javatestsuite/java9/TryWithResourcesConciseTest.java +++ /dev/null @@ -1,74 +0,0 @@ -package de.upb.swt.soot.jimple.parser.javatestsuite.java9; - -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.jimple.parser.categories.Java8Test; -import de.upb.swt.soot.jimple.parser.javatestsuite.JimpleTestSuiteBase; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar */ -@Category(Java8Test.class) -public class TryWithResourcesConciseTest extends JimpleTestSuiteBase { - - public MethodSignature getMethodSignature() { - return identifierFactory.getMethodSignature( - getDeclaredClassSignature(), "printFile", "void", Collections.emptyList()); - } - - @Test - public void test() { - SootMethod sootMethod = loadMethod(getMethodSignature()); - assertJimpleStmts(sootMethod, expectedBodyStmts()); - } - - public List expectedBodyStmts() { - return Stream.of( - "l0 := @this: TryWithResourcesConcise", - "$stack5 = new java.io.BufferedReader", - "$stack6 = new java.io.FileReader", - "specialinvoke $stack6.(java.lang.String)>(\"file.txt\")", - "specialinvoke $stack5.(java.io.Reader)>($stack6)", - "l1 = $stack5", - "l2 = l1", - "label1:", - "l3 = \"\"", - "label2:", - "$stack9 = l1", - "$stack7 = virtualinvoke $stack9.()", - "l3 = $stack7", - "if $stack7 == null goto label3", - "$stack8 = ", - "virtualinvoke $stack8.(l3)", - "goto label2", - "label3:", - "if l2 == null goto label9", - "virtualinvoke l2.()", - "goto label9", - "label4:", - "$stack11 := @caughtexception", - "l3 = $stack11", - "if l2 == null goto label8", - "label5:", - "virtualinvoke l2.()", - "label6:", - "goto label8", - "label7:", - "$stack10 := @caughtexception", - "l4 = $stack10", - "virtualinvoke l3.(l4)", - "label8:", - "$stack12 = l3", - "throw $stack12", - "label9:", - "return", - "catch java.lang.Throwable from label1 to label3 with label4", - "catch java.lang.Throwable from label5 to label6 with label7") - .collect(Collectors.toCollection(ArrayList::new)); - } -} diff --git a/de.upb.swt.soot.tests/pom.xml b/de.upb.swt.soot.tests/pom.xml deleted file mode 100644 index 2d1bf6bfaea..00000000000 --- a/de.upb.swt.soot.tests/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - 4.0.0 - - Soots (integration) testing and coverage module - soot.tests - - - de.upb.swt - soot - 4.0.0-SNAPSHOT - - - - - SlowTest - - categories.SlowTest - - - - (, 1.9) - - - - - - - de.upb.swt - soot.core - 4.0.0-SNAPSHOT - - - de.upb.swt - soot.java.core - 4.0.0-SNAPSHOT - - - de.upb.swt - soot.java.bytecode - 4.0.0-SNAPSHOT - - - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT - - - de.upb.swt - soot.callgraph - 4.0.0-SNAPSHOT - - - - - - - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT - pom - import - - - - \ No newline at end of file diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/WitherTest.java b/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/WitherTest.java deleted file mode 100644 index 8f7daca3408..00000000000 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/WitherTest.java +++ /dev/null @@ -1,99 +0,0 @@ -package de.upb.swt.soot.test; - -import static org.junit.Assert.*; - -import categories.Java8Test; -import de.upb.swt.soot.core.frontend.SootClassSource; -import de.upb.swt.soot.core.jimple.Jimple; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.jimple.basic.LocalGenerator; -import de.upb.swt.soot.core.jimple.basic.StmtPositionInfo; -import de.upb.swt.soot.core.jimple.common.constant.DoubleConstant; -import de.upb.swt.soot.core.jimple.common.stmt.JIdentityStmt; -import de.upb.swt.soot.core.jimple.common.stmt.JReturnStmt; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.model.SourceType; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootClassSource; -import de.upb.swt.soot.java.core.JavaSootMethod; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.sourcecode.frontend.WalaJavaClassProvider; -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.Optional; -import org.junit.Before; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author Kaustubh Kelkar updated on 09.07.2020 */ -@Category(Java8Test.class) -public class WitherTest { - - private WalaJavaClassProvider loader; - private JavaIdentifierFactory identifierFactory; - private JavaClassType declareClassSig; - - @Before - public void loadClassesWithWala() { - String srcDir = "../shared-test-resources/selected-java-target/"; - loader = new WalaJavaClassProvider(srcDir); - identifierFactory = JavaIdentifierFactory.getInstance(); - declareClassSig = identifierFactory.getClassType("BinaryOperations"); - } - - @Test - public void testWithers() { - - LocalGenerator generator = new LocalGenerator(new LinkedHashSet<>()); - Optional> classSource = loader.getClassSource(declareClassSig); - assertTrue(classSource.isPresent()); - JavaSootClass sootClass = - new JavaSootClass((JavaSootClassSource) classSource.get(), SourceType.Application); - ClassType type = identifierFactory.getClassType("java.lang.String"); - - MethodSignature methodSignature = - identifierFactory.getMethodSignature( - declareClassSig, "addDouble", "double", Arrays.asList("double", "float")); - Optional m = sootClass.getMethod(methodSignature.getSubSignature()); - assertTrue(m.isPresent()); - SootMethod method = m.get(); - - Body.BodyBuilder bodyBuilder = Body.builder(); - final JIdentityStmt firstStmt = - Jimple.newIdentityStmt( - generator.generateLocal(declareClassSig), - Jimple.newParameterRef(declareClassSig, 0), - StmtPositionInfo.createNoStmtPositionInfo()); - final JReturnStmt jReturnStmt = - Jimple.newReturnStmt( - DoubleConstant.getInstance(12.34), StmtPositionInfo.createNoStmtPositionInfo()); - // bodyBuilder.addFlow(firstStmt, jReturnStmt); - - Body body = - bodyBuilder - .setMethodSignature(methodSignature) - .addFlow(firstStmt, jReturnStmt) - .setStartingStmt(firstStmt) - .setLocals(generator.getLocals()) - .build(); - assertNotNull(body); - - Local local = (Local) firstStmt.getLeftOp(); - Local newLocal = local.withName("newName"); - final JIdentityStmt firstStmtNew = firstStmt.withLocal(newLocal); - - JavaSootClass newSootClass = sootClass.withReplacedMethod(method, method.withBody(body)); - - Optional newMethod = - newSootClass.getMethod(method.getSignature().getSubSignature()); - assertTrue(newMethod.isPresent()); - Body newBody = newMethod.get().getBody(); - assertNotNull(newBody); - assertEquals("newName", ((Local) firstStmtNew.getLeftOp()).getName()); - assertNotEquals("newName1", ((Local) firstStmtNew.getLeftOp()).getName()); - } -} diff --git a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/MethodOverridingTest.java b/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/MethodOverridingTest.java deleted file mode 100644 index fc8804e3c51..00000000000 --- a/de.upb.swt.soot.tests/src/test/java/de/upb/swt/soot/test/typehierarchy/viewtypehierarchytestcase/MethodOverridingTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.upb.swt.soot.test.typehierarchy.viewtypehierarchytestcase; - -import static org.junit.Assert.*; - -import categories.Java8Test; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.test.typehierarchy.JavaTypeHierarchyTestBase; -import java.util.Collections; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** @author: Hasitha Rajapakse * */ -@Category(Java8Test.class) -public class MethodOverridingTest extends JavaTypeHierarchyTestBase { - @Test - public void method() { - ViewTypeHierarchy typeHierarchy = - (ViewTypeHierarchy) customTestWatcher.getView().getTypeHierarchy(); - ClassType sootClassType = getClassType(customTestWatcher.getClassName()); - - assertEquals(typeHierarchy.superClassOf(sootClassType), getClassType("SuperClass")); - assertTrue(typeHierarchy.isSubtype(getClassType("SuperClass"), sootClassType)); - - SootClass sootClass = - customTestWatcher - .getView() - .getClass( - customTestWatcher - .getView() - .getIdentifierFactory() - .getClassType(customTestWatcher.getClassName())) - .get(); - SootMethod sootMethod = - sootClass - .getMethod( - identifierFactory - .getMethodSignature(sootClassType, "method", "void", Collections.emptyList()) - .getSubSignature()) - .get(); - Body body = sootMethod.getBody(); - assertNotNull(body); - - SootClass superClass = - customTestWatcher.getView().getClass(sootClass.getSuperclass().get()).get(); - SootMethod superMethod = - superClass - .getMethod( - identifierFactory - .getMethodSignature( - superClass.getType(), "method", "void", Collections.emptyList()) - .getSubSignature()) - .get(); - Body superBody = superMethod.getBody(); - assertNotNull(superBody); - - assertNotEquals(body, superBody); - } -} diff --git a/docs/call-graph-construction.md b/docs/call-graph-construction.md index 1fffc07200c..5b8b006ebca 100644 --- a/docs/call-graph-construction.md +++ b/docs/call-graph-construction.md @@ -76,7 +76,7 @@ All the call graph construction algorithms require an entry method to start with ``` ## Class Hierarchy Analysis -Class Hierarchy Analysis (CHA) algorithm is the most sound call graph construction algorithm available in FutureSoot. It soundly includes all implementers of an interface, when resolving a method call on an interface. +Class Hierarchy Analysis (CHA) algorithm is the most sound call graph construction algorithm available in Futuresootup. It soundly includes all implementers of an interface, when resolving a method call on an interface. You can construct a call graph with CHA as follows: === "FutureSoot" diff --git a/docs/getting-started.md b/docs/getting-started.md index 5a1693eb32a..18a35dcf95b 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -1,6 +1,6 @@ # Getting Started -This page walks you through the core data structures, as well as shows how to get started with FutureSoot. +This page walks you through the core data structures, as well as shows how to get started with Futuresootup. ## Core Data Structures Before you get started with the FutureSoot library, it helps to learn about the following core data structures: @@ -199,7 +199,7 @@ You can view all the code used until this point below: ## FutureSoot vs Soot -Below we show a comparison of the code so far with the same functionality in Soot. +Below we show a comparison of the code so far with the same functionality in sootup. === "FutureSoot" diff --git a/docs/index.md b/docs/index.md index c4c83deff35..9f035791650 100644 --- a/docs/index.md +++ b/docs/index.md @@ -7,7 +7,7 @@ The purpose of the FutureSoot project is to make [Soot](https://github.com/soot- !!! important - FutureSoot is *not a version update* to Soot, it is instead a *completely new implementation* written from scratch that aims to be a leaner, more extensible equivalent of Soot. + FutureSoot is *not a version update* to Soot, it is instead a *completely new implementation* written from scratch that aims to be a leaner, more extensible equivalent of sootup. ## What is new? @@ -24,31 +24,31 @@ FutureSoot has a modular architecture, which enables its clients to include only ??? info "core" - [core module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.swt.soot.core) contains the core building blocks such as the jimple IR, control flow graphs, and frontend interfaces. The rest of the modules build on the core module. + [core module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.sse.sootup.core) contains the core building blocks such as the jimple IR, control flow graphs, and frontend interfaces. The rest of the modules build on the core module. ??? info "java.core" - [java.core module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.swt.soot.java.core) contains parts that are essential for analyzing Java code. + [java.core module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.sse.sootup.java.core) contains parts that are essential for analyzing Java code. ??? info "java.bytecode" - [java.bytecode module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.swt.soot.java.bytecode) contains the functionality that is necessary for taking as input java bytecode. + [java.bytecode module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.sse.sootup.java.bytecode) contains the functionality that is necessary for taking as input java bytecode. ??? info "java.sourcecode" - [java.sourcecode module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.swt.soot.java.sourcecode) contains the functionality that is necessary for taking as input java source code. + [java.sourcecode module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.sse.sootup.java.sourcecode) contains the functionality that is necessary for taking as input java source code. ??? info "callgraph" - [callgraph module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.swt.soot.callgraph) contains implementations of common call graph construction algorithms such as **CHA**, **RTA**, **VTA**, as well as a reimplementation of **Spark** pointer analysis framework. + [callgraph module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.sse.sootup.callgraph) contains implementations of common call graph construction algorithms such as **CHA**, **RTA**, **VTA**, as well as a reimplementation of **Spark** pointer analysis framework. ??? info "jimple.parser" - [jimple.parser module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.swt.soot.jimple.parser) contains the functionalty that is necessary for taking as input .jimple files. + [jimple.parser module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.sse.sootup.jimple.parser) contains the functionalty that is necessary for taking as input .jimple files. ??? info "tests" - [tests module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.swt.soot.tests) contains integrations tests, that depend on all of the above modules. + [tests module](https://github.com/secure-software-engineering/soot-reloaded/tree/develop/de.upb.sse.sootup.tests) contains integrations tests, that depend on all of the above modules. ### No More Singletons @@ -64,7 +64,7 @@ FutureSoot has been designed with the goal of immutability in mind. This makes s #### Withers instead of Setters -Due to the immutability goal, many classes do not have setters anymore. For example, a `Body` does not have a method `setStmts(List stmts)`. Instead, a method called `withStmts(List stmts)` has been added. This does not modify the original instance, but returns a copy that has different `stmts` than the original instance. This concept of so-called `with`-ers can be found all throughout FutureSoot. +Due to the immutability goal, many classes do not have setters anymore. For example, a `Body` does not have a method `setStmts(List stmts)`. Instead, a method called `withStmts(List stmts)` has been added. This does not modify the original instance, but returns a copy that has different `stmts` than the original instance. This concept of so-called `with`-ers can be found all throughout Futuresootup. !!! example "A simplified example" @@ -87,8 +87,8 @@ Due to the immutability goal, many classes do not have setters anymore. For exam ### Intermediate Representation -Jimple is the only intermediate representation (IR) in FutureSoot. We changed it slightly to be able to accommodate different programming languages in future. +Jimple is the only intermediate representation (IR) in Futuresootup. We changed it slightly to be able to accommodate different programming languages in future. ### Is this a drop-in replacement for Soot? -Not really. FutureSoot has a completely new architecture and API, so it is not trivial to update existing projects that build on Soot. We recommend using it for greenfield projects. +Not really. FutureSoot has a completely new architecture and API, so it is not trivial to update existing projects that build on sootup. We recommend using it for greenfield projects. diff --git a/docs/installation.md b/docs/installation.md index f1c666e8939..5e6917fa349 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -26,7 +26,7 @@ mvn -Dskiptests install Since the project is not available as a maven artefact, you first need to built it from source. See [Building from Source](#building-from-source) -Below we only show how you can add the ```soot.core``` module to your project. Depending on your needs you can import other modules too. See [Modules](../#modular-architecture) to learn more about the modules. +Below we only show how you can add the ```sootup.core``` module to your project. Depending on your needs you can import other modules too. See [Modules](../#modular-architecture) to learn more about the modules. 1. Maven: @@ -34,9 +34,9 @@ Below we only show how you can add the ```soot.core``` module to your project. D ``` - de.upb.swt - soot.core - 4.0.0-SNAPSHOT + de.upb.sse + sootup.core + 1.0.0-SNAPSHOT ``` @@ -45,5 +45,5 @@ Below we only show how you can add the ```soot.core``` module to your project. D Add the following dependency in the ```build.gradle``` file of your project. ``` -compile "de.upb.swt:soot.core:4.0.0-SNAPSHOT" +compile "de.upb.sse:sootup.core:1.0.0-SNAPSHOT" ``` \ No newline at end of file diff --git a/docs/jimple.md b/docs/jimple.md index 55eb5850010..15c86ebc9bc 100644 --- a/docs/jimple.md +++ b/docs/jimple.md @@ -1,5 +1,5 @@ # Jimple -What is Jimple? Jimple is the intermediate representation [**IR**]{A data structure which represents (source) code} of Soot. +What is Jimple? Jimple is the intermediate representation [**IR**]{A data structure which represents (source) code} of sootup. Soot's intention is to provide a simplified way to analyze JVM bytecode. JVM bytecode is stack-based, which makes it difficult for program analysis. Java source code, on the other hand, is also not quite suitable for program analysis, due to its nested structures. Therefore, Jimple aims to bring the best of both worlds, a non-stack-based and flat (non-nested) representation. diff --git a/examples/pom.xml b/examples/pom.xml index 90e5bede3c8..12e17a6511a 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -3,53 +3,53 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - Soot Examples + SootUp Examples examples - de.upb.swt - soot - 4.0.0-SNAPSHOT + de.upb.sse + sootup + 1.0.0-SNAPSHOT - de.upb.swt - soot.callgraph - 4.0.0-SNAPSHOT + de.upb.sse + sootup.callgraph + 1.0.0-SNAPSHOT - de.upb.swt - soot.core - 4.0.0-SNAPSHOT + de.upb.sse + sootup.core + 1.0.0-SNAPSHOT - de.upb.swt - soot.java.bytecode - 4.0.0-SNAPSHOT + de.upb.sse + sootup.java.bytecode + 1.0.0-SNAPSHOT - de.upb.swt - soot.java.core - 4.0.0-SNAPSHOT + de.upb.sse + sootup.java.core + 1.0.0-SNAPSHOT - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT - de.upb.swt - soot.jimple.parser - 4.0.0-SNAPSHOT + de.upb.sse + sootup.jimple.parser + 1.0.0-SNAPSHOT - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT pom import diff --git a/examples/src/test/java/de/upb/swt/soot/examples/README.md b/examples/src/test/java/de/upb/sse/soot/examples/README.md similarity index 100% rename from examples/src/test/java/de/upb/swt/soot/examples/README.md rename to examples/src/test/java/de/upb/sse/soot/examples/README.md diff --git a/examples/src/test/java/de/upb/swt/soot/examples/basicSetup/BasicSetup.java b/examples/src/test/java/de/upb/sse/soot/examples/basicSetup/BasicSetup.java similarity index 75% rename from examples/src/test/java/de/upb/swt/soot/examples/basicSetup/BasicSetup.java rename to examples/src/test/java/de/upb/sse/soot/examples/basicSetup/BasicSetup.java index d2e273323d6..1f43cdd18bd 100644 --- a/examples/src/test/java/de/upb/swt/soot/examples/basicSetup/BasicSetup.java +++ b/examples/src/test/java/de/upb/sse/soot/examples/basicSetup/BasicSetup.java @@ -1,27 +1,27 @@ -package de.upb.swt.soot.examples.basicSetup; +package de.upb.sse.sootup.examples.basicSetup; import static org.junit.Assert.assertTrue; import categories.Java8Test; -import de.upb.swt.soot.core.Language; -import de.upb.swt.soot.core.Project; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.jimple.common.expr.JVirtualInvokeExpr; -import de.upb.swt.soot.core.jimple.common.stmt.JInvokeStmt; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.views.View; -import de.upb.swt.soot.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootClassSource; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; -import de.upb.swt.soot.jimple.parser.JimpleAnalysisInputLocation; -import de.upb.swt.soot.jimple.parser.JimpleProject; +import de.upb.sse.sootup.core.Language; +import de.upb.sse.sootup.core.Project; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.jimple.common.expr.JVirtualInvokeExpr; +import de.upb.sse.sootup.core.jimple.common.stmt.JInvokeStmt; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.views.View; +import de.upb.sse.sootup.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootClassSource; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.sourcecode.inputlocation.JavaSourcePathAnalysisInputLocation; +import de.upb.sse.sootup.jimple.parser.JimpleAnalysisInputLocation; +import de.upb.sse.sootup.jimple.parser.JimpleProject; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collections; diff --git a/examples/src/test/java/de/upb/sse/soot/examples/bodyInterceptor/BodyInterceptor.java b/examples/src/test/java/de/upb/sse/soot/examples/bodyInterceptor/BodyInterceptor.java new file mode 100644 index 00000000000..9fea448e036 --- /dev/null +++ b/examples/src/test/java/de/upb/sse/soot/examples/bodyInterceptor/BodyInterceptor.java @@ -0,0 +1,90 @@ +package de.upb.sse.sootup.examples.bodyInterceptor; + +import static org.junit.Assert.assertTrue; + +import categories.Java8Test; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.inputlocation.ClassLoadingOptions; +import de.upb.sse.sootup.core.jimple.common.constant.IntConstant; +import de.upb.sse.sootup.core.jimple.common.stmt.JAssignStmt; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; +import de.upb.sse.sootup.java.bytecode.interceptors.DeadAssignmentEliminator; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootClassSource; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; +import java.nio.file.Paths; +import java.util.Collections; +import java.util.List; +import javax.annotation.Nonnull; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +/** This example illustrates how to invoke body interceptors. */ +@Category(Java8Test.class) +public class BodyInterceptor { + + @Test + public void test() { + // Create a AnalysisInputLocation, which points to a directory. All class files will be loaded + // from the directory + AnalysisInputLocation inputLocation = + new PathBasedAnalysisInputLocation( + Paths.get("src/test/resources/BodyInterceptor/binary"), null); + + // Specify the language of the JavaProject. This is especially relevant for Multi-release jars, + // where classes are loaded depending on the language level of the analysis + JavaLanguage language = new JavaLanguage(8); + + // Create a new JavaProject based on the input location + JavaProject project = JavaProject.builder(language).addInputLocation(inputLocation).build(); + + // Create a signature for the class we want to analyze + ClassType classType = project.getIdentifierFactory().getClassType("File"); + + // Create a signature for the method we want to analyze + MethodSignature methodSignature = + project + .getIdentifierFactory() + .getMethodSignature(classType, "someMethod", "void", Collections.emptyList()); + + // Create a view for project, which allows us to retrieve classes + // add class loading options, which can specify body interceptors + JavaView view = + project.createOnDemandView( + analysisInputLocation -> + new ClassLoadingOptions() { + @Nonnull + @Override + public List + getBodyInterceptors() { + return Collections.singletonList(new DeadAssignmentEliminator()); + } + }); + + // Assert that class is present + assertTrue(view.getClass(classType).isPresent()); + + // Retrieve class + SootClass sootClass = view.getClass(classType).get(); + + // Retrieve method + assertTrue(view.getMethod(methodSignature).isPresent()); + SootMethod method = view.getMethod(methodSignature).get(); + + System.out.println(method.getBody()); + + // assert that l1 = 3 is not present, i.e. body interceptor worked + assertTrue( + method.getBody().getStmts().stream() + .noneMatch( + stmt -> + stmt instanceof JAssignStmt + && ((JAssignStmt) stmt).getRightOp().equivTo(IntConstant.getInstance(3)))); + } +} diff --git a/examples/src/test/java/de/upb/sse/soot/examples/callgraph/CallgraphExample.java b/examples/src/test/java/de/upb/sse/soot/examples/callgraph/CallgraphExample.java new file mode 100644 index 00000000000..a883bfc2c60 --- /dev/null +++ b/examples/src/test/java/de/upb/sse/soot/examples/callgraph/CallgraphExample.java @@ -0,0 +1,66 @@ +package de.upb.sse.sootup.examples.callgraph; + +import de.upb.sse.sootup.callgraph.CallGraph; +import de.upb.sse.sootup.callgraph.CallGraphAlgorithm; +import de.upb.sse.sootup.callgraph.ClassHierarchyAnalysisAlgorithm; +import de.upb.sse.sootup.callgraph.RapidTypeAnalysisAlgorithm; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.views.JavaView; +import java.util.Collections; +import org.junit.Test; + +public class CallgraphExample { + + @Test + public void test() { + // Create a AnalysisInputLocation, which points to a directory. All class files will be loaded + // from the directory + AnalysisInputLocation inputLocation = + new JavaClassPathAnalysisInputLocation("src/test/resources/Callgraph/binary"); + + // Specify the language of the JavaProject. This is especially relevant for Multi-release jars, + // where classes are loaded depending on the language level of the analysis + JavaLanguage language = new JavaLanguage(8); + + // Create a new JavaProject and view based on the input location + JavaProject project = + JavaProject.builder(language) + .addInputLocation(inputLocation) + .addInputLocation( + new JavaClassPathAnalysisInputLocation( + System.getProperty("java.home") + "/lib/rt.jar")) // add rt.jar + .build(); + + JavaView view = project.createFullView(); + + // Get a MethodSignature + ClassType classTypeA = project.getIdentifierFactory().getClassType("A"); + ClassType classTypeB = project.getIdentifierFactory().getClassType("B"); + MethodSignature entryMethodSignature = + JavaIdentifierFactory.getInstance() + .getMethodSignature( + classTypeB, + JavaIdentifierFactory.getInstance() + .getMethodSubSignature( + "calc", VoidType.getInstance(), Collections.singletonList(classTypeA))); + + // Create type hierarchy and CHA + final ViewTypeHierarchy typeHierarchy = new ViewTypeHierarchy(view); + System.out.println(typeHierarchy.subclassesOf(classTypeA)); + CallGraphAlgorithm cha = new ClassHierarchyAnalysisAlgorithm(view, typeHierarchy); + cha = new RapidTypeAnalysisAlgorithm(view, typeHierarchy); + // Create CG by initializing CHA with entry method(s) + CallGraph cg = cha.initialize(Collections.singletonList(entryMethodSignature)); + + cg.callsFrom(entryMethodSignature).forEach(System.out::println); + } +} diff --git a/examples/src/test/java/de/upb/swt/soot/examples/classhierarchy/ClassHierarchy.java b/examples/src/test/java/de/upb/sse/soot/examples/classhierarchy/ClassHierarchy.java similarity index 77% rename from examples/src/test/java/de/upb/swt/soot/examples/classhierarchy/ClassHierarchy.java rename to examples/src/test/java/de/upb/sse/soot/examples/classhierarchy/ClassHierarchy.java index 0c39bbfba3e..676f563bdee 100644 --- a/examples/src/test/java/de/upb/swt/soot/examples/classhierarchy/ClassHierarchy.java +++ b/examples/src/test/java/de/upb/sse/soot/examples/classhierarchy/ClassHierarchy.java @@ -1,15 +1,15 @@ -package de.upb.swt.soot.examples.classhierarchy; +package de.upb.sse.sootup.examples.classhierarchy; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.typehierarchy.ViewTypeHierarchy; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaIdentifierFactory; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; import java.util.Arrays; import java.util.List; import java.util.Set; @@ -25,7 +25,7 @@ * |-- C <-- D *
* - * This code example will show you how to build and examine a class hierarchy using Soot. + * This code example will show you how to build and examine a class hierarchy using sootup. */ public class ClassHierarchy { diff --git a/examples/src/test/java/de/upb/swt/soot/examples/mutatingSootClass/MutatingSootClass.java b/examples/src/test/java/de/upb/sse/soot/examples/mutatingSootClass/MutatingSootClass.java similarity index 78% rename from examples/src/test/java/de/upb/swt/soot/examples/mutatingSootClass/MutatingSootClass.java rename to examples/src/test/java/de/upb/sse/soot/examples/mutatingSootClass/MutatingSootClass.java index 432a69dff3e..668666a2b9d 100644 --- a/examples/src/test/java/de/upb/swt/soot/examples/mutatingSootClass/MutatingSootClass.java +++ b/examples/src/test/java/de/upb/sse/soot/examples/mutatingSootClass/MutatingSootClass.java @@ -1,31 +1,31 @@ -package de.upb.swt.soot.examples.mutatingSootClass; +package de.upb.sse.sootup.examples.mutatingSootClass; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import de.upb.swt.soot.core.frontend.OverridingBodySource; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.jimple.basic.Local; -import de.upb.swt.soot.core.model.Body; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.signatures.MethodSubSignature; -import de.upb.swt.soot.core.signatures.PackageName; -import de.upb.swt.soot.core.types.ArrayType; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.PrimitiveType.IntType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootClassSource; -import de.upb.swt.soot.java.core.OverridingJavaClassSource; -import de.upb.swt.soot.java.core.language.JavaJimple; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.types.JavaClassType; -import de.upb.swt.soot.java.core.views.JavaView; +import de.upb.sse.sootup.core.frontend.OverridingBodySource; +import de.upb.sse.sootup.core.inputlocation.AnalysisInputLocation; +import de.upb.sse.sootup.core.jimple.basic.Local; +import de.upb.sse.sootup.core.model.Body; +import de.upb.sse.sootup.core.model.SootClass; +import de.upb.sse.sootup.core.model.SootMethod; +import de.upb.sse.sootup.core.signatures.MethodSignature; +import de.upb.sse.sootup.core.signatures.MethodSubSignature; +import de.upb.sse.sootup.core.signatures.PackageName; +import de.upb.sse.sootup.core.types.ArrayType; +import de.upb.sse.sootup.core.types.ClassType; +import de.upb.sse.sootup.core.types.PrimitiveType.IntType; +import de.upb.sse.sootup.core.types.VoidType; +import de.upb.sse.sootup.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; +import de.upb.sse.sootup.java.core.JavaProject; +import de.upb.sse.sootup.java.core.JavaSootClass; +import de.upb.sse.sootup.java.core.JavaSootClassSource; +import de.upb.sse.sootup.java.core.OverridingJavaClassSource; +import de.upb.sse.sootup.java.core.language.JavaJimple; +import de.upb.sse.sootup.java.core.language.JavaLanguage; +import de.upb.sse.sootup.java.core.types.JavaClassType; +import de.upb.sse.sootup.java.core.views.JavaView; import java.nio.file.Paths; import java.util.Collections; import org.junit.Test; diff --git a/examples/src/test/java/de/upb/swt/soot/examples/bodyInterceptor/BodyInterceptor.java b/examples/src/test/java/de/upb/swt/soot/examples/bodyInterceptor/BodyInterceptor.java deleted file mode 100644 index e70e67161f9..00000000000 --- a/examples/src/test/java/de/upb/swt/soot/examples/bodyInterceptor/BodyInterceptor.java +++ /dev/null @@ -1,90 +0,0 @@ -package de.upb.swt.soot.examples.bodyInterceptor; - -import static org.junit.Assert.assertTrue; - -import categories.Java8Test; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.inputlocation.ClassLoadingOptions; -import de.upb.swt.soot.core.jimple.common.constant.IntConstant; -import de.upb.swt.soot.core.jimple.common.stmt.JAssignStmt; -import de.upb.swt.soot.core.model.SootClass; -import de.upb.swt.soot.core.model.SootMethod; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.java.bytecode.inputlocation.PathBasedAnalysisInputLocation; -import de.upb.swt.soot.java.bytecode.interceptors.DeadAssignmentEliminator; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.JavaSootClassSource; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; -import java.nio.file.Paths; -import java.util.Collections; -import java.util.List; -import javax.annotation.Nonnull; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -/** This example illustrates how to invoke body interceptors. */ -@Category(Java8Test.class) -public class BodyInterceptor { - - @Test - public void test() { - // Create a AnalysisInputLocation, which points to a directory. All class files will be loaded - // from the directory - AnalysisInputLocation inputLocation = - new PathBasedAnalysisInputLocation( - Paths.get("src/test/resources/BodyInterceptor/binary"), null); - - // Specify the language of the JavaProject. This is especially relevant for Multi-release jars, - // where classes are loaded depending on the language level of the analysis - JavaLanguage language = new JavaLanguage(8); - - // Create a new JavaProject based on the input location - JavaProject project = JavaProject.builder(language).addInputLocation(inputLocation).build(); - - // Create a signature for the class we want to analyze - ClassType classType = project.getIdentifierFactory().getClassType("File"); - - // Create a signature for the method we want to analyze - MethodSignature methodSignature = - project - .getIdentifierFactory() - .getMethodSignature(classType, "someMethod", "void", Collections.emptyList()); - - // Create a view for project, which allows us to retrieve classes - // add class loading options, which can specify body interceptors - JavaView view = - project.createOnDemandView( - analysisInputLocation -> - new ClassLoadingOptions() { - @Nonnull - @Override - public List - getBodyInterceptors() { - return Collections.singletonList(new DeadAssignmentEliminator()); - } - }); - - // Assert that class is present - assertTrue(view.getClass(classType).isPresent()); - - // Retrieve class - SootClass sootClass = view.getClass(classType).get(); - - // Retrieve method - assertTrue(view.getMethod(methodSignature).isPresent()); - SootMethod method = view.getMethod(methodSignature).get(); - - System.out.println(method.getBody()); - - // assert that l1 = 3 is not present, i.e. body interceptor worked - assertTrue( - method.getBody().getStmts().stream() - .noneMatch( - stmt -> - stmt instanceof JAssignStmt - && ((JAssignStmt) stmt).getRightOp().equivTo(IntConstant.getInstance(3)))); - } -} diff --git a/examples/src/test/java/de/upb/swt/soot/examples/callgraph/CallgraphExample.java b/examples/src/test/java/de/upb/swt/soot/examples/callgraph/CallgraphExample.java deleted file mode 100644 index 473c86e2b55..00000000000 --- a/examples/src/test/java/de/upb/swt/soot/examples/callgraph/CallgraphExample.java +++ /dev/null @@ -1,66 +0,0 @@ -package de.upb.swt.soot.examples.callgraph; - -import de.upb.swt.soot.callgraph.CallGraph; -import de.upb.swt.soot.callgraph.CallGraphAlgorithm; -import de.upb.swt.soot.callgraph.ClassHierarchyAnalysisAlgorithm; -import de.upb.swt.soot.callgraph.RapidTypeAnalysisAlgorithm; -import de.upb.swt.soot.core.inputlocation.AnalysisInputLocation; -import de.upb.swt.soot.core.signatures.MethodSignature; -import de.upb.swt.soot.core.typehierarchy.ViewTypeHierarchy; -import de.upb.swt.soot.core.types.ClassType; -import de.upb.swt.soot.core.types.VoidType; -import de.upb.swt.soot.java.bytecode.inputlocation.JavaClassPathAnalysisInputLocation; -import de.upb.swt.soot.java.core.JavaIdentifierFactory; -import de.upb.swt.soot.java.core.JavaProject; -import de.upb.swt.soot.java.core.JavaSootClass; -import de.upb.swt.soot.java.core.language.JavaLanguage; -import de.upb.swt.soot.java.core.views.JavaView; -import java.util.Collections; -import org.junit.Test; - -public class CallgraphExample { - - @Test - public void test() { - // Create a AnalysisInputLocation, which points to a directory. All class files will be loaded - // from the directory - AnalysisInputLocation inputLocation = - new JavaClassPathAnalysisInputLocation("src/test/resources/Callgraph/binary"); - - // Specify the language of the JavaProject. This is especially relevant for Multi-release jars, - // where classes are loaded depending on the language level of the analysis - JavaLanguage language = new JavaLanguage(8); - - // Create a new JavaProject and view based on the input location - JavaProject project = - JavaProject.builder(language) - .addInputLocation(inputLocation) - .addInputLocation( - new JavaClassPathAnalysisInputLocation( - System.getProperty("java.home") + "/lib/rt.jar")) // add rt.jar - .build(); - - JavaView view = project.createFullView(); - - // Get a MethodSignature - ClassType classTypeA = project.getIdentifierFactory().getClassType("A"); - ClassType classTypeB = project.getIdentifierFactory().getClassType("B"); - MethodSignature entryMethodSignature = - JavaIdentifierFactory.getInstance() - .getMethodSignature( - classTypeB, - JavaIdentifierFactory.getInstance() - .getMethodSubSignature( - "calc", VoidType.getInstance(), Collections.singletonList(classTypeA))); - - // Create type hierarchy and CHA - final ViewTypeHierarchy typeHierarchy = new ViewTypeHierarchy(view); - System.out.println(typeHierarchy.subclassesOf(classTypeA)); - CallGraphAlgorithm cha = new ClassHierarchyAnalysisAlgorithm(view, typeHierarchy); - cha = new RapidTypeAnalysisAlgorithm(view, typeHierarchy); - // Create CG by initializing CHA with entry method(s) - CallGraph cg = cha.initialize(Collections.singletonList(entryMethodSignature)); - - cg.callsFrom(entryMethodSignature).forEach(System.out::println); - } -} diff --git a/pom.xml b/pom.xml index ce1eb1a47fc..a302207ce7b 100644 --- a/pom.xml +++ b/pom.xml @@ -5,10 +5,10 @@ http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 pom - Soot - de.upb.swt - soot - 4.0.0-SNAPSHOT + SootUp + de.upb.sse + sootup + 1.0.0-SNAPSHOT GNU LESSER GENERAL PUBLIC LICENSE 2.1 @@ -18,14 +18,14 @@ - de.upb.swt.soot.core - de.upb.swt.soot.jimple.parser - de.upb.swt.soot.java.core - de.upb.swt.soot.java.bytecode - de.upb.swt.soot.java.sourcecode - de.upb.swt.soot.tests - de.upb.swt.soot.callgraph - de.upb.swt.soot.analysis + de.upb.sse.sootup.core + de.upb.sse.sootup.jimple.parser + de.upb.sse.sootup.java.core + de.upb.sse.sootup.java.bytecode + de.upb.sse.sootup.java.sourcecode + de.upb.sse.sootup.tests + de.upb.sse.sootup.callgraph + de.upb.sse.sootup.analysis examples report @@ -118,7 +118,7 @@ mvn install:install-file - -Dfile=de.upb.swt.soot.java.bytecode/lib/dex-tools-2.2-SNAPSHOT.jar + -Dfile=de.upb.sse.sootup.java.bytecode/lib/dex-tools-2.2-SNAPSHOT.jar -DgroupId=com.googlecode.d2j -DartifactId=dex-tools -Dversion=2.2-SNAPSHOT @@ -282,9 +282,9 @@ lgpl_v2_1 Raja Vallée-Rai and others - de.upb.swt.soot.callgraph/src/main/java - de.upb.swt.soot.java.bytecode/src/main/java - de.upb.swt.soot.java.sourcecode/src/main/java + de.upb.sse.sootup.callgraph/src/main/java + de.upb.sse.sootup.java.bytecode/src/main/java + de.upb.sse.sootup.java.sourcecode/src/main/java diff --git a/report/pom.xml b/report/pom.xml index abf49576e3d..9b32ff5d0c1 100644 --- a/report/pom.xml +++ b/report/pom.xml @@ -3,12 +3,12 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - Futuresoot Coverage Report Module + SootUp Coverage Report Module report - de.upb.swt - soot - 4.0.0-SNAPSHOT + de.upb.sse + sootup + 1.0.0-SNAPSHOT @@ -40,39 +40,39 @@ - de.upb.swt - soot.core - 4.0.0-SNAPSHOT + de.upb.sse + sootup.core + 1.0.0-SNAPSHOT compile - de.upb.swt - soot.jimple.parser - 4.0.0-SNAPSHOT + de.upb.sse + sootup.jimple.parser + 1.0.0-SNAPSHOT compile - de.upb.swt - soot.java.core - 4.0.0-SNAPSHOT + de.upb.sse + sootup.java.core + 1.0.0-SNAPSHOT compile - de.upb.swt - soot.java.bytecode - 4.0.0-SNAPSHOT + de.upb.sse + sootup.java.bytecode + 1.0.0-SNAPSHOT compile - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT compile - de.upb.swt - soot.callgraph - 4.0.0-SNAPSHOT + de.upb.sse + sootup.callgraph + 1.0.0-SNAPSHOT compile @@ -80,9 +80,9 @@ - de.upb.swt - soot.java.sourcecode - 4.0.0-SNAPSHOT + de.upb.sse + sootup.java.sourcecode + 1.0.0-SNAPSHOT pom import diff --git a/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/A.java b/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/A.java index d9190f2d735..1456f6f2760 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/A.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.abstractClasses; +package de.upb.sootup.basic.abstractClasses; abstract class A { abstract void print(); diff --git a/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/AbstractClasses.java b/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/AbstractClasses.java index fae1897919e..d398d47e4ca 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/AbstractClasses.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/AbstractClasses.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.abstractClasses; +package de.upb.sootup.basic.abstractClasses; public abstract class AbstractClasses { public static void abstractClasses() { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/B.java b/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/B.java index f82cca96b9f..d4aa0764711 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/B.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/abstractClasses/B.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.abstractClasses; +package de.upb.sootup.basic.abstractClasses; class B extends A { public void print() { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/controlStatements/ControlStatements.java b/shared-test-resources/java-target/de/upb/soot/basic/controlStatements/ControlStatements.java index e583253a43c..90f8af4c9e7 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/controlStatements/ControlStatements.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/controlStatements/ControlStatements.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.controlStatements; +package de.upb.sootup.basic.controlStatements; public class ControlStatements { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/expr/Cast.java b/shared-test-resources/java-target/de/upb/soot/basic/expr/Cast.java index 694195d31bb..b60344557f9 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/expr/Cast.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/expr/Cast.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.expr; +package de.upb.sootup.basic.expr; public class Cast { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/expr/Dummy.java b/shared-test-resources/java-target/de/upb/soot/basic/expr/Dummy.java index 13976e854bc..1c7e07aaa4f 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/expr/Dummy.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/expr/Dummy.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.expr; +package de.upb.sootup.basic.expr; public class Dummy { public int field; diff --git a/shared-test-resources/java-target/de/upb/soot/basic/expr/InstanceOf.java b/shared-test-resources/java-target/de/upb/soot/basic/expr/InstanceOf.java index 168812f2213..77e4ab5b244 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/expr/InstanceOf.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/expr/InstanceOf.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.expr; +package de.upb.sootup.basic.expr; public class InstanceOf { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/expr/Length.java b/shared-test-resources/java-target/de/upb/soot/basic/expr/Length.java index c9af2e8e1fb..ffbc2e44f5b 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/expr/Length.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/expr/Length.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.expr; +package de.upb.sootup.basic.expr; public class Length { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/expr/Negate.java b/shared-test-resources/java-target/de/upb/soot/basic/expr/Negate.java index 9add0dd5295..69e5b2b4898 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/expr/Negate.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/expr/Negate.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.expr; +package de.upb.sootup.basic.expr; public class Negate { static void sth() { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/expr/NewArray.java b/shared-test-resources/java-target/de/upb/soot/basic/expr/NewArray.java index 862133d1e7e..361525ecbb1 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/expr/NewArray.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/expr/NewArray.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.expr; +package de.upb.sootup.basic.expr; public class NewArray { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/expr/NewMultiArray.java b/shared-test-resources/java-target/de/upb/soot/basic/expr/NewMultiArray.java index 35c7ebdf9dd..a31056b687b 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/expr/NewMultiArray.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/expr/NewMultiArray.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.expr; +package de.upb.sootup.basic.expr; public class NewMultiArray { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/fieldReference/A.java b/shared-test-resources/java-target/de/upb/soot/basic/fieldReference/A.java index 44a784ee922..72560aa4b02 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/fieldReference/A.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/fieldReference/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.fieldReference; +package de.upb.sootup.basic.fieldReference; class A { int i = 15; diff --git a/shared-test-resources/java-target/de/upb/soot/basic/fieldReference/FieldReference.java b/shared-test-resources/java-target/de/upb/soot/basic/fieldReference/FieldReference.java index 86541d27149..e77521cce52 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/fieldReference/FieldReference.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/fieldReference/FieldReference.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.fieldReference; +package de.upb.sootup.basic.fieldReference; public class JFieldReference { public static void JFieldReference(String[] args) { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/A.java b/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/A.java index 127237f8437..a55e1bbbf87 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/A.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.hierarchy; +package de.upb.sootup.basic.hierarchy; class A extends B { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/B.java b/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/B.java index 913539c5257..aadedee7d2c 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/B.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/B.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.hierarchy; +package de.upb.sootup.basic.hierarchy; class B extends C { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/C.java b/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/C.java index ffdbe7c21d0..e0fef572681 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/C.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/C.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.hierarchy; +package de.upb.sootup.basic.hierarchy; class C { public int methodC() { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/Hierarchy.java b/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/Hierarchy.java index c658740a012..445b64d38e1 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/Hierarchy.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/hierarchy/Hierarchy.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.hierarchy; +package de.upb.sootup.basic.hierarchy; public class Hierarchy extends A { public static void hierarchy(String[] args) { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/A1.java b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/A1.java index 3735344ec83..e530bbe19a0 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/A1.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/A1.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.interfaces; +package de.upb.sootup.basic.interfaces; interface A1 { // methodRef signature diff --git a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/A2.java b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/A2.java index 13f1c62b531..702c07b62af 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/A2.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/A2.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.interfaces; +package de.upb.sootup.basic.interfaces; interface A2 { // methodRef signature diff --git a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/B.java b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/B.java index 53f0d829d55..8c6821335e2 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/B.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/B.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.interfaces; +package de.upb.sootup.basic.interfaces; // implementing single interface class B implements A1 { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/C.java b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/C.java index 2e0f7d86363..640753c1898 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/C.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/C.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.interfaces; +package de.upb.sootup.basic.interfaces; public class C implements A1, A2 { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/Interfaces.java b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/Interfaces.java index dd4e49aa16d..0fe8a5d5ce0 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/interfaces/Interfaces.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/interfaces/Interfaces.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.interfaces; +package de.upb.sootup.basic.interfaces; public class Interfaces { public void singleInterface() { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/invoke/A.java b/shared-test-resources/java-target/de/upb/soot/basic/invoke/A.java index 0f56e7471bb..3739417c79f 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/invoke/A.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/invoke/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.invoke; +package de.upb.sootup.basic.invoke; public class A { private String name; diff --git a/shared-test-resources/java-target/de/upb/soot/basic/invoke/ReflectionInvoke.java b/shared-test-resources/java-target/de/upb/soot/basic/invoke/ReflectionInvoke.java index d50364f6b32..d4d2a9f9dea 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/invoke/ReflectionInvoke.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/invoke/ReflectionInvoke.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.invoke; +package de.upb.sootup.basic.invoke; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/shared-test-resources/java-target/de/upb/soot/basic/lambdaExpressions/A.java b/shared-test-resources/java-target/de/upb/soot/basic/lambdaExpressions/A.java index 29da5c4bba4..86a9cfda52f 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/lambdaExpressions/A.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/lambdaExpressions/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.lambdaExpressions; +package de.upb.sootup.basic.lambdaExpressions; interface A { String methodA(int a); diff --git a/shared-test-resources/java-target/de/upb/soot/basic/lambdaExpressions/LambdaExpressions.java b/shared-test-resources/java-target/de/upb/soot/basic/lambdaExpressions/LambdaExpressions.java index 8c8fbe56d5c..69bf522b946 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/lambdaExpressions/LambdaExpressions.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/lambdaExpressions/LambdaExpressions.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.lambdaExpressions; +package de.upb.sootup.basic.lambdaExpressions; // There is an present while generating a jimple output for LambdaExpressions, refer here: https://mailman.cs.mcgill.ca/pipermail/soot-list/2016-November/008612.html abstract class LambdaExpressions { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/locals/AssignStmt.java b/shared-test-resources/java-target/de/upb/soot/basic/locals/AssignStmt.java index c4a576a4889..73dce3e8997 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/locals/AssignStmt.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/locals/AssignStmt.java @@ -1,6 +1,6 @@ -package de.upb.soot.basic.locals; +package de.upb.sootup.basic.locals; -import de.upb.soot.basic.expr.Dummy; +import de.upb.sootup.basic.expr.Dummy; public class AssignStmt { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/locals/IdentityStmt.java b/shared-test-resources/java-target/de/upb/soot/basic/locals/IdentityStmt.java index c3fe7655f79..428edb2cdf4 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/locals/IdentityStmt.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/locals/IdentityStmt.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.locals; +package de.upb.sootup.basic.locals; public class IdentityStmt { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/nestedControlStatements/NestedControlStatements.java b/shared-test-resources/java-target/de/upb/soot/basic/nestedControlStatements/NestedControlStatements.java index 9c909507dfe..55b21021cf0 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/nestedControlStatements/NestedControlStatements.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/nestedControlStatements/NestedControlStatements.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.nestedControlStatements; +package de.upb.sootup.basic.nestedControlStatements; public class NestedControlStatements { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/nonPrimitiveLocals/A.java b/shared-test-resources/java-target/de/upb/soot/basic/nonPrimitiveLocals/A.java index 7d029e7a956..ca2d29eeceb 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/nonPrimitiveLocals/A.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/nonPrimitiveLocals/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.nonPrimitiveLocals; +package de.upb.sootup.basic.nonPrimitiveLocals; class A { public void foo() { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/nonPrimitiveLocals/NonPrimitiveLocals.java b/shared-test-resources/java-target/de/upb/soot/basic/nonPrimitiveLocals/NonPrimitiveLocals.java index 37b0fc253cb..6ff9fbebd2b 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/nonPrimitiveLocals/NonPrimitiveLocals.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/nonPrimitiveLocals/NonPrimitiveLocals.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.nonPrimitiveLocals; +package de.upb.sootup.basic.nonPrimitiveLocals; public class NonPrimitiveLocals extends A { public void nonPrimitiveLocalsTarget() { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/operators/Operators.java b/shared-test-resources/java-target/de/upb/soot/basic/operators/Operators.java index c7347aac2ff..711f8f27079 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/operators/Operators.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/operators/Operators.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.operators; +package de.upb.sootup.basic.operators; public class Operators { // Addition diff --git a/shared-test-resources/java-target/de/upb/soot/basic/primitiveLocals/PrimitiveLocals.java b/shared-test-resources/java-target/de/upb/soot/basic/primitiveLocals/PrimitiveLocals.java index bad2164191c..83d1a338333 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/primitiveLocals/PrimitiveLocals.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/primitiveLocals/PrimitiveLocals.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.primitiveLocals; +package de.upb.sootup.basic.primitiveLocals; public class PrimitiveLocals { public void primitiveInt() { diff --git a/shared-test-resources/java-target/de/upb/soot/basic/staticFields/A.java b/shared-test-resources/java-target/de/upb/soot/basic/staticFields/A.java index 0702a5e425d..1b68792de83 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/staticFields/A.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/staticFields/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.staticFields; +package de.upb.sootup.basic.staticFields; class A { public static int a = 10; diff --git a/shared-test-resources/java-target/de/upb/soot/basic/staticFields/StaticFields.java b/shared-test-resources/java-target/de/upb/soot/basic/staticFields/StaticFields.java index 4e51a79b5cd..388098539dc 100644 --- a/shared-test-resources/java-target/de/upb/soot/basic/staticFields/StaticFields.java +++ b/shared-test-resources/java-target/de/upb/soot/basic/staticFields/StaticFields.java @@ -1,4 +1,4 @@ -package de.upb.soot.basic.staticFields; +package de.upb.sootup.basic.staticFields; public class StaticFields { public static void staticFields() { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/arrays/Arrays.java b/shared-test-resources/java-target/de/upb/soot/concrete/arrays/Arrays.java index a775924dbc3..aab7b6ab8a0 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/arrays/Arrays.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/arrays/Arrays.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.arrays; +package de.upb.sootup.concrete.arrays; public class Arrays { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/constants/Constants.java b/shared-test-resources/java-target/de/upb/soot/concrete/constants/Constants.java index 1611aa5701d..7895e52c50c 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/constants/Constants.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/constants/Constants.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.constants; +package de.upb.sootup.concrete.constants; public class Constants { public void intConstant() { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/controlStatements/ControlStatements.java b/shared-test-resources/java-target/de/upb/soot/concrete/controlStatements/ControlStatements.java index 1f5c76a883d..7ef5e31de1f 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/controlStatements/ControlStatements.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/controlStatements/ControlStatements.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.controlStatements; +package de.upb.sootup.concrete.controlStatements; import java.util.ArrayList; diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/emulation/Objects.java b/shared-test-resources/java-target/de/upb/soot/concrete/emulation/Objects.java index d2673396f08..d0c14881ad8 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/emulation/Objects.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/emulation/Objects.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.emulation; +package de.upb.sootup.concrete.emulation; /** * @author Manuel Benz created on 11.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/fieldReference/A.java b/shared-test-resources/java-target/de/upb/soot/concrete/fieldReference/A.java index d0a9be24152..d563a92d2e0 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/fieldReference/A.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/fieldReference/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.fieldReference; +package de.upb.sootup.concrete.fieldReference; class A { int i = 15; diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/fieldReference/FieldReference.java b/shared-test-resources/java-target/de/upb/soot/concrete/fieldReference/FieldReference.java index efd18b7acca..f9a5ddded0f 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/fieldReference/FieldReference.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/fieldReference/FieldReference.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.fieldReference; +package de.upb.sootup.concrete.fieldReference; public class JFieldReference { private final int f = 2; diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/generics/A.java b/shared-test-resources/java-target/de/upb/soot/concrete/generics/A.java index 647e00ace46..55ecf99438b 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/generics/A.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/generics/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.generics; +package de.upb.sootup.concrete.generics; /** * @author Manuel Benz created on 13.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/generics/Generics.java b/shared-test-resources/java-target/de/upb/soot/concrete/generics/Generics.java index cdc6b949933..a46559018fe 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/generics/Generics.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/generics/Generics.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.generics; +package de.upb.sootup.concrete.generics; import java.util.ArrayList; diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/A.java b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/A.java index 72bba06ab1a..90c1f8ce470 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/A.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.inheritance; +package de.upb.sootup.concrete.inheritance; abstract class A { abstract void print(); diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/B.java b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/B.java index b0b07d34148..63449b7d73b 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/B.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/B.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.inheritance; +package de.upb.sootup.concrete.inheritance; class B extends A { protected int a = 5; diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/C.java b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/C.java index d1cdbc3f080..9a7f62ef494 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/C.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/C.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.inheritance; +package de.upb.sootup.concrete.inheritance; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/D.java b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/D.java index 3fec3ff2b03..2e4faf39a2a 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/D.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/D.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.inheritance; +package de.upb.sootup.concrete.inheritance; /** * @author Manuel Benz created on 19.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/Inheritance.java b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/Inheritance.java index b7716583bff..34297d78765 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/Inheritance.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/Inheritance.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.inheritance; +package de.upb.sootup.concrete.inheritance; public class Inheritance { public void dynDispatch1() { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/SubConstructor.java b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/SubConstructor.java index 9c4264e7404..d99f12b7815 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/SubConstructor.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/SubConstructor.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.inheritance; +package de.upb.sootup.concrete.inheritance; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/SuperConstructor.java b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/SuperConstructor.java index 1cf72b055f3..b0475afe20c 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/SuperConstructor.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/inheritance/SuperConstructor.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.inheritance; +package de.upb.sootup.concrete.inheritance; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/A.java b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/A.java index 4106d5fde15..d03d8d47714 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/A.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.interfaces; +package de.upb.sootup.concrete.interfaces; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/B.java b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/B.java index 896139ed202..66b9786d965 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/B.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/B.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.interfaces; +package de.upb.sootup.concrete.interfaces; // implementing single interface class B implements I1 { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/C.java b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/C.java index 2e13bbb4cec..f28d93b6d5d 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/C.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/C.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.interfaces; +package de.upb.sootup.concrete.interfaces; public class C implements I1, I2 { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/D.java b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/D.java index e41fd9e515a..db19b9d5d84 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/D.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/D.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.interfaces; +package de.upb.sootup.concrete.interfaces; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/I1.java b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/I1.java index a0f9b8f8e62..fe40cc2f2b5 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/I1.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/I1.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.interfaces; +package de.upb.sootup.concrete.interfaces; interface I1 { // method signature diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/I2.java b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/I2.java index 97cc0eb1b75..4d08bd2e1b8 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/I2.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/I2.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.interfaces; +package de.upb.sootup.concrete.interfaces; interface I2 { // method signature diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/Interfaces.java b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/Interfaces.java index 53ad5e1941a..2791b883e78 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/Interfaces.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/interfaces/Interfaces.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.interfaces; +package de.upb.sootup.concrete.interfaces; public class Interfaces { public void singleInterface() { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/LambdaExpressions.java b/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/LambdaExpressions.java index e12baa8b1fb..fc7deaf06cf 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/LambdaExpressions.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/LambdaExpressions.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.lambdaExpressions; +package de.upb.sootup.concrete.lambdaExpressions; public class LambdaExpressions { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalArg.java b/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalArg.java index c17e3ea8360..d442ffc99f9 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalArg.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalArg.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.lambdaExpressions; +package de.upb.sootup.concrete.lambdaExpressions; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalRet.java b/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalRet.java index c0a78435a64..e0c947070fc 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalRet.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalRet.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.lambdaExpressions; +package de.upb.sootup.concrete.lambdaExpressions; @FunctionalInterface interface functionalRet { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalVoid.java b/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalVoid.java index ef52a84ecbd..52c00f3e864 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalVoid.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/lambdaExpressions/functionalVoid.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.lambdaExpressions; +package de.upb.sootup.concrete.lambdaExpressions; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/nestedControlStatements/NestedControlStatements.java b/shared-test-resources/java-target/de/upb/soot/concrete/nestedControlStatements/NestedControlStatements.java index cd266c7d14c..dd480b7788a 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/nestedControlStatements/NestedControlStatements.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/nestedControlStatements/NestedControlStatements.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.nestedControlStatements; +package de.upb.sootup.concrete.nestedControlStatements; public class NestedControlStatements { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/objects/A.java b/shared-test-resources/java-target/de/upb/soot/concrete/objects/A.java index 3fdf0b48fd5..cdbca90b4e5 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/objects/A.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/objects/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.objects; +package de.upb.sootup.concrete.objects; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/objects/B.java b/shared-test-resources/java-target/de/upb/soot/concrete/objects/B.java index 59442645a1a..2a50b5bad45 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/objects/B.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/objects/B.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.objects; +package de.upb.sootup.concrete.objects; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/objects/Objects.java b/shared-test-resources/java-target/de/upb/soot/concrete/objects/Objects.java index 0089ee5571b..d0ace6bcb9a 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/objects/Objects.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/objects/Objects.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.objects; +package de.upb.sootup.concrete.objects; /** * @author Manuel Benz created on 12.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/operators/A.java b/shared-test-resources/java-target/de/upb/soot/concrete/operators/A.java index 2ea03390e0d..136a04376bc 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/operators/A.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/operators/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.operators; +package de.upb.sootup.concrete.operators; /** * @author Manuel Benz created on 20.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/operators/BooleanOps.java b/shared-test-resources/java-target/de/upb/soot/concrete/operators/BooleanOps.java index ba8d947f5c7..ab782886ca5 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/operators/BooleanOps.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/operators/BooleanOps.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.operators; +package de.upb.sootup.concrete.operators; /** * @author Manuel Benz created on 11.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/operators/ByteOps.java b/shared-test-resources/java-target/de/upb/soot/concrete/operators/ByteOps.java index 4c2dae499b4..247c08520ba 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/operators/ByteOps.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/operators/ByteOps.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.operators; +package de.upb.sootup.concrete.operators; public class ByteOps { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/operators/DoubleOps.java b/shared-test-resources/java-target/de/upb/soot/concrete/operators/DoubleOps.java index 1306cb216e2..33c915264fe 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/operators/DoubleOps.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/operators/DoubleOps.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.operators; +package de.upb.sootup.concrete.operators; public class DoubleOps { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/operators/FloatOps.java b/shared-test-resources/java-target/de/upb/soot/concrete/operators/FloatOps.java index 9bb1e9ffa88..8fba7627c14 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/operators/FloatOps.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/operators/FloatOps.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.operators; +package de.upb.sootup.concrete.operators; public class FloatOps { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/operators/IntOps.java b/shared-test-resources/java-target/de/upb/soot/concrete/operators/IntOps.java index c0487eca920..26f5073855a 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/operators/IntOps.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/operators/IntOps.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.operators; +package de.upb.sootup.concrete.operators; public class IntOps { /* diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/operators/LongOps.java b/shared-test-resources/java-target/de/upb/soot/concrete/operators/LongOps.java index 4c64dc586e1..eeff391d3dc 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/operators/LongOps.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/operators/LongOps.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.operators; +package de.upb.sootup.concrete.operators; public class LongOps { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/operators/MiscOps.java b/shared-test-resources/java-target/de/upb/soot/concrete/operators/MiscOps.java index 15b48362134..f1850e92180 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/operators/MiscOps.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/operators/MiscOps.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.operators; +package de.upb.sootup.concrete.operators; /** * @author Manuel Benz created on 11.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/operators/ShortOps.java b/shared-test-resources/java-target/de/upb/soot/concrete/operators/ShortOps.java index 253c71cc115..75929fe5ba2 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/operators/ShortOps.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/operators/ShortOps.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.operators; +package de.upb.sootup.concrete.operators; public class ShortOps { diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/reflection/A.java b/shared-test-resources/java-target/de/upb/soot/concrete/reflection/A.java index 5aec45f61e4..8b3af9c28ad 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/reflection/A.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/reflection/A.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.reflection; +package de.upb.sootup.concrete.reflection; /** * @author Manuel Benz created on 21.07.18 diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/reflection/Reflection.java b/shared-test-resources/java-target/de/upb/soot/concrete/reflection/Reflection.java index 9a8035a9700..be1bfb970b8 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/reflection/Reflection.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/reflection/Reflection.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.reflection; +package de.upb.sootup.concrete.reflection; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/staticFields/StaticFields.java b/shared-test-resources/java-target/de/upb/soot/concrete/staticFields/StaticFields.java index a4f7d100ceb..194e184d45a 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/staticFields/StaticFields.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/staticFields/StaticFields.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.staticFields; +package de.upb.sootup.concrete.staticFields; public class StaticFields { private static final int finalInt = 10; diff --git a/shared-test-resources/java-target/de/upb/soot/concrete/staticInvoke/StaticInvoke.java b/shared-test-resources/java-target/de/upb/soot/concrete/staticInvoke/StaticInvoke.java index 22bec8083a0..c8cd4598aa0 100644 --- a/shared-test-resources/java-target/de/upb/soot/concrete/staticInvoke/StaticInvoke.java +++ b/shared-test-resources/java-target/de/upb/soot/concrete/staticInvoke/StaticInvoke.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.staticInvoke; +package de.upb.sootup.concrete.staticInvoke; public class StaticInvoke { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/AddExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/AddExprTest.java index b9e7d75d2d4..d038e4b30aa 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/AddExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/AddExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class AddExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/AndExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/AndExprTest.java index e6474827f08..5370c5ff2d4 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/AndExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/AndExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class AndExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/CastExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/CastExprTest.java index e4ff13c878e..ef63c2c4565 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/CastExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/CastExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class CastExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmpExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmpExprTest.java index 3ec3aa674b3..8c6889dcad7 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmpExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmpExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class CmpExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmpgExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmpgExprTest.java index d2e517bd839..3d783366bac 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmpgExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmpgExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class CmpgExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmplExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmplExprTest.java index eabae8ca497..68d8419df8f 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmplExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/CmplExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class CmplExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/DivExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/DivExprTest.java index dbda7866d90..73a916938aa 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/DivExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/DivExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class DivExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/DynamicInvokeExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/DynamicInvokeExprTest.java index 278fa24ee93..b172767cc32 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/DynamicInvokeExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/DynamicInvokeExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/EqExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/EqExprTest.java index f0ed286cbea..7114663c826 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/EqExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/EqExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class EqExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/GeExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/GeExprTest.java index b1433773ac6..01bf5d700e9 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/GeExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/GeExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class GeExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/GtExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/GtExprTest.java index 7fb9061aed9..420cfcd6656 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/GtExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/GtExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class GtExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/InstanceOfExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/InstanceOfExprTest.java index edff1b24f6d..c2d4a8e9051 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/InstanceOfExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/InstanceOfExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class InstanceOfExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/InterfaceInvokeExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/InterfaceInvokeExprTest.java index 1aab89e4438..6166d2634e8 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/InterfaceInvokeExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/InterfaceInvokeExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; interface IThing { int getId(); diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/LeExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/LeExprTest.java index 4e4376d2372..a32de1adb0a 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/LeExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/LeExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class LeExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/LengthExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/LengthExprTest.java index aa378eb54fe..c5163c2d99f 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/LengthExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/LengthExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class LengthExprTest { void sth() { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/LtExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/LtExprTest.java index 24541294e64..f548bb86db7 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/LtExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/LtExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class LtExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/MulExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/MulExprTest.java index 0cf8d009cae..9cb09de78a6 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/MulExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/MulExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class MulExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NeExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NeExprTest.java index 4bc0580bd73..26492c29bc6 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NeExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NeExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class NeExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NegateExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NegateExprTest.java index 6c8c29f6d0b..cff9f975527 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NegateExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NegateExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class NegateExprTest { public void sth() { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewArrayExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewArrayExprTest.java index db4b6d7f1d9..5926abeb1ab 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewArrayExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewArrayExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class NewArrayExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewExprTest.java index fc8dbaff76b..eb3cc35d698 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class NewExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewMultiArrayExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewMultiArrayExprTest.java index 4a28d7b1d61..ab459345c81 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewMultiArrayExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/NewMultiArrayExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class NewMultiArrayExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/OrExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/OrExprTest.java index 8048f80ea4e..de296984898 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/OrExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/OrExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class OrExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/RemExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/RemExprTest.java index 5f62bb20bbd..172ff011b35 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/RemExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/RemExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class RemExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/ShlExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/ShlExprTest.java index 50f6e4b075a..092f6ead240 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/ShlExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/ShlExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class ShlExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/ShrExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/ShrExprTest.java index a138adcaeb8..f72d9438930 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/ShrExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/ShrExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class ShrExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/SpecialInvokeExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/SpecialInvokeExprTest.java index 498a1a98958..95f0e4ed368 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/SpecialInvokeExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/SpecialInvokeExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class SpecialInvokeExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/StaticInvokeExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/StaticInvokeExprTest.java index 9938f7e8759..93764b1bf64 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/StaticInvokeExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/StaticInvokeExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class StaticInvokeExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/SubExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/SubExprTest.java index 712dc6bc2de..2a4226c4426 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/SubExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/SubExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class SubExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/UshrExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/UshrExprTest.java index 44a782e8437..6a6250699ef 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/UshrExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/UshrExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class UshrExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/VirtualInvokeExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/VirtualInvokeExprTest.java index 031019a1221..c64ac651956 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/VirtualInvokeExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/VirtualInvokeExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class VirtualInvokeExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/expr/XorExprTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/expr/XorExprTest.java index 1fc742eec91..286b4fc9a7a 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/expr/XorExprTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/expr/XorExprTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.expr; +package de.upb.sootup.instructions.expr; public class XorExprTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/BreakPointStmtTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/BreakPointStmtTest.java index 695cfad9a32..6f17c3e4f7f 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/BreakPointStmtTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/BreakPointStmtTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.javabytecode.stmt; +package de.upb.sootup.instructions.javabytecode.stmt; public class BreakPointStmtTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/MonitorStmtsTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/MonitorStmtsTest.java index 6c0e18027f9..50fa4996f53 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/MonitorStmtsTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/MonitorStmtsTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.javabytecode.stmt; +package de.upb.sootup.instructions.javabytecode.stmt; public class MonitorStmtsTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/RetStmtTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/RetStmtTest.java index 2918e84878a..c4d473de7c3 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/RetStmtTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/RetStmtTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.javabytecode.stmt; +package de.upb.sootup.instructions.javabytecode.stmt; public class RetStmtTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/SwitchStmtsTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/SwitchStmtsTest.java index b7de4b04a06..1f0ae109e6f 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/SwitchStmtsTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/javabytecode/stmt/SwitchStmtsTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.javabytecode.stmt; +package de.upb.sootup.instructions.javabytecode.stmt; public class SwitchStmtsTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/ref/ArrayRefTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/ref/ArrayRefTest.java index b18fd111ef7..ec0b115d5e8 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/ref/ArrayRefTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/ref/ArrayRefTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.ref; +package de.upb.sootup.instructions.ref; public class ArrayRefTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/ref/CaughtExceptionRefTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/ref/CaughtExceptionRefTest.java index 2481407ed4e..544125c40b2 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/ref/CaughtExceptionRefTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/ref/CaughtExceptionRefTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.ref; +package de.upb.sootup.instructions.ref; public class CaughtExceptionRefTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/ref/InstanceFieldRefTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/ref/InstanceFieldRefTest.java index a93fbc64b9e..c1b936f7cf3 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/ref/InstanceFieldRefTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/ref/InstanceFieldRefTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.ref; +package de.upb.sootup.instructions.ref; public class InstanceFieldRefTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/ref/ParameterRefTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/ref/ParameterRefTest.java index c57db0dade1..f049daa5444 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/ref/ParameterRefTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/ref/ParameterRefTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.ref; +package de.upb.sootup.instructions.ref; public class ParameterRefTest { void noParameter() { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/ref/StaticFieldRefTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/ref/StaticFieldRefTest.java index 4196edc74a4..7dc78db046b 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/ref/StaticFieldRefTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/ref/StaticFieldRefTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.ref; +package de.upb.sootup.instructions.ref; public class StaticFieldRefTest { static int globalCounter = 0; diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/ref/ThisRefTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/ref/ThisRefTest.java index 8c76216f4f6..8687b66c106 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/ref/ThisRefTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/ref/ThisRefTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.ref; +package de.upb.sootup.instructions.ref; public class ThisRefTest { int property = 0; diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/AssignStmtTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/AssignStmtTest.java index 68b01e98ecc..691947d6708 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/AssignStmtTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/AssignStmtTest.java @@ -1,6 +1,6 @@ -package de.upb.soot.instructions.stmt; +package de.upb.sootup.instructions.stmt; -import de.upb.soot.basic.expr.Dummy; +import de.upb.sootup.basic.expr.Dummy; public class AssignStmtTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/GotoStmtTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/GotoStmtTest.java index 19bef584f4b..b8c31ba4e5f 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/GotoStmtTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/GotoStmtTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.stmt; +package de.upb.sootup.instructions.stmt; public class GotoStmtTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/IdentityStmtTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/IdentityStmtTest.java index 339126129b8..e6d0b4c4a5c 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/IdentityStmtTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/IdentityStmtTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.stmt; +package de.upb.sootup.instructions.stmt; public class IdentityStmtTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/IfStmtTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/IfStmtTest.java index 04d8d17ecb4..6be0dd37d2e 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/IfStmtTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/IfStmtTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.stmt; +package de.upb.sootup.instructions.stmt; public class IfStmtTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/InvokeStmtTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/InvokeStmtTest.java index 8594ec779bd..f008d84c3eb 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/InvokeStmtTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/InvokeStmtTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.stmt; +package de.upb.sootup.instructions.stmt; interface IThing { void printId(); diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/ReturnStmtsTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/ReturnStmtsTest.java index fdb7e75ff67..75ff3d0ba02 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/ReturnStmtsTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/ReturnStmtsTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.stmt; +package de.upb.sootup.instructions.stmt; public class ReturnStmtsTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/ThrowStmtTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/ThrowStmtTest.java index 2bb6ecc5e56..b6584fe9770 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/stmt/ThrowStmtTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/stmt/ThrowStmtTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.stmt; +package de.upb.sootup.instructions.stmt; public class ThrowStmtTest { diff --git a/shared-test-resources/java-target/de/upb/soot/instructions/type/AllTypesTest.java b/shared-test-resources/java-target/de/upb/soot/instructions/type/AllTypesTest.java index a97189ee2bc..00c0535fdc4 100644 --- a/shared-test-resources/java-target/de/upb/soot/instructions/type/AllTypesTest.java +++ b/shared-test-resources/java-target/de/upb/soot/instructions/type/AllTypesTest.java @@ -1,4 +1,4 @@ -package de.upb.soot.instructions.type; +package de.upb.sootup.instructions.type; public class AllTypesTest { diff --git a/shared-test-resources/miniTestSuite/java8/source/AnnotationData.java b/shared-test-resources/miniTestSuite/java8/source/AnnotationData.java index 0e887fc5a81..c44bba7672e 100644 --- a/shared-test-resources/miniTestSuite/java8/source/AnnotationData.java +++ b/shared-test-resources/miniTestSuite/java8/source/AnnotationData.java @@ -5,18 +5,18 @@ import java.util.List; public class AnnotationData { - private @FutureSootAnnotation + private @SootUpAnnotation String str; - private @FutureSootAnnotation + private @SootUpAnnotation List stringlist; - private @FutureSootAnnotation + private @SootUpAnnotation char[] charArray; //on char - private @FutureSootAnnotation + private @SootUpAnnotation char[][] charArray2D;//on char - private char @FutureSootAnnotation [] charArr;//on char array, char[] - private char[] @FutureSootAnnotation [] charArrNew; //on char array, char[] which is component of char[][] + private char @SootUpAnnotation [] charArr;//on char array, char[] + private char[] @SootUpAnnotation [] charArrNew; //on char array, char[] which is component of char[][] @Target({ElementType.TYPE_USE,ElementType.TYPE_PARAMETER}) @Retention(RetentionPolicy.RUNTIME) - public @interface FutureSootAnnotation{} + public @interface SootUpAnnotation{} } diff --git a/shared-test-resources/miniTestSuite/java8/source/AnnotationExtend.java b/shared-test-resources/miniTestSuite/java8/source/AnnotationExtend.java index c2eafa3e3db..fb22e4c82b9 100644 --- a/shared-test-resources/miniTestSuite/java8/source/AnnotationExtend.java +++ b/shared-test-resources/miniTestSuite/java8/source/AnnotationExtend.java @@ -1,5 +1,5 @@ -public class AnnotationExtend extends @AnnotationData.FutureSootAnnotation Thread { - AnnotationExtend.@AnnotationData.FutureSootAnnotation NestedClass nestedClass;//NestedClass is nested class of AnnotationExtend +public class AnnotationExtend extends @AnnotationData.SootUpAnnotation Thread { + AnnotationExtend.@AnnotationData.SootUpAnnotation NestedClass nestedClass;//NestedClass is nested class of AnnotationExtend public class NestedClass { } diff --git a/shared-test-resources/miniTestSuite/java8/source/AnnotationImpl.java b/shared-test-resources/miniTestSuite/java8/source/AnnotationImpl.java index 54fb6c9d556..832b057aad6 100644 --- a/shared-test-resources/miniTestSuite/java8/source/AnnotationImpl.java +++ b/shared-test-resources/miniTestSuite/java8/source/AnnotationImpl.java @@ -1,4 +1,4 @@ -public class AnnotationImpl implements @AnnotationData.FutureSootAnnotation Runnable { +public class AnnotationImpl implements @AnnotationData.SootUpAnnotation Runnable { public void run(){} } \ No newline at end of file diff --git a/shared-test-resources/miniTestSuite/java8/source/AnnotationMethod.java b/shared-test-resources/miniTestSuite/java8/source/AnnotationMethod.java index 932ca47a9da..8dd886559fe 100644 --- a/shared-test-resources/miniTestSuite/java8/source/AnnotationMethod.java +++ b/shared-test-resources/miniTestSuite/java8/source/AnnotationMethod.java @@ -10,18 +10,18 @@ public class AnnotationMethod { public String demoMethod() { - @FutureSootAnnotation List str = new ArrayList<>(); + @SootUpAnnotation List str = new ArrayList<>(); return ""; } - public @FutureSootAnnotation String getString() { return "";} + public @SootUpAnnotation String getString() { return "";} - public void showString(@FutureSootAnnotation String str) throws @AnnotationTryCatch.FutureSootAnnotation Exception{} + public void showString(@SootUpAnnotation String str) throws @AnnotationTryCatch.SootUpAnnotation Exception{} - <@FutureSootAnnotation number> void demoGenericMethod(){} + <@SootUpAnnotation number> void demoGenericMethod(){} - Function f = @FutureSootAnnotation AnnotationMethod::demoMethod; - public void demoMethod1() throws @FutureSootAnnotation Exception{ - @FutureSootAnnotation List str = new ArrayList<>(); + Function f = @SootUpAnnotation AnnotationMethod::demoMethod; + public void demoMethod1() throws @SootUpAnnotation Exception{ + @SootUpAnnotation List str = new ArrayList<>(); } public static void main(String[] args) { @@ -37,5 +37,5 @@ public static void main(String[] args) { @Target({ElementType.TYPE_USE,ElementType.TYPE_PARAMETER}) @Retention(RetentionPolicy.RUNTIME) - public @interface FutureSootAnnotation{} + public @interface SootUpAnnotation{} } \ No newline at end of file diff --git a/shared-test-resources/miniTestSuite/java8/source/AnnotationObjects.java b/shared-test-resources/miniTestSuite/java8/source/AnnotationObjects.java index ecb8eab1441..81ef097d45d 100644 --- a/shared-test-resources/miniTestSuite/java8/source/AnnotationObjects.java +++ b/shared-test-resources/miniTestSuite/java8/source/AnnotationObjects.java @@ -8,14 +8,14 @@ public class AnnotationObjects { - List list = new @FutureSootAnnotation ArrayList<>(); - AnnotationObjects myClass = new @FutureSootAnnotation AnnotationObjects(); - //AnnotationMethod.NestedClass nestedClass = myClass.new @FutureSootAnnotation NestedClass(); - AnnotationObjects otherClassInstance = (@FutureSootAnnotation AnnotationObjects) myClass;// type casting - boolean b = myClass instanceof @FutureSootAnnotation Object; //instaceOf check + List list = new @SootUpAnnotation ArrayList<>(); + AnnotationObjects myClass = new @SootUpAnnotation AnnotationObjects(); + //AnnotationMethod.NestedClass nestedClass = myClass.new @SootUpAnnotation NestedClass(); + AnnotationObjects otherClassInstance = (@SootUpAnnotation AnnotationObjects) myClass;// type casting + boolean b = myClass instanceof @SootUpAnnotation Object; //instaceOf check @Target({ElementType.TYPE_USE,ElementType.TYPE_PARAMETER}) @Retention(RetentionPolicy.RUNTIME) - public @interface FutureSootAnnotation{} + public @interface SootUpAnnotation{} } diff --git a/shared-test-resources/miniTestSuite/java8/source/AnnotationTryCatch.java b/shared-test-resources/miniTestSuite/java8/source/AnnotationTryCatch.java index e62bd2a78bb..8e036cc4fb9 100644 --- a/shared-test-resources/miniTestSuite/java8/source/AnnotationTryCatch.java +++ b/shared-test-resources/miniTestSuite/java8/source/AnnotationTryCatch.java @@ -4,9 +4,9 @@ import java.lang.annotation.Target; public class AnnotationTryCatch { - AnnotationTryCatch obj = new @FutureSootAnnotation AnnotationTryCatch(); + AnnotationTryCatch obj = new @SootUpAnnotation AnnotationTryCatch(); - public String demoMethod()throws @FutureSootAnnotation Exception{ + public String demoMethod()throws @SootUpAnnotation Exception{ return ""; } @@ -15,6 +15,6 @@ public String demoMethod()throws @FutureSootAnnotation Exception{ @Target({ElementType.TYPE_USE,ElementType.TYPE_PARAMETER}) @Retention(RetentionPolicy.RUNTIME) - public @interface FutureSootAnnotation{} + public @interface SootUpAnnotation {} } \ No newline at end of file diff --git a/shared-test-resources/miniTestSuite/java8/source/GenericAnnotation.java b/shared-test-resources/miniTestSuite/java8/source/GenericAnnotation.java index bc57eecbd4c..294c6e212bf 100644 --- a/shared-test-resources/miniTestSuite/java8/source/GenericAnnotation.java +++ b/shared-test-resources/miniTestSuite/java8/source/GenericAnnotation.java @@ -4,14 +4,14 @@ import java.lang.annotation.Target; import java.util.List; -public class GenericAnnotation<@AnnotationData.FutureSootAnnotation T> { - List<@FutureSootAnnotation String> stringList; - List<@FutureSootAnnotation T> genericList; - List<@FutureSootAnnotation ? extends Number> genericExtendedList; - List<@FutureSootAnnotation ? super T> genericSuperList; - List<@FutureSootAnnotation ?> genericWildcardList1; +public class GenericAnnotation<@AnnotationData.SootUpAnnotation T> { + List<@SootUpAnnotation String> stringList; + List<@SootUpAnnotation T> genericList; + List<@SootUpAnnotation ? extends Number> genericExtendedList; + List<@SootUpAnnotation ? super T> genericSuperList; + List<@SootUpAnnotation ?> genericWildcardList1; @Target({ElementType.TYPE_USE,ElementType.TYPE_PARAMETER}) @Retention(RetentionPolicy.RUNTIME) - public @interface FutureSootAnnotation{} + public @interface SootUpAnnotation{} } \ No newline at end of file diff --git a/shared-test-resources/multi-release-jar-modular/readme.md b/shared-test-resources/multi-release-jar-modular/readme.md index 5ebcc677a0d..dff2a7366c0 100644 --- a/shared-test-resources/multi-release-jar-modular/readme.md +++ b/shared-test-resources/multi-release-jar-modular/readme.md @@ -3,7 +3,7 @@ `javac --release 8 -d classes src\main\java\de\upb\swt\multirelease\*java` `javac --release 9 -d classes-9 src\main\java9\de\upb\swt\multirelease\*java src\main\java9\module-info.java` -`jar --create --file mrjar.jar --main-class de.upb.swt.multirelease.Main -C classes . --release 9 -C classes-9 .` +`jar --create --file mrjar.jar --main-class de.upb.sse.multirelease.Main -C classes . --release 9 -C classes-9 .` More info: diff --git a/shared-test-resources/multi-release-jar-modular/src/main/java/de/upb/swt/multirelease/Main.java b/shared-test-resources/multi-release-jar-modular/src/main/java/de/upb/swt/multirelease/Main.java index b2a980b346b..ef3257fd72d 100644 --- a/shared-test-resources/multi-release-jar-modular/src/main/java/de/upb/swt/multirelease/Main.java +++ b/shared-test-resources/multi-release-jar-modular/src/main/java/de/upb/swt/multirelease/Main.java @@ -1,4 +1,4 @@ -package de.upb.swt.multirelease; +package de.upb.sse.multirelease; public class Main { diff --git a/shared-test-resources/multi-release-jar-modular/src/main/java/de/upb/swt/multirelease/Utility.java b/shared-test-resources/multi-release-jar-modular/src/main/java/de/upb/swt/multirelease/Utility.java index 3b69ca68067..12a56285d53 100644 --- a/shared-test-resources/multi-release-jar-modular/src/main/java/de/upb/swt/multirelease/Utility.java +++ b/shared-test-resources/multi-release-jar-modular/src/main/java/de/upb/swt/multirelease/Utility.java @@ -1,4 +1,4 @@ -package de.upb.swt.multirelease; +package de.upb.sse.multirelease; public class Utility { diff --git a/shared-test-resources/multi-release-jar-modular/src/main/java10/de/upb/swt/multirelease/Utility.java b/shared-test-resources/multi-release-jar-modular/src/main/java10/de/upb/swt/multirelease/Utility.java index 88fda9468de..2f0dede051d 100644 --- a/shared-test-resources/multi-release-jar-modular/src/main/java10/de/upb/swt/multirelease/Utility.java +++ b/shared-test-resources/multi-release-jar-modular/src/main/java10/de/upb/swt/multirelease/Utility.java @@ -1,4 +1,4 @@ -package de.upb.swt.multirelease; +package de.upb.sse.multirelease; public class Utility { diff --git a/shared-test-resources/multi-release-jar-modular/src/main/java10/module-info.java b/shared-test-resources/multi-release-jar-modular/src/main/java10/module-info.java index a58d85c1315..ea3becea8cc 100644 --- a/shared-test-resources/multi-release-jar-modular/src/main/java10/module-info.java +++ b/shared-test-resources/multi-release-jar-modular/src/main/java10/module-info.java @@ -1,3 +1,3 @@ -module de.upb.swt.multirelease { -exports de.upb.swt.multirelease; +module de.upb.sse.multirelease { +exports de.upb.sse.multirelease; } \ No newline at end of file diff --git a/shared-test-resources/multi-release-jar-modular/src/main/java9/de/upb/swt/multirelease/Utility.java b/shared-test-resources/multi-release-jar-modular/src/main/java9/de/upb/swt/multirelease/Utility.java index 2e8208b217a..4331b21bb09 100644 --- a/shared-test-resources/multi-release-jar-modular/src/main/java9/de/upb/swt/multirelease/Utility.java +++ b/shared-test-resources/multi-release-jar-modular/src/main/java9/de/upb/swt/multirelease/Utility.java @@ -1,4 +1,4 @@ -package de.upb.swt.multirelease; +package de.upb.sse.multirelease; public class Utility { diff --git a/shared-test-resources/multi-release-jar-modular/src/main/java9/module-info.java b/shared-test-resources/multi-release-jar-modular/src/main/java9/module-info.java index a58d85c1315..ea3becea8cc 100644 --- a/shared-test-resources/multi-release-jar-modular/src/main/java9/module-info.java +++ b/shared-test-resources/multi-release-jar-modular/src/main/java9/module-info.java @@ -1,3 +1,3 @@ -module de.upb.swt.multirelease { -exports de.upb.swt.multirelease; +module de.upb.sse.multirelease { +exports de.upb.sse.multirelease; } \ No newline at end of file diff --git a/shared-test-resources/multi-release-jar/readme.md b/shared-test-resources/multi-release-jar/readme.md index c4d20ab1c78..ffa7f94c94f 100644 --- a/shared-test-resources/multi-release-jar/readme.md +++ b/shared-test-resources/multi-release-jar/readme.md @@ -3,7 +3,7 @@ `javac --release 8 -d classes src\main\java\de\upb\swt\multirelease\*java` `javac --release 9 -d classes-9 src\main\java9\de\upb\swt\multirelease\*java` -`jar --create --file mrjar.jar --main-class de.upb.swt.multirelease.Main -C classes . --release 9 -C classes-9 .` +`jar --create --file mrjar.jar --main-class de.upb.sse.multirelease.Main -C classes . --release 9 -C classes-9 .` More info: diff --git a/shared-test-resources/multi-release-jar/src/main/java/de/upb/swt/multirelease/Main.java b/shared-test-resources/multi-release-jar/src/main/java/de/upb/swt/multirelease/Main.java index b2a980b346b..ef3257fd72d 100644 --- a/shared-test-resources/multi-release-jar/src/main/java/de/upb/swt/multirelease/Main.java +++ b/shared-test-resources/multi-release-jar/src/main/java/de/upb/swt/multirelease/Main.java @@ -1,4 +1,4 @@ -package de.upb.swt.multirelease; +package de.upb.sse.multirelease; public class Main { diff --git a/shared-test-resources/multi-release-jar/src/main/java/de/upb/swt/multirelease/Utility.java b/shared-test-resources/multi-release-jar/src/main/java/de/upb/swt/multirelease/Utility.java index 3b69ca68067..12a56285d53 100644 --- a/shared-test-resources/multi-release-jar/src/main/java/de/upb/swt/multirelease/Utility.java +++ b/shared-test-resources/multi-release-jar/src/main/java/de/upb/swt/multirelease/Utility.java @@ -1,4 +1,4 @@ -package de.upb.swt.multirelease; +package de.upb.sse.multirelease; public class Utility { diff --git a/shared-test-resources/multi-release-jar/src/main/java9/de/upb/swt/multirelease/Utility.java b/shared-test-resources/multi-release-jar/src/main/java9/de/upb/swt/multirelease/Utility.java index 2e8208b217a..4331b21bb09 100644 --- a/shared-test-resources/multi-release-jar/src/main/java9/de/upb/swt/multirelease/Utility.java +++ b/shared-test-resources/multi-release-jar/src/main/java9/de/upb/swt/multirelease/Utility.java @@ -1,4 +1,4 @@ -package de.upb.swt.multirelease; +package de.upb.sse.multirelease; public class Utility { diff --git a/shared-test-resources/selected-java-target/de/upb/soot/concrete/controlStatements/ControlStatements.java b/shared-test-resources/selected-java-target/de/upb/soot/concrete/controlStatements/ControlStatements.java index e001af8f0ba..33ab93ff277 100644 --- a/shared-test-resources/selected-java-target/de/upb/soot/concrete/controlStatements/ControlStatements.java +++ b/shared-test-resources/selected-java-target/de/upb/soot/concrete/controlStatements/ControlStatements.java @@ -1,4 +1,4 @@ -package de.upb.soot.concrete.controlStatements; +package de.upb.sootup.concrete.controlStatements; import java.util.ArrayList; diff --git a/shared-test-resources/srcCodeForTest.py b/shared-test-resources/srcCodeForTest.py index 3e6954ed76c..ca1e6ed81e4 100644 --- a/shared-test-resources/srcCodeForTest.py +++ b/shared-test-resources/srcCodeForTest.py @@ -12,10 +12,10 @@ for root, dirnames, filenames in os.walk(srcTargetDir): for filename in fnmatch.filter(filenames, '*.java'): srcMatches.append(os.path.join(root, filename)) -for root, dirnames, filenames in os.walk('..\\de.upb.swt.soot.java.sourcecode\\src\\test\\java\\de\\upb\\swt\\soot\\test\\java\\sourcecode\\minimaltestsuite\\'): +for root, dirnames, filenames in os.walk('..\\de.upb.sse.sootup.java.sourcecode\\src\\test\\java\\de\\upb\\swt\\soot\\test\\java\\sourcecode\\minimaltestsuite\\'): for filename in fnmatch.filter(filenames, '*Test.java'): srcTestMatches.append(os.path.join(root, filename)) -for root, dirnames, filenames in os.walk('..\\de.upb.swt.soot.java.bytecode\\src\\test\\java\\de\\upb\\swt\\soot\\test\\java\\bytecode\\minimaltestsuite\\'): +for root, dirnames, filenames in os.walk('..\\de.upb.sse.sootup.java.bytecode\\src\\test\\java\\de\\upb\\swt\\soot\\test\\java\\bytecode\\minimaltestsuite\\'): for filename in fnmatch.filter(filenames, '*Test.java'): srcTestMatches.append(os.path.join(root, filename)) for srcFile in srcMatches: