use v6-alpha; use Test; =kwid = DESCRIPTION Tests that the List quoting parser properly ignores whitespace in lists. This becomes important if your line endings are \x0d\x0a. Characters that should be ignored are: \t \r \n \x20 Most likely there are more. James tells me that the maximum Unicode char is \x10FFFF , so maybe we should simply (re)construct the whitespace list via IsSpace or \s on the fly. Of course, in the parsed result, no item should contain whitespace. C<\xA0> is specifically an I whitespace character and thus should B break the list. =cut if $?PUGS_BACKEND ne "BACKEND_PUGS" { skip_rest "PIL2JS and PIL-Run do not support eval() yet."; exit; } my @list = ; my @separators = ("\t","\r","\n"," "); my @nonseparators = (",","/","\\",";","\xa0"); plan +@separators + @nonseparators; for @separators -> $sep { my $str = "<$sep" ~ @list.join("$sep$sep") ~ "$sep>"; my @res = eval $str; my $vis = sprintf "%02x", ord $sep; is( @res, @list, "'\x$vis\x$vis' is properly parsed as list whitespace") }; for @nonseparators -> $sep { my $ex = @list.join($sep); my $str = "<" ~$ex~ ">"; my @res = eval $str; my $vis = sprintf "%02x", ord $sep; is( @res, [@list.join($sep)], "'\x$vis' does not split in a whitespace quoted list") };