/** * Tests the "URL@HEAD" format in the SVN URL */ @Test public void headRevisionCheckout() throws Exception { File testRepo = new CopyExisting(getClass().getResource("two-revisions.zip")).allocate(); SubversionSCM scm = new SubversionSCM("file://" + testRepo.toURI().toURL().getPath() + "@HEAD"); FreeStyleProject p = r.createFreeStyleProject(); p.setScm(scm); FreeStyleBuild b = p.scheduleBuild2(0, new Cause.UserIdCause()).get(); System.out.println(b.getLog(LOG_LIMIT)); r.assertLogContains("At revision 2", b); r.assertBuildStatus(Result.SUCCESS,b); }
/** * Makes sure that quiet operation shows lesser output. */ @Issue("JENKINS-14541") @Test public void testQuietCheckout() throws Exception { SubversionSCM local = loadSvnRepo(); local.setWorkspaceUpdater(new CheckoutUpdater()); FreeStyleProject p = r.createFreeStyleProject("quietOperation"); p.setScm(local); local.setQuietOperation(true); FreeStyleBuild bQuiet = r.assertBuildStatusSuccess(p.scheduleBuild2(0, new Cause.UserIdCause()).get()); List<String> logsQuiet = bQuiet.getLog(LOG_LIMIT); // This line in log should end with --quiet assertTrue(logsQuiet.get(4).endsWith("--quiet")); assertEquals("At revision 1", logsQuiet.get(5)); local.setQuietOperation(false); FreeStyleBuild bVerbose = r.assertBuildStatusSuccess(p.scheduleBuild2(0, new Cause.UserIdCause()).get()); List<String> logsVerbose = bVerbose.getLog(LOG_LIMIT); // This line in log should NOT end with --quiet assertFalse(logsVerbose.get(4).endsWith("--quiet")); assertTrue(logsVerbose.get(5).endsWith("readme.txt")); assertEquals("At revision 1", logsVerbose.get(6)); }
/** * Tests the "URL@REV" format in SVN URL. */ @Issue("JENKINS-262") @Test @Ignore("TODO use docker-fixtures for a reproducible test case") public void revisionedCheckout() throws Exception { FreeStyleProject p = r.createFreeStyleProject(); p.setScm(new SubversionSCM("https://svn.jenkins-ci.org/trunk/hudson/test-projects/trivial-ant@13000")); FreeStyleBuild b = p.scheduleBuild2(0, new Cause.UserIdCause()).get(); System.out.println(b.getLog(LOG_LIMIT)); r.assertLogContains("at revision 13000", b); r.assertBuildStatus(Result.SUCCESS,b); b = p.scheduleBuild2(0, new Cause.UserIdCause()).get(); System.out.println(b.getLog(LOG_LIMIT)); r.assertLogContains("at revision 13000", b); r.assertBuildStatus(Result.SUCCESS,b); }
public String buildAndCheck(FreeStyleProject p, String name, Action... actions) throws Exception { FreeStyleBuild b = j.assertBuildStatusSuccess(p.scheduleBuild2(0, null, actions).get()); // for (String line : b.getLog(Integer.MAX_VALUE)) { // System.err.println(">> " + line); // } if (!b.getWorkspace().child(name).exists()) { Set<String> children = new TreeSet<>(); for (FilePath child : b.getWorkspace().list()) { children.add(child.getName()); } fail("Could not find " + name + " among " + children); } assertNotNull(b.getAction(MercurialTagAction.class)); @SuppressWarnings("deprecation") String log = b.getLog(); return log; }
@Test @Ignore("TODO use docker-fixtures for a reproducible test case") public void revisionParameterFolding() throws Exception { FreeStyleProject p = r.createFreeStyleProject(); String url = "https://svn.jenkins-ci.org/trunk/hudson/test-projects/trivial-ant"; p.setScm(new SubversionSCM(url)); // Schedule build of a specific revision with a quiet period Future<FreeStyleBuild> f = p.scheduleBuild2(60, new Cause.UserIdCause(), new RevisionParameterAction(new SubversionSCM.SvnInfo(url, 13000))); // Schedule another build at a more recent revision p.scheduleBuild2(0, new Cause.UserIdCause(), new RevisionParameterAction(new SubversionSCM.SvnInfo(url, 14000))); FreeStyleBuild b = f.get(); System.out.println(b.getLog(LOG_LIMIT)); r.assertLogContains("at revision 14000", b); r.assertBuildStatus(Result.SUCCESS,b); }
/** * Tests a checkout with RevisionParameterAction */ @Test @Ignore("TODO use docker-fixtures for a reproducible test case") public void revisionParameter() throws Exception { FreeStyleProject p = r.createFreeStyleProject(); String url = "https://svn.jenkins-ci.org/trunk/hudson/test-projects/trivial-ant"; p.setScm(new SubversionSCM(url)); FreeStyleBuild b = p.scheduleBuild2(0, new Cause.UserIdCause(), new RevisionParameterAction(new SubversionSCM.SvnInfo(url, 13000))).get(); System.out.println(b.getLog(LOG_LIMIT)); r.assertLogContains("at revision 13000", b); r.assertBuildStatus(Result.SUCCESS,b); }
System.out.println(b.getLog());
@Test @Ignore("TODO use docker-fixtures for a reproducible test case") public void urlWithVariable() throws Exception { FreeStyleProject p = r.createFreeStyleProject(); // --- 1st case: URL with a variable --- String repo = "https://svn.jenkins-ci.org"; String path = "/trunk/hudson/test-projects/trivial-maven/src/test/java/test"; p.setScm(new SubversionSCM("$REPO" + path)); FreeStyleBuild b = p.scheduleBuild2(0, new Cause.UserIdCause(), new ParametersAction(new StringParameterValue("REPO", repo))).get(); System.out.println(b.getLog(LOG_LIMIT)); r.assertBuildStatus(Result.SUCCESS,b); assertTrue(b.getWorkspace().child("AppTest.java").exists()); // --- 2nd case: URL with an empty variable --- p.setScm(new SubversionSCM(repo + path + "$EMPTY_VAR")); b = p.scheduleBuild2(0, new Cause.UserIdCause(), new ParametersAction(new StringParameterValue("EMPTY_VAR", ""))).get(); r.assertBuildStatus(Result.SUCCESS,b); assertTrue(b.getWorkspace().child("AppTest.java").exists()); }
p.setScm(loadSvnRepo()); final FreeStyleBuild b = p.scheduleBuild2(0, new Cause.UserIdCause()).get(); System.out.println(b.getLog(LOG_LIMIT)); r.assertBuildStatus(Result.SUCCESS,b);