From dbebab8501ec7521a20c9272a0c0228ad794e566 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Wed, 20 Nov 2024 15:09:18 +0100 Subject: [PATCH] Fix running tests on MacOS --- .../workflow/steps/durable_task/DurableTaskStepTest.java | 5 ++++- .../plugins/workflow/steps/durable_task/ShellStepTest.java | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/jenkinsci/plugins/workflow/steps/durable_task/DurableTaskStepTest.java b/src/test/java/org/jenkinsci/plugins/workflow/steps/durable_task/DurableTaskStepTest.java index 6e64aa40..57638312 100644 --- a/src/test/java/org/jenkinsci/plugins/workflow/steps/durable_task/DurableTaskStepTest.java +++ b/src/test/java/org/jenkinsci/plugins/workflow/steps/durable_task/DurableTaskStepTest.java @@ -26,6 +26,8 @@ import hudson.ExtensionList; import hudson.Functions; +import hudson.Platform; +import hudson.Util; import hudson.model.ParametersAction; import hudson.model.ParametersDefinitionProperty; import hudson.model.StringParameterDefinition; @@ -121,7 +123,8 @@ private static void scriptExitingAcrossRestart2(JenkinsRule r) throws Throwable r.assertBuildStatusSuccess(r.waitForCompletion(b)); // In the case of Bourne shell, `+ touch …` is printed when the command actually runs. // In the case of batch shell, the whole command is printed immediately, so we need to assert that the _output_ of `dir` is there. - r.assertLogContains(Functions.isWindows() ? "Directory of " + r.jenkins.getRootDir() : "+ touch " + new File(r.jenkins.getRootDir(), "f"), b); + var file = new File(r.jenkins.getRootDir(), "f"); + r.assertLogContains(Functions.isWindows() ? "Directory of " + r.jenkins.getRootDir() : "+ touch " + (Platform.isDarwin() ? Util.singleQuote(file.toString()) : file), b); } } diff --git a/src/test/java/org/jenkinsci/plugins/workflow/steps/durable_task/ShellStepTest.java b/src/test/java/org/jenkinsci/plugins/workflow/steps/durable_task/ShellStepTest.java index b8c7ac12..0d431369 100644 --- a/src/test/java/org/jenkinsci/plugins/workflow/steps/durable_task/ShellStepTest.java +++ b/src/test/java/org/jenkinsci/plugins/workflow/steps/durable_task/ShellStepTest.java @@ -22,6 +22,7 @@ import hudson.Launcher; import hudson.LauncherDecorator; import hudson.MarkupText; +import hudson.Platform; import hudson.console.AnnotatedLargeText; import hudson.console.ConsoleAnnotator; import hudson.console.ConsoleLogFilter; @@ -248,6 +249,8 @@ public void abort() throws Exception { @Test public void launcherDecorator() throws Exception { Assume.assumeTrue("TODO Windows equivalent TBD", new File("/usr/bin/nice").canExecute()); + // https://stackoverflow.com/questions/44811425/nice-command-not-working-on-macos + Assume.assumeFalse("MacOS doesn't implement nice", Platform.isDarwin()); WorkflowJob p = j.jenkins.createProject(WorkflowJob.class, "p"); p.setDefinition(new CpsFlowDefinition("node {sh 'echo niceness=`nice`'}", true)); Assume.assumeThat("test only works if mvn test is not itself niced", JenkinsRule.getLog(j.assertBuildStatusSuccess(p.scheduleBuild2(0))), containsString("niceness=0"));