[
https://issues.apache.org/jira/browse/AVRO-3999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17854435#comment-17854435
]
ASF subversion and git services commented on AVRO-3999:
-------------------------------------------------------
Commit 072b51fb548c35fee192917ef1d3cdbd944ef53b in avro's branch
refs/heads/main from José Joaquín Atria
[ https://gitbox.apache.org/repos/asf?p=avro.git;h=072b51fb5 ]
AVRO-3999 - Avoid warnings in Perl test suite (#2953)
* Add error message when schema do not match in Perl
When the schema did not match in a call to Avro::BinaryDecoder::decode,
a Avro::Schema::Error::Mismatch error was thrown without a body. This
was generating a warning when trying to stringify an undefined value,
and resulted in the empty string being used as the error message, which
was not veryb informative.
This change adds a message which should solve both issues.
* Do not exit sub via next in Perl tests
This silences a loud warning in xt/schema.t
> Avoid warnings in Perl test suite
> ---------------------------------
>
> Key: AVRO-3999
> URL: https://issues.apache.org/jira/browse/AVRO-3999
> Project: Apache Avro
> Issue Type: Improvement
> Components: perl
> Reporter: José Joaquín Atria
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The test suite generated several warnings which could easily be avoided.
> Specifically an undefined value being stringified in t/03_bin_decode.t, and
> exiting a subroutine via next in xt/schema.t. See output below for
> illustration:
>
> {code:java}
> $ ./build.sh test
> include /home/user/avro/lang/perl/inc/Module/Install.pm
> include inc/Module/Install/Metadata.pm
> include inc/Module/Install/Base.pm
> include inc/Module/Install/ReadmeFromPod.pm
> readme_from lib/Avro.pm to txt
> include inc/Module/Install/Repository.pm
> Cannot determine repository URL
> include inc/Module/Install/MakeMaker.pm
> include inc/Module/Install/Makefile.pm
> Generating a Unix-style Makefile
> Writing Makefile for Avro
> Writing MYMETA.yml and MYMETA.json
> Writing META.yml
> sed -e s/++MODULE_VERSION++/1.12.0-SNAPSHOT/ <lib/Avro/BinaryEncoder.pm
> >blib/lib/Avro/BinaryEncoder.pm
> sed -e s/++MODULE_VERSION++/1.12.0-SNAPSHOT/ <lib/Avro/DataFileWriter.pm
> >blib/lib/Avro/DataFileWriter.pm
> sed -e s/++MODULE_VERSION++/1.12.0-SNAPSHOT/ <lib/Avro/BinaryDecoder.pm
> >blib/lib/Avro/BinaryDecoder.pm
> sed -e s/++MODULE_VERSION++/1.12.0-SNAPSHOT/ <lib/Avro/DataFileReader.pm
> >blib/lib/Avro/DataFileReader.pm
> sed -e s/++MODULE_VERSION++/1.12.0-SNAPSHOT/ <lib/Avro/DataFile.pm
> >blib/lib/Avro/DataFile.pm
> sed -e s/++MODULE_VERSION++/1.12.0-SNAPSHOT/ <lib/Avro/Schema.pm
> >blib/lib/Avro/Schema.pm
> sed -e s/++MODULE_VERSION++/1.12.0-SNAPSHOT/ <lib/Avro/Protocol/Message.pm
> >blib/lib/Avro/Protocol/Message.pm
> sed -e s/++MODULE_VERSION++/1.12.0-SNAPSHOT/ <lib/Avro/Protocol.pm
> >blib/lib/Avro/Protocol.pm
> sed -e s/++MODULE_VERSION++/1.12.0-SNAPSHOT/ <lib/Avro.pm >blib/lib/Avro.pm
> PERL_DL_NONLAZY=1 "/home/user/.perl/perls/perl-5.36.0/bin/perl"
> "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef
> *Test::Harness::Switches; test_harness(0, 'inc', 'blib/lib', 'blib/arch')"
> t/*.t xt/*.t
> t/00_compile.t ..... ok
> t/01_names.t ....... ok
> t/01_schema.t ...... ok
> t/02_bin_encode.t .. ok
> t/03_bin_decode.t .. 1/? Use of uninitialized value in concatenation (.) or
> string at /home/user/.perl/perls/perl-5.36.0/lib/site_perl/5.36.0/Error.pm
> line 288.
> t/03_bin_decode.t .. ok
> t/04_datafile.t .... ok
> t/05_protocol.t .... ok
> xt/interop.t ....... ok
> xt/pod.t ........... ok
> xt/schema.t ........ 1/? Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> Exiting subroutine via next at xt/schema.t line 26.
> xt/schema.t ........ ok
> All tests successful.
> Files=10, Tests=342, 3 wallclock secs ( 0.11 usr 0.06 sys + 1.81 cusr
> 0.47 csys = 2.45 CPU)
> Result: PASS {code}
> Spurious warnings should be avoided so that when a legitimate warning does
> appear there is less noise to wade through to spot it.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)