提交 e8971a57 编写于 作者: A alanharder

Add unit test for expansion of variables used in properties of ant build step.

上级 e1c2c970
......@@ -26,6 +26,7 @@ package hudson.tasks;
import com.gargoylesoftware.htmlunit.html.HtmlButton;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import hudson.model.Cause.UserCause;
import hudson.model.FreeStyleBuild;
import hudson.model.FreeStyleProject;
import hudson.model.ParametersDefinitionProperty;
......@@ -38,6 +39,7 @@ import hudson.tools.InstallSourceProperty;
import hudson.tools.ToolProperty;
import hudson.tools.ToolPropertyDescriptor;
import hudson.util.DescribableList;
import org.jvnet.hudson.test.ExtractResourceSCM;
import org.jvnet.hudson.test.HudsonTestCase;
import org.jvnet.hudson.test.SingleFileSCM;
......@@ -80,7 +82,7 @@ public class AntTest extends HudsonTestCase {
submit(f);
verify();
// another submission and verfify it survives a roundtrip
// another submission and verify it survives a roundtrip
p = new WebClient().goTo("configure");
f = p.getFormByName("config");
submit(f);
......@@ -113,9 +115,40 @@ public class AntTest extends HudsonTestCase {
project.getBuildersList().add(new Ant("foo",null,null,null,null));
FreeStyleBuild build = project.scheduleBuild2(0).get();
String buildLog = build.getLog();
String buildLog = getLog(build);
assertNotNull(buildLog);
System.out.println(buildLog);
assertFalse(buildLog.contains("-Dpassword=12345"));
}
}
public void testParameterExpansion() throws Exception {
// *_URL vars are not set if hudson.getRootUrl() is null:
((Mailer.DescriptorImpl)hudson.getDescriptor(Mailer.class)).setHudsonUrl("http://test/");
FreeStyleProject project = createFreeStyleProject();
project.addProperty(new ParametersDefinitionProperty(
new StringParameterDefinition("FOO", "bar", "")));
project.setScm(new ExtractResourceSCM(getClass().getResource("ant-job.zip")));
project.getBuildersList().add(new Ant("", null, null, null,
"vNUM=$BUILD_NUMBER\nvID=$BUILD_ID\nvJOB=$JOB_NAME\nvTAG=$BUILD_TAG\nvEXEC=$EXECUTOR_NUMBER\n"
+ "vNODE=$NODE_NAME\nvLAB=$NODE_LABELS\nvJAV=$JAVA_HOME\nvWS=$WORKSPACE\nvHURL=$HUDSON_URL\n"
+ "vBURL=$BUILD_URL\nvJURL=$JOB_URL\nvHH=$HUDSON_HOME\nvJH=$JENKINS_HOME\nvFOO=$FOO"));
FreeStyleBuild build = project.scheduleBuild2(0, new UserCause()).get();
assertBuildStatusSuccess(build);
String log = getLog(build);
assertTrue("Missing $BUILD_NUMBER: " + log, log.contains("vNUM=1"));
assertTrue("Missing $BUILD_ID: " + log, log.contains("vID=2")); // Assuming the year starts with 2!
assertTrue("Missing $JOB_NAME: " + log, log.contains(project.getName()));
assertTrue("Missing $BUILD_TAG: " + log, log.contains("vTAG=hudson-" + project.getName() + "-1"));
assertTrue("Missing $EXECUTOR_NUMBER: " + log, log.matches("(?s).*vEXEC=\\d.*"));
// $NODE_NAME is expected to be empty when running on master.. not checking.
assertTrue("Missing $NODE_LABELS: " + log, log.contains("vLAB=master"));
assertTrue("Missing $JAVA_HOME: " + log, log.matches("(?s).*vJH=[^\\r\\n].*"));
assertTrue("Missing $WORKSPACE: " + log, log.matches("(?s).*vWS=[^\\r\\n].*"));
assertTrue("Missing $HUDSON_URL: " + log, log.contains("vHURL=http"));
assertTrue("Missing $BUILD_URL: " + log, log.contains("vBURL=http"));
assertTrue("Missing $JOB_URL: " + log, log.contains("vJURL=http"));
assertTrue("Missing $HUDSON_HOME: " + log, log.matches("(?s).*vHH=[^\\r\\n].*"));
assertTrue("Missing $JENKINS_HOME: " + log, log.matches("(?s).*vJH=[^\\r\\n].*"));
assertTrue("Missing build parameter $FOO: " + log, log.contains("vFOO=bar"));
}
}
此差异由.gitattributes 抑制。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册