Skip to content

Commit

Permalink
Merge pull request #69 from secure-software-engineering/feature/sootu…
Browse files Browse the repository at this point in the history
…p-support-refactor

refactor: make tests framework agnostic
  • Loading branch information
swissiety authored Feb 11, 2025
2 parents 1353c68 + a6157ac commit c845974
Show file tree
Hide file tree
Showing 292 changed files with 6,354 additions and 2,842 deletions.
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ pipeline {
maven: 'Maven 3.6.3',
mavenSettingsConfig: '9ff5ed8e-79e5-4010-b7e2-f137f16176dd') {

sh 'mvn -P ci com.coveo:fmt-maven-plugin:check -DskipFormatPlugin=false'
sh 'mvn -P ci com.coveo:fmt-maven-plugin:check -DskipFormat=false'
}
}
}
Expand Down
20 changes: 20 additions & 0 deletions PDS/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>de.fraunhofer.iem</groupId>
<artifactId>SPDS</artifactId>
<version>3.2.3</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>PDS</artifactId>

<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
* <p>Contributors: Johannes Spaeth - initial API and implementation
* *****************************************************************************
*/
package wpds.interfaces;
package de.fraunhofer.iem;

public interface Empty {}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* <p>Contributors: Johannes Spaeth - initial API and implementation
* *****************************************************************************
*/
package wpds.interfaces;
package de.fraunhofer.iem;

public interface Location {
boolean accepts(Location other);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
* <p>Contributors: Johannes Spaeth - initial API and implementation
* *****************************************************************************
*/
package wpds.wildcard;
package de.fraunhofer.iem.wildcard;

public interface ExclusionWildcard<Location> extends Wildcard {
public Location excludes();
Location excludes();
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
* <p>Contributors: Johannes Spaeth - initial API and implementation
* *****************************************************************************
*/
package wpds.wildcard;
package de.fraunhofer.iem.wildcard;

import wpds.interfaces.Location;
import de.fraunhofer.iem.Location;

public interface Wildcard extends Location {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
de/fraunhofer/iem/wildcard/ExclusionWildcard.class
de/fraunhofer/iem/Empty.class
de/fraunhofer/iem/Location.class
de/fraunhofer/iem/wildcard/Wildcard.class
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/home/smarkus/workspace/Java/SparseBoomerang/PDS/src/main/java/de/fraunhofer/iem/Empty.java
/home/smarkus/workspace/Java/SparseBoomerang/PDS/src/main/java/de/fraunhofer/iem/Location.java
/home/smarkus/workspace/Java/SparseBoomerang/PDS/src/main/java/de/fraunhofer/iem/wildcard/ExclusionWildcard.java
/home/smarkus/workspace/Java/SparseBoomerang/PDS/src/main/java/de/fraunhofer/iem/wildcard/Wildcard.java
14 changes: 14 additions & 0 deletions SparseBoomerangCorrectness/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,20 @@
<modelVersion>4.0.0</modelVersion>

<artifactId>SparseBoomerangCorrectness</artifactId>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>junit</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import boomerang.results.BackwardBoomerangResults;
import boomerang.scene.*;
import boomerang.scene.jimple.*;
import boomerang.scene.sparse.SparseCFGCache;
import boomerang.sparse.SparsificationStrategy;
import boomerang.util.AccessPath;
import com.google.common.base.Stopwatch;
import com.google.common.cache.CacheBuilder;
Expand Down Expand Up @@ -35,24 +35,24 @@ public class SparseAliasManager {
private DataFlowScope dataFlowScope;

private boolean disableAliasing = false;
private SparseCFGCache.SparsificationStrategy sparsificationStrategy;
private SparsificationStrategy sparsificationStrategy;
private boolean ignoreAfterQuery;

static class BoomerangOptions extends DefaultBoomerangOptions {

private SparseCFGCache.SparsificationStrategy sparsificationStrategy;
private SparsificationStrategy sparsificationStrategy;
private boolean ignoreAfterQuery;

public BoomerangOptions(
SparseCFGCache.SparsificationStrategy sparsificationStrategy, boolean ignoreAfterQuery) {
SparsificationStrategy sparsificationStrategy, boolean ignoreAfterQuery) {
this.sparsificationStrategy = sparsificationStrategy;
this.ignoreAfterQuery = ignoreAfterQuery;
}

@Override
public SparseCFGCache.SparsificationStrategy getSparsificationStrategy() {
public SparsificationStrategy getSparsificationStrategy() {
if (this.sparsificationStrategy == null) {
return SparseCFGCache.SparsificationStrategy.NONE;
return SparsificationStrategy.NONE;
}
return this.sparsificationStrategy;
}
Expand Down Expand Up @@ -96,7 +96,7 @@ public boolean trackAnySubclassOfThrowable() {
private static Duration totalAliasingDuration;

private SparseAliasManager(
SparseCFGCache.SparsificationStrategy sparsificationStrategy, boolean ignoreAfterQuery) {
SparsificationStrategy sparsificationStrategy, boolean ignoreAfterQuery) {
this.sparsificationStrategy = sparsificationStrategy;
this.ignoreAfterQuery = ignoreAfterQuery;
totalAliasingDuration = Duration.ZERO;
Expand All @@ -110,7 +110,7 @@ public static Duration getTotalDuration() {
}

public static synchronized SparseAliasManager getInstance(
SparseCFGCache.SparsificationStrategy sparsificationStrategy, boolean ignoreAfterQuery) {
SparsificationStrategy sparsificationStrategy, boolean ignoreAfterQuery) {
if (INSTANCE == null
|| INSTANCE.sparsificationStrategy != sparsificationStrategy
|| INSTANCE.ignoreAfterQuery != ignoreAfterQuery) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

import aliasing.SparseAliasManager;
import boomerang.scene.jimple.BoomerangPretransformer;
import boomerang.scene.sparse.SparseCFGCache;
import boomerang.util.AccessPath;
import com.google.common.base.Predicate;
import java.io.File;
Expand Down Expand Up @@ -32,7 +31,7 @@ public Set<AccessPath> executeStaticAnalysis(
String targetClassName,
String targetMethod,
String queryLHS,
SparseCFGCache.SparsificationStrategy sparsificationStrategy,
SparsificationStrategy sparsificationStrategy,
boolean ignoreAfterQuery) {
setupSoot(targetClassName);
registerSootTransformers(queryLHS, sparsificationStrategy, targetMethod, ignoreAfterQuery);
Expand Down Expand Up @@ -78,7 +77,7 @@ protected void setupSoot(String targetTestClassName) {
public Set<AccessPath> getAliases(
SootMethod method,
String queryLHS,
SparseCFGCache.SparsificationStrategy sparsificationStrategy,
SparsificationStrategy sparsificationStrategy,
boolean ignoreAfterQuery) {
String[] split = queryLHS.split("\\.");
Optional<Unit> unitOp;
Expand Down Expand Up @@ -117,7 +116,7 @@ public Set<AccessPath> getAliases(

protected Transformer createAnalysisTransformer(
String queryLHS,
SparseCFGCache.SparsificationStrategy sparsificationStrategy,
SparsificationStrategy sparsificationStrategy,
String targetMethod,
boolean ignoreAfterQuery) {
return new SceneTransformer() {
Expand Down Expand Up @@ -153,7 +152,7 @@ protected SootMethod getEntryPointMethod(String targetMethod) {

protected void registerSootTransformers(
String queryLHS,
SparseCFGCache.SparsificationStrategy sparsificationStrategy,
SparsificationStrategy sparsificationStrategy,
String targetMethod,
boolean ignoreAfterQuery) {
Transform transform =
Expand All @@ -175,66 +174,43 @@ protected void executeSootTransformers() {

protected void runAnalyses(String queryLHS, String targetClass, String targetMethod) {
Set<AccessPath> nonSparseAliases =
getAliases(
targetClass, queryLHS, targetMethod, SparseCFGCache.SparsificationStrategy.NONE, true);
getAliases(targetClass, queryLHS, targetMethod, SparsificationStrategy.NONE, true);
Set<AccessPath> typeBasedSparseAliases =
getAliases(
targetClass,
queryLHS,
targetMethod,
SparseCFGCache.SparsificationStrategy.TYPE_BASED,
true);
getAliases(targetClass, queryLHS, targetMethod, SparsificationStrategy.TYPE_BASED, true);
Set<AccessPath> aliasAwareSparseAliases =
getAliases(
targetClass,
queryLHS,
targetMethod,
SparseCFGCache.SparsificationStrategy.ALIAS_AWARE,
true);
checkResults(
SparseCFGCache.SparsificationStrategy.TYPE_BASED, typeBasedSparseAliases, nonSparseAliases);
checkResults(
SparseCFGCache.SparsificationStrategy.ALIAS_AWARE,
aliasAwareSparseAliases,
nonSparseAliases);
getAliases(targetClass, queryLHS, targetMethod, SparsificationStrategy.ALIAS_AWARE, true);
checkResults(SparsificationStrategy.TYPE_BASED, typeBasedSparseAliases, nonSparseAliases);
checkResults(SparsificationStrategy.ALIAS_AWARE, aliasAwareSparseAliases, nonSparseAliases);
}

protected void runAnalyses(
String queryLHS, String targetClass, String targetMethod, boolean ignoreAfterQuery) {
Set<AccessPath> nonSparseAliases =
getAliases(
targetClass,
queryLHS,
targetMethod,
SparseCFGCache.SparsificationStrategy.NONE,
ignoreAfterQuery);
targetClass, queryLHS, targetMethod, SparsificationStrategy.NONE, ignoreAfterQuery);
Set<AccessPath> typeBasedSparseAliases =
getAliases(
targetClass,
queryLHS,
targetMethod,
SparseCFGCache.SparsificationStrategy.TYPE_BASED,
SparsificationStrategy.TYPE_BASED,
ignoreAfterQuery);
Set<AccessPath> aliasAwareSparseAliases =
getAliases(
targetClass,
queryLHS,
targetMethod,
SparseCFGCache.SparsificationStrategy.ALIAS_AWARE,
SparsificationStrategy.ALIAS_AWARE,
ignoreAfterQuery);
checkResults(
SparseCFGCache.SparsificationStrategy.TYPE_BASED, typeBasedSparseAliases, nonSparseAliases);
checkResults(
SparseCFGCache.SparsificationStrategy.ALIAS_AWARE,
aliasAwareSparseAliases,
nonSparseAliases);
checkResults(SparsificationStrategy.TYPE_BASED, typeBasedSparseAliases, nonSparseAliases);
checkResults(SparsificationStrategy.ALIAS_AWARE, aliasAwareSparseAliases, nonSparseAliases);
}

protected Set<AccessPath> getAliases(
String targetClass,
String queryLHS,
String targetMethod,
SparseCFGCache.SparsificationStrategy sparsificationStrategy,
SparsificationStrategy sparsificationStrategy,
boolean ignoreAfterQuery) {
Set<AccessPath> aliases =
executeStaticAnalysis(
Expand All @@ -243,7 +219,7 @@ protected Set<AccessPath> getAliases(
}

protected void checkResults(
SparseCFGCache.SparsificationStrategy strategy,
SparsificationStrategy strategy,
Set<AccessPath> sparseAliases,
Set<AccessPath> nonSparseAliases) {
List<String> nonSparse =
Expand Down
4 changes: 0 additions & 4 deletions SynchronizedPDS/.settings/org.eclipse.m2e.core.prefs

This file was deleted.

6 changes: 5 additions & 1 deletion SynchronizedPDS/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.2</version>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<argLine>-Xmx8G -Xss128m</argLine>
</configuration>
Expand All @@ -36,5 +36,9 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>de.fraunhofer.iem</groupId>
<artifactId>PDS</artifactId>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@
*/
package sync.pds.solver;

import de.fraunhofer.iem.Location;
import wpds.impl.NormalRule;
import wpds.impl.Transition;
import wpds.impl.Weight;
import wpds.interfaces.Location;
import wpds.interfaces.State;

public class CastNormalRule<N extends Location, D extends State, W extends Weight>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

public class OneWeightFunctions<Stmt, Fact, Field, W extends Weight>
implements WeightFunctions<Stmt, Fact, Field, W> {
private W one;
private final W one;

public OneWeightFunctions(W one) {
this.one = one;
Expand Down
Loading

0 comments on commit c845974

Please sign in to comment.