Skip to content

Commit 24102fe

Browse files
committed
adding a testcase for renaming across directories
1 parent a28d1ba commit 24102fe

File tree

12 files changed

+92
-66
lines changed

12 files changed

+92
-66
lines changed

test/org/opensolaris/opengrok/history/GitRepositoryTest.java

Lines changed: 79 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* CDDL HEADER END
1818
*/
1919

20-
/*
20+
/*
2121
* Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
2222
*/
2323
package org.opensolaris.opengrok.history;
@@ -167,11 +167,14 @@ public void testDateFormats() {
167167
@Test
168168
public void testRenamedFiles() throws Exception {
169169
String[][] tests = new String[][]{
170-
{"moved/renamed2.c", "67dfbe26", "moved/renamed2.c"},
171-
{"moved/renamed2.c", "1086eaf5", "moved/renamed.c"},
172-
{"moved/renamed2.c", "b6413947", "moved/renamed.c"},
173-
{"moved/renamed2.c", "ce4c98ec", "renamed.c"},
174-
{"moved/renamed2.c", "bb74b7e8", "renamed.c"},};
170+
{"moved2/renamed2.c", "84599b3c", "moved2/renamed2.c"},
171+
{"moved2/renamed2.c", "67dfbe26", "moved/renamed2.c"},
172+
{"moved2/renamed2.c", "67dfbe26", "moved/renamed2.c"},
173+
{"moved2/renamed2.c", "1086eaf5", "moved/renamed.c"},
174+
{"moved2/renamed2.c", "b6413947", "moved/renamed.c"},
175+
{"moved2/renamed2.c", "ce4c98ec", "renamed.c"},
176+
{"moved2/renamed2.c", "bb74b7e8", "renamed.c"}
177+
};
175178
setUpTestRepository();
176179
File root = new File(repository.getSourceRoot(), "git");
177180
GitRepository gitrepo
@@ -190,14 +193,14 @@ public void testRenamedFiles() throws Exception {
190193
}
191194
}
192195

193-
@Test
196+
@Test(expected = IOException.class)
194197
public void testInvalidRenamedFiles() throws Exception {
195198
String[][] tests = new String[][]{
196-
{"", "67dfbe26", null},
197-
{"moved/renamed2.c", "", null},
198-
{"", "", null},
199-
{null, "67dfbe26", null},
200-
{"moved/renamed2.c", null, null}
199+
{"", "67dfbe26"},
200+
{"moved/renamed2.c", ""},
201+
{"", ""},
202+
{null, "67dfbe26"},
203+
{"moved/renamed2.c", null}
201204

202205
};
203206
setUpTestRepository();
@@ -208,43 +211,47 @@ public void testInvalidRenamedFiles() throws Exception {
208211
for (String[] test : tests) {
209212
String file = test[0];
210213
String changeset = test[1];
211-
String expected = test[2];
212-
try {
213-
Assert.assertEquals(expected, gitrepo.findOriginalName(file, changeset));
214-
} catch (IOException ex) {
215-
Assert.fail(String.format("Looking for original name of {} in {} shouldn't fail", file, changeset));
216-
}
214+
gitrepo.findOriginalName(file, changeset);
217215
}
218216
}
219217

218+
/**
219+
* Test that {@code getHistoryGet()} returns historical contents of renamed
220+
* file.
221+
*
222+
* @throws java.lang.Exception
223+
*/
220224
@Test
221-
public void testConvertFormat() {
222-
String[][] tests = new String[][]{
223-
{
224-
"moved/{renamed.c => renamed2.c} (100%)",
225-
"moved/renamed.c => moved/renamed2.c (100%)"
226-
},
227-
{
228-
"moved/to/path/{renamed.c => renamed2.c} (100%)",
229-
"moved/to/path/renamed.c => moved/to/path/renamed2.c (100%)"
230-
},
231-
{
232-
"moved/to/path/{other/renamed.c => other/path/renamed2.c} (100%)",
233-
"moved/to/path/other/renamed.c => moved/to/path/other/path/renamed2.c (100%)"
234-
},
235-
{
236-
"/{renamed.c => renamed2.c} (100%)",
237-
"/renamed.c => /renamed2.c (100%)"
238-
},
239-
{
240-
"renamed.c => renamed2.c (100%)",
241-
"renamed.c => renamed2.c (100%)"
242-
}
243-
};
225+
public void testGetHistoryForOnceRenamed() throws Exception {
226+
String exp_str
227+
= "#include <stdio.h>\n"
228+
+ "#include <stdlib.h>\n"
229+
+ "\n"
230+
+ "int foo ( const char * path )\n"
231+
+ "{\n"
232+
+ "\treturn path && *path == 'A';\n"
233+
+ "}\n"
234+
+ "\n"
235+
+ "int main ( int argc, const char * argv[] )\n"
236+
+ "{\n"
237+
+ "\tint i;\n"
238+
+ "\tfor ( i = 1; i < argc; i ++ )\n"
239+
+ "\t{\n"
240+
+ "\t\tprintf ( \"%s called with %d\\n\", argv [ 0 ], argv [ i ] );\n"
241+
+ "\t}\n"
242+
+ "\n"
243+
+ "\tprintf ( \"Hello, world!\\n\" );\n"
244+
+ "\n"
245+
+ "\tif ( foo ( argv [ 0 ] ) )\n"
246+
+ "\t{\n"
247+
+ "\t\tprintf ( \"Correct call\\n\" );\n"
248+
+ "\t}\n"
249+
+ "\n"
250+
+ "\treturn 0;\n"
251+
+ "}\n";
244252

245-
for (String[] test : tests) {
246-
Assert.assertEquals(test[1], instance.expandGitRenamedOutput(test[0]));
247-
}
253+
runRenamedTest("moved2/renamed2.c", "84599b3", exp_str);
254+
runRenamedTest("moved/renamed2.c", "67dfbe2", exp_str);
248255
}
249256

250257
/**
@@ -254,7 +261,7 @@ public void testConvertFormat() {
254261
* @throws java.lang.Exception
255262
*/
256263
@Test
257-
public void testGetHistoryForOnceRenamed() throws Exception {
264+
public void testGetHistoryForTwiceRenamed() throws Exception {
258265
String exp_str
259266
= "#include <stdio.h>\n"
260267
+ "#include <stdlib.h>\n"
@@ -283,6 +290,7 @@ public void testGetHistoryForOnceRenamed() throws Exception {
283290
+ "}\n";
284291

285292
runRenamedTest("moved/renamed.c", "1086eaf", exp_str);
293+
runRenamedTest("moved/renamed2.c", "67dfbe2", exp_str);
286294
}
287295

288296
/**
@@ -292,7 +300,7 @@ public void testGetHistoryForOnceRenamed() throws Exception {
292300
* @throws java.lang.Exception
293301
*/
294302
@Test
295-
public void testGetHistoryForTwiceRenamed() throws Exception {
303+
public void testGetHistoryForThreeTimesRenamed() throws Exception {
296304
String exp_str
297305
= "#include <stdio.h>\n"
298306
+ "#include <stdlib.h>\n"
@@ -307,7 +315,9 @@ public void testGetHistoryForTwiceRenamed() throws Exception {
307315
+ "\n"
308316
+ "\treturn 0;\n"
309317
+ "}\n";
310-
runRenamedTest("moved/renamed2.c", "ce4c98e", exp_str);
318+
319+
runRenamedTest("moved/renamed.c", "b641394", exp_str);
320+
runRenamedTest("renamed.c", "ce4c98e", exp_str);
311321
}
312322

313323
/**
@@ -319,6 +329,7 @@ public void testGetHistoryForTwiceRenamed() throws Exception {
319329
@Test
320330
public void testGetHistoryForNonExistentRenamed() throws Exception {
321331
runRenamedTest("moved/renamed.c", "67dfbe2", null);
332+
runRenamedTest("renamed.c", "67dfbe2", null);
322333
}
323334

324335
private void runRenamedTest(String fname, String cset, String content) throws Exception {
@@ -333,7 +344,7 @@ private void runRenamedTest(String fname, String cset, String content) throws Ex
333344
if (content == null) {
334345
Assert.assertNull(input);
335346
} else {
336-
Assert.assertNotNull(input);
347+
Assert.assertNotNull("expecting not null", input);
337348
int len = input.read(buffer);
338349
Assert.assertNotEquals(-1, len);
339350
String str = new String(buffer, 0, len);
@@ -351,23 +362,25 @@ public void testRenamedHistory() throws Exception {
351362
History history = gitrepo.getHistory(root);
352363
Assert.assertNotNull(history);
353364
Assert.assertNotNull(history.getHistoryEntries());
354-
Assert.assertEquals(7, history.getHistoryEntries().size());
365+
Assert.assertEquals(8, history.getHistoryEntries().size());
355366

356367
Assert.assertNotNull(history.getRenamedFiles());
357-
Assert.assertEquals(2, history.getRenamedFiles().size());
368+
Assert.assertEquals(3, history.getRenamedFiles().size());
358369

359370
Assert.assertTrue(history.isRenamed("moved/renamed2.c"));
371+
Assert.assertTrue(history.isRenamed("moved2/renamed2.c"));
360372
Assert.assertTrue(history.isRenamed("moved/renamed.c"));
361373
Assert.assertFalse(history.isRenamed("non-existent.c"));
362374
Assert.assertFalse(history.isRenamed("renamed.c"));
363375

364-
Assert.assertEquals("67dfbe26", history.getHistoryEntries().get(0).getRevision());
365-
Assert.assertEquals("1086eaf5", history.getHistoryEntries().get(1).getRevision());
366-
Assert.assertEquals("b6413947", history.getHistoryEntries().get(2).getRevision());
367-
Assert.assertEquals("ce4c98ec", history.getHistoryEntries().get(3).getRevision());
368-
Assert.assertEquals("aa35c258", history.getHistoryEntries().get(4).getRevision());
369-
Assert.assertEquals("84821564", history.getHistoryEntries().get(5).getRevision());
370-
Assert.assertEquals("bb74b7e8", history.getHistoryEntries().get(6).getRevision());
376+
Assert.assertEquals("84599b3c", history.getHistoryEntries().get(0).getRevision());
377+
Assert.assertEquals("67dfbe26", history.getHistoryEntries().get(1).getRevision());
378+
Assert.assertEquals("1086eaf5", history.getHistoryEntries().get(2).getRevision());
379+
Assert.assertEquals("b6413947", history.getHistoryEntries().get(3).getRevision());
380+
Assert.assertEquals("ce4c98ec", history.getHistoryEntries().get(4).getRevision());
381+
Assert.assertEquals("aa35c258", history.getHistoryEntries().get(5).getRevision());
382+
Assert.assertEquals("84821564", history.getHistoryEntries().get(6).getRevision());
383+
Assert.assertEquals("bb74b7e8", history.getHistoryEntries().get(7).getRevision());
371384
}
372385

373386
@Test
@@ -377,22 +390,24 @@ public void testRenamedSingleHistory() throws Exception {
377390
GitRepository gitrepo
378391
= (GitRepository) RepositoryFactory.getRepository(root);
379392

380-
History history = gitrepo.getHistory(new File(root.getAbsolutePath(), "moved/renamed2.c"));
393+
History history = gitrepo.getHistory(new File(root.getAbsolutePath(), "moved2/renamed2.c"));
381394
Assert.assertNotNull(history);
382395
Assert.assertNotNull(history.getHistoryEntries());
383-
Assert.assertEquals(4, history.getHistoryEntries().size());
396+
Assert.assertEquals(5, history.getHistoryEntries().size());
384397

385398
Assert.assertNotNull(history.getRenamedFiles());
386-
Assert.assertEquals(2, history.getRenamedFiles().size());
399+
Assert.assertEquals(3, history.getRenamedFiles().size());
387400

388401
Assert.assertTrue(history.isRenamed("moved/renamed2.c"));
402+
Assert.assertTrue(history.isRenamed("moved2/renamed2.c"));
389403
Assert.assertTrue(history.isRenamed("moved/renamed.c"));
390404
Assert.assertFalse(history.isRenamed("non-existent.c"));
391405
Assert.assertFalse(history.isRenamed("renamed.c"));
392406

393-
Assert.assertEquals("67dfbe26", history.getHistoryEntries().get(0).getRevision());
394-
Assert.assertEquals("1086eaf5", history.getHistoryEntries().get(1).getRevision());
395-
Assert.assertEquals("b6413947", history.getHistoryEntries().get(2).getRevision());
396-
Assert.assertEquals("ce4c98ec", history.getHistoryEntries().get(3).getRevision());
407+
Assert.assertEquals("84599b3c", history.getHistoryEntries().get(0).getRevision());
408+
Assert.assertEquals("67dfbe26", history.getHistoryEntries().get(1).getRevision());
409+
Assert.assertEquals("1086eaf5", history.getHistoryEntries().get(2).getRevision());
410+
Assert.assertEquals("b6413947", history.getHistoryEntries().get(3).getRevision());
411+
Assert.assertEquals("ce4c98ec", history.getHistoryEntries().get(4).getRevision());
397412
}
398413
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
renaming renamed -> renamed2
1+
renaming directories
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
adc051fa62d3c6a8d29d967cd6e88876286db9a2

testdata/repositories/git/git/index

1 Byte
Binary file not shown.

testdata/repositories/git/git/logs/HEAD

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,6 @@ aa35c25882b9a60a97758e0ceb276a3f8cb4ae3a ce4c98ec1d22473d4aa799c046c2a90ae05832f
55
ce4c98ec1d22473d4aa799c046c2a90ae05832f1 b6413947a59f481ddc0a05e0d181731233557f6e Kryštof Tulinger <[email protected]> 1485263264 +0100 commit: moved renamed.c to new location
66
b6413947a59f481ddc0a05e0d181731233557f6e 1086eaf5bca6d5a056097aa76017a8ab0eade20f Kryštof Tulinger <[email protected]> 1485263368 +0100 commit: adding some lines into renamed.c
77
1086eaf5bca6d5a056097aa76017a8ab0eade20f 67dfbe2648c94a8825671b0f2c132828d0d43079 Kryštof Tulinger <[email protected]> 1485263397 +0100 commit: renaming renamed -> renamed2
8+
67dfbe2648c94a8825671b0f2c132828d0d43079 adc051fa62d3c6a8d29d967cd6e88876286db9a2 Kryštof Tulinger <[email protected]> 1485438663 +0100 commit: renaming directories
9+
adc051fa62d3c6a8d29d967cd6e88876286db9a2 67dfbe2648c94a8825671b0f2c132828d0d43079 Kryštof Tulinger <[email protected]> 1485438687 +0100 reset: moving to HEAD~1
10+
67dfbe2648c94a8825671b0f2c132828d0d43079 84599b3cccb3eeb5aa9aec64771678d6526bcecb Kryštof Tulinger <[email protected]> 1485438707 +0100 commit: renaming directories

testdata/repositories/git/git/logs/refs/heads/master

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,6 @@ aa35c25882b9a60a97758e0ceb276a3f8cb4ae3a ce4c98ec1d22473d4aa799c046c2a90ae05832f
55
ce4c98ec1d22473d4aa799c046c2a90ae05832f1 b6413947a59f481ddc0a05e0d181731233557f6e Kryštof Tulinger <[email protected]> 1485263264 +0100 commit: moved renamed.c to new location
66
b6413947a59f481ddc0a05e0d181731233557f6e 1086eaf5bca6d5a056097aa76017a8ab0eade20f Kryštof Tulinger <[email protected]> 1485263368 +0100 commit: adding some lines into renamed.c
77
1086eaf5bca6d5a056097aa76017a8ab0eade20f 67dfbe2648c94a8825671b0f2c132828d0d43079 Kryštof Tulinger <[email protected]> 1485263397 +0100 commit: renaming renamed -> renamed2
8+
67dfbe2648c94a8825671b0f2c132828d0d43079 adc051fa62d3c6a8d29d967cd6e88876286db9a2 Kryštof Tulinger <[email protected]> 1485438663 +0100 commit: renaming directories
9+
adc051fa62d3c6a8d29d967cd6e88876286db9a2 67dfbe2648c94a8825671b0f2c132828d0d43079 Kryštof Tulinger <[email protected]> 1485438687 +0100 reset: moving to HEAD~1
10+
67dfbe2648c94a8825671b0f2c132828d0d43079 84599b3cccb3eeb5aa9aec64771678d6526bcecb Kryštof Tulinger <[email protected]> 1485438707 +0100 commit: renaming directories
Binary file not shown.

testdata/repositories/git/git/objects/84/599b3cccb3eeb5aa9aec64771678d6526bcecb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��;n1 S����� H���)n���
2+
h��q|��+*|���<�۶�^��B`I�f*�*&Ԇ���jȘ���1�������娔#�>VfJ��#.$>7l1`ٻz����n��8\O��K�~�v�d7�[���o��#��`�W�n�<������6+���2��zq��^V�
Binary file not shown.

testdata/repositories/git/git/objects/ad/c051fa62d3c6a8d29d967cd6e88876286db9a2

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
x��;n1 DS������ns}({��r���0�WT�n03oJ߶u�#�6T�V[bF�ck�0�V[�C�(Dr��OR��X[G���;P��+�;v\��q1�>�]ᨏ���|�/��$
2+
����M�O��5���K�>���L�a��L:�� �\e惴M ��J]W���'Wx

0 commit comments

Comments
 (0)