File path: /apache-ant-1.7.0/src/tests/junit/org/apache/tools/ant/types/PathTest.java | File path: /apache-ant-1.7.0/src/tests/junit/org/apache/tools/ant/types/PathTest.java | |||
Method name: void testConstructorNetWareStyle()
|
Method name: void testConstructorNetWareStyle()
|
|||
Number of AST nodes: 22 | Number of AST nodes: 22 | |||
1 | assertEquals("no multiple character-length volumes on Windows", 2, l.length);↵ | 1 | assertEquals("no multiple character-length volumes on Windows", 2, l.length);↵ | |
2 | assertTrue("sys resolved relative to project\'s basedir",↵ | 2 | assertTrue("sys resolved relative to project\'s basedir",↵ | |
3 | l[0].endsWith("\\sys"));↵ | 3 | l[0].endsWith("\\sys"));↵ | |
4 | assertTrue("test resolved relative to project\'s basedir",↵ | 4 | assertTrue("test resolved relative to project\'s basedir",↵ | |
5 | l[1].endsWith("\\test"));↵ | 5 | l[1].endsWith("\\test"));↵ | |
6 | }↵ | 6 | }↵ | |
7 | // try a multi-part netware-volume length path, see how it is handled↵ | 7 | // try a multi-part netware-volume length path w/forward slash, see how it is handled↵ | |
8 | p = new Path(project, "sys:\\test;dev:\\temp");↵ | 8 | p = new Path(project, "sys:/test;dev:/temp");↵ | |
9 | l = p.list();↵ | 9 | l = p.list();↵ | |
10 | if (isUnixStyle) {↵ | 10 | if (isUnixStyle) {↵ | |
11 | assertEquals("no drives on Unix", 4, l.length);↵ | 11 | assertEquals("no drives on Unix", 4, l.length);↵ | |
12 | assertTrue("sys resolved relative to project\'s basedir",↵ | 12 | assertTrue("sys resolved relative to project\'s basedir",↵ | |
13 | l[0].endsWith("/sys"));↵ | 13 | l[0].endsWith("/sys"));↵ | |
14 | assertEquals("/test", l[1]);↵ | 14 | assertEquals("/test", l[1]);↵ | |
15 | assertTrue("dev resolved relative to project\'s basedir",↵ | 15 | assertTrue("dev resolved relative to project\'s basedir",↵ | |
16 | l[2].endsWith("/dev"));↵ | 16 | l[2].endsWith("/dev"));↵ | |
17 | assertEquals("/temp", l[3]);↵ | 17 | assertEquals("/temp", l[3]);↵ | |
18 | } else if (isNetWare) {↵ | 18 | } else if (isNetWare) {↵ | |
19 | assertEquals("volumes on NetWare", 2, l.length);↵ | 19 | assertEquals("volumes on NetWare", 2, l.length);↵ | |
20 | assertEquals("sys:\\test", l[0].toLowerCase(Locale.US));↵ | 20 | assertEquals("sys:\\test", l[0].toLowerCase(Locale.US));↵ | |
21 | assertEquals("dev:\\temp", l[1].toLowerCase(Locale.US));↵ | 21 | assertEquals("dev:\\temp", l[1].toLowerCase(Locale.US));↵ | |
22 | } else {↵ | 22 | } else {↵ | |
23 | assertEquals("no multiple character-length volumes on Windows", 4, l.length);↵ | 23 | assertEquals("no multiple character-length volumes on Windows", 4, l.length);↵ | |
24 | assertTrue("sys resolved relative to project\'s basedir",↵ | 24 | assertTrue("sys resolved relative to project\'s basedir",↵ | |
25 | l[0].endsWith("\\sys"));↵ | 25 | l[0].endsWith("\\sys"));↵ | |
26 | assertTrue("test resolved relative to project\'s basedir",↵ | 26 | assertTrue("test resolved relative to project\'s basedir",↵ | |
27 | l[1].endsWith("\\test"));↵ | 27 | l[1].endsWith("\\test"));↵ | |
28 | assertTrue("dev resolved relative to project\'s basedir",↵ | 28 | assertTrue("dev resolved relative to project\'s basedir",↵ | |
29 | l[2].endsWith("\\dev"));↵ | 29 | l[2].endsWith("\\dev"));↵ | |
30 | assertTrue("temp resolved relative to project\'s basedir",↵ | 30 | assertTrue("temp resolved relative to project\'s basedir",↵ | |
31 | l[3].endsWith("\\temp"));↵ | 31 | l[3].endsWith("\\temp"));↵ | |
32 | }↵ | 32 | }↵ | |
33 | // try a netware-volume length path w/forward slash, see how it is handled↵ | 33 | // try a multi-part netware-volume length path w↵ | |
34 | p = new Path(project, "sys:/test↵ | 34 | ith UNIX↵ | |
35 | // separator (this testcase if from an actual bug that was↵ | |||
36 | // found, in AvailableTest, which uses PathTokenizer)↵ | |||
37 | p = new Path(project,↵ | |||
35 | ");↵ | 38 | "SYS:\\JAVA/lib/rt.jar:SYS:\\JAVA/lib/classes.zip");↵ | |
36 | l = p.list(); | 39 |
| |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.1 |
Clones location | Clones are in the same method |
Number of node comparisons | 182 |
Number of mapped statements | 19 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 11.1 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
13 | p = new Path(project, "sys:\\test;dev:\\temp"); |
| 42 | p = new Path(project, "sys:/test;dev:/temp"); | ||||||||||
14 | l = p.list(); | 43 | l = p.list(); | |||||||||||
15 | if (isUnixStyle) | 44 | if (isUnixStyle) | |||||||||||
16 | assertEquals("no drives on Unix", 4, l.length); | 45 | assertEquals("no drives on Unix", 4, l.length); | |||||||||||
17 | assertTrue("sys resolved relative to project\'s basedir", l[0].endsWith("/sys")); | 46 | assertTrue("sys resolved relative to project\'s basedir", l[0].endsWith("/sys")); | |||||||||||
18 | assertEquals("/test", l[1]); | 47 | assertEquals("/test", l[1]); | |||||||||||
19 | assertTrue("dev resolved relative to project\'s basedir", l[2].endsWith("/dev")); | 48 | assertTrue("dev resolved relative to project\'s basedir", l[2].endsWith("/dev")); | |||||||||||
20 | assertEquals("/temp", l[3]); | 49 | assertEquals("/temp", l[3]); | |||||||||||
21 | else if (isNetWare) | 50 | else if (isNetWare) | |||||||||||
22 | assertEquals("volumes on NetWare", 2, l.length); | 51 | assertEquals("volumes on NetWare", 2, l.length); | |||||||||||
23 | assertEquals("sys:\\test", l[0].toLowerCase(Locale.US)); | 52 | assertEquals("sys:\\test", l[0].toLowerCase(Locale.US)); | |||||||||||
24 | assertEquals("dev:\\temp", l[1].toLowerCase(Locale.US)); | 53 | assertEquals("dev:\\temp", l[1].toLowerCase(Locale.US)); | |||||||||||
else | else | |||||||||||||
25 | assertEquals("no multiple character-length volumes on Windows", 4, l.length); | 54 | assertEquals("no multiple character-length volumes on Windows", 4, l.length); | |||||||||||
26 | assertTrue("sys resolved relative to project\'s basedir", l[0].endsWith("\\sys")); | 55 | assertTrue("sys resolved relative to project\'s basedir", l[0].endsWith("\\sys")); | |||||||||||
27 | assertTrue("test resolved relative to project\'s basedir", l[1].endsWith("\\test")); | 56 | assertTrue("test resolved relative to project\'s basedir", l[1].endsWith("\\test")); | |||||||||||
28 | assertTrue("dev resolved relative to project\'s basedir", l[2].endsWith("\\dev")); | 57 | assertTrue("dev resolved relative to project\'s basedir", l[2].endsWith("\\dev")); | |||||||||||
29 | assertTrue("temp resolved relative to project\'s basedir", l[3].endsWith("\\temp")); | 58 | assertTrue("temp resolved relative to project\'s basedir", l[3].endsWith("\\temp")); | |||||||||||
30 | p = new Path(project, "sys:/test"); |
| 59 | p = new Path(project, "SYS:\\JAVA/lib/rt.jar:SYS:\\JAVA/lib/classes.zip"); | ||||||||||
31 | l = p.list(); | 43 | l = p.list(); | |||||||||||
|
| 60 | l = p.list(); |
Row | Violation |
---|---|
1 | Unmatched statement l=p.list(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Clone fragment #1 returns variable l with type java.lang.String[] , while Clone fragment #2 returns variable p with type org.apache.tools.ant.types.Path |