@@ -19,25 +19,43 @@ class ClasspathTest {
1919 // Verify that Windows users not forced to use backslash in classpath.
2020 //
2121 @ Test def testWildcards (): Unit =
22- import dotty .tools .io .ClassPath
2322 val outDir = Files .createTempDirectory(" classpath-test" )
2423 try
2524 val compilerLib = " dist/target/pack/lib"
2625 val libdir = Paths .get(compilerLib).toFile
2726 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+
3156 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+
4159
4260 finally
4361 deleteFile(outDir.toFile)
0 commit comments