Re: 1.524
"Martin J. Evans" <[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.dbi.sybase.devel |
|---|---|
| Message-ID | <[email protected]> |
On 25/03/13 11:51, Tim Bunce wrote:
> On Sun, Mar 24, 2013 at 09:08:33PM +0100, H.Merijn Brand wrote:
>> 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)
What are those claims - is he claiming Perl has broken JSON::XS by any chance?
>> The formatted output - I might have an output patch applied to make the
>> output style meet our requirements - causes this mismatch.
>
> Am I right in thinking that the goal of the JSON::XS test is to check
> whether JSON::XS puts quotes around values?
It was a check to make sure that JSON::XS saw numbers in Perl as numbers and not strings and so does not put quotes around them - the DiscardString bit.
> I'd suggest adding s/\s+//g, plus a comment, to make that explicit.
Why are there extra spaces in the result - there are not when I run it.
Something else seems horribly broken here - admittedly I've not been keeping up.
> Tim.
Martin
>
>> 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/
>