Sfoglia il codice sorgente

HADOOP-19500. Skip tests that require JavaScript engine when it's not available (#7503)

Contributed by Istvan Toth
Istvan Toth 2 mesi fa
parent
commit
4d8ac20fd4

+ 10 - 0
hadoop-tools/hadoop-sls/src/test/java/org/apache/hadoop/yarn/sls/BaseSLSRunnerTest.java

@@ -24,7 +24,9 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
 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.Collections;
 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();
 

+ 10 - 0
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,11 +26,15 @@ import org.apache.hadoop.yarn.api.records.Resource;
 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;
 
 import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.jupiter.api.Assumptions.assumeFalse;
+
+import javax.script.ScriptEngineManager;
 
 /**
  * This class tests the {@code MetricsInvariantChecker} by running it multiple
@@ -45,6 +49,12 @@ 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() {
     this.metricsSystem = DefaultMetricsSystem.instance();