mirror of
https://github.com/apple/pkl.git
synced 2026-05-03 13:44:26 +02:00
Encode filepaths to be safe on Windows
This changes the file paths to use characters that are safe for Windows. Channges the output of the following: * Package cache directory * Generated pkl-doc files * Kotlin generated code Unsafe characters are encoded as (<hex>). For example, the colon character `:` is encoded as `(3a)`. Additionally, this changes the cache directory prefix (package-1 to package-2). Follows the design of https://github.com/apple/pkl-evolution/pull/3
This commit is contained in:
@@ -431,4 +431,14 @@ class IoUtilsTest {
|
||||
IoUtils.readString(URI("http://example.com").toURL())
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `encodePath encodes characters reserved on windows`() {
|
||||
assertThat(IoUtils.encodePath("foo:bar")).isEqualTo("foo(3a)bar")
|
||||
assertThat(IoUtils.encodePath("<>:\"\\|?*")).isEqualTo("(3c)(3e)(3a)(22)(5c)(7c)(3f)(2a)")
|
||||
assertThat(IoUtils.encodePath("foo(3a)bar")).isEqualTo("foo((3a)bar")
|
||||
assertThat(IoUtils.encodePath("(")).isEqualTo("((")
|
||||
assertThat(IoUtils.encodePath("3a)")).isEqualTo("3a)")
|
||||
assertThat(IoUtils.encodePath("foo/bar/baz")).isEqualTo("foo/bar/baz")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user