Merge branch 'stable-3.0' into stable-3.1
* stable-3.0:
e2e Scenarios: Refine the gc checking resolution
Prepare for new gerrit_api snapshot version usage
Upgrade bazlets to latest stable-3.0
Upgrade bazlets to latest stable-3.0
CheckProjectStatisticsAfterGc: Make tests circular
Change-Id: I6a141f5a356c8ea8ffc08f656a7f39b3bab39bd7
diff --git a/WORKSPACE b/WORKSPACE
index ab1657c..e679330 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -7,16 +7,6 @@
#local_path = "/home/<user>/projects/bazlets",
)
-# Snapshot Plugin API
-#load(
-# "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl",
-# "gerrit_api_maven_local",
-#)
-
-# Load snapshot Plugin API
-#gerrit_api_maven_local()
-
-# Release Plugin API
load(
"@com_googlesource_gerrit_bazlets//:gerrit_api.bzl",
"gerrit_api",
@@ -25,6 +15,9 @@
# Load release Plugin API
gerrit_api()
+# Load snapshot Plugin API
+#gerrit_api(version = "3.0.xy-SNAPSHOT")
+
load("//:external_plugin_deps.bzl", "external_plugin_deps")
external_plugin_deps()
diff --git a/src/test/resources/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsAfterGc.json b/src/test/resources/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsUpToGc.json
similarity index 100%
rename from src/test/resources/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsAfterGc.json
rename to src/test/resources/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsUpToGc.json
diff --git a/src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsAfterGc.scala b/src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsUpToGc.scala
similarity index 77%
rename from src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsAfterGc.scala
rename to src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsUpToGc.scala
index fa43e22..ea02a32 100644
--- a/src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsAfterGc.scala
+++ b/src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CheckProjectStatisticsUpToGc.scala
@@ -20,8 +20,14 @@
import io.gatling.core.structure.ScenarioBuilder
import io.gatling.http.Predef._
-class CheckProjectStatisticsAfterGc extends ProjectSimulation {
- private val data: FeederBuilder = jsonFile(resource).convert(keys).queue
+import scala.concurrent.duration._
+
+class CheckProjectStatisticsUpToGc extends ProjectSimulation {
+ private val data: FeederBuilder = jsonFile(resource).convert(keys).circular
+ lazy val MaxSecondsForGcToComplete = 10
+ val ChecksPerSecond = 4
+
+ override def relativeRuntimeWeight: Int = MaxSecondsForGcToComplete / SecondsPerWeightUnit
def this(default: String) {
this()
@@ -36,6 +42,6 @@
setUp(
test.inject(
- atOnceUsers(1)
+ constantUsersPerSec(ChecksPerSecond) during (MaxSecondsForGcToComplete seconds),
)).protocols(httpProtocol)
}
diff --git a/src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CreateChangesTriggeringGc.scala b/src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CreateChangesTriggeringGc.scala
index a61b376..393397c 100644
--- a/src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CreateChangesTriggeringGc.scala
+++ b/src/test/scala/com/ericsson/gerrit/plugins/gcconductor/scenarios/CreateChangesTriggeringGc.scala
@@ -28,20 +28,18 @@
private val numberKey = "_number"
private lazy val DefaultSecondsToNextEvaluation = 60
- private lazy val DefaultSecondsToNextGcDequeue = 60
private lazy val DefaultLooseObjectsToEnqueueGc = 400
private lazy val LooseObjectsPerChange = 2
- private lazy val ChangesPerSecond = 4
+ private lazy val ChangesMultiplier = 8
+ private lazy val changesPerSecond = 4 * ChangesMultiplier
private val ChangesForLastEvaluation = 1
- private lazy val secondsForLastEvaluation = SecondsPerWeightUnit * 2
- private lazy val secondsForLastGcExecution = secondsForLastEvaluation * 2
- private lazy val changesToEnqueueGc = DefaultLooseObjectsToEnqueueGc / LooseObjectsPerChange
- private lazy val secondsToChanges = changesToEnqueueGc / ChangesPerSecond
+ private lazy val secondsForLastEvaluation = SecondsPerWeightUnit
+ private lazy val changesToEnqueueGc = DefaultLooseObjectsToEnqueueGc * ChangesMultiplier / LooseObjectsPerChange
+ private lazy val secondsToChanges = changesToEnqueueGc / changesPerSecond
private lazy val maxSecondsToEnqueueGc = secondsToChanges + DefaultSecondsToNextEvaluation + secondsForLastEvaluation
- private lazy val maxSecondsToExecuteGc = maxSecondsToEnqueueGc + DefaultSecondsToNextGcDequeue + secondsForLastGcExecution
- override def relativeRuntimeWeight: Int = maxSecondsToExecuteGc / SecondsPerWeightUnit
+ override def relativeRuntimeWeight: Int = maxSecondsToEnqueueGc / SecondsPerWeightUnit
private val test: ScenarioBuilder = scenario(unique)
.feed(data)
@@ -54,7 +52,7 @@
})
private val createProject = new CreateProject(default)
- private val checkStatsAfterGc = new CheckProjectStatisticsAfterGc(default)
+ private val checkStatsUpToGc = new CheckProjectStatisticsUpToGc(default)
private val deleteChanges = new DeleteChangesAfterGc
private val deleteProject = new DeleteProject(default)
@@ -65,19 +63,19 @@
),
test.inject(
nothingFor(stepWaitTime(this) seconds),
- constantUsersPerSec(ChangesPerSecond) during (secondsToChanges seconds),
+ constantUsersPerSec(changesPerSecond) during (secondsToChanges seconds),
nothingFor(DefaultSecondsToNextEvaluation seconds),
nothingFor(secondsForLastEvaluation / 2 seconds),
atOnceUsers(ChangesForLastEvaluation),
nothingFor(secondsForLastEvaluation / 2 seconds)
),
- checkStatsAfterGc.test.inject(
- nothingFor(stepWaitTime(checkStatsAfterGc) seconds),
- atOnceUsers(1)
+ checkStatsUpToGc.test.inject(
+ nothingFor(stepWaitTime(checkStatsUpToGc) seconds),
+ constantUsersPerSec(checkStatsUpToGc.ChecksPerSecond) during (checkStatsUpToGc.MaxSecondsForGcToComplete seconds)
),
deleteChanges.test.inject(
nothingFor(stepWaitTime(deleteChanges) seconds),
- constantUsersPerSec(ChangesPerSecond) during (secondsToChanges seconds),
+ constantUsersPerSec(changesPerSecond) during (secondsToChanges seconds),
atOnceUsers(ChangesForLastEvaluation)
),
deleteProject.test.inject(