PASSes on all my boxes but one

The failing box has JSON::XS installed (temporary to check Schmorp's
claims, for which I so far found no proof)

The formatted output - I might have an output patch applied to make the
output style meet our requirements - causes this mismatch.

I don't mind when the verdict is: we cannot expect people to alter
whitespacing in module output, but having cpanprefs not only makes that
easy, but make installing a lot of modules suddenly become more logical
as I can "fix" the decisions the author made that I do not agree with.

Personally I don't think prettied output checks in tests should ever
test on whitespace (including newlines) unless the output is completely
generated by the module itself or guaranteed by the module or its
documentation to not add or remove whitespace.

The change to prevent this specific case is maybe somthing like
--8<---
--- a/t/90sql_type_cast.t 2013-03-24 21:00:02.167352360 +0100
+++ b/t/90sql_type_cast.t 2013-03-24 21:05:07.251376420 +0100
@@ -116,7 +116,7 @@ foreach my $test(@tests) {
             skip 'DiscardString not supported in PurePerl', 1
                 if $pp && ($test->[3] & DBIstcf_DISCARD_STRING);

-            my $json = JSON::XS->new->encode([$val]);
+            (my $json = JSON::XS->new->encode([$val])) =~ s/\s+]$/]/;;
             #diag(neat($val), ",", $json);
             is($json, $test->[5], "json $test->[0]");
         };
-->8---

but it doesn't catch changes that generate extra spaces output as
like "  [  99  ] "

For me, the tests will pass again next week, as JSON::XS will be banned
to trash again

t/87gofer_cache.t ............... ok
t/90sql_type_cast.t ............. 1/45
#   Failed test 'json undef'
#   at t/90sql_type_cast.t line 121.
#          got: '[null   ]'
#     expected: '[null]'

#   Failed test 'json invalid sql type'
#   at t/90sql_type_cast.t line 121.
#          got: '["99"   ]'
#     expected: '["99"]'

#   Failed test 'json non numeric cast to int'
#   at t/90sql_type_cast.t line 121.
#          got: '["aa"   ]'
#     expected: '["aa"]'

#   Failed test 'json non numeric cast to int (strict)'
#   at t/90sql_type_cast.t line 121.
#          got: '["aa"   ]'
#     expected: '["aa"]'

#   Failed test 'json small int cast to int'
#   at t/90sql_type_cast.t line 121.
#          got: '["99"   ]'
#     expected: '["99"]'

#   Failed test 'json 2 byte max signed int cast to int'
#   at t/90sql_type_cast.t line 121.
#          got: '["32767"   ]'
#     expected: '["32767"]'

#   Failed test 'json 2 byte max unsigned int cast to int'
#   at t/90sql_type_cast.t line 121.
#          got: '["65535"   ]'
-- 
H.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/
using perl5.00307 .. 5.17   porting perl5 on HP-UX, AIX, and openSUSE
http://mirrors.develooper.com/hpux/        http://www.test-smoke.org/
http://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/

Reply via email to