From 815fc303f50089043f137b8bc1d74a2c53843d7b Mon Sep 17 00:00:00 2001 From: Istvan Toth Date: Thu, 13 Mar 2025 18:48:39 +0100 Subject: [PATCH 1/5] HADOOP-19500. Skip tests that require JavaScript engine when it's not available --- .../org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java | 6 ++++++ .../org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java | 6 ++++++ .../test/java/org/apache/hadoop/yarn/sls/TestSLSRunner.java | 5 +++++ .../org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java | 6 ++++++ .../monitor/invariants/TestMetricsInvariantChecker.java | 5 +++++ 5 files changed, 28 insertions(+) diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java index 54158c0083c22..77bfa37c65321 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java @@ -28,9 +28,13 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; +import static org.junit.Assume.assumeNotNull; + import java.util.Arrays; import java.util.Collection; +import javax.script.ScriptEngineManager; + /** * This test performs simple runs of the SLS with the generic syn json format. */ @@ -62,6 +66,8 @@ public static Collection data() { @Before public void setup() { + //JavaScript engine has been removed from Java in Java 15. + assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); ongoingInvariantFile = "src/test/resources/ongoing-invariants.txt"; exitInvariantFile = "src/test/resources/exit-invariants.txt"; } diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java index 79ebe219bfcac..f06d7d109de04 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java @@ -28,9 +28,13 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; +import static org.junit.Assume.assumeNotNull; + import java.util.Arrays; import java.util.Collection; +import javax.script.ScriptEngineManager; + /** * This test performs simple runs of the SLS with the generic syn json format. */ @@ -62,6 +66,8 @@ public static Collection data() { @Before public void setup() { + //JavaScript engine has been removed from Java in Java 15. + assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); ongoingInvariantFile = "src/test/resources/ongoing-invariants.txt"; exitInvariantFile = "src/test/resources/exit-invariants.txt"; } diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSRunner.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSRunner.java index 2463ccf06a93d..5d9cf7ca28db4 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSRunner.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSRunner.java @@ -32,7 +32,10 @@ import java.security.Security; import java.util.*; +import javax.script.ScriptEngineManager; + import static org.junit.Assert.assertEquals; +import static org.junit.Assume.assumeNotNull; /** * This test performs simple runs of the SLS with different trace types and @@ -78,6 +81,8 @@ public static Collection data() { @Before public void setup() { + //JavaScript engine has been removed from Java in Java 15. + assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); ongoingInvariantFile = "src/test/resources/ongoing-invariants.txt"; exitInvariantFile = "src/test/resources/exit-invariants.txt"; } diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java index a5d30e02d8558..a5369cbd19d64 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java @@ -28,9 +28,13 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; +import static org.junit.Assume.assumeNotNull; + import java.util.Arrays; import java.util.Collection; +import javax.script.ScriptEngineManager; + /** * This test performs simple runs of the SLS with the generic syn json format. */ @@ -62,6 +66,8 @@ public static Collection data() { @Before public void setup() { + //JavaScript engine has been removed from Java in Java 15. + assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); ongoingInvariantFile = "src/test/resources/ongoing-invariants.txt"; exitInvariantFile = "src/test/resources/exit-invariants.txt"; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java index 903b1d842d9b9..2af41a52c0f21 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java @@ -30,8 +30,11 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; +import static org.junit.Assume.assumeNotNull; import static org.junit.jupiter.api.Assertions.fail; +import javax.script.ScriptEngineManager; + /** * This class tests the {@code MetricsInvariantChecker} by running it multiple * time and reporting the time it takes to execute, as well as verifying that @@ -47,6 +50,8 @@ public class TestMetricsInvariantChecker { @BeforeEach public void setup() { + //JavaScript engine has been removed from Java in Java 15. + assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); this.metricsSystem = DefaultMetricsSystem.instance(); JvmMetrics.initSingleton("ResourceManager", null); this.ic = new MetricsInvariantChecker(); From 709e50a362fa489059348baa702de89ddf065f2b Mon Sep 17 00:00:00 2001 From: Istvan Toth Date: Fri, 14 Mar 2025 06:12:07 +0100 Subject: [PATCH 2/5] use Junit 5 API in TestMetricsInvariantChecker --- .../monitor/invariants/TestMetricsInvariantChecker.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java index 2af41a52c0f21..c674385df35ce 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java @@ -30,8 +30,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; -import static org.junit.Assume.assumeNotNull; import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Assumptions.assumeFalse; import javax.script.ScriptEngineManager; @@ -51,7 +51,7 @@ public class TestMetricsInvariantChecker { @BeforeEach public void setup() { //JavaScript engine has been removed from Java in Java 15. - assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); + assumeFalse(new ScriptEngineManager().getEngineByName("JavaScript") == null); this.metricsSystem = DefaultMetricsSystem.instance(); JvmMetrics.initSingleton("ResourceManager", null); this.ic = new MetricsInvariantChecker(); From ec336f440c092fd642109d5b4f8b0f191076a724 Mon Sep 17 00:00:00 2001 From: Istvan Toth Date: Fri, 14 Mar 2025 16:22:32 +0100 Subject: [PATCH 3/5] refactor checks --- .../org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java | 10 ++++++++++ .../apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java | 6 ------ .../apache/hadoop/yarn/sls/TestSLSGenericSynth.java | 6 ------ .../java/org/apache/hadoop/yarn/sls/TestSLSRunner.java | 5 ----- .../apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java | 6 ------ .../invariants/TestMetricsInvariantChecker.java | 8 ++++++-- 6 files changed, 16 insertions(+), 25 deletions(-) diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java index 513dbe5a436b6..9902f41fdb4f9 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java @@ -24,7 +24,9 @@ import org.apache.hadoop.yarn.server.resourcemanager.monitor.invariants.MetricsInvariantChecker; import org.junit.After; import org.junit.Assert; +import org.junit.Assume; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; @@ -35,6 +37,8 @@ import java.util.List; import java.util.UUID; +import javax.script.ScriptEngineManager; + /** * This is a base class to ease the implementation of SLS-based tests. */ @@ -59,6 +63,12 @@ public abstract class BaseSLSRunnerTest { protected String ongoingInvariantFile; protected String exitInvariantFile; + @BeforeClass + public static void checkForJavaScript() { + Assume.assumeNotNull("JavaScript engine not available (JEP 372)", + new ScriptEngineManager().getEngineByName("JavaScript")); + } + @Before public abstract void setup(); diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java index 77bfa37c65321..54158c0083c22 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java @@ -28,13 +28,9 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; -import static org.junit.Assume.assumeNotNull; - import java.util.Arrays; import java.util.Collection; -import javax.script.ScriptEngineManager; - /** * This test performs simple runs of the SLS with the generic syn json format. */ @@ -66,8 +62,6 @@ public static Collection data() { @Before public void setup() { - //JavaScript engine has been removed from Java in Java 15. - assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); ongoingInvariantFile = "src/test/resources/ongoing-invariants.txt"; exitInvariantFile = "src/test/resources/exit-invariants.txt"; } diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java index f06d7d109de04..79ebe219bfcac 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java @@ -28,13 +28,9 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; -import static org.junit.Assume.assumeNotNull; - import java.util.Arrays; import java.util.Collection; -import javax.script.ScriptEngineManager; - /** * This test performs simple runs of the SLS with the generic syn json format. */ @@ -66,8 +62,6 @@ public static Collection data() { @Before public void setup() { - //JavaScript engine has been removed from Java in Java 15. - assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); ongoingInvariantFile = "src/test/resources/ongoing-invariants.txt"; exitInvariantFile = "src/test/resources/exit-invariants.txt"; } diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSRunner.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSRunner.java index 5d9cf7ca28db4..2463ccf06a93d 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSRunner.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSRunner.java @@ -32,10 +32,7 @@ import java.security.Security; import java.util.*; -import javax.script.ScriptEngineManager; - import static org.junit.Assert.assertEquals; -import static org.junit.Assume.assumeNotNull; /** * This test performs simple runs of the SLS with different trace types and @@ -81,8 +78,6 @@ public static Collection data() { @Before public void setup() { - //JavaScript engine has been removed from Java in Java 15. - assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); ongoingInvariantFile = "src/test/resources/ongoing-invariants.txt"; exitInvariantFile = "src/test/resources/exit-invariants.txt"; } diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java index a5369cbd19d64..a5d30e02d8558 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java @@ -28,13 +28,9 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; -import static org.junit.Assume.assumeNotNull; - import java.util.Arrays; import java.util.Collection; -import javax.script.ScriptEngineManager; - /** * This test performs simple runs of the SLS with the generic syn json format. */ @@ -66,8 +62,6 @@ public static Collection data() { @Before public void setup() { - //JavaScript engine has been removed from Java in Java 15. - assumeNotNull(new ScriptEngineManager().getEngineByName("JavaScript")); ongoingInvariantFile = "src/test/resources/ongoing-invariants.txt"; exitInvariantFile = "src/test/resources/exit-invariants.txt"; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java index c674385df35ce..a08d90f6f3ee8 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java @@ -48,10 +48,14 @@ public class TestMetricsInvariantChecker { private MetricsInvariantChecker ic; private Configuration conf; + @BeforeAll + public static void checkForJavaScript() { + assumeFalse(new ScriptEngineManager().getEngineByName("JavaScript") == null, + "JavaScript engine not available (JEP 372)"); + } + @BeforeEach public void setup() { - //JavaScript engine has been removed from Java in Java 15. - assumeFalse(new ScriptEngineManager().getEngineByName("JavaScript") == null); this.metricsSystem = DefaultMetricsSystem.instance(); JvmMetrics.initSingleton("ResourceManager", null); this.ic = new MetricsInvariantChecker(); From 6adae4609bfc28fb070e01eb93af26be7af0f4b7 Mon Sep 17 00:00:00 2001 From: Istvan Toth Date: Fri, 14 Mar 2025 16:42:24 +0100 Subject: [PATCH 4/5] whitespace fix --- .../test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java index 9902f41fdb4f9..2c88e262c7686 100644 --- a/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java +++ b/hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java @@ -68,7 +68,7 @@ public static void checkForJavaScript() { Assume.assumeNotNull("JavaScript engine not available (JEP 372)", new ScriptEngineManager().getEngineByName("JavaScript")); } - + @Before public abstract void setup(); From 7dae910cef0c44254a47108da981d0f2462a03be Mon Sep 17 00:00:00 2001 From: Istvan Toth Date: Fri, 14 Mar 2025 19:05:24 +0100 Subject: [PATCH 5/5] add missing import --- .../monitor/invariants/TestMetricsInvariantChecker.java | 1 + 1 file changed, 1 insertion(+) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java index a08d90f6f3ee8..5c78b231a1f95 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java @@ -26,6 +26,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueMetrics; import org.apache.log4j.Logger; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout;