summaryrefslogtreecommitdiff
path: root/opendc-simulator/opendc-simulator-compute/src/test
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-08-25 20:35:01 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-08-25 20:50:42 +0200
commit8f58ae2b28518c6a2ed2fe3657984f417b3d3ddb (patch)
treefc7d639ec70ac7f8c241124ae383e655311232bc /opendc-simulator/opendc-simulator-compute/src/test
parent4f333808d823abadd603ef2221092d82dc0f02b4 (diff)
refactor(simulator): Remove usage and speed fields from SimMachine
This change removes the usage and speed fields from SimMachine. We currently use other ways to capture the usage and speed and these fields cause an additional maintenance burden and performance impact. Hence the removal of these fields.
Diffstat (limited to 'opendc-simulator/opendc-simulator-compute/src/test')
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/SimMachineTest.kt41
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimHypervisorTest.kt11
-rw-r--r--opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimSpaceSharedHypervisorTest.kt18
3 files changed, 2 insertions, 68 deletions
diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/SimMachineTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/SimMachineTest.kt
index 19808a77..81268879 100644
--- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/SimMachineTest.kt
+++ b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/SimMachineTest.kt
@@ -23,9 +23,7 @@
package org.opendc.simulator.compute
import kotlinx.coroutines.*
-import kotlinx.coroutines.flow.toList
import org.junit.jupiter.api.*
-import org.junit.jupiter.api.Assertions.assertArrayEquals
import org.junit.jupiter.api.Assertions.assertEquals
import org.opendc.simulator.compute.device.SimNetworkAdapter
import org.opendc.simulator.compute.model.*
@@ -101,45 +99,6 @@ class SimMachineTest {
}
@Test
- fun testUsage() = runBlockingSimulation {
- val machine = SimBareMetalMachine(
- SimResourceInterpreter(coroutineContext, clock),
- machineModel,
- SimplePowerDriver(ConstantPowerModel(0.0))
- )
-
- val res = mutableListOf<Double>()
- val job = launch { machine.usage.toList(res) }
-
- try {
- machine.run(SimFlopsWorkload(2_000, utilization = 1.0))
- yield()
- job.cancel()
- assertEquals(listOf(0.0, 1.0, 0.0), res) { "Machine is fully utilized" }
- } finally {
- machine.close()
- }
- }
-
- @Test
- fun testSpeed() = runBlockingSimulation {
- val machine = SimBareMetalMachine(
- SimResourceInterpreter(coroutineContext, clock),
- machineModel,
- SimplePowerDriver(ConstantPowerModel(0.0))
- )
-
- try {
- coroutineScope {
- launch { machine.run(SimFlopsWorkload(2_000, utilization = 1.0)) }
- assertArrayEquals(doubleArrayOf(1000.0, 1000.0), machine.speed)
- }
- } finally {
- machine.close()
- }
- }
-
- @Test
fun testPower() = runBlockingSimulation {
val interpreter = SimResourceInterpreter(coroutineContext, clock)
val machine = SimBareMetalMachine(
diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimHypervisorTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimHypervisorTest.kt
index 918271d1..8dea0045 100644
--- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimHypervisorTest.kt
+++ b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimHypervisorTest.kt
@@ -22,11 +22,7 @@
package org.opendc.simulator.compute.kernel
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.coroutineScope
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.yield
+import kotlinx.coroutines.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
@@ -108,19 +104,14 @@ internal class SimHypervisorTest {
}
yield()
val vm = hypervisor.createMachine(model)
- val res = mutableListOf<Double>()
- val job = launch { machine.usage.toList(res) }
-
vm.run(workloadA)
yield()
- job.cancel()
machine.close()
assertAll(
{ assertEquals(1113300.0, listener.totalRequestedWork, "Requested Burst does not match") },
{ assertEquals(1023300.0, listener.totalGrantedWork, "Granted Burst does not match") },
{ assertEquals(90000.0, listener.totalOvercommittedWork, "Overcommissioned Burst does not match") },
- { assertEquals(listOf(0.0, 0.00875, 1.0, 0.0, 0.0571875, 0.0), res) { "VM usage is correct" } },
{ assertEquals(1200000, clock.millis()) { "Current time is correct" } }
)
}
diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimSpaceSharedHypervisorTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimSpaceSharedHypervisorTest.kt
index 80496992..3d3feb2a 100644
--- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimSpaceSharedHypervisorTest.kt
+++ b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimSpaceSharedHypervisorTest.kt
@@ -23,7 +23,6 @@
package org.opendc.simulator.compute.kernel
import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.flow.toList
import kotlinx.coroutines.launch
import kotlinx.coroutines.yield
import org.junit.jupiter.api.Assertions.*
@@ -64,9 +63,6 @@ internal class SimSpaceSharedHypervisorTest {
*/
@Test
fun testTrace() = runBlockingSimulation {
- val usagePm = mutableListOf<Double>()
- val usageVm = mutableListOf<Double>()
-
val duration = 5 * 60L
val workloadA =
SimTraceWorkload(
@@ -84,27 +80,15 @@ internal class SimSpaceSharedHypervisorTest {
)
val hypervisor = SimSpaceSharedHypervisor(interpreter)
- val colA = launch { machine.usage.toList(usagePm) }
launch { machine.run(hypervisor) }
-
- yield()
-
val vm = hypervisor.createMachine(machineModel)
- val colB = launch { vm.usage.toList(usageVm) }
vm.run(workloadA)
yield()
vm.close()
machine.close()
- colA.cancel()
- colB.cancel()
- assertAll(
- { assertEquals(listOf(0.0, 0.00875, 1.0, 0.0, 0.0571875, 0.0), usagePm) { "Correct PM usage" } },
- // Temporary limitation is that VMs do not emit usage information
- // { assertEquals(listOf(0.0, 0.00875, 1.0, 0.0, 0.0571875, 0.0), usageVm) { "Correct VM usage" } },
- { assertEquals(5 * 60L * 4000, clock.millis()) { "Took enough time" } }
- )
+ assertEquals(5 * 60L * 4000, clock.millis()) { "Took enough time" }
}
/**