@@ -19,25 +19,43 @@ class ClasspathTest {
19
19
// Verify that Windows users not forced to use backslash in classpath.
20
20
//
21
21
@ Test def testWildcards (): Unit =
22
- import dotty .tools .io .ClassPath
23
22
val outDir = Files .createTempDirectory(" classpath-test" )
24
23
try
25
24
val compilerLib = " dist/target/pack/lib"
26
25
val libdir = Paths .get(compilerLib).toFile
27
26
if libdir.exists then
28
- try for src <- libdir.listFiles.toList.take(5 ) do
29
- val dest = Paths .get(s " $outDir/ ${src.getName}" )
30
- printf(" copy: %s\n " ,Files .copy(src.toPath,dest)) // ,REPLACE_EXISTING,COPY_ATTRIBUTES))
27
+ val libjarFiles = libdir.listFiles.toList.take(5 )
28
+ try
29
+ for src <- libjarFiles do
30
+ val dest = Paths .get(s " $outDir/ ${src.getName}" )
31
+ printf(" copy: %s\n " ,Files .copy(src.toPath,dest)) // ,REPLACE_EXISTING,COPY_ATTRIBUTES))
32
+
33
+ val cp = Seq (s " $outDir/* " ," not-a-real-directory/*" ).mkString(pathsep).replace('\\ ' ,'/' )
34
+
35
+ val libjars = libjarFiles.map { _.getName }.toSet
36
+
37
+ // expand wildcard classpath entries, ignoring invalid entries
38
+ val entries = ClassPath .expandPath(cp).map { Paths .get(_).toFile.getName }
39
+
40
+ // require one-to-one matches
41
+ assert(libjars == entries.toSet)
42
+
43
+ printf(" %d entries\n " ,entries.size)
44
+ printf(" %d libjars\n " ,libjars.size)
45
+
46
+ for entry <- libjars do
47
+ printf(" libdir[%s]\n " ,entry)
48
+
49
+ for entry <- entries do
50
+ printf(" expand[%s]\n " ,entry)
51
+
52
+ // verify that expanded classpath has expected jar names
53
+ for jar <- libjars do
54
+ assert(entries.contains(jar))
55
+
31
56
catch
32
- case _:NullPointerException => // ignore errors adding jars to outDir
33
-
34
- // outDir.toFile.listFiles.toList.foreach { printf("%s\n",_) }
35
- val cp = Seq (s " $compilerLib/* " ,s " $outDir/* " ," not-a-real-directory/*" ).mkString(pathsep).replace('\\ ' ,'/' )
36
-
37
- // need to expand wildcard classpath entries
38
- val entries = ClassPath .expandPath(cp)
39
- for entry <- entries.take(10 ) do
40
- println(entry)
57
+ case _:NullPointerException => // no test if unable to copy jars to outDir
58
+
41
59
42
60
finally
43
61
deleteFile(outDir.toFile)
0 commit comments