Skip to content

Commit 4217da0

Browse files
authored
Merge pull request #163 from abayer/verified-as-of-2.39
Verify issues resolved before 2.39
2 parents c9951b8 + e472c0a commit 4217da0

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

src/test/java/org/jenkinsci/plugins/workflow/cps/CpsFlowDefinition2Test.java

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,71 @@ public void traitsSandbox() throws Exception {
289289
jenkins.assertLogContains("org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use staticMethod jenkins.model.Jenkins getInstance", b);
290290
}
291291

292+
@Issue("JENKINS-38052")
293+
@Test
294+
public void curriedClosuresInParallel() throws Exception {
295+
WorkflowJob job = jenkins.jenkins.createProject(WorkflowJob.class, "p");
296+
job.setDefinition(new CpsFlowDefinition("def example_c = { input -> node { echo \"$input\" } }\n" +
297+
"def map = [:]\n" +
298+
"map['spam'] = example_c.curry('spam')\n" +
299+
"map['eggs'] = example_c.curry('eggs')\n" +
300+
"parallel map\n", true));
301+
WorkflowRun b = jenkins.buildAndAssertSuccess(job);
302+
jenkins.assertLogContains("[spam] spam", b);
303+
jenkins.assertLogContains("[eggs] eggs", b);
304+
}
305+
306+
@Issue("JENKINS-27916")
307+
@Test
308+
public void gStringInMapKey() throws Exception {
309+
WorkflowJob job = jenkins.jenkins.createProject(WorkflowJob.class, "p");
310+
job.setDefinition(new CpsFlowDefinition("def s1 = \"first-${env.BUILD_NUMBER}\"\n" +
311+
"def s2 = \"second-${env.BUILD_NUMBER}\"\n" +
312+
"def m = [(s1): 'first-key',\n" +
313+
" \"${s2}\": 'second-key',\n" +
314+
" \"third-${env.BUILD_NUMBER}\": 'third-key']\n" +
315+
"m.each { k, v -> echo \"${k}:${v}\" }\n", true));
316+
317+
WorkflowRun b = jenkins.buildAndAssertSuccess(job);
318+
jenkins.assertLogContains("first-1:first-key", b);
319+
jenkins.assertLogContains("second-1:second-key", b);
320+
jenkins.assertLogContains("third-1:third-key", b);
321+
}
322+
323+
@Issue("JENKINS-41248")
324+
@Test
325+
public void explicitSetter() throws Exception {
326+
WorkflowJob job = jenkins.jenkins.createProject(WorkflowJob.class, "p");
327+
job.setDefinition(new CpsFlowDefinition("class Foo {\n" +
328+
" private int a\n" +
329+
" void setA(int a) {\n" +
330+
" this.a = a\n" +
331+
" }\n" +
332+
" String getA() {\n" +
333+
" return a\n" +
334+
" }\n" +
335+
"}\n" +
336+
"Foo foo = new Foo()\n" +
337+
"foo.setA(10)\n" +
338+
"echo \"a is ${foo.getA()}\"", true));
339+
WorkflowRun b = jenkins.buildAndAssertSuccess(job);
340+
341+
jenkins.assertLogContains("a is 10", b);
342+
}
343+
344+
@Issue("JENKINS-28321")
345+
@Test
346+
public void whitelistedMethodPointer() throws Exception {
347+
WorkflowJob job = jenkins.createProject(WorkflowJob.class, "p");
348+
job.setDefinition(new CpsFlowDefinition("def foo = 'lowercase'\n" +
349+
"def bar = foo.&toUpperCase\n" +
350+
"echo bar.call()\n", true));
351+
352+
WorkflowRun b = jenkins.buildAndAssertSuccess(job);
353+
354+
jenkins.assertLogContains("LOWERCASE", b);
355+
}
356+
292357
@Issue("JENKINS-46391")
293358
@Test
294359
public void tildePattern() throws Exception {

0 commit comments

Comments
 (0)