Skip to content

Commit dd561f4

Browse files
committed
Add unit test for canonicalization of resource names in getResource
1 parent e034be4 commit dd561f4

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/NativeImageResourceFileSystemProviderTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public void beforeAnalysis(BeforeAnalysisAccess access) {
8585
// Remove leading / for the resource patterns
8686
registry.addResources(ConfigurationCondition.alwaysTrue(), RESOURCE_FILE_1.substring(1));
8787
registry.addResources(ConfigurationCondition.alwaysTrue(), RESOURCE_FILE_2.substring(1));
88+
registry.addResources(ConfigurationCondition.alwaysTrue(), RESOURCE_DIR.substring(1));
8889

8990
/** Needed for {@link #testURLExternalFormEquivalence()} */
9091
for (Module module : ModuleLayer.boot().modules()) {
@@ -631,4 +632,22 @@ public void testURLExternalFormEquivalence() {
631632
Assert.fail("Contents of original URL and one created from originals ExternalForm must be the same: " + e);
632633
}
633634
}
635+
636+
@Test
637+
public void noCanonicalizationInGetResource() {
638+
Class<?> klass = NativeImageResourceFileSystemProviderTest.class;
639+
URL url = klass.getResource(RESOURCE_DIR + "/");
640+
Assert.assertNotNull(url);
641+
Assert.assertTrue(url.toString().endsWith("/"));
642+
url = klass.getResource(RESOURCE_DIR);
643+
Assert.assertNotNull(url);
644+
Assert.assertFalse(url.toString().endsWith("/"));
645+
url = klass.getResource(RESOURCE_DIR + "/./");
646+
Assert.assertNull(url);
647+
url = klass.getResource(RESOURCE_FILE_1);
648+
Assert.assertNotNull(url);
649+
url = klass.getResource(RESOURCE_FILE_1 + "/");
650+
Assert.assertNull(url);
651+
}
652+
634653
}

0 commit comments

Comments
 (0)