nabarunnag closed pull request #20: GEODE-6138: Upgrade to JUnit 5 URL: https://github.com/apache/geode-benchmarks/pull/20
This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/build.gradle b/build.gradle index 2e3e2b9..8e1b288 100644 --- a/build.gradle +++ b/build.gradle @@ -34,6 +34,10 @@ apply plugin: 'com.bmuschko.docker-remote-api' // Import task types import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage +// Load all properties in dependency-version.properties as project properties, so all projects can read them +Properties dependencyVersions = new Properties() +dependencyVersions.load(new FileInputStream("${project.projectDir}/gradle/dependency-versions.properties")) +dependencyVersions.keys().each{ k -> project.ext[k] = dependencyVersions[k]} // Use task types task buildTestingImage(type: DockerBuildImage) { diff --git a/geode-benchmarks/build.gradle b/geode-benchmarks/build.gradle index d6469c6..a4fa8bd 100644 --- a/geode-benchmarks/build.gradle +++ b/geode-benchmarks/build.gradle @@ -37,9 +37,11 @@ repositories { } dependencies { - compile(group: 'junit', name: 'junit', version: '4.12') + testImplementation(group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: project.'junit-jupiter-api.version') + testRuntimeOnly(group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: project.'junit-jupiter-engine.version') + compile(group: 'org.junit-pioneer', name: 'junit-pioneer', version: project.'junit-pioneer.version') compile(group: 'org.apache.geode', name: 'geode-core', version: geodeVersion) - compile(group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25') + compile(group: 'org.slf4j', name: 'slf4j-simple', version: project.'slf4j-simple.version') compile(project(':harness')) } diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmark.java index 1964fc9..3fada0a 100644 --- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmark.java +++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmark.java @@ -21,7 +21,7 @@ import static org.apache.geode.benchmark.tests.util.ClientServerTopology.Roles.CLIENT; import static org.apache.geode.benchmark.tests.util.ClientServerTopology.Roles.SERVER; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.apache.geode.benchmark.tasks.CreateClientProxyRegion; import org.apache.geode.benchmark.tasks.CreatePartitionedRegion; diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmark.java index 41753cd..cfa7b74 100644 --- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmark.java +++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmark.java @@ -20,7 +20,7 @@ import static org.apache.geode.benchmark.tests.util.ClientServerTopology.Roles.CLIENT; import static org.apache.geode.benchmark.tests.util.ClientServerTopology.Roles.SERVER; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.apache.geode.benchmark.tasks.CreateClientProxyRegion; import org.apache.geode.benchmark.tasks.CreatePartitionedRegion; diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmark.java index ae7fea2..adc1c0e 100644 --- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmark.java +++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmark.java @@ -21,7 +21,7 @@ import static org.apache.geode.benchmark.tests.util.ClientServerTopology.Roles.CLIENT; import static org.apache.geode.benchmark.tests.util.ClientServerTopology.Roles.SERVER; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.apache.geode.benchmark.tasks.CreateClientProxyRegion; import org.apache.geode.benchmark.tasks.CreateReplicatedRegion; diff --git a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmark.java b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmark.java index 6a12645..f78c56b 100644 --- a/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmark.java +++ b/geode-benchmarks/src/main/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmark.java @@ -20,7 +20,7 @@ import static org.apache.geode.benchmark.tests.util.ClientServerTopology.Roles.CLIENT; import static org.apache.geode.benchmark.tests.util.ClientServerTopology.Roles.SERVER; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.apache.geode.benchmark.tasks.CreateClientProxyRegion; import org.apache.geode.benchmark.tasks.CreateReplicatedRegion; diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmarkTest.java index 1d3f21c..5ce2cdb 100644 --- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmarkTest.java +++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedGetBenchmarkTest.java @@ -14,19 +14,31 @@ */ package org.apache.geode.benchmark.tests; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; + +import java.io.File; +import java.nio.file.Path; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.TestRunners; +@ExtendWith(TempDirectory.class) public class PartitionedGetBenchmarkTest { - @Rule - public TemporaryFolder folder = new TemporaryFolder(); + + private File folder; + + @BeforeEach + void createTemporaryFolder(@TempDirectory.TempDir Path tempFolder) { + folder = tempFolder.toFile(); + } @Test - public void benchmarkRunsSuccessfully() throws Exception { - TestRunners.minimalRunner(folder.newFolder()) + public void benchmarkRunsSuccessfully() + throws Exception { + TestRunners.minimalRunner(folder) .runTest(new PartitionedGetBenchmark(100)); } } diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmarkTest.java index 14388be..a016c53 100644 --- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmarkTest.java +++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/PartitionedPutBenchmarkTest.java @@ -17,20 +17,32 @@ package org.apache.geode.benchmark.tests; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; + + +import java.io.File; +import java.nio.file.Path; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.TestRunners; +@ExtendWith(TempDirectory.class) public class PartitionedPutBenchmarkTest { - @Rule - public TemporaryFolder folder = new TemporaryFolder(); + private File folder; + + @BeforeEach + void createTemporaryFolder(@TempDirectory.TempDir Path tempFolder) { + folder = tempFolder.toFile(); + } @Test - public void benchmarkRunsSuccessfully() throws Exception { - TestRunners.minimalRunner(folder.newFolder()) + public void benchmarkRunsSuccessfully() + throws Exception { + TestRunners.minimalRunner(folder) .runTest(new PartitionedPutBenchmark(100)); } } diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmarkTest.java index d71c1eb..f9283de 100644 --- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmarkTest.java +++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedGetBenchmarkTest.java @@ -14,19 +14,31 @@ */ package org.apache.geode.benchmark.tests; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; + +import java.io.File; +import java.nio.file.Path; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.TestRunners; +@ExtendWith(TempDirectory.class) public class ReplicatedGetBenchmarkTest { - @Rule - public TemporaryFolder folder = new TemporaryFolder(); + + private File folder; + + @BeforeEach + void createTemporaryFolder(@TempDirectory.TempDir Path tempFolder) { + folder = tempFolder.toFile(); + } @Test - public void benchmarkRunsSuccessfully() throws Exception { - TestRunners.minimalRunner(folder.newFolder()) + public void benchmarkRunsSuccessfully() + throws Exception { + TestRunners.minimalRunner(folder) .runTest(new ReplicatedGetBenchmark(100)); } } diff --git a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmarkTest.java b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmarkTest.java index 27547da..fad7351 100644 --- a/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmarkTest.java +++ b/geode-benchmarks/src/test/java/org/apache/geode/benchmark/tests/ReplicatedPutBenchmarkTest.java @@ -17,20 +17,30 @@ package org.apache.geode.benchmark.tests; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import java.io.File; +import java.nio.file.Path; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.TestRunners; +@ExtendWith(TempDirectory.class) public class ReplicatedPutBenchmarkTest { - @Rule - public TemporaryFolder folder = new TemporaryFolder(); + private File folder; + + @BeforeEach + void createTemporaryFolder(@TempDirectory.TempDir Path tempFolder) { + folder = tempFolder.toFile(); + } @Test - public void benchmarkRunsSuccessfully() throws Exception { - TestRunners.minimalRunner(folder.newFolder()) + public void benchmarkRunsSuccessfully() + throws Exception { + TestRunners.minimalRunner(folder) .runTest(new ReplicatedPutBenchmark(100)); } } diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..801624f --- /dev/null +++ b/gradle.properties @@ -0,0 +1,44 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# The versionNumber follows semantic versioning conventions. +versionNumber = 1.9.0 + +# The releaseQualifier uses the following conventions: +# .M? - milestone release +# -beta.? - beta release +# <blank> - release +releaseQualifier = +# The releaseType uses the following conventions: +# -SNAPSHOT - development version +# <blank> - release +releaseType = -SNAPSHOT + +# Maven also uses the project group as a prefix. +group = org.apache.geode + +# 'apply from:' location for gradle scripts, relative to the project root. Specified here so that +# it may be overridden by external projects or custom develop environment configurations +scriptDir = gradle + +# Set the buildId to add build metadata that can be viewed from +# gfsh or pulse (`gfsh version --full`). Can be set using +# `gradle -PbuildId=N ...` where N is an artibitrary string.buildId = 0 +buildId = 0 + +productName = Apache Geode +productOrg = Apache Software Foundation (ASF) + +minimumGradleVersion = 4.10.1 \ No newline at end of file diff --git a/gradle/dependency-versions.properties b/gradle/dependency-versions.properties new file mode 100644 index 0000000..19d53eb --- /dev/null +++ b/gradle/dependency-versions.properties @@ -0,0 +1,29 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Dependency versions +junit-jupiter-api.version = 5.3.2 +junit-jupiter-engine.version = 5.3.2 +junit-pioneer.version = 0.3.0 +geode-core.version = 1.7.0 +slf4j-simple.version = 1.7.25 +sshj.version = 0.26.0 +commons-io.version = 2.6 +yardstick.version = 0.8.3 +HdrHistogram.version = 2.1.10 +mockito-all.version = 1.10.19 +awaitility.version = 3.0.0 +sshd-core.version = 2.1.0 +assertj-core.version = 3.11.1 diff --git a/harness/build.gradle b/harness/build.gradle index 362ac59..c75ee52 100644 --- a/harness/build.gradle +++ b/harness/build.gradle @@ -35,14 +35,16 @@ task(analyzeRun, dependsOn: 'classes', type: JavaExec) { } dependencies { - testCompile(group: 'junit', name: 'junit', version: '4.12') - compile(group: 'com.hierynomus', name: 'sshj', version: '0.26.0') - compile(group: 'commons-io', name: 'commons-io', version: '2.6') - compile(group: 'org.yardstickframework', name: 'yardstick', version: '0.8.3') - compile(group: 'org.hdrhistogram', name: 'HdrHistogram', version: '2.1.10') - testCompile(group: 'org.mockito', name: 'mockito-all', version: '1.10.19') - testCompile(group: 'org.awaitility', name: 'awaitility', version: '3.0.0') - testCompile(group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25') - testCompile(group: 'org.apache.sshd', name: 'sshd-core', version: '2.1.0') - testCompile(group: 'org.assertj', name: 'assertj-core', version: '3.11.1') + testImplementation(group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: project.'junit-jupiter-api.version') + testRuntimeOnly(group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: project.'junit-jupiter-engine.version') + compile(group: 'org.junit-pioneer', name: 'junit-pioneer', version: project.'junit-pioneer.version') + compile(group: 'com.hierynomus', name: 'sshj', version: project.'sshj.version') + compile(group: 'commons-io', name: 'commons-io', version: project.'commons-io.version') + compile(group: 'org.yardstickframework', name: 'yardstick', version: project.'yardstick.version') + compile(group: 'org.hdrhistogram', name: 'HdrHistogram', version: project.'HdrHistogram.version') + testCompile(group: 'org.mockito', name: 'mockito-all', version: project.'mockito-all.version') + testCompile(group: 'org.awaitility', name: 'awaitility', version: project.'awaitility.version') + testCompile(group: 'org.slf4j', name: 'slf4j-simple', version: project.'slf4j-simple.version') + testCompile(group: 'org.apache.sshd', name: 'sshd-core', version: project.'sshd-core.version') + testCompile(group: 'org.assertj', name: 'assertj-core', version: project.'assertj-core.version') } diff --git a/harness/src/main/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructure.java b/harness/src/main/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructure.java index 904ccc1..88adff5 100644 --- a/harness/src/main/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructure.java +++ b/harness/src/main/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructure.java @@ -17,6 +17,8 @@ package org.apache.geode.perftest.infrastructure.local; +import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; + import java.io.File; import java.io.IOException; import java.io.UncheckedIOException; @@ -95,7 +97,7 @@ public void copyToNodes(Iterable<File> files, Function<Node, String> destDirFunc destDir.toFile().mkdirs(); for (File file : files) { - Files.copy(file.toPath(), destDir.resolve(file.getName())); + Files.copy(file.toPath(), destDir.resolve(file.getName()), REPLACE_EXISTING); } } } diff --git a/harness/src/test/java/org/apache/geode/perftest/TestRunnerIntegrationTest.java b/harness/src/test/java/org/apache/geode/perftest/TestRunnerIntegrationTest.java index 229a61e..0facf5c 100644 --- a/harness/src/test/java/org/apache/geode/perftest/TestRunnerIntegrationTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/TestRunnerIntegrationTest.java @@ -17,8 +17,8 @@ package org.apache.geode.perftest; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.io.IOException; @@ -27,10 +27,10 @@ import java.util.function.Predicate; import java.util.stream.Stream; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.benchmarks.EmptyBenchmark; import org.apache.geode.perftest.infrastructure.local.LocalInfrastructureFactory; @@ -38,18 +38,26 @@ import org.apache.geode.perftest.runner.DefaultTestRunner; import org.apache.geode.perftest.yardstick.analysis.YardstickThroughputSensorParser; +@ExtendWith(TempDirectory.class) public class TestRunnerIntegrationTest { - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + + Path temporaryFolder; + + @BeforeEach + void setup(@TempDirectory.TempDir Path tempDirPath) { + this.temporaryFolder = tempDirPath; + outputDir = temporaryFolder.toFile(); + runner = new DefaultTestRunner(new RemoteJVMFactory(new LocalInfrastructureFactory()), + outputDir); + } + private TestRunner runner; private File outputDir; public static final String SAMPLE_BENCHMARK = "SampleBenchmark"; - @Before + @BeforeEach public void setup() throws IOException { - outputDir = temporaryFolder.newFolder(); - runner = new DefaultTestRunner(new RemoteJVMFactory(new LocalInfrastructureFactory()), - outputDir); + } @Test @@ -99,10 +107,10 @@ public void configuresJVMOptions() throws Exception { testConfig.role("all", 1); testConfig.jvmArgs("all", "-Dprop1=true", "-Dprop2=5"); testConfig.before(context -> { - assertTrue("Expecting system property to be set in launched JVM, but it was not present.", - Boolean.getBoolean("prop1")); - assertEquals("Expecting system property to be set in launched JVM, but it was not present.", - 5, Integer.getInteger("prop2").intValue()); + assertTrue(Boolean.getBoolean("prop1"), + "Expecting system property to be set in launched JVM, but it was not present."); + assertEquals(5, Integer.getInteger("prop2").intValue(), + "Expecting system property to be set in launched JVM, but it was not present."); }, "all"); return testConfig; }); diff --git a/harness/src/test/java/org/apache/geode/perftest/TestRunnerJUnitTest.java b/harness/src/test/java/org/apache/geode/perftest/TestRunnerJUnitTest.java index badf894..1f36a8f 100644 --- a/harness/src/test/java/org/apache/geode/perftest/TestRunnerJUnitTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/TestRunnerJUnitTest.java @@ -23,20 +23,30 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.io.File; +import java.nio.file.Path; + import org.assertj.core.api.Assertions; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.mockito.InOrder; import org.apache.geode.perftest.jvms.RemoteJVMFactory; import org.apache.geode.perftest.jvms.RemoteJVMs; import org.apache.geode.perftest.runner.DefaultTestRunner; +@ExtendWith(TempDirectory.class) public class TestRunnerJUnitTest { - @Rule - public TemporaryFolder folder = new TemporaryFolder(); + private static File folder; + + @BeforeAll + public static void createTemporaryFolder(@TempDirectory.TempDir Path tempFolder) { + folder = tempFolder.toFile(); + } + @Test public void testRunnerRunsBeforeAndAfterTasks() throws Exception { @@ -47,7 +57,7 @@ public void testRunnerRunsBeforeAndAfterTasks() throws Exception { when(remoteJvmFactory.launch(any(), any())).thenReturn(remoteJVMs); TestRunner runner = new DefaultTestRunner(remoteJvmFactory, - folder.newFolder()); + folder); Task before = mock(Task.class); Task after = mock(Task.class); @@ -78,7 +88,7 @@ public void requiresAtLeastOneRole() throws Exception { when(remoteJvmFactory.launch(any(), any())).thenReturn(remoteJVMs); TestRunner runner = new DefaultTestRunner(remoteJvmFactory, - folder.newFolder()); + folder); Task before = mock(Task.class); diff --git a/harness/src/test/java/org/apache/geode/perftest/TestRunnersTest.java b/harness/src/test/java/org/apache/geode/perftest/TestRunnersTest.java index 7336ec4..7163562 100644 --- a/harness/src/test/java/org/apache/geode/perftest/TestRunnersTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/TestRunnersTest.java @@ -17,11 +17,12 @@ package org.apache.geode.perftest; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.Arrays; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.apache.geode.perftest.infrastructure.ssh.SshInfrastructureFactory; import org.apache.geode.perftest.runner.DefaultTestRunner; @@ -39,8 +40,9 @@ public void defaultRunnerShouldParseHosts() { assertEquals(Arrays.asList("localhost", "localhost"), infrastructureFactory.getHosts()); } - @Test(expected = IllegalStateException.class) + @Test public void defaultRunnerShouldFailWithNoHosts() { - TestRunners.defaultRunner(null, null); + + assertThrows(IllegalStateException.class, () -> TestRunners.defaultRunner(null, null)); } } diff --git a/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java b/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java index f38f355..57609f7 100644 --- a/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java @@ -15,47 +15,96 @@ package org.apache.geode.perftest.analysis; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintStream; import java.io.StringWriter; +import java.nio.file.Path; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.yardstick.analysis.YardstickPercentileSensorParser; import org.apache.geode.perftest.yardstick.analysis.YardstickThroughputSensorParser; +@ExtendWith(TempDirectory.class) public class BenchmarkRunAnalyzerTest { - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + private Path temporaryFolder; + + @BeforeEach + void createTempFolder(@TempDirectory.TempDir Path tempDir) { + temporaryFolder = tempDir; + } @Test public void verifyResultHarvester() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); - final File testBenchmarkA1 = temporaryFolder.newFolder("testFolder", "BenchmarkA", "client1", - "20181121-111516-yardstick-output"); - final File testBenchmarkA2 = temporaryFolder.newFolder("testFolder", "BenchmarkA", "client2", - "20181121-111516-yardstick-output"); - final File testBenchmarkB1 = temporaryFolder.newFolder("testFolder", "BenchmarkB", "client1", - "20181121-111516-yardstick-output"); - final File testBenchmarkB2 = temporaryFolder.newFolder("testFolder", "BenchmarkB", "client2", - "20181121-111516-yardstick-output"); - temporaryFolder.newFolder(testFolder.getName(), "junkfolder"); - new File(testFolder, "junkfile").createNewFile(); - final File baseFolder = temporaryFolder.newFolder("baseFolder"); - final File baseBenchmarkA1 = temporaryFolder.newFolder("baseFolder", "BenchmarkA", "client1", - "20181121-111516-yardstick-output"); - final File baseBenchmarkA2 = temporaryFolder.newFolder("baseFolder", "BenchmarkA", "client2", - "20181121-111516-yardstick-output"); - final File baseBenchmarkB1 = temporaryFolder.newFolder("baseFolder", "BenchmarkB", "client1", - "20181121-111516-yardstick-output"); - final File baseBenchmarkB2 = temporaryFolder.newFolder("baseFolder", "BenchmarkB", "client2", - "20181121-111516-yardstick-output"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + final File testBenchmarkA1 = temporaryFolder + .resolve("testFolder") + .resolve("BenchmarkA") + .resolve("client1") + .resolve("20181121-111516-yardstick-output") + .toFile(); + assertTrue(testBenchmarkA1.mkdirs()); + final File testBenchmarkA2 = temporaryFolder + .resolve("testFolder") + .resolve("BenchmarkA") + .resolve("client2") + .resolve("20181121-111516-yardstick-output") + .toFile(); + assertTrue(testBenchmarkA2.mkdirs()); + final File testBenchmarkB1 = temporaryFolder + .resolve("testFolder") + .resolve("BenchmarkB") + .resolve("client1") + .resolve("20181121-111516-yardstick-output") + .toFile(); + assertTrue(testBenchmarkB1.mkdirs()); + final File testBenchmarkB2 = temporaryFolder + .resolve("testFolder") + .resolve("BenchmarkB") + .resolve("client2") + .resolve("20181121-111516-yardstick-output") + .toFile(); + assertTrue(testBenchmarkB2.mkdirs()); + assertTrue(testFolder.toPath().resolve("junkfolder").toFile().mkdirs()); + assertTrue(new File(testFolder, "junkfile").createNewFile()); + final File baseFolder = temporaryFolder.resolve("baseFolder").toFile(); + assertTrue(baseFolder.mkdirs()); + final File baseBenchmarkA1 = temporaryFolder + .resolve("baseFolder") + .resolve("BenchmarkA") + .resolve("client1") + .resolve("20181121-111516-yardstick-output") + .toFile(); + assertTrue(baseBenchmarkA1.mkdirs()); + final File baseBenchmarkA2 = temporaryFolder + .resolve("baseFolder") + .resolve("BenchmarkA") + .resolve("client2") + .resolve("20181121-111516-yardstick-output") + .toFile(); + assertTrue(baseBenchmarkA2.mkdirs()); + final File baseBenchmarkB1 = temporaryFolder + .resolve("baseFolder") + .resolve("BenchmarkB") + .resolve("client1") + .resolve("20181121-111516-yardstick-output") + .toFile(); + assertTrue(baseBenchmarkB1.mkdirs()); + final File baseBenchmarkB2 = temporaryFolder + .resolve("baseFolder") + .resolve("BenchmarkB") + .resolve("client2") + .resolve("20181121-111516-yardstick-output") + .toFile(); + assertTrue(baseBenchmarkB2.mkdirs()); populateThroughputCSV(testBenchmarkA1, new double[] {10, 15, 20, 25, 30}); // Avg 20 populatePercentileCSV(testBenchmarkA1, new double[] {0, 0, 99, 1}); // 200 diff --git a/harness/src/test/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructureTest.java b/harness/src/test/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructureTest.java index 9dc0427..735ca89 100644 --- a/harness/src/test/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructureTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/infrastructure/local/LocalInfrastructureTest.java @@ -17,34 +17,38 @@ package org.apache.geode.perftest.infrastructure.local; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.util.Arrays; import java.util.concurrent.ExecutionException; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; +@ExtendWith(TempDirectory.class) public class LocalInfrastructureTest { - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + + private Path temporaryFolder; + private LocalInfrastructure infra; private LocalInfrastructure.LocalNode node; - @Before - public void createInfra() throws IOException { + @BeforeEach + public void createInfra(@TempDirectory.TempDir Path tempDir) throws IOException { + temporaryFolder = tempDir; infra = new LocalInfrastructure(1); node = (LocalInfrastructure.LocalNode) infra.getNodes().iterator().next(); } - @After + @AfterEach public void deleteInfra() throws IOException, InterruptedException { infra.close(); } @@ -55,8 +59,7 @@ public void copyToNodesPutsFileOnNode() throws IOException, InterruptedException File nodedir = node.workingDir; - File someFile = temporaryFolder.newFile(); - + File someFile = temporaryFolder.toFile(); File expectedDir = new File(nodedir, "lib"); assertFalse(expectedDir.exists()); infra.copyToNodes(Arrays.asList(someFile), node -> "lib", true); @@ -90,7 +93,7 @@ public void copyFromNodeCopiesFileFromNode() throws IOException { File newFile = new File(node.workingDir, "someFile"); newFile.createNewFile(); - File destDirectory = temporaryFolder.newFolder(); + File destDirectory = temporaryFolder.toFile(); infra.copyFromNode(node, ".", destDirectory); assertTrue(new File(destDirectory, "someFile").exists()); diff --git a/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactoryTest.java b/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactoryTest.java index 9c929a1..bade57d 100644 --- a/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactoryTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactoryTest.java @@ -18,7 +18,7 @@ package org.apache.geode.perftest.infrastructure.ssh; import org.assertj.core.api.Assertions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.apache.geode.perftest.infrastructure.Infrastructure; diff --git a/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureTest.java b/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureTest.java index b983c5b..be10276 100644 --- a/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureTest.java @@ -16,33 +16,74 @@ */ package org.apache.geode.perftest.infrastructure.ssh; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junitpioneer.jupiter.TempDirectory.TempDir; import java.io.File; import java.io.IOException; +import java.io.UncheckedIOException; +import java.nio.file.Path; import java.util.Arrays; import java.util.Collections; import java.util.Set; import java.util.concurrent.ExecutionException; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.apache.sshd.server.SshServer; +import org.apache.sshd.server.command.Command; +import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider; +import org.apache.sshd.server.shell.ProcessShellCommandFactory; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.infrastructure.Infrastructure; +@ExtendWith(TempDirectory.class) public class SshInfrastructureTest { private static final Set<String> HOSTS = Collections.singleton("localhost"); private static final String USER = System.getProperty("user.name"); - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + Path temporaryFolder; + public SshServer server; - @Rule - public SshServerRule server = new SshServerRule(); + @BeforeEach + void createTempFolder(@TempDir Path tempDir, @TempDir Path serverPath) throws IOException { + temporaryFolder = tempDir; + server = createServer(serverPath); + } + + private SshServer createServer(Path serverPath) throws IOException { + SshServer sshd = SshServer.setUpDefaultServer(); + sshd.setPort(0); + sshd.setHost("localhost"); + sshd.setPublickeyAuthenticator((username, key, session) -> true); + sshd.setKeyPairProvider( + new SimpleGeneratorHostKeyProvider(serverPath.resolve("hostkey.ser"))); + sshd.setCommandFactory(new SshInfrastructureTest.UnescapingCommandFactory()); + sshd.start(); + return sshd; + } + + @AfterEach + void stopServer() { + try { + server.stop(); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + + private class UnescapingCommandFactory extends ProcessShellCommandFactory { + @Override + public Command createCommand(String command) { + return super.createCommand(command.replace("'", "")); + } + } @Test public void canFindNodes() throws IOException { @@ -57,8 +98,7 @@ public void canExecuteACommandOnNode() SshInfrastructure infra = new SshInfrastructure(HOSTS, USER, server.getPort()); Infrastructure.Node node1 = infra.getNodes().iterator().next(); - File folder = temporaryFolder.newFolder(); - folder.mkdirs(); + File folder = temporaryFolder.toFile(); File expectedFile = new File(folder, "somefile.txt").getAbsoluteFile(); int result = infra.onNode(node1, new String[] {"touch", expectedFile.getPath()}); @@ -70,12 +110,12 @@ public void canExecuteACommandOnNode() public void copyToNodesPutsFileOnNode() throws IOException, InterruptedException { SshInfrastructure infra = new SshInfrastructure(HOSTS, USER, server.getPort()); - File someFile = temporaryFolder.newFile(); - File targetFolder = new File(temporaryFolder.newFolder(), "dest"); + File someFile = temporaryFolder.resolve("someFile.tmp").toFile(); + assertTrue(someFile.createNewFile()); + File targetFolder = temporaryFolder.resolve("dest").toFile(); assertFalse(targetFolder.exists()); - - infra.copyToNodes(Arrays.asList(someFile), node -> targetFolder.getPath(), false); + infra.copyToNodes(Collections.singletonList(someFile), node -> targetFolder.getPath(), false); assertTrue(targetFolder.exists()); assertTrue(new File(targetFolder, someFile.getName()).exists()); @@ -85,12 +125,12 @@ public void copyToNodesPutsFileOnNode() throws IOException, InterruptedException public void copyToNodesCleansDirectory() throws IOException, InterruptedException { SshInfrastructure infra = new SshInfrastructure(HOSTS, USER, server.getPort()); - File someFile = temporaryFolder.newFile(); - File targetFolder = new File(temporaryFolder.newFolder(), "dest"); - - targetFolder.mkdirs(); + File someFile = temporaryFolder.resolve("someFile.tmp").toFile(); + assertTrue(someFile.createNewFile()); + File targetFolder = temporaryFolder.resolve("dest").toFile(); + assertTrue(targetFolder.mkdirs()); File fileToRemove = new File(targetFolder, "removethis"); - fileToRemove.createNewFile(); + assertTrue(fileToRemove.createNewFile()); assertTrue(fileToRemove.exists()); infra.copyToNodes(Arrays.asList(someFile), node -> targetFolder.getPath(), true); @@ -111,8 +151,7 @@ public void canCopyFilesFromANode() infra.onNode(node1, new String[] {"touch", "/tmp/foo/file.txt"}); infra.onNode(node1, new String[] {"touch", "/tmp/foo/file2.txt"}); - File destDirectory = temporaryFolder.newFolder(); - + File destDirectory = temporaryFolder.toFile(); infra.copyFromNode(node1, "/tmp/foo", destDirectory); assertTrue(new File(destDirectory, "foo/file.txt").exists()); assertTrue(new File(destDirectory, "foo/file2.txt").exists()); diff --git a/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshServerRule.java b/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshServerRule.java deleted file mode 100644 index 3f3e760..0000000 --- a/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshServerRule.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.geode.perftest.infrastructure.ssh; - -import java.io.IOException; -import java.io.UncheckedIOException; -import java.nio.file.Paths; - -import org.apache.sshd.server.SshServer; -import org.apache.sshd.server.command.Command; -import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider; -import org.apache.sshd.server.shell.ProcessShellCommandFactory; -import org.junit.rules.TemporaryFolder; - -/** - * Rule to run an in process ssh server during a test - * - * This ssh server listens on localhost. It does actually run commands and create - * files on the real filesystem. It accepts connections from any user. - */ -public class SshServerRule extends TemporaryFolder { - - private SshServer sshd; - - @Override - protected void before() throws Throwable { - super.before(); - sshd = SshServer.setUpDefaultServer(); - sshd.setPort(0); - sshd.setHost("localhost"); - sshd.setPublickeyAuthenticator((username, key, session) -> true); - sshd.setKeyPairProvider( - new SimpleGeneratorHostKeyProvider(Paths.get(newFolder().getPath(), "hostkey.ser"))); - sshd.setCommandFactory(new UnescapingCommandFactory()); - sshd.start(); - } - - public int getPort() { - return sshd.getPort(); - } - - @Override - protected void after() { - try { - sshd.stop(); - } catch (IOException e) { - throw new UncheckedIOException(e); - } - } - - private class UnescapingCommandFactory extends ProcessShellCommandFactory { - @Override - public Command createCommand(String command) { - return super.createCommand(command.replace("'", "")); - } - } -} diff --git a/harness/src/test/java/org/apache/geode/perftest/jvms/RemoteJVMFactoryIntegrationTest.java b/harness/src/test/java/org/apache/geode/perftest/jvms/RemoteJVMFactoryIntegrationTest.java index 7e81910..8d1a91a 100644 --- a/harness/src/test/java/org/apache/geode/perftest/jvms/RemoteJVMFactoryIntegrationTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/jvms/RemoteJVMFactoryIntegrationTest.java @@ -17,28 +17,37 @@ package org.apache.geode.perftest.jvms; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; +import java.nio.file.Path; import java.util.Collections; import java.util.Map; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.infrastructure.local.LocalInfrastructureFactory; +@ExtendWith(TempDirectory.class) public class RemoteJVMFactoryIntegrationTest { - @Rule - public final TemporaryFolder temporaryFolder = new TemporaryFolder(); + + + Path temporaryFolder; + + @BeforeEach + void createTemporaryFolder(@TempDirectory.TempDir Path temporaryFolder) { + this.temporaryFolder = temporaryFolder; + } @Test public void canExecuteCodeOnWorker() throws Exception { RemoteJVMFactory remoteJvmFactory = new RemoteJVMFactory(new LocalInfrastructureFactory()); Map<String, Integer> roles = Collections.singletonMap("worker", 1); try (RemoteJVMs jvms = remoteJvmFactory.launch(roles, Collections.emptyMap())) { - File tempFile = new File(temporaryFolder.newFolder(), "tmpfile").getAbsoluteFile(); + File tempFile = temporaryFolder.resolve("tmpfile").toFile(); jvms.execute(context -> { tempFile.createNewFile(); }, "worker"); diff --git a/harness/src/test/java/org/apache/geode/perftest/jvms/RemoteJVMFactoryTest.java b/harness/src/test/java/org/apache/geode/perftest/jvms/RemoteJVMFactoryTest.java index 3539c91..c1a106e 100644 --- a/harness/src/test/java/org/apache/geode/perftest/jvms/RemoteJVMFactoryTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/jvms/RemoteJVMFactoryTest.java @@ -32,8 +32,8 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.InOrder; import org.apache.geode.perftest.infrastructure.Infrastructure; @@ -51,7 +51,7 @@ private ControllerFactory controllerFactory; private Infrastructure infra; - @Before + @BeforeEach public void setUp() throws AlreadyBoundException, RemoteException { classPathCopier = mock(ClassPathCopier.class); jvmLauncher = mock(JVMLauncher.class); diff --git a/harness/src/test/java/org/apache/geode/perftest/jvms/rmi/ChildJVMTest.java b/harness/src/test/java/org/apache/geode/perftest/jvms/rmi/ChildJVMTest.java index 5fd04f3..9282f6f 100644 --- a/harness/src/test/java/org/apache/geode/perftest/jvms/rmi/ChildJVMTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/jvms/rmi/ChildJVMTest.java @@ -20,7 +20,7 @@ import static org.apache.geode.perftest.jvms.RemoteJVMFactory.OUTPUT_DIR; import static org.apache.geode.perftest.jvms.RemoteJVMFactory.RMI_HOST; import static org.apache.geode.perftest.jvms.RemoteJVMFactory.RMI_PORT_PROPERTY; -import static org.junit.Assert.assertFalse; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; @@ -30,34 +30,35 @@ import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.rmi.NotBoundException; import java.rmi.RemoteException; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.jdk.RMI; import org.apache.geode.perftest.jdk.SystemInterface; import org.apache.geode.perftest.jvms.RemoteJVMFactory; +@ExtendWith(TempDirectory.class) public class ChildJVMTest { - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + private RMI rmi; private ChildJVM jvm; private SystemInterface system; private Controller controller; private File folder; - @Before - public void setUp() throws IOException, NotBoundException { + @BeforeEach + public void setUp(@TempDirectory.TempDir Path tempDir) throws IOException, NotBoundException { system = mock(SystemInterface.class); when(system.getProperty(RMI_HOST)).thenReturn("something"); when(system.getProperty(RMI_PORT_PROPERTY)).thenReturn("0"); - folder = temporaryFolder.newFolder(); + folder = tempDir.toFile(); when(system.getProperty(OUTPUT_DIR)).thenReturn(folder.getAbsolutePath()); rmi = mock(RMI.class); jvm = new ChildJVM(rmi, system, 1); diff --git a/harness/src/test/java/org/apache/geode/perftest/runner/SharedContextTest.java b/harness/src/test/java/org/apache/geode/perftest/runner/SharedContextTest.java index bcdfbaf..c010702 100644 --- a/harness/src/test/java/org/apache/geode/perftest/runner/SharedContextTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/runner/SharedContextTest.java @@ -17,7 +17,7 @@ package org.apache.geode.perftest.runner; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -29,7 +29,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.apache.geode.perftest.infrastructure.Infrastructure; import org.apache.geode.perftest.jvms.JVMMapping; diff --git a/harness/src/test/java/org/apache/geode/perftest/yardstick/YardstickTaskTest.java b/harness/src/test/java/org/apache/geode/perftest/yardstick/YardstickTaskTest.java index d6b4a53..3a211d0 100644 --- a/harness/src/test/java/org/apache/geode/perftest/yardstick/YardstickTaskTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/yardstick/YardstickTaskTest.java @@ -17,14 +17,16 @@ package org.apache.geode.perftest.yardstick; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.nio.file.Files; +import java.nio.file.Path; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; import org.apache.geode.perftest.Task; import org.apache.geode.perftest.TestContext; @@ -33,10 +35,15 @@ import org.apache.geode.perftest.runner.DefaultTestContext; import org.apache.geode.perftest.yardstick.hdrhistogram.HdrHistogramWriter; +@ExtendWith(TempDirectory.class) public class YardstickTaskTest { - @Rule - public final TemporaryFolder folder = new TemporaryFolder(); + public Path folder; + + @BeforeEach + void createTempFolder(@TempDirectory.TempDir Path tempDir) { + this.folder = tempDir; + } @Test public void testExecuteBenchmark() throws Exception { @@ -44,7 +51,7 @@ public void testExecuteBenchmark() throws Exception { WorkloadConfig workloadConfig = new WorkloadConfig(); workloadConfig.threads(1); Task task = new YardstickTask(benchmark, workloadConfig); - File outputDir = folder.newFolder(); + File outputDir = folder.toFile(); TestContext context = new DefaultTestContext(null, outputDir, 1); task.run(context); diff --git a/harness/src/test/java/org/apache/geode/perftest/yardstick/analysis/YardstickPercentileSensorParserTest.java b/harness/src/test/java/org/apache/geode/perftest/yardstick/analysis/YardstickPercentileSensorParserTest.java index 76e3e65..1d12eae 100644 --- a/harness/src/test/java/org/apache/geode/perftest/yardstick/analysis/YardstickPercentileSensorParserTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/yardstick/analysis/YardstickPercentileSensorParserTest.java @@ -14,24 +14,36 @@ */ package org.apache.geode.perftest.yardstick.analysis; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.nio.file.Path; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; - +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; +@ExtendWith(TempDirectory.class) public class YardstickPercentileSensorParserTest { - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + + private Path temporaryFolder; + + @BeforeEach + void createTemporaryFolder(@TempDirectory.TempDir Path tempDir) { + temporaryFolder = tempDir; + } @Test public void parsesInputFile() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); generateSimpleTestFile(testFolder); YardstickPercentileSensorParser parser = new YardstickPercentileSensorParser(); @@ -40,26 +52,28 @@ public void parsesInputFile() throws IOException { @Test public void parsesInputFileAndFindsAlignedPercentiles() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); generateSimpleTestFile(testFolder); YardstickPercentileSensorParser parser = new YardstickPercentileSensorParser(); parser.parseResults(testFolder); - Assert.assertEquals(400, parser.getPercentile(30), 0.01); - Assert.assertEquals(800, parser.getPercentile(95), 0.01); - Assert.assertEquals(900, parser.getPercentile(100), 0.01); + assertEquals(400, parser.getPercentile(30), 0.01); + assertEquals(800, parser.getPercentile(95), 0.01); + assertEquals(900, parser.getPercentile(100), 0.01); } @Test public void parsesInputFileAndFindsUnalignedPercentiles() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); generateSimpleTestFile(testFolder); YardstickPercentileSensorParser parser = new YardstickPercentileSensorParser(); parser.parseResults(testFolder); - Assert.assertEquals(450, parser.getPercentile(40), 0.01); - Assert.assertEquals(633.333, parser.getPercentile(75), 0.01); - Assert.assertEquals(720, parser.getPercentile(87), 0.01); + assertEquals(450, parser.getPercentile(40), 0.01); + assertEquals(633.333, parser.getPercentile(75), 0.01); + assertEquals(720, parser.getPercentile(87), 0.01); } private void generateSimpleTestFile(File testFolder) throws IOException { @@ -90,8 +104,10 @@ private void generateSimpleTestFile(File testFolder) throws IOException { @Test public void percentileSearchNormalizesInput() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); final File testFile = new File(testFolder, YardstickPercentileSensorParser.sensorOutputFile); + assertTrue(testFile.createNewFile()); BufferedWriter output = new BufferedWriter(new FileWriter(testFile)); output.write("0,0.00"); output.newLine(); @@ -106,21 +122,24 @@ public void percentileSearchNormalizesInput() throws IOException { YardstickPercentileSensorParser parser = new YardstickPercentileSensorParser(); parser.parseResults(testFolder); - Assert.assertEquals(500, parser.getPercentile(100), 0.001); - Assert.assertEquals(475, parser.getPercentile(90), 0.001); + assertEquals(500, parser.getPercentile(100), 0.001); + assertEquals(475, parser.getPercentile(90), 0.001); } - @Test(expected = IOException.class) + @Test public void throwsExceptionOnMissingFile() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); YardstickPercentileSensorParser parser = new YardstickPercentileSensorParser(); - parser.parseResults(testFolder); + Assertions.assertThrows(IOException.class, () -> parser.parseResults(testFolder)); } - @Test(expected = IOException.class) + @Test public void throwsExceptionOnBadInput() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); final File testFile = new File(testFolder, YardstickPercentileSensorParser.sensorOutputFile); + assertTrue(testFile.createNewFile()); BufferedWriter output = new BufferedWriter(new FileWriter(testFile)); output.write("0,0.00"); output.newLine(); @@ -136,13 +155,15 @@ public void throwsExceptionOnBadInput() throws IOException { output.close(); YardstickPercentileSensorParser parser = new YardstickPercentileSensorParser(); - parser.parseResults(testFolder); + assertThrows(IOException.class, () -> parser.parseResults(testFolder)); } @Test public void ignoreYardstickCommentAndMetadataLines() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); final File testFile = new File(testFolder, YardstickPercentileSensorParser.sensorOutputFile); + assertTrue(testFile.createNewFile()); BufferedWriter output = new BufferedWriter(new FileWriter(testFile)); output.write("0,0.40"); output.newLine(); @@ -160,7 +181,7 @@ public void ignoreYardstickCommentAndMetadataLines() throws IOException { YardstickPercentileSensorParser parser = new YardstickPercentileSensorParser(); parser.parseResults(testFolder); - Assert.assertEquals(100, parser.getPercentile(40), 0.01); + assertEquals(100, parser.getPercentile(40), 0.01); } } diff --git a/harness/src/test/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParserTest.java b/harness/src/test/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParserTest.java index c5d2652..b8e6285 100644 --- a/harness/src/test/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParserTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParserTest.java @@ -15,25 +15,39 @@ package org.apache.geode.perftest.yardstick.analysis; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.nio.file.Path; -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junitpioneer.jupiter.TempDirectory; +@ExtendWith(TempDirectory.class) public class YardstickThroughputSensorParserTest { - @Rule - public TemporaryFolder temporaryFolder = new TemporaryFolder(); + + public Path temporaryFolder; + + @BeforeEach + void createTempFolder(@TempDirectory.TempDir Path tempDir) { + this.temporaryFolder = tempDir; + } + @Test public void parsesInputFile() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdir()); final File testFile = new File(testFolder, YardstickThroughputSensorParser.sensorOutputFile); + assertTrue(testFile.createNewFile()); BufferedWriter output = new BufferedWriter(new FileWriter(testFile)); output.write("1542151468,42906.00,371126.31"); output.newLine(); @@ -47,20 +61,23 @@ public void parsesInputFile() throws IOException { YardstickThroughputSensorParser parser = new YardstickThroughputSensorParser(); parser.parseResults(testFolder); - Assert.assertEquals(45674.5, parser.getAverageThroughput(), .01); + assertEquals(45674.5, parser.getAverageThroughput(), .01); } - @Test(expected = IOException.class) + @Test public void throwsExceptionOnMissingFile() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); YardstickThroughputSensorParser parser = new YardstickThroughputSensorParser(); - parser.parseResults(testFolder); + assertThrows(IOException.class, () -> parser.parseResults(testFolder)); } - @Test(expected = IOException.class) + @Test public void throwsExceptionOnBadInput() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); final File testFile = new File(testFolder, YardstickThroughputSensorParser.sensorOutputFile); + assertTrue(testFile.createNewFile()); BufferedWriter output = new BufferedWriter(new FileWriter(testFile)); output.write("1542151468,42906.00,371126.31"); output.newLine(); @@ -73,13 +90,15 @@ public void throwsExceptionOnBadInput() throws IOException { output.close(); YardstickThroughputSensorParser parser = new YardstickThroughputSensorParser(); - parser.parseResults(testFolder); + assertThrows(IOException.class, () -> parser.parseResults(testFolder)); } @Test public void ignoreYardstickCommentAndMetadataLines() throws IOException { - final File testFolder = temporaryFolder.newFolder("testFolder"); + final File testFolder = temporaryFolder.resolve("testFolder").toFile(); + assertTrue(testFolder.mkdirs()); final File testFile = new File(testFolder, YardstickThroughputSensorParser.sensorOutputFile); + assertTrue(testFile.createNewFile()); BufferedWriter output = new BufferedWriter(new FileWriter(testFile)); output.write("--This is a comment"); output.newLine(); @@ -93,6 +112,6 @@ public void ignoreYardstickCommentAndMetadataLines() throws IOException { YardstickThroughputSensorParser parser = new YardstickThroughputSensorParser(); parser.parseResults(testFolder); - Assert.assertEquals(42906f, parser.getAverageThroughput(), .01); + assertEquals(42906f, parser.getAverageThroughput(), .01); } } diff --git a/harness/src/test/java/org/apache/geode/perftest/yardstick/hdrhistogram/HdrHistogramProbeTest.java b/harness/src/test/java/org/apache/geode/perftest/yardstick/hdrhistogram/HdrHistogramProbeTest.java index a3b133c..80ba7f3 100644 --- a/harness/src/test/java/org/apache/geode/perftest/yardstick/hdrhistogram/HdrHistogramProbeTest.java +++ b/harness/src/test/java/org/apache/geode/perftest/yardstick/hdrhistogram/HdrHistogramProbeTest.java @@ -17,7 +17,7 @@ package org.apache.geode.perftest.yardstick.hdrhistogram; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -26,8 +26,8 @@ import org.HdrHistogram.Histogram; import org.assertj.core.api.Assertions; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.yardstickframework.BenchmarkProbePoint; public class HdrHistogramProbeTest { @@ -36,7 +36,7 @@ private Clock clock; private Consumer consumer; - @Before + @BeforeEach public void setUp() { clock = mock(Clock.class); consumer = mock(Consumer.class); ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services