diff --git a/t/103-unicode/clean.do b/t/103-unicode/clean.do new file mode 100644 index 0000000..25762fa --- /dev/null +++ b/t/103-unicode/clean.do @@ -0,0 +1 @@ +rm -rf *.tmp diff --git a/t/103-unicode/test-uniçøðë/test1.do b/t/103-unicode/test-uniçøðë/test1.do deleted file mode 100644 index e69de29..0000000 diff --git a/t/103-unicode/unicode.do b/t/103-unicode/unicode.do index 309ed02..9297114 100644 --- a/t/103-unicode/unicode.do +++ b/t/103-unicode/unicode.do @@ -1,2 +1,16 @@ # Test that redo can handle a script whose path contains non-ASCII characters. -redo test-uniçøðë/test1 +# Note: the test directory is intentionally *not* a normalized unicode +# string, ie. filesystems like macOS will convert it to a different string +# at creation time. This tests weird normalization edge cases. +# +# Unfortunately, on macOS with APFS, it may helpfully normalize the path at +# *create* time, but not on future *open* attempts. Thus, we let the shell +# figure out what directory name actually got created, then pass that to redo. +# Hence the weird wildcard expansion loop. +rm -rf test-uni*.tmp +mkdir "test-uniçøðë.tmp" +for p in test-uni*.tmp; do + : >$p/test1.do + redo "$p/test1" +done +