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(