Skip to content

Commit afca9e6

Browse files
authored
Merge branch 'master' into xss-starter
2 parents 110e6bc + 2900e40 commit afca9e6

88 files changed

Lines changed: 4048 additions & 1101 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,9 @@ env:
4040
# https://github.com/WebFuzzing/EvoMaster/issues/447
4141
release-jdk: 21
4242
build-jdk: 17
43-
# latest-jdk: 21
4443
retention-days: 5
4544
debug: false # put to true if need to debug a specific test
46-
debugTestName: "org.evomaster.e2etests.spring.graphql.db.tree.DbTreeEMTest" # replace with test to debug
45+
debugTestName: "com.foo.base.BaseIT" # replace with test to debug
4746

4847
# This build is quite expensive (some hours), so we run it whole only on some JVM versions and OSs.
4948
# For the moment, we need to support JVM 8 and all following LTS versions (e.g, 11 and 17).
@@ -84,7 +83,7 @@ jobs:
8483
- name: Debug Test Case
8584
env:
8685
CI_env: GithubAction
87-
run: mvn test -Dtest=${{env.debugTestName}} -Dsurefire.failIfNoSpecifiedTests=false -DredirectTestOutputToFile=false
86+
run: mvn -B install -Dtest=${{env.debugTestName}} -Dsurefire.failIfNoSpecifiedTests=false -DredirectTestOutputToFile=false
8887

8988
full-build-base:
9089
runs-on: ubuntu-latest
@@ -122,7 +121,7 @@ jobs:
122121
env:
123122
NODE_OPTIONS: "--max_old_space_size=8000"
124123
with:
125-
report_paths: '**/target/surefire-reports/TEST-*.xml'
124+
report_paths: '**/target/*-reports/TEST-*.xml'
126125
# Upload coverage results
127126
# As of 2024, looks like a rate limiter is breaking the build.
128127
# As such, now we only upload from master branch, hoping it is enough.

client-java/controller/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,11 @@
199199
<artifactId>mongodb-driver-sync</artifactId>
200200
<scope>test</scope>
201201
</dependency>
202+
<dependency>
203+
<groupId>io.lettuce</groupId>
204+
<artifactId>lettuce-core</artifactId>
205+
<scope>test</scope>
206+
</dependency>
202207

203208
<!--gRPC RPC test-->
204209
<dependency>

client-java/controller/src/main/java/org/evomaster/client/java/controller/ExternalSutController.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,12 @@ public final void setupForGeneratedTest(){
9393
//In the past, we configured P6Spy here
9494
}
9595

96-
public void setNeedsJdk17Options(boolean needsJdk17Options) {
96+
/**
97+
* Unfortunately, the use of --add-opens in JDK 17+ has broken many things... :(
98+
* If you are using JDK 17 or above, you must set this to true
99+
* @param needsJdk17Options
100+
*/
101+
public final void setNeedsJdk17Options(boolean needsJdk17Options) {
97102
this.needsJdk17Options = needsJdk17Options;
98103
}
99104

client-java/controller/src/main/java/org/evomaster/client/java/controller/SutHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,8 @@ default void extractRPCSchema(){}
181181

182182
default Object getOpenSearchConnection() {return null;}
183183

184+
default Object getRedisConnection() {return null;}
185+
184186
/**
185187
* <p>
186188
* register or execute specified SQL script for initializing data in database

client-java/controller/src/main/java/org/evomaster/client/java/controller/internal/SutController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import org.evomaster.client.java.sql.SqlScriptRunner;
3434
import org.evomaster.client.java.sql.SqlScriptRunnerCached;
3535
import org.evomaster.client.java.sql.DbSpecification;
36-
import org.evomaster.client.java.controller.internal.db.MongoHandler;
36+
import org.evomaster.client.java.controller.internal.db.mongo.MongoHandler;
3737
import org.evomaster.client.java.sql.DbInfoExtractor;
3838
import org.evomaster.client.java.sql.internal.SqlHandler;
3939
import org.evomaster.client.java.controller.mongo.MongoScriptRunner;

client-java/controller/src/main/java/org/evomaster/client/java/controller/internal/db/MongoCommandWithDistance.java renamed to client-java/controller/src/main/java/org/evomaster/client/java/controller/internal/db/mongo/MongoCommandWithDistance.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.evomaster.client.java.controller.internal.db;
1+
package org.evomaster.client.java.controller.internal.db.mongo;
22

33
public class MongoCommandWithDistance {
44

client-java/controller/src/main/java/org/evomaster/client/java/controller/internal/db/MongoDistanceWithMetrics.java renamed to client-java/controller/src/main/java/org/evomaster/client/java/controller/internal/db/mongo/MongoDistanceWithMetrics.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.evomaster.client.java.controller.internal.db;
1+
package org.evomaster.client.java.controller.internal.db.mongo;
22

33
public class MongoDistanceWithMetrics {
44

client-java/controller/src/main/java/org/evomaster/client/java/controller/internal/db/MongoHandler.java renamed to client-java/controller/src/main/java/org/evomaster/client/java/controller/internal/db/mongo/MongoHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.evomaster.client.java.controller.internal.db;
1+
package org.evomaster.client.java.controller.internal.db.mongo;
22

33
import org.evomaster.client.java.controller.api.dto.database.execution.MongoFailedQuery;
44
import org.evomaster.client.java.controller.api.dto.database.execution.MongoExecutionsDto;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.evomaster.client.java.controller.internal.db.redis;
2+
3+
import org.evomaster.client.java.instrumentation.RedisCommand;
4+
5+
/**
6+
* This class will link a given RedisCommand to the result of the distance calculation for that commmand.
7+
*/
8+
public class RedisCommandEvaluation {
9+
private final RedisCommand redisCommand;
10+
private final RedisDistanceWithMetrics redisDistanceWithMetrics;
11+
12+
public RedisCommandEvaluation(RedisCommand redisCommand, RedisDistanceWithMetrics redisDistanceWithMetrics) {
13+
this.redisCommand = redisCommand;
14+
this.redisDistanceWithMetrics = redisDistanceWithMetrics;
15+
}
16+
17+
public RedisCommand getRedisCommand() {
18+
return redisCommand;
19+
}
20+
21+
public RedisDistanceWithMetrics getRedisDistanceWithMetrics() {
22+
return redisDistanceWithMetrics;
23+
}
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.evomaster.client.java.controller.internal.db.redis;
2+
3+
/**
4+
* This class will have the distance for a RedisCommand (between 0 and 1)
5+
* and the number of evaluated keys in that distance calculation.
6+
*/
7+
public class RedisDistanceWithMetrics {
8+
private final double redisDistance; // A number between 0 and 1.
9+
private final int numberOfEvaluatedKeys;
10+
11+
public RedisDistanceWithMetrics(double redisDistance, int numberOfEvaluatedKeys) {
12+
if(redisDistance < 0){
13+
throw new IllegalArgumentException("Distance must be non-negative but value is " + redisDistance);
14+
}
15+
if(numberOfEvaluatedKeys < 0){
16+
throw new IllegalArgumentException("Number of evaluated keys must be non-negative but value is "
17+
+ numberOfEvaluatedKeys);
18+
}
19+
this.redisDistance = redisDistance;
20+
this.numberOfEvaluatedKeys = numberOfEvaluatedKeys;
21+
}
22+
23+
public int getNumberOfEvaluatedKeys() {
24+
return numberOfEvaluatedKeys;
25+
}
26+
27+
public double getDistance() {
28+
return redisDistance;
29+
}
30+
}

0 commit comments

Comments
 (0)