pugs-comm...@feather.perl6.nl wrote:
> Author: kyle
> Date: 2009-07-04 19:26:48 +0200 (Sat, 04 Jul 2009)
> New Revision: 27404
> 
> Modified:
>    t/syntax/hyper_latin1.t
> Log:
> [t] Further mutated t/syntax/hyper_latin1.t
> 
> Modified: t/syntax/hyper_latin1.t
> ===================================================================
> --- t/syntax/hyper_latin1.t   2009-07-04 16:51:35 UTC (rev 27403)
> +++ t/syntax/hyper_latin1.t   2009-07-04 17:26:48 UTC (rev 27404)
> @@ -2,7 +2,7 @@
>  
>  use Test;
>  
> -plan 3;
> +plan 5;
>  
>  # Unicode-version of >>~<< only works in utf8 encoded files
>  #   * Almost all other files in the Pugs Subversion repository are utf-8
> @@ -15,10 +15,16 @@
>  # According to lwall, failure is the desired behaviour.  To use latin1
>  # in source code, explicitly declare it as such with the `encoding` pragma.
>  
> -my $hyper_utf = eval "(<a b c>) \c187~\c171 (1,2,3)";
> -ok($!, 'latin1 should not be parsed');
> +my $latin1_encoded = "(<a b c>) \c187~\c171 (1,2,3)";
> +my $ASCII_encoded  = "(<a b c>)    >>~<<    (1,2,3)";
> +my $utf8_encoded   = "(<a b c>)     »~«     (1,2,3)";

This won't work that way (it didn't work before, either).
The reason is that \c187 is a Str level interpolation, which means that
\c187 creates an encoding-agnostic '»'.

IMHO the test should look like this:

eval_dies_ok '@a »~«'.encode('ISO-8859-1'),
          'Latin-1 french quotes are a parse error';

Of course that implies that eval() and eval_dies_ok accept not only
Str's but also Buf's, which is (at least in the case of eval()) sensible.

If nobody objects, I'll update the spec and the tests.

Cheers,
Moritz

Reply via email to