From 4a8b32d288ba3ee986ecef7933fa77554d34e762 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Tue, 4 May 2021 19:19:47 +0200 Subject: harness: Split harness into separate modules This change splits the OpenDC Experiment Harness into separate modules. This prevents users from pulling in unnecessary dependencies when depending on the harness API. --- .../test/kotlin/org/opendc/harness/EngineTest.kt | 61 ---------------------- .../kotlin/org/opendc/harness/TestExperiment.kt | 54 ------------------- 2 files changed, 115 deletions(-) delete mode 100644 opendc-harness/src/test/kotlin/org/opendc/harness/EngineTest.kt delete mode 100644 opendc-harness/src/test/kotlin/org/opendc/harness/TestExperiment.kt (limited to 'opendc-harness/src/test') diff --git a/opendc-harness/src/test/kotlin/org/opendc/harness/EngineTest.kt b/opendc-harness/src/test/kotlin/org/opendc/harness/EngineTest.kt deleted file mode 100644 index 6f2989db..00000000 --- a/opendc-harness/src/test/kotlin/org/opendc/harness/EngineTest.kt +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.harness - -import kotlinx.coroutines.flow.flowOf -import kotlinx.coroutines.flow.toList -import kotlinx.coroutines.runBlocking -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNotNull -import org.junit.jupiter.api.Test -import org.opendc.harness.api.ExperimentDefinition -import org.opendc.harness.engine.ExperimentEngine -import org.opendc.harness.engine.ExperimentEngineLauncher -import org.opendc.harness.engine.ExperimentExecutionListener -import org.opendc.harness.engine.discovery.DiscoveryProvider -import org.opendc.harness.engine.discovery.DiscoveryRequest - -/** - * A test suite for the [ExperimentEngine]. - */ -internal class EngineTest { - @Test - fun test() { - val listener = object : ExperimentExecutionListener {} - ExperimentEngineLauncher() - .withListener(listener) - .runBlocking(flowOf(TestExperiment().toDefinition())) - } - - @Test - fun discovery() { - runBlocking { - val discovery = DiscoveryProvider.findById("dsl")?.create() - assertNotNull(discovery) - val res = mutableListOf() - discovery?.discover(DiscoveryRequest())?.toList(res) - println(res) - assertEquals(1, res.size) - } - } -} diff --git a/opendc-harness/src/test/kotlin/org/opendc/harness/TestExperiment.kt b/opendc-harness/src/test/kotlin/org/opendc/harness/TestExperiment.kt deleted file mode 100644 index bedd1c76..00000000 --- a/opendc-harness/src/test/kotlin/org/opendc/harness/TestExperiment.kt +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.harness - -import org.opendc.harness.dsl.Experiment -import org.opendc.harness.dsl.anyOf - -/** - * An experiment to test the harness' functionality. - */ -class TestExperiment : Experiment("Design Space Exploration") { - /** - * The cloud environment to use. - */ - private val environment: String by anyOf( - "../../traces/setup-small.json", - "../../traces/setup.json", - "../../traces/setup-large.json" - ) - - /** - * The trace to use. - */ - private val trace: String by anyOf( - "../../traces/gwf/askalon_workload_olde.gwf", - "../../traces/gwf/askalon_workload_ee.gwf", - "../../traces/gwf/chronos_exp_noscaler_ca.gwf" - ) - - override fun doRun(repeat: Int) { - println("Id $id, Run $repeat, Environment $environment, Trace $trace") - Thread.sleep(500 * id.toLong()) - } -} -- cgit v1.2.3