summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-simulator/src/test
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-07 16:04:46 +0200
committerGitHub <noreply@github.com>2021-09-07 16:04:46 +0200
commit3eda751b725448139217dc1929dca1fc354e2a4e (patch)
tree11d933753c515140a6ae846fe96448ad64b165aa /opendc-compute/opendc-compute-simulator/src/test
parenteb4de7f832c6d26725e0d7c29644c704ea82604e (diff)
parent18ff316a6b6ab984ebf8283ea48ed98ec69d8295 (diff)
merge: Prepare for risk analysis experiments
This pull request adds the necessary code in preparation for the risk analysis experiments: - Track provisioning time - Track host up/down time - Track guest up/down time - Support overcommitted memory - Do not fail inactive guests - Mark unschedulable server as terminated - Make ExperimentMonitor optional for trace processing - Report up/downtime metrics in experiment monitor - Move metric collection outside Capelin code - Resolve kotlin-reflect incompatibility - Restructure input reading classes **Breaking API Changes** - `ExperimentMonitor` replaced in favour of `ComputeMonitor`
Diffstat (limited to 'opendc-compute/opendc-compute-simulator/src/test')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt20
1 files changed, 20 insertions, 0 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt b/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt
index 1ba3a9a1..31215e9a 100644
--- a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt
+++ b/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt
@@ -189,6 +189,10 @@ internal class SimHostTest {
fun testFailure() = runBlockingSimulation {
var requestedWork = 0L
var grantedWork = 0L
+ var totalTime = 0L
+ var downTime = 0L
+ var guestTotalTime = 0L
+ var guestDownTime = 0L
val meterProvider: MeterProvider = SdkMeterProvider
.builder()
@@ -238,6 +242,18 @@ internal class SimHostTest {
metricsByName["cpu.work.granted"]?.let {
grantedWork = it.doubleSumData.points.sumOf { point -> point.value }.toLong()
}
+ metricsByName["host.time.total"]?.let {
+ totalTime = it.longSumData.points.first().value
+ }
+ metricsByName["host.time.down"]?.let {
+ downTime = it.longSumData.points.first().value
+ }
+ metricsByName["guest.time.total"]?.let {
+ guestTotalTime = it.longSumData.points.first().value
+ }
+ metricsByName["guest.time.error"]?.let {
+ guestDownTime = it.longSumData.points.first().value
+ }
return CompletableResultCode.ofSuccess()
}
@@ -275,6 +291,10 @@ internal class SimHostTest {
assertAll(
{ assertEquals(2226039, requestedWork, "Total time does not match") },
{ assertEquals(1086039, grantedWork, "Down time does not match") },
+ { assertEquals(1200001, totalTime, "Total time does not match") },
+ { assertEquals(1200001, guestTotalTime, "Guest total time does not match") },
+ { assertEquals(5000, downTime, "Down time does not match") },
+ { assertEquals(5000, guestDownTime, "Guest down time does not match") },
)
}