diff --git a/test/src/test/java/hudson/model/RunParameterDefinitionTest.java b/test/src/test/java/hudson/model/RunParameterDefinitionTest.java index f0b7efe86a28aec12c8ddd5d13cee32e5d20d226..87207418cd6265c05f9cfe340e6ed547ad4a0600 100644 --- a/test/src/test/java/hudson/model/RunParameterDefinitionTest.java +++ b/test/src/test/java/hudson/model/RunParameterDefinitionTest.java @@ -236,6 +236,30 @@ public class RunParameterDefinitionTest { } + @Test + public void testLoadEnvironmentVariablesWhenRunParameterJobHasBeenDeleted() throws Exception { + + FreeStyleProject project = j.createFreeStyleProject("project"); + FreeStyleBuild successfulBuild = project.scheduleBuild2(0).get(); + + FreeStyleProject paramProject = j.createFreeStyleProject("paramProject"); + ParametersDefinitionProperty pdp = + new ParametersDefinitionProperty(new RunParameterDefinition("RUN", + project.getName(), + "run description", + RunParameterFilter.ALL)); + paramProject.addProperty(pdp); + + FreeStyleBuild build = paramProject.scheduleBuild2(0).get(); + assertEquals(Integer.toString(project.getLastBuild().getNumber()), + build.getEnvironment(new LogTaskListener(LOGGER, Level.INFO)).get("RUN_NUMBER")); + + successfulBuild.delete(); + // We should still be able to retrieve non RunParameter environment variables for the parameterized build + // even when the selected RunParameter build has been deleted. + assertEquals("paramProject", build.getEnvironment(new LogTaskListener(LOGGER, Level.INFO)).get("JOB_NAME")); + } + static class ResultPublisher extends Publisher { private final Result result;