annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/SubrepoPatchTest.java @ 693:2c9f7f6d8a12

TODO
author eugene.petrenko@gmail.com
date Thu, 19 Dec 2013 19:17:12 +0100
parents 49a03af60439
children 31a1aca3305c
rev   line source
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
1 package jetbrains.buildServer.buildTriggers.vcs.mercurial;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
2
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
3 import jetbrains.buildServer.vcs.CheckoutRules;
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
4 import jetbrains.buildServer.vcs.VcsRoot;
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
5 import org.testng.annotations.BeforeMethod;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
6 import org.testng.annotations.Test;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
7
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
8 import java.io.File;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
9
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
10 import static com.intellij.openapi.util.io.FileUtil.delete;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
11 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.MercurialSupportBuilder.mercurialSupport;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
12 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.buildPatch;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
13 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
14 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.VcsRootBuilder.vcsRoot;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
15
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
16 @Test
636
27933884b738 Better test name + reuse temp files
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 587
diff changeset
17 public class SubrepoPatchTest extends BaseMercurialPatchTestCase {
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
18
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
19 private MercurialVcsSupport myVcs;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
20 private File myRemoteRepo1;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
21 private File myRemoteRepo2;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
22 private File myRemoteRepo3;
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
23 private ServerPluginConfig myPluginConfig;
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
24 private VcsRoot myRoot;
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
25
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
26 @BeforeMethod
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
27 public void setUp() throws Exception {
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
28 super.setUp();
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
29 File remoteRepoParentDir = myTempFiles.createTempDir();
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
30 myRemoteRepo1 = new File(remoteRepoParentDir, "r1");
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
31 myRemoteRepo2 = new File(remoteRepoParentDir, "r2");
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
32 myRemoteRepo3 = new File(remoteRepoParentDir, "r3");
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
33 copyRepository(new File("mercurial-tests/testData/subrepos/r1"), myRemoteRepo1);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
34 copyRepository(new File("mercurial-tests/testData/subrepos/r2"), myRemoteRepo2);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
35 copyRepository(new File("mercurial-tests/testData/subrepos/r3"), myRemoteRepo3);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
36 myPluginConfig = new ServerPluginConfigBuilder()
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
37 .cachesDir(myTempFiles.createTempDir())
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
38 .detectSubrepoChanges(true)
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
39 .build();
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
40 myVcs = mercurialSupport().withConfig(myPluginConfig).build();
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
41 myRoot = vcsRoot().withUrl(myRemoteRepo1.getAbsolutePath()).withSubrepoChanges(true).build();
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
42 }
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
43
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
44 @Override
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
45 protected String getTestDataPath() {
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
46 return "mercurial-tests/testData";
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
47 }
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
48
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
49
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
50 public void clean_patch_should_use_subrepo_clones_on_the_server() throws Exception {
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
51 //this makes plugin to clone r1 and its subrepos
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
52 myVcs.getCollectChangesPolicy().collectChanges(myRoot, "e4eced2b7381", "d64d9799c143", CheckoutRules.DEFAULT);
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
53
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
54 //delete remote subrepo to make sure patch is build from the clone on the server
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
55 delete(myRemoteRepo3);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
56
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
57 setName("clean_patch_with_subrepositories");
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
58 checkPatchResult(buildPatch(myVcs, myRoot, null, "d350e7209906", CheckoutRules.DEFAULT).toByteArray());
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
59 }
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
60
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
61
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
62 public void clean_patch_should_use_subrepo_clones_on_the_server_recursive_case() throws Exception {
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
63 //this makes plugin to clone r1 and its subrepos
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
64 myVcs.getCollectChangesPolicy().collectChanges(myRoot, "e4eced2b7381", "d64d9799c143", CheckoutRules.DEFAULT);
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
65
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
66 //delete remote subrepos to make sure patch is build from the clone on the server
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
67 delete(myRemoteRepo2);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
68 delete(myRemoteRepo3);
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
69
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
70 setName("clean_patch_recursive_subrepos");
587
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
71 checkPatchResult(buildPatch(myVcs, myRoot, null, "d64d9799c143", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
72 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
73
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
74
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
75 public void incremental_patch_subrepo_revision_changed() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
76 setName("inc_patch_subrepo_revision_changed");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
77 checkPatchResult(buildPatch(myVcs, myRoot, "d350e7209906", "09c256b6163e", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
78 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
79
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
80
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
81 public void incremental_patch_subrepo_added() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
82 setName("inc_patch_subrepo_added");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
83 checkPatchResult(buildPatch(myVcs, myRoot, "4d7b3db8779f", "d350e7209906", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
84 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
85
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
86
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
87 public void incremental_patch_subrepo_removed() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
88 setName("inc_patch_subrepo_removed");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
89 checkPatchResult(buildPatch(myVcs, myRoot, "34017377d9c3", "4d7b3db8779f", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
90 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
91
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
92
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
93 public void incremental_patch_subrepo_url_changed() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
94 setName("inc_patch_subrepo_url_changed");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
95 checkPatchResult(buildPatch(myVcs, myRoot, "34017377d9c3", "d64d9799c143", CheckoutRules.DEFAULT).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
96 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
97
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
98
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
99 public void incremental_patch_with_checkout_rules() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
100 setName("inc_patch_subrepo_with_checkout_rules");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
101 checkPatchResult(buildPatch(myVcs, myRoot, "d350e7209906", "09c256b6163e", new CheckoutRules("+:.=>subdir")).toByteArray());
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
102 }
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
103
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
104
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
105 public void incremental_patch_with_excluding_checkout_rules() throws Exception {
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
106 setName("inc_patch_subrepo_with_excluding_checkout_rules");
e77ef6cd4ddb Incremental patch for VCS root with subrepos
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents: 586
diff changeset
107 checkPatchResult(buildPatch(myVcs, myRoot, "d350e7209906", "09c256b6163e", new CheckoutRules("+:.=>subdir\n-:r2")).toByteArray());
586
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
108 }
aa515fa1f626 Clean patch uses subrepo mirrors on the server
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff changeset
109 }