Mailing List Archive

5.38.0 on FreeBSD 14.0 AMD64 : Failed 4 tests out of 2529, 99.84% okay.
Dear Perl folks :

The config and compile on a FreeBSD 14.0 AMD64 machine seemed to go
really well. Except for a few tests? I am curious how to dig out some
more info about these four failures :

.
.
.
t/porting/utils .................................................. skipped
Failed 4 tests out of 2529, 99.84% okay.
../cpan/Archive-Tar/t/09_roundtrip.t
../cpan/autodie/t/chmod.t
../cpan/autodie/t/chown.t
../cpan/autodie/t/utime.t
### Since not all tests were successful, you may want to run some of
### them individually and examine any diagnostic messages they produce.
### See the INSTALL document's section on "make test".
### You have a good chance to get more information by running
### ./perl harness
### in the 't' directory since most (>=80%) of the tests succeeded.
### You may have to set your dynamic library search path,
### LD_LIBRARY_PATH, to point to the build directory:
### setenv LD_LIBRARY_PATH `pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
### LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd
t; ./perl harness
### export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
### for csh-style shells, like tcsh; or for traditional/modern
### Bourne-style shells, like bash, ksh, and zsh, respectively.
Elapsed: 3300 sec
u=34.88 s=8.80 cu=2840.75 cs=217.87 scripts=2529 tests=1183531
*** Error code 1

Stop.
make: stopped in /opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001

So at this point I follow the instructions and do the "./perl harness"
goodness inside the "./t" directory. Then I see a pile of tests are
not run for a variety of reasons and excuses and some are just outright
mysterious to me. However I finally see :


# Failed test 'src/long/bar.tar roundtrip on file names'
# at t/09_roundtrip.t line 228.
# Structures begin differing at:
# $got->[2] = 'directory'
# $expected->[2] = 'directory/'
gnutar: Invalid blocksize 9729 bytes.
gnutar: No error: 0. Sync pipe read error pid 92477 ret 0
gnutar: No error: 0. Ib 0 Ob 1 e 0 p 0 g 10 chan 5.
gnutar: No error: 0. Sync pipe EOF error pid 92477 ret 0

# Failed test 'Failed running 'gnutar tvf
src/linktest/linktest_with_dir.tar''
# at t/09_roundtrip.t line 191.

# Failed test 'src/long/foo.tgz roundtrip on file names'
# at t/09_roundtrip.t line 228.
# Structures begin differing at:
# $got->[2] = 'directory'
# $expected->[2] = 'directory/'

# Failed test 'src/long/foo.tbz roundtrip on file names'
# at t/09_roundtrip.t line 228.
# Structures begin differing at:
# $got->[2] = 'directory'
# $expected->[2] = 'directory/'
# Looks like you failed 4 tests of 7.
../cpan/Archive-Tar/t/09_roundtrip.t .................................
Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/7 subtests


# Failed test 'We can chmod ourselves just fine.'
# at t/chmod.t line 20.

# Failed test 'Confirm autodie on a 'true' chown failure.'
# at t/chmod.t line 24.
# got: '0'
# expected: '1'
# Looks like you failed 2 tests of 7.
../cpan/autodie/t/chmod.t ............................................
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/7 subtests

# Failed test 'Can chown ourselves just fine.'
# at t/chown.t line 24.

# Failed test 'Confirm we're dying on a 'true' chown failure.'
# at t/chown.t line 28.
# got: '0'
# expected: '1'
# Looks like you failed 2 tests of 4.
../cpan/autodie/t/chown.t ............................................
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/4 subtests


The above makes no sense whatsoever.
Why can I not chown/chmod/touch a file that I own?

# Failed test 'We can utime a file just fine.'
# at t/utime.t line 16.
# Can't utime(undef, undef,
'/opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001/cpan/autodie/t/touch_me'):
Permission denied at t/utime.t line 15

# Failed test 'utime fails correctly on a 'true' failure.'
# at t/utime.t line 20.
# got: '0'
# expected: '1'
Can't utime('1688931151', '1550483961',
'/opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001/cpan/autodie/t/touch_me'):
Operation not permitted at t/utime.t line 24
# Looks like your test exited with 1 just after 4.
../cpan/autodie/t/utime.t ............................................
Dubious, test returned 1 (wstat 256, 0x100)
Failed 2/4 subtests

Then some tests that just simply are not run for a variety of excuses
and reasons :

../cpan/autodie/t/version.t ..........................................
skipped: Release test. Set $ENV{RELEASE_TESTING} to true to run.
../cpan/bignum/t/backend-gmp-bigfloat.t ..............................
skipped: Math::BigInt::GMP not installed
../cpan/bignum/t/backend-gmp-bigint.t ................................
skipped: Math::BigInt::GMP not installed
../cpan/bignum/t/backend-gmp-bignum.t ................................
skipped: Math::BigInt::GMP not installed
../cpan/bignum/t/backend-gmp-bigrat.t ................................
skipped: Math::BigInt::GMP not installed
../cpan/bignum/t/backend-pari-bigfloat.t .............................
skipped: Math::BigInt::Pari not installed
../cpan/bignum/t/backend-pari-bigint.t ...............................
skipped: Math::BigInt::Pari not installed
../cpan/bignum/t/backend-pari-bignum.t ...............................
skipped: Math::BigInt::Pari not installed
../cpan/bignum/t/backend-pari-bigrat.t ...............................
skipped: Math::BigInt::Pari not installed


Why are "lengthy" tests not being run ?
../cpan/Compress-Raw-Zlib/t/07bufsize.t ..............................
skipped: Lengthy Tests Disabled

Threads are certainly supported on FreeBSD but perhaps this is a Perl
config issue?

../cpan/DB_File/t/db-threads.t .......................................
skipped: Threads are disabled


This one is just charming :

../cpan/Test-Simple/t/Test2/regression/gh_16.t .......................
skipped: Crazy test, only run on 5.20+, or when AUTHOR_TESTING is set

OKay. Crazy. I can get into that.


How do I enable this sort of testing ?

../cpan/Time-Piece/t/06large.t .......................................
skipped: Large time tests not required for installation


Why do these even exist in 5.38.0 ??


../dist/base/t/fields-5_6_0.t ........................................
skipped: pseudo-hashes removed in 5.9.0
../dist/base/t/fields-5_8_0.t ........................................
skipped: pseudo-hashes removed in 5.9.0


../dist/Data-Dumper/t/huge.t .........................................
skipped: Need ~10 GiB of core for this test
../dist/Storable/t/huge.t ............................................
skipped: Need ~4 GiB memory for this test, set PERL_TEST_MEMORY > 4
../dist/Storable/t/hugeids.t .........................................
skipped: Need ~8 GiB memory for this test, set PERL_TEST_MEMORY >= 8



../lib/Unicode/testnorm.t ............................................
skipped: Lengthy Tests Disabled; to enable set environmentvariable
$ENV{PERL_DEBUG_FULL_TEST} to a true value


Ah ha! finally some information in there.

Must be a document somewhere that tells me how to do some of these
tests. I guess some magic environment variables are needed? One thing
that *must* be true is that I can certainly chown/chmod/touch a file
that I own.

I would just *love* some input here as FreeBSD 14.0 should be released
sometime this year. Perl is sort of, you know, essential goodness.


--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
Four decades in production systems.
Beard installation in progress.
Belt and Suspenders functionality strained.
Re: 5.38.0 on FreeBSD 14.0 AMD64 : Failed 4 tests out of 2529, 99.84% okay. [ In reply to ]
On Mon, 10 Jul 2023 at 17:50, Dennis Clarke via perl5-porters <
perl5-porters@perl.org> wrote:

>
> Dear Perl folks :
>
> The config and compile on a FreeBSD 14.0 AMD64 machine seemed to go
> really well. Except for a few tests? I am curious how to dig out some
> more info about these four failures :
>
> .
> .
> .
> t/porting/utils .................................................. skipped
> Failed 4 tests out of 2529, 99.84% okay.
> ../cpan/Archive-Tar/t/09_roundtrip.t
> ../cpan/autodie/t/chmod.t
> ../cpan/autodie/t/chown.t
> ../cpan/autodie/t/utime.t
> ### Since not all tests were successful, you may want to run some of
> ### them individually and examine any diagnostic messages they produce.
> ### See the INSTALL document's section on "make test".
> ### You have a good chance to get more information by running
> ### ./perl harness
> ### in the 't' directory since most (>=80%) of the tests succeeded.
> ### You may have to set your dynamic library search path,
> ### LD_LIBRARY_PATH, to point to the build directory:
> ### setenv LD_LIBRARY_PATH `pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
> ### LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd
> t; ./perl harness
> ### export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
> ### for csh-style shells, like tcsh; or for traditional/modern
> ### Bourne-style shells, like bash, ksh, and zsh, respectively.
> Elapsed: 3300 sec
> u=34.88 s=8.80 cu=2840.75 cs=217.87 scripts=2529 tests=1183531
> *** Error code 1
>
> Stop.
> make: stopped in /opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001
>
> So at this point I follow the instructions and do the "./perl harness"
> goodness inside the "./t" directory.


You dont need to change directory:

make test_harness TEST_ARGS="-re autodie"
make test_harness TEST_ARGS="-re Archive-Tar"

You can add "-v" in front of the -re if you wish.

Then I see a pile of tests are
> not run for a variety of reasons and excuses and some are just outright
> mysterious to me. However I finally see :
>
>
> # Failed test 'src/long/bar.tar roundtrip on file names'
> # at t/09_roundtrip.t line 228.
> # Structures begin differing at:
> # $got->[2] = 'directory'
> # $expected->[2] = 'directory/'
> gnutar: Invalid blocksize 9729 bytes.
> gnutar: No error: 0. Sync pipe read error pid 92477 ret 0
> gnutar: No error: 0. Ib 0 Ob 1 e 0 p 0 g 10 chan 5.
> gnutar: No error: 0. Sync pipe EOF error pid 92477 ret 0
>
> # Failed test 'Failed running 'gnutar tvf
> src/linktest/linktest_with_dir.tar''
> # at t/09_roundtrip.t line 191.
>
> # Failed test 'src/long/foo.tgz roundtrip on file names'
> # at t/09_roundtrip.t line 228.
> # Structures begin differing at:
> # $got->[2] = 'directory'
> # $expected->[2] = 'directory/'
>
> # Failed test 'src/long/foo.tbz roundtrip on file names'
> # at t/09_roundtrip.t line 228.
> # Structures begin differing at:
> # $got->[2] = 'directory'
> # $expected->[2] = 'directory/'
> # Looks like you failed 4 tests of 7.
> ../cpan/Archive-Tar/t/09_roundtrip.t .................................
> Dubious, test returned 4 (wstat 1024, 0x400)
> Failed 4/7 subtests
>

It looks like there is some kind of interop problem with your installed
version of gnu tar.


>
> # Failed test 'We can chmod ourselves just fine.'
> # at t/chmod.t line 20.
>
> # Failed test 'Confirm autodie on a 'true' chown failure.'
> # at t/chmod.t line 24.
> # got: '0'
> # expected: '1'
> # Looks like you failed 2 tests of 7.
> ../cpan/autodie/t/chmod.t ............................................
> Dubious, test returned 2 (wstat 512, 0x200)
> Failed 2/7 subtests
>
> # Failed test 'Can chown ourselves just fine.'
> # at t/chown.t line 24.
>
> # Failed test 'Confirm we're dying on a 'true' chown failure.'
> # at t/chown.t line 28.
> # got: '0'
> # expected: '1'
> # Looks like you failed 2 tests of 4.
> ../cpan/autodie/t/chown.t ............................................
> Dubious, test returned 2 (wstat 512, 0x200)
> Failed 2/4 subtests
>
>
> The above makes no sense whatsoever.
> Why can I not chown/chmod/touch a file that I own?
>

Is there any chance of some kind of race condition for your tests?


>
> # Failed test 'We can utime a file just fine.'
> # at t/utime.t line 16.
> # Can't utime(undef, undef,
> '/opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001/cpan/autodie/t/touch_me'):
> Permission denied at t/utime.t line 15
>
> # Failed test 'utime fails correctly on a 'true' failure.'
> # at t/utime.t line 20.
> # got: '0'
> # expected: '1'
> Can't utime('1688931151', '1550483961',
> '/opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001/cpan/autodie/t/touch_me'):
> Operation not permitted at t/utime.t line 24
> # Looks like your test exited with 1 just after 4.
> ../cpan/autodie/t/utime.t ............................................
> Dubious, test returned 1 (wstat 256, 0x100)
> Failed 2/4 subtests
>

Is it possible you have not set up permissions on these directories
properly?


>
> Then some tests that just simply are not run for a variety of excuses
> and reasons :
>
> ../cpan/autodie/t/version.t ..........................................
> skipped: Release test. Set $ENV{RELEASE_TESTING} to true to run.
> ../cpan/bignum/t/backend-gmp-bigfloat.t ..............................
> skipped: Math::BigInt::GMP not installed
> ../cpan/bignum/t/backend-gmp-bigint.t ................................
> skipped: Math::BigInt::GMP not installed
> ../cpan/bignum/t/backend-gmp-bignum.t ................................
> skipped: Math::BigInt::GMP not installed
> ../cpan/bignum/t/backend-gmp-bigrat.t ................................
> skipped: Math::BigInt::GMP not installed
> ../cpan/bignum/t/backend-pari-bigfloat.t .............................
> skipped: Math::BigInt::Pari not installed
> ../cpan/bignum/t/backend-pari-bigint.t ...............................
> skipped: Math::BigInt::Pari not installed
> ../cpan/bignum/t/backend-pari-bignum.t ...............................
> skipped: Math::BigInt::Pari not installed
> ../cpan/bignum/t/backend-pari-bigrat.t ...............................
> skipped: Math::BigInt::Pari not installed
>

This is normal. Anything in the cpan/ directory is released to cpan
independently as a module, and may contain tests that only make sense when
it is installed that way, which may also involve modules that are not
distributed with perl itself.


>
>
> Why are "lengthy" tests not being run ?
> ../cpan/Compress-Raw-Zlib/t/07bufsize.t ..............................
> skipped: Lengthy Tests Disabled
>

Because they take a long time and normally they do not fail, these tests
are run every PR we push, so we disable some of them by default. They only
need to be run if something is going wrong and we want to be very thorough.


>
> Threads are certainly supported on FreeBSD but perhaps this is a Perl
> config issue?
>
> ../cpan/DB_File/t/db-threads.t .......................................
> skipped: Threads are disabled
>

You have to tell perl to build with threads support during the Configure
process. For a bug report we need to see your perl -V, which will likely
tell us that you have not configured for threads support.


>
>
> This one is just charming :
>
> ../cpan/Test-Simple/t/Test2/regression/gh_16.t .......................
> skipped: Crazy test, only run on 5.20+, or when AUTHOR_TESTING is set
>
> OKay. Crazy. I can get into that.
>
>
> How do I enable this sort of testing ?
>

Normally you don't. But you could

export AUTHOR_TESTING=1

and see what happens.


> ../cpan/Time-Piece/t/06large.t .......................................
> skipped: Large time tests not required for installation
>
>
> Why do these even exist in 5.38.0 ??
>

Because the code in cpan/ is imported from files that are maintained on
CPAN, and they might make sense in some other context, but do not make
sense when run as part of the core build process.


>
>
> ../dist/base/t/fields-5_6_0.t ........................................
> skipped: pseudo-hashes removed in 5.9.0
> ../dist/base/t/fields-5_8_0.t ........................................
> skipped: pseudo-hashes removed in 5.9.0
>
>
> ../dist/Data-Dumper/t/huge.t .........................................
> skipped: Need ~10 GiB of core for this test
> ../dist/Storable/t/huge.t ............................................
> skipped: Need ~4 GiB memory for this test, set PERL_TEST_MEMORY > 4
> ../dist/Storable/t/hugeids.t .........................................
> skipped: Need ~8 GiB memory for this test, set PERL_TEST_MEMORY >= 8
>
>
>
> ../lib/Unicode/testnorm.t ............................................
> skipped: Lengthy Tests Disabled; to enable set environmentvariable
> $ENV{PERL_DEBUG_FULL_TEST} to a true value
>
>
> Ah ha! finally some information in there.
>
> Must be a document somewhere that tells me how to do some of these
> tests. I guess some magic environment variables are needed? One thing
> that *must* be true is that I can certainly chown/chmod/touch a file
> that I own.
>

Generally these tests are not relevant for your context.


> I would just *love* some input here as FreeBSD 14.0 should be released
> sometime this year. Perl is sort of, you know, essential goodness.
>

The Archive-Tar and autodie test failures are interesting and may represent
a roadblock for this, but the rest are not.

Please file a ticket on github along with the output of perl -V. If you
have no installed the perl you may need to do this:

./perl -Ilib -V

we probably cant help you without the output of that command.

Yves

--
perl -Mre=debug -e "/just|another|perl|hacker/"
Re: 5.38.0 on FreeBSD 14.0 AMD64 : Failed 4 tests out of 2529, 99.84% okay. [ In reply to ]
On 7/10/23 12:55, demerphq wrote:
> On Mon, 10 Jul 2023 at 17:50, Dennis Clarke via perl5-porters <
> perl5-porters@perl.org> wrote:
>
>>
>> Dear Perl folks :
>>
>> The config and compile on a FreeBSD 14.0 AMD64 machine seemed to go
>> really well. Except for a few tests? I am curious how to dig out some
>> more info about these four failures :
>>
>> .
>> .
>> .
>> t/porting/utils .................................................. skipped
>> Failed 4 tests out of 2529, 99.84% okay.
>> ../cpan/Archive-Tar/t/09_roundtrip.t
>> ../cpan/autodie/t/chmod.t
>> ../cpan/autodie/t/chown.t
>> ../cpan/autodie/t/utime.t
>> ### Since not all tests were successful, you may want to run some of
>> ### them individually and examine any diagnostic messages they produce.
>> ### See the INSTALL document's section on "make test".
>> ### You have a good chance to get more information by running
>> ### ./perl harness
>> ### in the 't' directory since most (>=80%) of the tests succeeded.
>> ### You may have to set your dynamic library search path,
>> ### LD_LIBRARY_PATH, to point to the build directory:
>> ### setenv LD_LIBRARY_PATH `pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
>> ### LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd
>> t; ./perl harness
>> ### export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; cd t; ./perl harness
>> ### for csh-style shells, like tcsh; or for traditional/modern
>> ### Bourne-style shells, like bash, ksh, and zsh, respectively.
>> Elapsed: 3300 sec
>> u=34.88 s=8.80 cu=2840.75 cs=217.87 scripts=2529 tests=1183531
>> *** Error code 1
>>
>> Stop.
>> make: stopped in /opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001
>>
>> So at this point I follow the instructions and do the "./perl harness"
>> goodness inside the "./t" directory.
>
>
> You dont need to change directory:
>

OKay. I was just following the instructions on the screen.

> make test_harness TEST_ARGS="-re autodie"
> make test_harness TEST_ARGS="-re Archive-Tar"
>
> You can add "-v" in front of the -re if you wish.
>

I may give that a try also.


> Then I see a pile of tests are
>> not run for a variety of reasons and excuses and some are just outright
>> mysterious to me. However I finally see :
>>
>>
>> # Failed test 'src/long/bar.tar roundtrip on file names'
>> # at t/09_roundtrip.t line 228.
>> # Structures begin differing at:
>> # $got->[2] = 'directory'
>> # $expected->[2] = 'directory/'
>> gnutar: Invalid blocksize 9729 bytes.
>> gnutar: No error: 0. Sync pipe read error pid 92477 ret 0
>> gnutar: No error: 0. Ib 0 Ob 1 e 0 p 0 g 10 chan 5.
>> gnutar: No error: 0. Sync pipe EOF error pid 92477 ret 0
>>
>> # Failed test 'Failed running 'gnutar tvf
>> src/linktest/linktest_with_dir.tar''
>> # at t/09_roundtrip.t line 191.
>>
>> # Failed test 'src/long/foo.tgz roundtrip on file names'
>> # at t/09_roundtrip.t line 228.
>> # Structures begin differing at:
>> # $got->[2] = 'directory'
>> # $expected->[2] = 'directory/'
>>
>> # Failed test 'src/long/foo.tbz roundtrip on file names'
>> # at t/09_roundtrip.t line 228.
>> # Structures begin differing at:
>> # $got->[2] = 'directory'
>> # $expected->[2] = 'directory/'
>> # Looks like you failed 4 tests of 7.
>> ../cpan/Archive-Tar/t/09_roundtrip.t .................................
>> Dubious, test returned 4 (wstat 1024, 0x400)
>> Failed 4/7 subtests
>>
>
> It looks like there is some kind of interop problem with your installed
> version of gnu tar.
>

Well, this is a FreeBSD UNIX machine. There is no GNU tar here.

hydra$
hydra$ uname -apKU
FreeBSD hydra 14.0-CURRENT FreeBSD 14.0-CURRENT #2
main-n264010-8df38859d0f9: Fri Jul 7 21:38:34 UTC 2023
root@hydra:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 amd64 1400093
1400093
hydra$
hydra$ which tar
/usr/bin/tar
hydra$



>
>>
>> # Failed test 'We can chmod ourselves just fine.'
>> # at t/chmod.t line 20.
>>
>> # Failed test 'Confirm autodie on a 'true' chown failure.'
>> # at t/chmod.t line 24.
>> # got: '0'
>> # expected: '1'
>> # Looks like you failed 2 tests of 7.
>> ../cpan/autodie/t/chmod.t ............................................
>> Dubious, test returned 2 (wstat 512, 0x200)
>> Failed 2/7 subtests
>>
>> # Failed test 'Can chown ourselves just fine.'
>> # at t/chown.t line 24.
>>
>> # Failed test 'Confirm we're dying on a 'true' chown failure.'
>> # at t/chown.t line 28.
>> # got: '0'
>> # expected: '1'
>> # Looks like you failed 2 tests of 4.
>> ../cpan/autodie/t/chown.t ............................................
>> Dubious, test returned 2 (wstat 512, 0x200)
>> Failed 2/4 subtests
>>
>>
>> The above makes no sense whatsoever.
>> Why can I not chown/chmod/touch a file that I own?
>>
>
> Is there any chance of some kind of race condition for your tests?

I would not expect that. Then again how could I know?

>>
>> # Failed test 'We can utime a file just fine.'
>> # at t/utime.t line 16.
>> # Can't utime(undef, undef,
>> '/opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001/cpan/autodie/t/touch_me'):
>> Permission denied at t/utime.t line 15
>>
>> # Failed test 'utime fails correctly on a 'true' failure.'
>> # at t/utime.t line 20.
>> # got: '0'
>> # expected: '1'
>> Can't utime('1688931151', '1550483961',
>> '/opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001/cpan/autodie/t/touch_me'):
>> Operation not permitted at t/utime.t line 24
>> # Looks like your test exited with 1 just after 4.
>> ../cpan/autodie/t/utime.t ............................................
>> Dubious, test returned 1 (wstat 256, 0x100)
>> Failed 2/4 subtests
>>
>
> Is it possible you have not set up permissions on these directories
> properly?
>

Ah ha! Turns out that doing an out of tree compile ( the only way I have
ever built Perl ) results in a symlink back to the source tree.
That source tree is all owned by whomever created the original source
tarball :

hydra$
hydra$ pwd
/opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001/t
hydra$
hydra$ ls -lad ../cpan
drwxr-x--- 76 dclarke devl 77 Jul 9 17:28 ../cpan
hydra$ ls -lad ../cpan/autodie
drwxr-x--- 4 dclarke devl 5 Jul 9 17:48 ../cpan/autodie
hydra$ ls -lad ../cpan/autodie/t
drwxr-x--- 3 dclarke devl 63 Jul 10 17:40 ../cpan/autodie/t
hydra$ ls -lad ../cpan/autodie/t/touch_me
lrwxr-x--- 1 dclarke devl 49 Jul 9 17:28 ../cpan/autodie/t/touch_me
-> /opt/bw/build/perl-5.38.0/cpan/autodie/t/touch_me
hydra$

hydra$
hydra$ ls -ladb /opt/bw/build/perl-5.38.0
drwxr-xr-x 23 501 staff 242 Jul 2 22:26 /opt/bw/build/perl-5.38.0
hydra$

That test should NOT ever try to modify the source tree. I think the
test has a bug wherein the target file *should* be owned/created by the
user running the tests. Someplace like /tmp or /var/tmp or even in the
actual "./t" directory where Perl was built.

Feels like a test bug.

>
>>
>> Then some tests that just simply are not run for a variety of excuses
>> and reasons :
>>
>> ../cpan/autodie/t/version.t ..........................................
>> skipped: Release test. Set $ENV{RELEASE_TESTING} to true to run.
>> ../cpan/bignum/t/backend-gmp-bigfloat.t ..............................
>> skipped: Math::BigInt::GMP not installed
>> ../cpan/bignum/t/backend-gmp-bigint.t ................................
>> skipped: Math::BigInt::GMP not installed
>> ../cpan/bignum/t/backend-gmp-bignum.t ................................
>> skipped: Math::BigInt::GMP not installed
>> ../cpan/bignum/t/backend-gmp-bigrat.t ................................
>> skipped: Math::BigInt::GMP not installed
>> ../cpan/bignum/t/backend-pari-bigfloat.t .............................
>> skipped: Math::BigInt::Pari not installed
>> ../cpan/bignum/t/backend-pari-bigint.t ...............................
>> skipped: Math::BigInt::Pari not installed
>> ../cpan/bignum/t/backend-pari-bignum.t ...............................
>> skipped: Math::BigInt::Pari not installed
>> ../cpan/bignum/t/backend-pari-bigrat.t ...............................
>> skipped: Math::BigInt::Pari not installed
>>
>
> This is normal. Anything in the cpan/ directory is released to cpan
> independently as a module, and may contain tests that only make sense when
> it is installed that way, which may also involve modules that are not
> distributed with perl itself.
>

OKay. Seems reasonable.


>
>>
>>
>> Why are "lengthy" tests not being run ?
>> ../cpan/Compress-Raw-Zlib/t/07bufsize.t ..............................
>> skipped: Lengthy Tests Disabled
>>
>
> Because they take a long time and normally they do not fail, these tests
> are run every PR we push, so we disable some of them by default. They only
> need to be run if something is going wrong and we want to be very thorough.
>

Well, here I did see something wrong with my test results. So I figure
why not re-run everything. Just to be, as you say, thorough.


>
>>
>> Threads are certainly supported on FreeBSD but perhaps this is a Perl
>> config issue?
>>
>> ../cpan/DB_File/t/db-threads.t .......................................
>> skipped: Threads are disabled
>>
>
> You have to tell perl to build with threads support during the Configure
> process. For a bug report we need to see your perl -V, which will likely
> tell us that you have not configured for threads support.
>

Ah ha. That makes perfect sense!

hydra$
hydra$ which perl
/opt/bw/bin/perl
hydra$ perl -V
Summary of my perl5 (revision 5 version 38 subversion 0) configuration:

Platform:
osname=freebsd
osvers=14.0-current
archname=amd64-freebsd-ld
uname='freebsd hydra 14.0-current freebsd 14.0-current #2
main-n264010-8df38859d0f9: fri jul 7 21:38:34 utc 2023
root@hydra:usrobjusrsrcamd64.amd64sysgeneric amd64 '
config_args='-Dprefix=/opt/bw -Dmksymlinks
-Accflags=-std=iso9899:2011 -m64 -g -O0 -fno-fast-math -fno-builtin
-Wl,-rpath=/opt/bw/lib,--enable-new-dtags'
hint=recommended
useposix=true
d_sigaction=define
useithreads=undef
usemultiplicity=undef
use64bitint=define
use64bitall=define
uselongdouble=define
usemymalloc=n
default_inc_excludes_dot=define
Compiler:
cc='cc'
ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -std=iso9899:2011
-m64 -g -O0 -fno-fast-math -fno-builtin
-Wl,-rpath=/opt/bw/lib,--enable-new-dtags -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include'
optimize='-g -O0 -fno-fast-math -fno-builtin'
cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -std=iso9899:2011
-m64 -g -O0 -fno-fast-math -fno-builtin
-Wl,-rpath=/opt/bw/lib,--enable-new-dtags -fno-strict-aliasing -pipe
-fstack-protector-strong -I/usr/local/include'
ccversion=''
gccversion='FreeBSD Clang 16.0.6
(https://github.com/llvm/llvm-project.git llvmorg-16.0.6-0-g7cbf1a259152)'
gccosandvers=''
intsize=4
longsize=8
ptrsize=8
doublesize=8
byteorder=12345678
doublekind=3
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=16
longdblkind=3
ivtype='long'
ivsize=8
nvtype='long double'
nvsize=16
Off_t='off_t'
lseeksize=8
alignbytes=16
prototype=define
Linker and Libraries:
ld='cc'
ldflags ='-Wl,-E -fstack-protector-strong -L/usr/local/lib'
libpth=/opt/bw/lib /usr/lib /usr/local/lib /usr/lib/clang/16/lib
libs=-lpthread -lgdbm -ldl -lm -lcrypt -lutil -lc
perllibs=-lpthread -ldl -lm -lcrypt -lutil -lc
libc=
so=so
useshrplib=true
libperl=libperl.so
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags=' -Wl,-R/opt/bw/lib/perl5/5.38.0/amd64-freebsd-ld/CORE'
cccdlflags='-DPIC -fPIC'
lddlflags='-shared -L/usr/local/lib -fstack-protector-strong'


Characteristics of this binary (from libperl):
Compile-time options:
HAS_LONG_DOUBLE
HAS_STRTOLD
HAS_TIMES
PERLIO_LAYERS
PERL_COPY_ON_WRITE
PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_SIPHASH13
PERL_HASH_USE_SBOX32
PERL_MALLOC_WRAP
PERL_OP_PARENT
PERL_PRESERVE_IVUV
PERL_USE_SAFE_PUTENV
USE_64_BIT_ALL
USE_64_BIT_INT
USE_LARGE_FILES
USE_LOCALE
USE_LOCALE_COLLATE
USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC
USE_LOCALE_TIME
USE_LONG_DOUBLE
USE_PERLIO
USE_PERL_ATOF
Built under freebsd
Compiled at Jul 9 2023 17:51:42
%ENV:
PERL_DEBUG_FULL_TEST="1"
PERL_TEST_MEMORY="10"
@INC:
/opt/bw/lib/perl5/site_perl/5.38.0/amd64-freebsd-ld
/opt/bw/lib/perl5/site_perl/5.38.0
/opt/bw/lib/perl5/5.38.0/amd64-freebsd-ld
/opt/bw/lib/perl5/5.38.0
hydra$


>
>>
>>
>> This one is just charming :
>>
>> ../cpan/Test-Simple/t/Test2/regression/gh_16.t .......................
>> skipped: Crazy test, only run on 5.20+, or when AUTHOR_TESTING is set
>>
>> OKay. Crazy. I can get into that.
>>
>>
>> How do I enable this sort of testing ?
>>
>
> Normally you don't. But you could
>
> export AUTHOR_TESTING=1
>
> and see what happens.
>

Excellent. I did all that!

AUTHOR_TESTING=1
PERL_DEBUG_FULL_TEST=1
PERL_TEST_MEMORY=10
RELEASE_TESTING=1

Those goodies did result in some interesting behavior :

Test Summary Report
-------------------
bigmem/hash.t
(Wstat: 256 (exited 1) Tests: 1 Failed: 0)
Non-zero exit status: 1
Parse errors: Bad plan. You planned 2 tests but ran 1.
../cpan/Archive-Tar/t/09_roundtrip.t
(Wstat: 1024 (exited 4) Tests: 7 Failed: 4)
Failed tests: 4-7
Non-zero exit status: 4
../cpan/Test-Simple/t/Test2/modules/Formatter/TAP.t
(Wstat: 512 (exited 2) Tests: 11 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
../cpan/autodie/t/utime.t
(Wstat: 256 (exited 1) Tests: 4 Failed: 2)
Failed tests: 2, 4
Non-zero exit status: 1
../cpan/autodie/t/chown.t
(Wstat: 512 (exited 2) Tests: 4 Failed: 2)
Failed tests: 2, 4
Non-zero exit status: 2
../cpan/autodie/t/chmod.t
(Wstat: 512 (exited 2) Tests: 7 Failed: 2)
Failed tests: 5, 7
Non-zero exit status: 2
Files=2774, Tests=4047412, 6187 wallclock secs (1119.13 usr 63.64 sys +
5202.98 cusr 412.52 csys = 6798.27 CPU)
Result: FAIL
Finished test run at Mon Jul 10 17:59:33 2023.

I saw some things like :

# skip huge array, need PERL_TEST_MEMORY >= 55
# skip huge hash, need PERL_TEST_MEMORY >= 96

We know the issue here :

../cpan/IO-Socket-IP/t/19no-addrs.t .................................. ok

# Failed test 'We can chmod ourselves just fine.'
# at t/chmod.t line 20.

# Failed test 'Confirm autodie on a 'true' chown failure.'
# at t/chmod.t line 24.
# got: '0'
# expected: '1'
# Looks like you failed 2 tests of 7.
../cpan/autodie/t/chmod.t ............................................
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/7 subtests

../cpan/Test-Simple/t/regression/fork_first.t ........................ ok

# Failed test 'Can chown ourselves just fine.'
# at t/chown.t line 24.

# Failed test 'Confirm we're dying on a 'true' chown failure.'
# at t/chown.t line 28.
# got: '0'
# expected: '1'
# Looks like you failed 2 tests of 4.
../cpan/autodie/t/chown.t ............................................
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/4 subtests


# Failed test 'We can utime a file just fine.'
# at t/utime.t line 16.
# Can't utime(undef, undef,
'/opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001/cpan/autodie/t/touch_me'):
Permission denied at t/utime.t line 15

# Failed test 'utime fails correctly on a 'true' failure.'
# at t/utime.t line 20.
# got: '0'
# expected: '1'
Can't utime('1688931151', '1550483961',
'/opt/bw/build/perl-5.38.0_FreeBSD14_amd64.001/cpan/autodie/t/touch_me'):
Operation not permitted at t/utime.t line 24
# Looks like your test exited with 1 just after 4.
../cpan/autodie/t/utime.t ............................................
Dubious, test returned 1 (wstat 256, 0x100)
Failed 2/4 subtests



Yep. Messing with a symlink back to the source tree which is not
modifiable by me.

There were other fun things seen :

../cpan/Test-Harness/t/compat/env_opts.t ............................. ok
You are running this test under AUTHOR_TESTING, doing so requires
Term::Table to be installed, but it is not currently installed, this is
a fatal error. Please install Term::Table before attempting to run this
test under AUTHOR_TESTING. at t/Test2/modules/Formatter/TAP.t line 1023.
../cpan/Test-Simple/t/Test2/modules/Formatter/TAP.t ..................
Dubious, test returned 2 (wstat 512, 0x200)
All 11 subtests passed

This looks like some oddity related to GNU tar :

../cpan/Test-Simple/t/Test2/behavior/ipc_wait_timeout.t .............. ok

# Failed test 'src/long/bar.tar roundtrip on file names'
# at t/09_roundtrip.t line 228.
# Structures begin differing at:
# $got->[2] = 'directory'
# $expected->[2] = 'directory/'
gnutar: Invalid blocksize 9729 bytes.
gnutar: No error: 0. Sync pipe read error pid 12915 ret 0
gnutar: No error: 0. Ib 0 Ob 1 e 0 p 0 g 10 chan 5.
gnutar: No error: 0. Sync pipe EOF error pid 12915 ret 0

# Failed test 'Failed running 'gnutar tvf
src/linktest/linktest_with_dir.tar''
# at t/09_roundtrip.t line 191.

# Failed test 'src/long/foo.tgz roundtrip on file names'
# at t/09_roundtrip.t line 228.
# Structures begin differing at:
# $got->[2] = 'directory'
# $expected->[2] = 'directory/'

# Failed test 'src/long/foo.tbz roundtrip on file names'
# at t/09_roundtrip.t line 228.
# Structures begin differing at:
# $got->[2] = 'directory'
# $expected->[2] = 'directory/'
# Looks like you failed 4 tests of 7.
../cpan/Archive-Tar/t/09_roundtrip.t .................................
Dubious, test returned 4 (wstat 1024, 0x400)
Failed 4/7 subtests


I think I have figured out what is the cause of this. I will dig around
and fix it.

This however looks like fun :

Out of memory!
# Looks like you planned 2 tests but ran 1.
bigmem/hash.t ........................................................
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/2 subtests

So I have no idea what number to give to PERL_TEST_MEMORY.

>


> Generally these tests are not relevant for your context.
>

Yep, I agree. I think the only four tests that actually fail in the
beginning of all this are related to a weird symlink into a source tree
that really should not be touched at all. I like to protect the source
tree from the user doing the config/compile/test etc.



>
>> I would just *love* some input here as FreeBSD 14.0 should be released
>> sometime this year. Perl is sort of, you know, essential goodness.
>>
>
> The Archive-Tar and autodie test failures are interesting and may represent
> a roadblock for this, but the rest are not.

I have that sorted out. I think.


>
> Please file a ticket on github along with the output of perl -V. If you
> have no installed the perl you may need to do this:
>
> ./perl -Ilib -V
>
> we probably cant help you without the output of that command.
>

Let me dig a little more before I waste anyone elses time. Thank you so
much for the help. It does shed light on the symlink issue.

--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
Four decades in production systems.
Re: 5.38.0 on FreeBSD 14.0 AMD64 : Failed 4 tests out of 2529, 99.84% okay. [ In reply to ]
On 7/10/23 12:55, demerphq wrote:
> On Mon, 10 Jul 2023 at 17:50, Dennis Clarke via perl5-porters <
> perl5-porters@perl.org> wrote:
>
>>
>> Dear Perl folks :
>>
>> The config and compile on a FreeBSD 14.0 AMD64 machine seemed to go
>> really well. Except for a few tests? I am curious how to dig out some
>> more info about these four failures :
>>
>> .

I may have messed up the text but the idea is there :

https://github.com/Perl/perl5/issues/21233

How about github be able to handle plain ascii text easily?

--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
Re: 5.38.0 on FreeBSD 14.0 AMD64 : Failed 4 tests out of 2529, 99.84% okay. [ In reply to ]
hi Dennis,

On Mon, 10 Jul 2023 17:42:54 -0400
Dennis Clarke via perl5-porters <perl5-porters@perl.org> wrote:

> On 7/10/23 12:55, demerphq wrote:
> > On Mon, 10 Jul 2023 at 17:50, Dennis Clarke via perl5-porters <
> > perl5-porters@perl.org> wrote:
> >
> >>
> >> Dear Perl folks :
> >>
> >> The config and compile on a FreeBSD 14.0 AMD64 machine seemed to go
> >> really well. Except for a few tests? I am curious how to dig out some
> >> more info about these four failures :
> >>
> >> .
>
> I may have messed up the text but the idea is there :
>
> https://github.com/Perl/perl5/issues/21233
>
> How about github be able to handle plain ascii text easily?
>

use triple-backquotes?

```
.
.
.
```

the markdowns are a mess, though.



--

Shlomi Fish https://www.shlomifish.org/
Why I Love Perl - https://shlom.in/joy-of-perl

The NSA headquarters are the unhappiest place on Earth.
https://www.shlomifish.org/humour/bits/facts/NSA/

Please reply to list if it's a mailing list post - https://shlom.in/reply .
Re: 5.38.0 on FreeBSD 14.0 AMD64 : Failed 4 tests out of 2529, 99.84% okay. [ In reply to ]
>> I may have messed up the text but the idea is there :
>>
>> https://github.com/Perl/perl5/issues/21233
>>
>> How about github be able to handle plain ascii text easily?
>>
>
> use triple-backquotes?
>
> ```
> .
> .
> .
> ```
>
> the markdowns are a mess, though.
>



Microsoft GitHub is not a playground I care for. I was happy with CVS or
SVN or Hg or what is the fad du jour? Oh right ... git. I'll take my
source on an IBM 6250 tape reel please :)

----- all sarcasm enabled ---------

```
*sigh*

I did very very little math and it looks like ( 21233 - 17968 ) = 3265.

So I guess we will all be back here looking at bug report ( 23233 + 3265
) = 24498 in a few
years from now with the exact same problem.

However, the Perl source tree could simply have a little modification to
clean up
this test. Looks like :

#
# cat chmod.t
#!/usr/bin/perl -w
use strict;
use Test::More tests => 7;
use constant NO_SUCH_FILE => "this_file_had_better_not_exist";
use constant ERROR_REGEXP => qr{Can't chmod\(0755, '${\(NO_SUCH_FILE)}'\):};
use constant SINGLE_DIGIT_ERROR_REGEXP => qr{Can't chmod\(0010,
'${\(NO_SUCH_FILE)}'\):};
use autodie;

# This tests RT #50423, Debian #550462

eval { chmod(0755, NO_SUCH_FILE); };
isa_ok($@, 'autodie::exception', 'exception thrown for chmod');
like($@, ERROR_REGEXP, "Message should include numeric mode in octal form");

eval { chmod(8, NO_SUCH_FILE); };
isa_ok($@, 'autodie::exception', 'exception thrown for chmod');
like($@, SINGLE_DIGIT_ERROR_REGEXP, "Message should include numeric mode
in octal form");

eval { chmod(0755, $0); };
ok(! $@, "We can chmod ourselves just fine.");

eval { chmod(0755, $0, NO_SUCH_FILE) };
isa_ok($@, 'autodie::exception', 'chmod exception on any file failure.');
is($@->return,1,"Confirm autodie on a 'true' chown failure.");
#

Well gee, how hard would it be to fix these? I can just ignore them. I
guess.

See you all in a few years at bug report #24498 and Perl release v
5.62.0 perhaps.

Also, why is IBM not paying all of us also? :)


--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
UNIX and Linux spoken but I hate Red Hat now!
GreyBeard and suspenders optional
```