changeset 941:3a0adb764580

TW-19761 more correct unsupported include rules detection
author Dmitry Neverov <dmitry.neverov@gmail.com>
date Thu, 10 Dec 2015 17:35:28 +0100
parents 9ad288b299ea
children 944ccd758a6f
files mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentSideCheckoutTest.java
diffstat 2 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java	Thu Dec 10 17:34:02 2015 +0100
+++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java	Thu Dec 10 17:35:28 2015 +0100
@@ -270,10 +270,8 @@
 
 
   public static void checkRuleIsValid(IncludeRule includeRule) throws VcsException {
-    if (includeRule.getTo() != null && includeRule.getTo().length() > 0) {
-      if (!".".equals(includeRule.getFrom()) && includeRule.getFrom().length() != 0)
-        throw new VcsException("Invalid include rule: " + includeRule.toString() + ", Mercurial plugin supports mapping of the form: +:.=>dir only.");
-    }
+    if (!".".equals(includeRule.getFrom()) && includeRule.getFrom().length() != 0)
+      throw new VcsException("Invalid include rule: " + includeRule.toString() + ", Mercurial plugin supports mapping of the form: +:.=>dir only.");
   }
 
 
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentSideCheckoutTest.java	Thu Dec 10 17:34:02 2015 +0100
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentSideCheckoutTest.java	Thu Dec 10 17:35:28 2015 +0100
@@ -126,6 +126,16 @@
     testUpdate(createVcsRoot(simpleRepo()), "4:b06a290a363b", "cleanPatch1/after", new IncludeRule("+:.", "subdir", null));
   }
 
+  @TestFor(issues = "TW-19761")
+  public void include_subdir_is_not_supported() throws Exception {
+    try {
+      testUpdate(createVcsRoot(simpleRepo()), "4:b06a290a363b", "cleanPatch1/after", new IncludeRule("+:subdir", ".", null));
+      fail("should fail");
+    } catch (VcsException e) {
+      assertTrue(e.getMessage().contains("Invalid include rule"));
+    }
+  }
+
   private void testUpdate(final VcsRoot vcsRoot, String version, String expected, final IncludeRule includeRule) throws VcsException, IOException {
     File workDir = doUpdate(vcsRoot, version, includeRule);