Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.84k stars 524 forks source link

core tests fail when built on FAT drive with Win32 OS on NTFS drive #6348

Closed p5pRT closed 10 years ago

p5pRT commented 21 years ago

Migrated from rt.perl.org#21442 (status was 'resolved')

Searchable as RT21442$

p5pRT commented 21 years ago

From elmisery_fathy@hotmail.com

case $PERL_CONFIG_SH in '')   if test -f config.sh; then TOP=.;   elif test -f ../config.sh; then TOP=..;   elif test -f ../../config.sh; then TOP=../..;   elif test -f ../../../config.sh; then TOP=../../..;   elif test -f ../../../../config.sh; then TOP=../../../..;   else   echo "Can't find the perl config.sh file produced by Configure";   exit 1   fi   . $TOP/config.sh   ;; esac : This forces SH files to create target in same directory as SH file. : This is so that make depend always knows where to find SH derivatives. case "$0" in */*) cd `expr X$0 : 'X\(.*\)/'` ;; esac echo "Extracting myconfig (with variable substitutions)" $spitshell >myconfig \<\<!GROK!THIS! $startsh

# This script is designed to provide a handy summary of the configuration # information being used to build perl. This is especially useful if you # are requesting help from comp.lang.perl.misc on usenet or via mail.

# Note that the text lines /^Summary of/ .. /^\s*$/ are copied into Config.pm. cat \<\<'!NO!SUBS!' Summary of my $package (revision $baserev $version_patchlevel_string) configuration​:   Platform​:   osname=$osname\, osvers=$osvers\, archname=$archname   uname='$myuname'   config_args='$config_args'   hint=$hint\, useposix=$useposix\, d_sigaction=$d_sigaction   usethreads=$usethreads use5005threads=$use5005threads useithreads=$useithreads usemultiplicity=$usemultiplicity   useperlio=$useperlio d_sfio=$d_sfio uselargefiles=$uselargefiles usesocks=$usesocks   use64bitint=$use64bitint use64bitall=$use64bitall uselongdouble=$uselongdouble   usemymalloc=$usemymalloc\, bincompat5005=undef   Compiler​:   cc='$cc'\, ccflags ='$ccflags'\,   optimize='$optimize'\,   cppflags='$cppflags'   ccversion='$ccversion'\, gccversion='$gccversion'\, gccosandvers='$gccosandvers'   intsize=$intsize\, longsize=$longsize\, ptrsize=$ptrsize\, doublesize=$doublesize\, byteorder=$byteorder   d_longlong=$d_longlong\, longlongsize=$longlongsize\, d_longdbl=$d_longdbl\, longdblsize=$longdblsize   ivtype='$ivtype'\, ivsize=$ivsize\, nvtype='$nvtype'\, nvsize=$nvsize\, Off_t='$lseektype'\, lseeksize=$lseeksize   alignbytes=$alignbytes\, prototype=$prototype   Linker and Libraries​:   ld='$ld'\, ldflags ='$ldflags'   libpth=$libpth   libs=$libs   perllibs=$perllibs   libc=$libc\, so=$so\, useshrplib=$useshrplib\, libperl=$libperl   gnulibc_version='$gnulibc_version'   Dynamic Linking​:   dlsrc=$dlsrc\, dlext=$dlext\, d_dlsymun=$d_dlsymun\, ccdlflags='$ccdlflags'   cccdlflags='$cccdlflags'\, lddlflags='$lddlflags'

!NO!SUBS! !GROK!THIS! chmod 755 myconfig $eunicefix myconfig

p5pRT commented 21 years ago

From elmisery_fathy@hotmail.com

perlfail.doc

p5pRT commented 21 years ago

From elmisery_fathy@hotmail.com

dear perl support that is the reply to your message about my problem with the some tests fails. can you help me about this problem. thanks for your help.

\
\
\
\\

elmisery\
\

case $PERL_CONFIG_SH in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; elif test -f ../../config.sh; then TOP=../..; elif test -f ../../../config.sh; then TOP=../../..; elif test -f ../../../../config.sh; then TOP=../../../..; else echo "Can't find the perl config.sh file produced by Configure"; exit 1 fi . $TOP/config.sh ;; esac ​: This forces SH files to create target in same directory as SH file. ​: This is so that make depend always knows where to find SH derivatives. case "$0" in */*) cd `expr X$0 : 'X\(.*\)/'` ;; esac echo "Extracting myconfig (with variable substitutions)" $spitshell >myconfig \<\<!GROK!THIS! $startsh

# This script is designed to provide a handy summary of the configuration # information being used to build perl. This is especially useful if you # are requesting help from comp.lang.perl.misc on usenet or via mail.

# Note that the text lines /^Summary of/ .. /^\s*$/ are copied into Config.pm. cat \<\<'!NO!SUBS!' Summary of my $package (revision $baserev $version_patchlevel_string) configuration​: Platform​: osname=$osname\, osvers=$osvers\, archname=$archname uname='$myuname' config_args='$config_args' hint=$hint\, useposix=$useposix\, d_sigaction=$d_sigaction usethreads=$usethreads use5005threads=$use5005threads useithreads=$useithreads usemultiplicity=$usemultiplicity useperlio=$useperlio d_sfio=$d_sfio uselargefiles=$uselargefiles usesocks=$usesocks use64bitint=$use64bitint use64bitall=$use64bitall uselongdouble=$uselongdouble usemymalloc=$usemymalloc\, bincompat5005=undef Compiler​: cc='$cc'\, ccflags ='$ccflags'\, optimize='$optimize'\, cppflags='$cppflags' ccversion='$ccversion'\, gccversion='$gccversion'\, gccosandvers='$gccosandvers' intsize=$intsize\, longsize=$longsize\, ptrsize=$ptrsize\, doublesize=$doublesize\, byteorder=$byteorder d_longlong=$d_longlong\, longlongsize=$longlongsize\, d_longdbl=$d_longdbl\, longdblsize=$longdblsize ivtype='$ivtype'\, ivsize=$ivsize\, nvtype='$nvtype'\, nvsize=$nvsize\, Off_t='$lseektype'\, lseeksize=$lseeksize alignbytes=$alignbytes\, prototype=$prototype Linker and Libraries​: ld='$ld'\, ldflags ='$ldflags' libpth=$libpth libs=$libs perllibs=$perllibs libc=$libc\, so=$so\, useshrplib=$useshrplib\, libperl=$libperl gnulibc_version='$gnulibc_version' Dynamic Linking​: dlsrc=$dlsrc\, dlext=$dlext\, d_dlsymun=$d_dlsymun\, ccdlflags='$ccdlflags' cccdlflags='$cccdlflags'\, lddlflags='$lddlflags'

!NO!SUBS! !GROK!THIS! chmod 755 myconfig $eunicefix myconfig

_________________________________________________________________ STOP MORE SPAM with the new MSN 8 and get 2 months FREE* http​://join.msn.com/?page=features/junkmail

p5pRT commented 12 years ago

From @jkeenan

This ticket has been languishing in our bug queue since 2003.

List​: Is there anyone of Win32 who could take a look at the Word document the OP provided and offer some suggestions?

fathy elmisery​: Have you tried any Perl distributions on Windows such as Win32 or Strawberry Perl?

Thank you very much. Jim Keenan

p5pRT commented 12 years ago

From @cpansprout

On Sat Apr 21 15​:14​:29 2012\, jkeenan wrote​:

This ticket has been languishing in our bug queue since 2003.

List​: Is there anyone of Win32 who could take a look at the Word document the OP provided and offer some suggestions?

The word document only contains a graphic. Here it is\, attached as a PNG. It’s not very helpful.

--

Father Chrysostomos

p5pRT commented 12 years ago

From @cpansprout

A84BFDD9-1B51-4C66-9561-45E2F82B6680.png

p5pRT commented 12 years ago

From [Unknown Contact. See original ticket]

On Sat Apr 21 15​:14​:29 2012\, jkeenan wrote​:

This ticket has been languishing in our bug queue since 2003.

List​: Is there anyone of Win32 who could take a look at the Word document the OP provided and offer some suggestions?

The word document only contains a graphic. Here it is\, attached as a PNG. It’s not very helpful.

--

Father Chrysostomos

p5pRT commented 12 years ago

From @bulk88

The word document only contains a graphic. Here it is\, attached as a PNG. It’s not very helpful.

That is a problem. The OP doesn't say what tests failed. Since these are I/O failures in general looking at the 2 test files\, and only happened on OP's machine\, I'm going to guess a firewall or virus scanner or security permissions caused them. If someone can reproduce them I'll look into it. I dont think anyone will be able to\, I couldn't with those 2 test files with my VC Perl 5.15 and AP 5.10.

p5pRT commented 12 years ago

From @jkeenan

On Sat Apr 21 19​:02​:57 2012\, bulk88 wrote​:

The word document only contains a graphic. Here it is\, attached as a PNG. It’s not very helpful.

That is a problem. The OP doesn't say what tests failed. Since these are I/O failures in general looking at the 2 test files\, and only happened on OP's machine\, I'm going to guess a firewall or virus scanner or security permissions caused them. If someone can reproduce them I'll look into it. I dont think anyone will be able to\, I couldn't with those 2 test files with my VC Perl 5.15 and AP 5.10.

Thanks for your response. I propose that we keep the ticket open for 30 days. If we get the errors reproduced\, you can take up the investigation. Otherwise\, we'll close the ticket.

Thank you very much. Jim Keenan

p5pRT commented 12 years ago

From @bulk88

My mistake\, I see the error numbers that failed.

for fs.t

2-5 involve NTFS POSIX hard links\, whether link works is determined by

if (defined &Win32​::IsWinNT && Win32​::IsWinNT()) {   if (Win32​::FsType() eq 'NTFS') {   $has_link = 1;   $accurate_timestamps = 1;   } } FsType gets the FS type of the current directory\, as thought of by the Windows API. This might not be the current directory thought of by the Perl Language (ithreads\, etc).

7-9 are chmod\, thats also dependent on NTFS and links check above

test 11\, egh\, not sure if this is the same as OP's 5.8 tests\, i cant comment

5 and 7 in stat.t again are link tests

I'm going to blindly guess the OP has multiple partitions or perl isn't install on C​: or C​: isn't the windows OS dir\, and somehow perl thought it was running on NTFS when it was actually a fat partition.

below done with perl 5.10.1 tests on 5.10.0 (best I can do)

C​:\Perl\t>perl ./io/fs.t 1..51 ok 1 # skip bogus umask ok 2 - link a b ok 3 - link b c ok 4 - link count of triply-linked file ok 5 - mode of triply-linked file ok 6 - chmod succeeding ok 7 - chmod going through ok 8 - chmod two files ok 9 - chmod going through to c ok 10 - chmod going through to x ok 11 - unlink two files ok 12 - ino of removed file b should be undef ok 13 - ino of removed file x should be undef ok 14 # skip no fchmod ok 15 # skip no fchmod ok 16 # skip no fchmod ok 17 # skip no fchmod ok 18 # skip no fchmod ok 19 # skip no fchown ok 20 - fchmod is unimplemented ok 21 - fchown is unimplemented ok 22 - rename a b ok 23 - ino of renamed file a should be undef ok 24 - utime ok 25 # skip bogus inode num # atime - 500000000 mtime - 500000001 delta - 1 ok 26 - atime ok 27 - mtime # utime undef\, undef --> 1335072593\, 1335072593 ok 28 - atime ok 29 - mtime ok 30 # skip no futimes ok 31 # skip no futimes ok 32 # skip no futimes ok 33 # skip no futimes ok 34 - futimes is unimplemented ok 35 - unlink b ok 36 - ino of unlinked file b should be undef ok 37 # skip No symbolic links found to test with ok 38 # skip No symbolic links found to test with ok 39 - truncation to five bytes ok 40 - truncation to zero bytes ok 41 - fh resize to 200 ok 42 - fh resize to 200 working (filename check) ok 43 - fh resize to zero ok 44 - fh resize to zero working (filename check) ok 45 - fh resize by IO slot ok 46 - fh resize by IO slot working ok 47 - rename working ok 48 - rename on directories ok 49 - rename on directories working ok 50 - extend sp in pp_chmod ok 51 - extend sp in pp_chown

C​:\Perl\t>

C​:\Perl\t>perl ./op/stat.t 1..107 ok 1 - nlink on regular file ok 2 # skip mtime and ctime not reliable ok 3 # skip mtime and ctime not reliable ok 4 - link() implemented ok 5 - linked tmp testfile ok 6 - chmoded tmp testfile ok 7 - Link count on hard linked file ok 8 # skip No ctime concept on this OS ok 9 # skip No ctime concept on this OS ok 10 - -z on empty filehandle ok 11 - and -s ok 12 - -z on empty file ok 13 - and -s ok 14 - -z on empty filehandle ok 15 - and -s ok 16 - -z on non-empty file ok 17 - and -s ok 18 - chmod 0000 ok 19 # skip Can't test -r or -w meaningfully if you're superuser ok 20 # skip Can't test -r or -w meaningfully if you're superuser ok 21 - -x ok 22 - chmod 0700 ok 23 - -r ok 24 - -w ok 25 # skip -x simply determines if a file ends in an executable suffix ok 26 - -f ok 27 - !-d ok 28 - -d cwd ok 29 - !-f cwd ok 30 # skip symlink not implemented ok 31 # skip symlink not implemented ok 32 # skip symlink not implemented ok 33 - -o ok 34 - -e ok 35 - -e on unlinked file ok 36 # skip No character\, socket or block special files ok 37 # skip No character\, socket or block special files ok 38 # skip No character\, socket or block special files ok 39 # skip No character\, socket or block special files ok 40 # skip No character\, socket or block special files ok 41 # skip No character\, socket or block special files ok 42 # skip Can't find a setuid file to test with ok 43 # skip Can't find a setuid file to test with ok 44 # skip Can't find a setuid file to test with ok 45 # skip Test uses unixisms ok 46 # skip Test uses unixisms ok 47 - !-t on closed TTY filehandle ok 48 - -t on STDIN ok 49 # skip No null device to test with ok 50 - -T ok 51 - !-B ok 52 - -B ok 53 - !-T ok 54 - -T on filehandle causes no errors ok 55 - -T ok 56 - !-B ok 57 - after readline ok 58 - still -T ok 59 - still -B ok 60 - reopened and after readline ok 61 - still -T ok 62 - still !-B ok 63 - after seek ok 64 - still -T ok 65 - still !-B ok 66 - at EOF ok 67 - still -T ok 68 - now -B ok 69 # skip No null device to test with ok 70 # skip No null device to test with ok 71 - bare -f uses $_ ok 72 - -f() " ok 73 - stat returns full 13 elements ok 74 - lstat _ croaks after stat ok 75 - -l _ croaks after stat ok 76 - lstat _ ok after lstat ok 77 - -l _ ok after lstat ok 78 # skip No lstat ok 79 # skip No lstat # Zzz... ok 80 - can create tmp file # time=1335072680\, stat=(2 0 33206 1 0 0 2 0 1335072683 1335072683 1335072683 )

# -MAC=(-3.47222222222222e-005 -3.47222222222222e-005 -3.47222222222222e-005) ok 81 - negative -M works ok 82 - negative -A works ok 83 - negative -C works ok 84 - unlink tmp file ok 85 - can create temp file ok 86 - -T _ doesn't break the statbuffer ok 87 # skip No dirfd() ok 88 # skip No dirfd() ok 89 # skip No dirfd() ok 90 # skip No dirfd() ok 91 # skip No dirfd() ok 92 # skip No dirfd() ok 93 # skip No dirfd() ok 94 # skip No dirfd() ok 95 # skip No dirfd() ok 96 - can create temp file ok 97 - stat(*F{IO}) works ok 98 - single file tests work with *F{IO} ok 99 # skip No dirfd() ok 100 # skip No dirfd() ok 101 # skip No dirfd() ok 102 # skip No dirfd() ok 103 # skip No dirfd() ok 104 # skip No dirfd() ok 105 # skip No dirfd() ok 106 # skip No dirfd() ok 107 # skip No dirfd()

C​:\Perl\t>

p5pRT commented 11 years ago

From @doy

Closing\, since it doesn't appear that we have been able to reproduce this.

-doy

p5pRT commented 11 years ago

From [Unknown Contact. See original ticket]

Closing\, since it doesn't appear that we have been able to reproduce this.

-doy

p5pRT commented 11 years ago

@doy - Status changed from 'open' to 'resolved'

p5pRT commented 10 years ago

From @bulk88

On Tue Jul 03 00​:06​:38 2012\, doy wrote​:

Closing\, since it doesn't appear that we have been able to reproduce this.

-doy

Someone with ticket privilege needs to change this ticket to open\, see last paragraph of this post for details.

I previously was not able to reproduce this when I last looked at this ticket\, but by chance\, I got a nearly identical test fail list on 5.19 blead to the OP from 2003. This is how to reproduce it. The Windows OS drive is NTFS\, but you build Perl on FAT32 or FAT16. 1 Mechanical HD with Win OS on NTFS and 2nd FAT32 partition or usb stick with FAT16 made these failures for me.

FAT32 build drive\, OS on NTFS. OS is NOT on C​: drive here.


C​:\perl519\src\t> ..\perl.exe -I..\lib op/stat.t 1..113 ok 1 - nlink on regular file ok 2 # skip mtime and ctime not reliable ok 3 # skip mtime and ctime not reliable ok 4 - link() implemented not ok 5 - linked tmp testfile # Failed test 5 - linked tmp testfile at op/stat.t line 103 ok 6 - chmoded tmp testfile not ok 7 - Link count on hard linked file # Failed test 7 - Link count on hard linked file at op/stat.t line 113 # got "1" # expected "2" ok 8 # skip No ctime concept on this OS ok 9 # skip No ctime concept on this OS ok 10 - -z on empty filehandle ok 11 - and -s ok 12 - -z on empty file ok 13 - and -s ok 14 - -z on empty filehandle ok 15 - and -s ok 16 - -z on non-empty file ok 17 - and -s ok 18 - chmod 0000 ok 19 # skip Can't test -r or -w meaningfully if you're superuser ok 20 # skip Can't test -r or -w meaningfully if you're superuser ok 21 - -x ok 22 - chmod 0700 ok 23 - -r ok 24 - -w ok 25 # skip -x simply determines if a file ends in an executable suffix ok 26 - -f ok 27 - !-d ok 28 - -d cwd ok 29 - !-f cwd ok 30 # skip symlink not implemented ok 31 # skip symlink not implemented ok 32 # skip symlink not implemented ok 33 - -o ok 34 - -e ok 35 - -e on unlinked file ok 36 # skip No character\, socket or block special files ok 37 # skip No character\, socket or block special files ok 38 # skip No character\, socket or block special files ok 39 # skip No character\, socket or block special files ok 40 # skip No character\, socket or block special files ok 41 # skip No character\, socket or block special files ok 42 # skip Can't find a setuid file to test with ok 43 # skip Can't find a setuid file to test with ok 44 # skip Can't find a setuid file to test with ok 45 # skip Test uses unixisms ok 46 # skip Test uses unixisms ok 47 - !-t on closed TTY filehandle ok 48 - -t on STDIN ok 49 # skip No null device to test with ok 50 - -T ok 51 - !-B ok 52 - -B ok 53 - !-T ok 54 - -T on filehandle causes no errors ok 55 - -T ok 56 - !-B ok 57 - after readline ok 58 - still -T ok 59 - still -B ok 60 - reopened and after readline ok 61 - still -T ok 62 - still !-B ok 63 - after seek ok 64 - still -T ok 65 - still !-B ok 66 - at EOF ok 67 - still -T ok 68 - now -B ok 69 # skip No null device to test with ok 70 # skip No null device to test with ok 71 - bare -f uses $_ ok 72 - -f() " ok 73 - stat returns full 13 elements ok 74 - lstat _ croaks after stat ok 75 - lstat *_ croaks after stat ok 76 - lstat \*_ croaks after stat ok 77 - -l _ croaks after stat ok 78 - lstat _ ok after lstat ok 79 - -l _ ok after lstat ok 80 - stat $ioref resets stat type ok 81 - lstat $ioref reverts to regular fstat ok 82 # skip No lstat ok 83 # skip No lstat # Zzz... ok 84 - can create tmp file # time=1393701938\, stat=(2 0 33206 1 0 0 2 0 1393650000 1393701944 1393701943 )

# -MAC=(-6.94444444444444e-005 0.601134259259259 -5.78703703703704e-005) ok 85 - negative -M works not ok 86 - negative -A works # Failed test 86 - negative -A works at op/stat.t line 504 ok 87 - negative -C works ok 88 - unlink tmp file ok 89 - can create temp file ok 90 - -T _ doesn't break the statbuffer ok 91 # skip No lstat ok 92 # skip No dirfd() ok 93 # skip No dirfd() ok 94 # skip No dirfd() ok 95 # skip No dirfd() ok 96 # skip No dirfd() ok 97 # skip No dirfd() ok 98 # skip No dirfd() ok 99 # skip No dirfd() ok 100 # skip No dirfd() ok 101 - can create temp file ok 102 - stat(*F{IO}) works ok 103 - single file tests work with *F{IO} ok 104 # skip No dirfd() ok 105 # skip No dirfd() ok 106 # skip No dirfd() ok 107 # skip No dirfd() ok 108 # skip No dirfd() ok 109 # skip No dirfd() ok 110 # skip No dirfd() ok 111 # skip No dirfd() ok 112 # skip No dirfd() ok 113 - no unopened warning from stat _

C​:\perl519\src\t> ..\perl.exe -I..\lib io/fs.t 1..55 ok 1 # skip bogus umask not ok 2 - link a b # Failed test 2 - link a b at io/fs.t line 101 not ok 3 - link b c # Failed test 3 - link b c at io/fs.t line 102 not ok 4 - link count of triply-linked file # Failed test 4 - link count of triply-linked file at io/fs.t line 112 # got undef # expected "3" not ok 5 - mode of triply-linked file # Failed test 5 - mode of triply-linked file at io/fs.t line 122 # got "00" # expected "0666" ok 6 - chmod succeeding not ok 7 - chmod going through # Failed test 7 - chmod going through at io/fs.t line 142 # got "0" # expected "292" not ok 8 - chmod two files # Failed test 8 - chmod two files at io/fs.t line 149 # got "1" # expected "2" not ok 9 - chmod going through to c # Failed test 9 - chmod going through to c at io/fs.t line 157 # got "0" # expected "438" ok 10 - chmod going through to x not ok 11 - unlink two files # Failed test 11 - unlink two files at io/fs.t line 169 # got "1" # expected "2" ok 12 - ino of removed file b should be undef ok 13 - ino of removed file x should be undef ok 14 # skip no fchmod ok 15 # skip no fchmod ok 16 # skip no fchmod ok 17 # skip no fchmod ok 18 # skip no fchmod ok 19 # skip no fchown ok 20 - fchmod is unimplemented ok 21 - fchown is unimplemented ok 22 - rename a b ok 23 - ino of renamed file a should be undef ok 24 - utime ok 25 # skip bogus inode num ok 26 # skip filesystem atime/mtime granularity too low ok 27 # skip filesystem atime/mtime granularity too low # utime undef\, undef --> 1393650000\, 1393714698 ok 28 - atime ok 29 - mtime ok 30 # skip no futimes ok 31 # skip no futimes ok 32 # skip no futimes ok 33 # skip no futimes ok 34 - futimes is unimplemented ok 35 - unlink b ok 36 - ino of unlinked file b should be undef ok 37 # skip No symbolic links found to test with ok 38 # skip No symbolic links found to test with ok 39 - truncation to five bytes ok 40 - truncation to zero bytes ok 41 - fh resize to 200 ok 42 - fh resize to 200 working (filename check) ok 43 - fh resize to zero ok 44 - fh resize to zero working (filename check) ok 45 - fh resize by IO slot ok 46 - fh resize by IO slot working ok 47 - truncate(word) does not fall back to file name ok 48 - rename working ok 49 - rename on directories ok 50 - rename on directories working ok 51 - extend sp in pp_chmod ok 52 - extend sp in pp_chown ok 53 - can't unlink directory without -U and privileges ok 54 - unlink directory without -U sets errno ok 55 - unlink non-existent directory without -U sets ENOENT


building perl on usb stick (F​: drive)


usb stick


../lib/vmsish.t ................................................... ok ../lib/warnings.t ................................................. ok x2p/find2perl.t ................................................... skipped​: Nee d something vaguely POSIX x2p/s2p.t ......................................................... ok

Test Summary Report


io/fs.t (Wstat​: 0 Tests​: 55 Failed​: 8)   Failed tests​: 2-5\, 7-9\, 11 op/stat.t (Wstat​: 0 Tests​: 113 Failed​: 3)   Failed tests​: 5\, 7\, 86 Files=2407\, Tests=691806\, 17365 wallclock secs (142.05 usr + 6.55 sys = 148.59 CPU) Result​: FAIL NMAKE : fatal error U1077​: '..\perl.exe' : return code '0xb' Stop.

F​:\perl\win32>


I didn't step it or write additional code\, so this analysis may be shoddy. The problem with io/fs.t is this check


if (defined &Win32​::IsWinNT && Win32​::IsWinNT()) {   if (Win32​::FsType() eq 'NTFS') {   $has_link = 1;   $accurate_timestamps = 1;   } }


Win32​::FsType's docs are


Win32​::FsType()

  [CORE] Returns the name of the filesystem of the currently active drive (like 'FAT' or 'NTFS'). In list context it returns three values​: (FSTYPE\, FLAGS\, MAXCOMPLEN). FSTYPE is the filesystem type as before. FLAGS is a combination of values of the following table​:


"currently active drive" is the problem. There is probably something to do with that code not working right.


F​:\perl\win32>cd ..\t

F​:\perl\t>perl -I..\lib harness io/fs.t io/fs.t .. # Failed test 2 - link a b at io/fs.t line 101 # Failed test 3 - link b c at io/fs.t line 102 # Failed test 4 - link count of triply-linked file at io/fs.t line 112 # got undef # expected "3" # Failed test 5 - mode of triply-linked file at io/fs.t line 122 # got "00" # expected "0666" # Failed test 7 - chmod going through at io/fs.t line 142 # got "0" # expected "292" # Failed test 8 - chmod two files at io/fs.t line 149 # got "1" # expected "2" # Failed test 9 - chmod going through to c at io/fs.t line 157 # got "0" # expected "438" # Failed test 11 - unlink two files at io/fs.t line 169 # got "1" # expected "2" io/fs.t .. Failed 8/55 subtests   (less 16 skipped subtests​: 31 okay)

Test Summary Report


io/fs.t (Wstat​: 0 Tests​: 55 Failed​: 8)   Failed tests​: 2-5\, 7-9\, 11 Files=1\, Tests=55\, 3 wallclock secs ( 0.08 usr + 0.02 sys = 0.09 CPU) Result​: FAIL

F​:\perl\t> F​:\perl\t>perl -I..\lib harness op/stat.t op/stat.t .. # Failed test 5 - linked tmp testfile at op/stat.t line 103 # Failed test 7 - Link count on hard linked file at op/stat.t line 113 # got "1" # expected "2" # Failed test 86 - negative -A works at op/stat.t line 504 op/stat.t .. Failed 3/113 subtests   (less 45 skipped subtests​: 65 okay)

Test Summary Report


op/stat.t (Wstat​: 0 Tests​: 113 Failed​: 3)   Failed tests​: 5\, 7\, 86 Files=1\, Tests=113\, 5 wallclock secs ( 0.09 usr + 0.00 sys = 0.09 CPU) Result​: FAIL

F​:\perl\t>


A simple test says Win32​::FsType superficially works\, but\, again\, cwd might be a mess in harness/test.pl/other framework parts\, or a bug in perlhost layer.


F​:\perl\t>perl -I..\lib -E" say Win32​::FsType()" FAT6255

F​:\perl\t>


Due to me being low on time\, I want to get my thoughts out and into the record. This should get a "Known Issues" for 5.20 if nobody investigates and fixes the test fails or fixes core. I got no responses on p5p IRC whether to open new ticket or reply to this. So I reply to this ticket. Someone with ticket privilege needs to change this ticket to open. Also this ticket should be renamed to "core tests fail when built on FAT drive with Win32 OS on NTFS drive"\, since "some tests fail" is a horrible title for this ticket.

-- bulk88 ~ bulk88 at hotmail.com

p5pRT commented 10 years ago

@nwc10 - Status changed from 'resolved' to 'open'

p5pRT commented 10 years ago

From @khwilliamson

Re-opening at the request of bulk88 -- Karl Williamson

p5pRT commented 10 years ago

From @nwc10

On Mon\, Mar 03\, 2014 at 11​:49​:54AM -0800\, bulk88 via RT wrote​:

On Tue Jul 03 00​:06​:38 2012\, doy wrote​:

Closing\, since it doesn't appear that we have been able to reproduce this.

-doy

Someone with ticket privilege needs to change this ticket to open\, see last paragraph of this post for details.

I've re-opened it (which is fast\, as I'm logged in)

Sorry\, I don't have time to figure out anything useful to say about the rest of the message (which I've skimmed) other than thanks for figuring out the cause of the bug. It's not clear that there's an "obvious" fix.

Nicholas Clark

p5pRT commented 10 years ago

From @Hugmeir

On Mon\, Mar 3\, 2014 at 8​:49 PM\, bulk88 via RT \perlbug\-followup@&#8203;perl\.orgwrote​:

On Tue Jul 03 00​:06​:38 2012\, doy wrote​:

Closing\, since it doesn't appear that we have been able to reproduce this.

-doy

Someone with ticket privilege needs to change this ticket to open\, see last paragraph of this post for details.

I previously was not able to reproduce this when I last looked at this ticket\, but by chance\, I got a nearly identical test fail list on 5.19 blead to the OP from 2003. This is how to reproduce it. The Windows OS drive is NTFS\, but you build Perl on FAT32 or FAT16. 1 Mechanical HD with Win OS on NTFS and 2nd FAT32 partition or usb stick with FAT16 made these failures for me.

FAT32 build drive\, OS on NTFS. OS is NOT on C​: drive here. --------------------------------------------------------- C​:\perl519\src\t> ..\perl.exe -I..\lib op/stat.t 1..113 ok 1 - nlink on regular file ok 2 # skip mtime and ctime not reliable ok 3 # skip mtime and ctime not reliable ok 4 - link() implemented not ok 5 - linked tmp testfile # Failed test 5 - linked tmp testfile at op/stat.t line 103 ok 6 - chmoded tmp testfile not ok 7 - Link count on hard linked file # Failed test 7 - Link count on hard linked file at op/stat.t line 113 # got "1" # expected "2" ok 8 # skip No ctime concept on this OS ok 9 # skip No ctime concept on this OS ok 10 - -z on empty filehandle ok 11 - and -s ok 12 - -z on empty file ok 13 - and -s ok 14 - -z on empty filehandle ok 15 - and -s ok 16 - -z on non-empty file ok 17 - and -s ok 18 - chmod 0000 ok 19 # skip Can't test -r or -w meaningfully if you're superuser ok 20 # skip Can't test -r or -w meaningfully if you're superuser ok 21 - -x ok 22 - chmod 0700 ok 23 - -r ok 24 - -w ok 25 # skip -x simply determines if a file ends in an executable suffix ok 26 - -f ok 27 - !-d ok 28 - -d cwd ok 29 - !-f cwd ok 30 # skip symlink not implemented ok 31 # skip symlink not implemented ok 32 # skip symlink not implemented ok 33 - -o ok 34 - -e ok 35 - -e on unlinked file ok 36 # skip No character\, socket or block special files ok 37 # skip No character\, socket or block special files ok 38 # skip No character\, socket or block special files ok 39 # skip No character\, socket or block special files ok 40 # skip No character\, socket or block special files ok 41 # skip No character\, socket or block special files ok 42 # skip Can't find a setuid file to test with ok 43 # skip Can't find a setuid file to test with ok 44 # skip Can't find a setuid file to test with ok 45 # skip Test uses unixisms ok 46 # skip Test uses unixisms ok 47 - !-t on closed TTY filehandle ok 48 - -t on STDIN ok 49 # skip No null device to test with ok 50 - -T ok 51 - !-B ok 52 - -B ok 53 - !-T ok 54 - -T on filehandle causes no errors ok 55 - -T ok 56 - !-B ok 57 - after readline ok 58 - still -T ok 59 - still -B ok 60 - reopened and after readline ok 61 - still -T ok 62 - still !-B ok 63 - after seek ok 64 - still -T ok 65 - still !-B ok 66 - at EOF ok 67 - still -T ok 68 - now -B ok 69 # skip No null device to test with ok 70 # skip No null device to test with ok 71 - bare -f uses $_ ok 72 - -f() " ok 73 - stat returns full 13 elements ok 74 - lstat _ croaks after stat ok 75 - lstat *_ croaks after stat ok 76 - lstat \*_ croaks after stat ok 77 - -l _ croaks after stat ok 78 - lstat _ ok after lstat ok 79 - -l _ ok after lstat ok 80 - stat $ioref resets stat type ok 81 - lstat $ioref reverts to regular fstat ok 82 # skip No lstat ok 83 # skip No lstat # Zzz... ok 84 - can create tmp file # time=1393701938\, stat=(2 0 33206 1 0 0 2 0 1393650000 1393701944 1393701943 )

# -MAC=(-6.94444444444444e-005 0.601134259259259 -5.78703703703704e-005) ok 85 - negative -M works not ok 86 - negative -A works # Failed test 86 - negative -A works at op/stat.t line 504 ok 87 - negative -C works ok 88 - unlink tmp file ok 89 - can create temp file ok 90 - -T _ doesn't break the statbuffer ok 91 # skip No lstat ok 92 # skip No dirfd() ok 93 # skip No dirfd() ok 94 # skip No dirfd() ok 95 # skip No dirfd() ok 96 # skip No dirfd() ok 97 # skip No dirfd() ok 98 # skip No dirfd() ok 99 # skip No dirfd() ok 100 # skip No dirfd() ok 101 - can create temp file ok 102 - stat(*F{IO}) works ok 103 - single file tests work with *F{IO} ok 104 # skip No dirfd() ok 105 # skip No dirfd() ok 106 # skip No dirfd() ok 107 # skip No dirfd() ok 108 # skip No dirfd() ok 109 # skip No dirfd() ok 110 # skip No dirfd() ok 111 # skip No dirfd() ok 112 # skip No dirfd() ok 113 - no unopened warning from stat _

C​:\perl519\src\t> ..\perl.exe -I..\lib io/fs.t 1..55 ok 1 # skip bogus umask not ok 2 - link a b # Failed test 2 - link a b at io/fs.t line 101 not ok 3 - link b c # Failed test 3 - link b c at io/fs.t line 102 not ok 4 - link count of triply-linked file # Failed test 4 - link count of triply-linked file at io/fs.t line 112 # got undef # expected "3" not ok 5 - mode of triply-linked file # Failed test 5 - mode of triply-linked file at io/fs.t line 122 # got "00" # expected "0666" ok 6 - chmod succeeding not ok 7 - chmod going through # Failed test 7 - chmod going through at io/fs.t line 142 # got "0" # expected "292" not ok 8 - chmod two files # Failed test 8 - chmod two files at io/fs.t line 149 # got "1" # expected "2" not ok 9 - chmod going through to c # Failed test 9 - chmod going through to c at io/fs.t line 157 # got "0" # expected "438" ok 10 - chmod going through to x not ok 11 - unlink two files # Failed test 11 - unlink two files at io/fs.t line 169 # got "1" # expected "2" ok 12 - ino of removed file b should be undef ok 13 - ino of removed file x should be undef ok 14 # skip no fchmod ok 15 # skip no fchmod ok 16 # skip no fchmod ok 17 # skip no fchmod ok 18 # skip no fchmod ok 19 # skip no fchown ok 20 - fchmod is unimplemented ok 21 - fchown is unimplemented ok 22 - rename a b ok 23 - ino of renamed file a should be undef ok 24 - utime ok 25 # skip bogus inode num ok 26 # skip filesystem atime/mtime granularity too low ok 27 # skip filesystem atime/mtime granularity too low # utime undef\, undef --> 1393650000\, 1393714698 ok 28 - atime ok 29 - mtime ok 30 # skip no futimes ok 31 # skip no futimes ok 32 # skip no futimes ok 33 # skip no futimes ok 34 - futimes is unimplemented ok 35 - unlink b ok 36 - ino of unlinked file b should be undef ok 37 # skip No symbolic links found to test with ok 38 # skip No symbolic links found to test with ok 39 - truncation to five bytes ok 40 - truncation to zero bytes ok 41 - fh resize to 200 ok 42 - fh resize to 200 working (filename check) ok 43 - fh resize to zero ok 44 - fh resize to zero working (filename check) ok 45 - fh resize by IO slot ok 46 - fh resize by IO slot working ok 47 - truncate(word) does not fall back to file name ok 48 - rename working ok 49 - rename on directories ok 50 - rename on directories working ok 51 - extend sp in pp_chmod ok 52 - extend sp in pp_chown ok 53 - can't unlink directory without -U and privileges ok 54 - unlink directory without -U sets errno ok 55 - unlink non-existent directory without -U sets ENOENT ------------------------------------------------------ building perl on usb stick (F​: drive) ------------------------------------------------------ usb stick ------------------- ../lib/vmsish.t ................................................... ok ../lib/warnings.t ................................................. ok x2p/find2perl.t ................................................... skipped​: Nee d something vaguely POSIX x2p/s2p.t ......................................................... ok

Test Summary Report ------------------- io/fs.t (Wstat​: 0 Tests​: 55 Failed​: 8) Failed tests​: 2-5\, 7-9\, 11 op/stat.t (Wstat​: 0 Tests​: 113 Failed​: 3) Failed tests​: 5\, 7\, 86 Files=2407\, Tests=691806\, 17365 wallclock secs (142.05 usr + 6.55 sys = 148.59 CPU) Result​: FAIL NMAKE : fatal error U1077​: '..\perl.exe' : return code '0xb' Stop.

F​:\perl\win32> -------------------------------------------------------

I didn't step it or write additional code\, so this analysis may be shoddy. The problem with io/fs.t is this check ---------------------------------------------------- if (defined &Win32​::IsWinNT && Win32​::IsWinNT()) { if (Win32​::FsType() eq 'NTFS') { $has_link = 1; $accurate_timestamps = 1; } } ----------------------------------------------------

Win32​::FsType's docs are ---------------------------------------------------- Win32​::FsType()

\[CORE\] Returns the name of the filesystem of the currently active

drive (like 'FAT' or 'NTFS'). In list context it returns three values​: (FSTYPE\, FLAGS\, MAXCOMPLEN). FSTYPE is the filesystem type as before. FLAGS is a combination of values of the following table​: ---------------------------------------------------- "currently active drive" is the problem. There is probably something to do with that code not working right.

---------------------------------------------------- F​:\perl\win32>cd ..\t

F​:\perl\t>perl -I..\lib harness io/fs.t io/fs.t .. # Failed test 2 - link a b at io/fs.t line 101 # Failed test 3 - link b c at io/fs.t line 102 # Failed test 4 - link count of triply-linked file at io/fs.t line 112 # got undef # expected "3" # Failed test 5 - mode of triply-linked file at io/fs.t line 122 # got "00" # expected "0666" # Failed test 7 - chmod going through at io/fs.t line 142 # got "0" # expected "292" # Failed test 8 - chmod two files at io/fs.t line 149 # got "1" # expected "2" # Failed test 9 - chmod going through to c at io/fs.t line 157 # got "0" # expected "438" # Failed test 11 - unlink two files at io/fs.t line 169 # got "1" # expected "2" io/fs.t .. Failed 8/55 subtests (less 16 skipped subtests​: 31 okay)

Test Summary Report ------------------- io/fs.t (Wstat​: 0 Tests​: 55 Failed​: 8) Failed tests​: 2-5\, 7-9\, 11 Files=1\, Tests=55\, 3 wallclock secs ( 0.08 usr + 0.02 sys = 0.09 CPU) Result​: FAIL

F​:\perl\t> F​:\perl\t>perl -I..\lib harness op/stat.t op/stat.t .. # Failed test 5 - linked tmp testfile at op/stat.t line 103 # Failed test 7 - Link count on hard linked file at op/stat.t line 113 # got "1" # expected "2" # Failed test 86 - negative -A works at op/stat.t line 504 op/stat.t .. Failed 3/113 subtests (less 45 skipped subtests​: 65 okay)

Test Summary Report ------------------- op/stat.t (Wstat​: 0 Tests​: 113 Failed​: 3) Failed tests​: 5\, 7\, 86 Files=1\, Tests=113\, 5 wallclock secs ( 0.09 usr + 0.00 sys = 0.09 CPU) Result​: FAIL

F​:\perl\t> --------------------------------------------------

A simple test says Win32​::FsType superficially works\, but\, again\, cwd might be a mess in harness/test.pl/other framework parts\, or a bug in perlhost layer. -------------------------------------------------- F​:\perl\t>perl -I..\lib -E" say Win32​::FsType()" FAT6255

F​:\perl\t> --------------------------------------------------

Due to me being low on time\, I want to get my thoughts out and into the record. This should get a "Known Issues" for 5.20 if nobody investigates and fixes the test fails or fixes core. I got no responses on p5p IRC whether to open new ticket or reply to this. So I reply to this ticket. Someone with ticket privilege needs to change this ticket to open. Also this ticket should be renamed to "core tests fail when built on FAT drive with Win32 OS on NTFS drive"\, since "some tests fail" is a horrible title for this ticket.

To add to this\, those tests (and some others from POSIX.pm) also fail on Android if the underlying fs is FAT\, so a more portable solution might be warranted. (For those wondering​: the internal memory of some android devices is occasionally formatted as FAT\, and as far as I know\, /mnt/sdcard is *always* FAT)

p5pRT commented 10 years ago

From @bulk88

Some testing point to commit 0c5d4ba3b96718a67c95713ee4c24cd8d5d9cc8b being responsible for io/fs.t failing\, all test file runs are done with blead\, even if the test file is a decade old


using the .t after this commit

Author​: Jarkko Hietaniemi \jhi@&#8203;iki\.fi 2001-12-11 22​:09​:37 Committer​: Jarkko Hietaniemi \jhi@&#8203;iki\.fi 2001-12-11 22​:09​:37 Parent​: 15c6511316ec138f48a272932f9064281ed93164 (utime() updates only the mtime in BeOS.) Child​: b2ce41205b13ec60dc055bdd1a441b5cf85fbff4 ((On some platforms) missing truncate FH.) Branches​: many (222) Follows​: perl-5.6.0 Precedes​: perl-5.7.3

  io/fs cleanup​: testing on win32/cygwin/netware/djgpp/...   and vms would be muchly appreciated.  
  p4raw-id​: //depot/perl@​13643


F​:\perl\t>perl -I..\lib io/fs_0c5d4ba.t 1..31 ok 1 - Skip - bogus umask not ok 2 - link a b # Failed test 2 - link a b at io/fs_0c5d4ba.t line 78 not ok 3 - link b c # Failed test 3 - link b c at io/fs_0c5d4ba.t line 79 not ok 4 - link count of triply-linked file # Failed test 4 - link count of triply-linked file at io/fs_0c5d4ba.t line 87 # got undef # expected "3" not ok 5 - mode of triply-linked file # Failed test 5 - mode of triply-linked file at io/fs_0c5d4ba.t line 93 # got "0" # expected "438" ok 6 - chmod succeeding not ok 7 - chmod going through # Failed test 7 - chmod going through at io/fs_0c5d4ba.t line 107 # got "0" # expected "292" not ok 8 - chmod two files # Failed test 8 - chmod two files at io/fs_0c5d4ba.t line 113 # got "1" # expected "2" not ok 9 - chmod going through to c # Failed test 9 - chmod going through to c at io/fs_0c5d4ba.t line 118 # got "0" # expected "438" ok 10 - chmod going through to x not ok 11 - unlink two files # Failed test 11 - unlink two files at io/fs_0c5d4ba.t line 125 # got "1" # expected "2" ok 12 - ino of removed file b should be undef ok 13 - ino of removed file x should be undef ok 14 - rename a b ok 15 - ino of renamed file a should be undef ok 16 - utime ok 17 - Skip - bogus (stat)[1]

not ok 18 - Skip - granularity of the atime/mtime # Failed test 18 - Skip - granularity of the atime/mtime at io/fs_0c5d4ba.t line 163 ok 19 - unlink b ok 20 - ino of unlinked file b should be undef ok 21 - Skip - no symbolic links ok 22 - Skip - no symbolic links ok 23 - truncation to five bytes ok 24 - truncation to zero bytes ok 25 - fh resize to 200 ok 26 - fh resize to 200 working ok 27 - fh resize to zero ok 28 - fh resize to zero working ok 29 - rename working ok 30 - rename on directories ok 31 - rename on directories working

F​:\perl\t>


using the commit right before " io/fs cleanup​: testing on win32/cygwin/netware/djgpp/..."

Author​: Jarkko Hietaniemi \jhi@&#8203;iki\.fi 2001-10-31 10​:20​:01 Committer​: Jarkko Hietaniemi \jhi@&#8203;iki\.fi 2001-10-31 10​:20​:01 Parent​: 73077d539ecc1b3cdb02af89ac34a6328eef1a86 ([ PATCH ] maint/perl/t/io/fs.t for build on Cygwin) Child​: 7d932aad28c4908d05dbf4a2f3482f7c2445c3bf (Re​: [PATCH t/io/argv.t vms/test.com t/test.pl] argv.t cleanup & fixes for VMS) Branches​: many (240) Follows​: perl-5.005_02 Precedes​: v5.10.0

  Skip message nit.  
  p4raw-id​: //depot/perl@​12792


F​:\perl\t>perl -I..\lib io/fs_79316e7.t 1..29 ok 1 # skipped​: bogus umask() ok 2 # skipped​: no link ok 3 # skipped​: no link ok 4 # skipped​: no link ok 5 # skipped​: no link ok 6 ok 7 # skipped​: no link ok 8 # skipped​: no link ok 9 # skipped​: no link ok 10 # skipped​: no link ok 11 # skipped​: no link ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 # skipped​: bogus (stat)[1] ok 18 # skipped​: granularity of the filetime ok 19 ok 20 ok 21 # skipped​: no link ok 22 # skipped​: no link ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29


The refactoring in " io/fs cleanup​: testing on win32/cygwin/netware/djgpp/..." is faulty since it added "+my $has_link = $Config{d_link};" for ALL OSes that have the\, umm\, symbol available. later on in the commit\,


+ if (Win32​::FsType() eq 'NTFS') { + $has_link = 1;


is completely redundant\, since there is no "else" that will set $has_link to false if the FS is not NTFS. pp_link on Win32 is implemented as http​://msdn.microsoft.com/en-us/library/windows/desktop/aa363860%28v=vs.85%29.aspx CreateHardLinkW in win32.c in win32_link()\, CreateHardLinkW returned Win32 error 1\, ERROR_INVALID_FUNCTION when I ran blead fs.t on a FAT drive build dir. There is a comment in win32.c


  default​:   /* ERROR_INVALID_FUNCTION - eg. on a FAT volume */   errno = EINVAL;   break;   }   return -1; }


so it looks like C guts do the right thing. Adding the else block fixes fs.t for Win32 on FAT.

fixed blead fs.t


F​:\perl\t>perl -I..\lib io/fs.t 1..55 ok 1 # skip bogus umask ok 2 # skip no link ok 3 # skip no link ok 4 # skip no link ok 5 # skip no link ok 6 - chmod succeeding ok 7 # skip no link ok 8 # skip no link ok 9 # skip no link ok 10 # skip no link ok 11 # skip no link ok 12 # skip no link ok 13 # skip no link ok 14 # skip no fchmod ok 15 # skip no fchmod ok 16 # skip no fchmod ok 17 # skip no fchmod ok 18 # skip no fchmod ok 19 # skip no fchown ok 20 - fchmod is unimplemented ok 21 - fchown is unimplemented ok 22 - rename a b ok 23 - ino of renamed file a should be undef ok 24 - utime ok 25 # skip bogus inode num ok 26 # skip filesystem atime/mtime granularity too low ok 27 # skip filesystem atime/mtime granularity too low # utime undef\, undef --> 1393909200\, 1393984002 ok 28 - atime ok 29 - mtime ok 30 # skip no futimes ok 31 # skip no futimes ok 32 # skip no futimes ok 33 # skip no futimes ok 34 - futimes is unimplemented ok 35 - unlink b ok 36 - ino of unlinked file b should be undef ok 37 # skip No symbolic links found to test with ok 38 # skip No symbolic links found to test with ok 39 - truncation to five bytes ok 40 - truncation to zero bytes ok 41 - fh resize to 200 ok 42 - fh resize to 200 working (filename check) ok 43 - fh resize to zero ok 44 - fh resize to zero working (filename check) ok 45 - fh resize by IO slot ok 46 - fh resize by IO slot working ok 47 - truncate(word) does not fall back to file name ok 48 - rename working ok 49 - rename on directories ok 50 - rename on directories working ok 51 - extend sp in pp_chmod ok 52 - extend sp in pp_chown ok 53 - can't unlink directory without -U and privileges ok 54 - unlink directory without -U sets errno ok 55 - unlink non-existent directory without -U sets ENOENT


NOW FOR OP/STAT.T

commit de5a37b24d3c405a83300dc0afd66334b549f88c Author​: Michael G. Schwern \schwern@&#8203;pobox\.com Tue Dec 4 21​:22​:05 2001 Committer​: Jarkko Hietaniemi \jhi@&#8203;iki\.fi Wed Dec 5 08​:21​:09 2001

stat.t portability\, the LAST VMS exception! Message-ID​: \20011205022205\.F14333@&#8203;blackrider

p4raw-id​: //depot/perl@​13470


F​:\perl\t>perl -I..\lib op/stat_de5a37b.t 1..73 ok 1 - nlink on regular file ok 2 # skip mtime and ctime not reliable ok 3 # skip mtime and ctime not reliable ok 4 - link() implemented not ok 5 - linked tmp testfile # Failed test 5 - linked tmp testfile at op/stat_de5a37b.t line 70 ok 6 - chmoded tmp testfile not ok 7 - Link count on hard linked file # Failed test 7 - Link count on hard linked file at op/stat_de5a37b.t line 77 # got "1" # expected "2" ok 8 - hard link mtime ok 9 - hard link ctime != mtime ok 10 - -z on empty file ok 11 - and -s ok 12 - -z on non-empty file ok 13 - and -s ok 14 - chmod 0000 ok 15 # skip Can't test -r or -w meaningfully if you're superuser ok 16 # skip Can't test -r or -w meaningfully if you're superuser ok 17 - -x ok 18 - chmod 0700 ok 19 - -r ok 20 - -w ok 21 # skip -x simply determins if a file ends in an executable suffix ok 22 - -f ok 23 - !-d ok 24 - -d cwd ok 25 - !-f cwd ok 26 # skip symlink not implemented ok 27 # skip symlink not implemented ok 28 # skip symlink not implemented ok 29 - -o ok 30 - -e ok 31 - -e on unlinked file ok 32 # skip No character\, socket or block special files ok 33 # skip No character\, socket or block special files ok 34 # skip No character\, socket or block special files ok 35 # skip No character\, socket or block special files ok 36 # skip No character\, socket or block special files ok 37 # skip No character\, socket or block special files ok 38 # skip No character\, socket or block special files ok 39 - !-c cwd ok 40 - !-S cwd ok 41 - !-b cwd ok 42 # skip No setuid ok 43 # skip No setuid ok 44 # skip No setuid ok 45 # skip Test uses unixisms ok 46 # skip Test uses unixisms ok 47 - !-t on closed TTY filehandle ok 48 - -t on STDIN ok 49 # skip No null device to test with ok 50 - -T ok 51 - !-B ok 52 - -B ok 53 - !-T ok 54 - -T on filehandle causes no errors ok 55 - -T ok 56 - !-B ok 57 - after readline ok 58 - still -T ok 59 - still -B ok 60 - reopened and after readline ok 61 - still -T ok 62 - still !-B ok 63 - after seek ok 64 - still -T ok 65 - still !-B ok 66 - at EOF ok 67 - still -T ok 68 - now -B ok 69 # skip No null device to test with ok 70 # skip No null device to test with ok 71 - bare -f uses $_ ok 72 - -f() " ok 73 - stat returns full 13 elements


Revision​: cc25fa79f0d20e45d56da14d4ae1a54a2370b6d6 Author​: Michael G. Schwern \schwern@&#8203;pobox\.com Date​: 12/4/2001 6​:40​:10 PM Message​: Re​: [PATCH t/op/stat.t t/test.pl] stat.t cleanup\, first pass

Message-ID​: \20011204234010\.B14333@&#8203;blackrider

p4raw-id​: //depot/perl@​13469


F​:\perl\t>perl -I..\lib op/stat_cc25fa7.t 1..63 ok 1 - nlink on regular file ok 2 # skip mtime and ctime not reliable ok 3 # skip mtime and ctime not reliable ok 4 # skip No hard links ok 5 # skip No hard links ok 6 # skip No hard links ok 7 # skip No hard links ok 8 # skip No hard links ok 9 - -z on empty file ok 10 - and -s ok 11 - -z on non-empty file ok 12 - and -s ok 13 - chmod 0000 ok 14 # skip Can't test -r or -w meaningfully if you're superuser ok 15 # skip Can't test -r or -w meaningfully if you're superuser ok 16 - -x ok 17 - chmod 0700 ok 18 - -r ok 19 - -w ok 20 # skip -x simply determins if a file ends in an executable suffix ok 21 - -f ok 22 - !-d ok 23 - -d cwd ok 24 - !-f cwd ok 25 # skip Test uses unixisms ok 26 - -o ok 27 - -e not ok 28 - unlink # Failed test 28 - unlink at op/stat_cc25fa7.t line 169 ok 29 - -e on unlinked file ok 30 # skip No character special files ok 31 - !-c cwd ok 32 # skip No socket files ok 33 - !-S cwd ok 34 # skip No block files ok 35 - !-b cwd ok 36 # skip No setuid ok 37 # skip No setuid ok 38 # skip Test uses unixisms ok 39 # skip Test uses unixisms ok 40 - !-t on closed TTY filehandle ok 41 - -t on STDIN ok 42 # skip No /dev/null to test with ok 43 - -T ok 44 - !-B ok 45 - -B ok 46 - !-T ok 47 - -T on filehandle causes no errors ok 48 - -T ok 49 - !-B ok 50 - after readline ok 51 - still -T ok 52 - still -B ok 53 - reopened and after readline ok 54 - still -T ok 55 - still !-B ok 56 - after seek ok 57 - still -T ok 58 - still !-B ok 59 - /dev/null is -T ok 60 - and -B ok 61 - bare -f uses $_ ok 62 - -f() " ok 63 - stat returns full 13 elements

F​:\perl\t>


So commit "stat.t portability\, the LAST VMS exception!" introduced test fails 5 and 7. In commit just previous to "stat.t portability\, the LAST VMS exception!"\, which is "Re​: [PATCH t/op/stat.t t/test.pl] stat.t cleanup\, first pass" test 28 fails


not ok 28 - unlink # Failed test 28 - unlink at op/stat_cc25fa7.t line 169


This is because earlier in "Re​: [PATCH t/op/stat.t t/test.pl] stat.t cleanup\, first pass" stat.t\,


SKIP​: {   unlink $tmpfile_link;

  skip "No hard links"\, 5 if $Is_Dosish || $Is_MPE;


The skip was executed and in test 28\, which is


ok(unlink($tmpfile_link)\, 'unlink');


therefore\, $tmpfile_link\, rightfully doesn't exist because of the earlier skip().

So the tests failed because


SKIP​: {   unlink $tmpfile_link;

  skip "No hard links"\, 5 if $Is_Dosish || $Is_MPE;


became


SKIP​: {   unlink $tmpfile_link;   my $lnk_result = eval { link $tmpfile\, $tmpfile_link };   skip "link() unimplemented"\, 6 if $@​ =~ /unimplemented/;


Now\, link\, is implemented on Win32\, so trying it in the new commit is fine (stop using $Is_Dosish is correct behavior)\, but it only works on NTFS. stat.t doesn't have the Win32​::FsType check that io/fs.t has. It probably needs the Win32​::FsType check.

The above explains test fails 5 and 7\, but not test fail 86\, "# Failed test 86 - negative -A works at op/stat.t line 504". Perlport says "-g \, -k \, -l \, -u \, -A are not particularly meaningful. (Win32\, VMS\, RISC OS)" in commit \|/ which added the file perlport.

Author​: Gurusamy Sarathy \gsar@&#8203;cpan\.org 1998-07-10 20​:25​:17 Committer​: Gurusamy Sarathy \gsar@&#8203;cpan\.org 1998-07-10 20​:25​:17 Parent​: bf6b5eb4157d8ec84b03a82e6575ebd58812ca0a (make binmode(STDIN) not whine) Branches​: many (242) Follows​: perl-5.004_04 Precedes​: perl-5.005

  add perlport.pod v1.23 from Chris Nandor \pudge@&#8203;pobox\.com  
  p4raw-id​: //depot/perl@​1412

Here is a run of blead's stat.t which shows test 86 failing.


F​:\perl\t>perl -I..\lib op/stat.t 1..113 ok 1 - nlink on regular file ok 2 # skip mtime and ctime not reliable ok 3 # skip mtime and ctime not reliable ok 4 - link() implemented not ok 5 - linked tmp testfile # Failed test 5 - linked tmp testfile at op/stat.t line 103 ok 6 - chmoded tmp testfile not ok 7 - Link count on hard linked file # Failed test 7 - Link count on hard linked file at op/stat.t line 113 # got "1" # expected "2" ok 8 # skip No ctime concept on this OS ok 9 # skip No ctime concept on this OS ok 10 - -z on empty filehandle ok 11 - and -s ok 12 - -z on empty file ok 13 - and -s ok 14 - -z on empty filehandle ok 15 - and -s ok 16 - -z on non-empty file ok 17 - and -s ok 18 - chmod 0000 ok 19 # skip Can't test -r or -w meaningfully if you're superuser ok 20 # skip Can't test -r or -w meaningfully if you're superuser ok 21 - -x ok 22 - chmod 0700 ok 23 - -r ok 24 - -w ok 25 # skip -x simply determines if a file ends in an executable suffix ok 26 - -f ok 27 - !-d ok 28 - -d cwd ok 29 - !-f cwd ok 30 # skip symlink not implemented ok 31 # skip symlink not implemented ok 32 # skip symlink not implemented ok 33 - -o ok 34 - -e ok 35 - -e on unlinked file ok 36 # skip No character\, socket or block special files ok 37 # skip No character\, socket or block special files ok 38 # skip No character\, socket or block special files ok 39 # skip No character\, socket or block special files ok 40 # skip No character\, socket or block special files ok 41 # skip No character\, socket or block special files ok 42 # skip Can't find a setuid file to test with ok 43 # skip Can't find a setuid file to test with ok 44 # skip Can't find a setuid file to test with ok 45 # skip Test uses unixisms ok 46 # skip Test uses unixisms ok 47 - !-t on closed TTY filehandle ok 48 - -t on STDIN ok 49 # skip No null device to test with ok 50 - -T ok 51 - !-B ok 52 - -B ok 53 - !-T ok 54 - -T on filehandle causes no errors ok 55 - -T ok 56 - !-B ok 57 - after readline ok 58 - still -T ok 59 - still -B ok 60 - reopened and after readline ok 61 - still -T ok 62 - still !-B ok 63 - after seek ok 64 - still -T ok 65 - still !-B ok 66 - at EOF ok 67 - still -T ok 68 - now -B ok 69 # skip No null device to test with ok 70 # skip No null device to test with ok 71 - bare -f uses $_ ok 72 - -f() " ok 73 - stat returns full 13 elements ok 74 - lstat _ croaks after stat ok 75 - lstat *_ croaks after stat ok 76 - lstat \*_ croaks after stat ok 77 - -l _ croaks after stat ok 78 - lstat _ ok after lstat ok 79 - -l _ ok after lstat ok 80 - stat $ioref resets stat type ok 81 - lstat $ioref reverts to regular fstat ok 82 # skip No lstat ok 83 # skip No lstat # Zzz... ok 84 - can create tmp file # time=1393986207\, stat=(5 0 33206 1 0 0 5 0 1393909200 1393986214 1393986212 )

# -MAC=(-8.10185185185185e-005 0.891284722222222 -5.78703703703704e-005) ok 85 - negative -M works not ok 86 - negative -A works # Failed test 86 - negative -A works at op/stat.t line 504 ok 87 - negative -C works ok 88 - unlink tmp file ok 89 - can create temp file ok 90 - -T _ doesn't break the statbuffer ok 91 # skip No lstat ok 92 # skip No dirfd() ok 93 # skip No dirfd() ok 94 # skip No dirfd() ok 95 # skip No dirfd() ok 96 # skip No dirfd() ok 97 # skip No dirfd() ok 98 # skip No dirfd() ok 99 # skip No dirfd() ok 100 # skip No dirfd() ok 101 - can create temp file ok 102 - stat(*F{IO}) works ok 103 - single file tests work with *F{IO} ok 104 # skip No dirfd() ok 105 # skip No dirfd() ok 106 # skip No dirfd() ok 107 # skip No dirfd() ok 108 # skip No dirfd() ok 109 # skip No dirfd() ok 110 # skip No dirfd() ok 111 # skip No dirfd() ok 112 # skip No dirfd() ok 113 - no unopened warning from stat _

F​:\perl\t>


I am not sure what -A is supposed to exactly return or do\, perlfunc just says


# -M Script start time minus file modification time\, in days. # -A Same for access time.


and the test above gives


# -MAC=(-8.10185185185185e-005 0.891284722222222 -5.78703703703704e-005)


a positive number for "-A".

-A in stat.t was added\, not refactored (brand new tests added as a bug fix\, not refactoring of old ones)\, in


Author​: Ilya Zakharevich \ilya@&#8203;math\.berkeley\.edu 2003-09-18 07​:02​:02 Committer​: Jarkko Hietaniemi \jhi@&#8203;iki\.fi 2003-09-18 15​:23​:22 Parent​: 29ddfe354327d85ef66e9723b006d41eb553cd25 (Re​: [perl #19582] [PATCH bleedperl] bad overload copy constructor segfaults) Child​: f3b9614f0158a3b651efa95838d539130c869eef (Integrate a change from the perlfaq CVS.) Branches​: many (240) Follows​: perl-5.8.0 Precedes​: perl-5.9.0

  -M -A -C broken   Message-ID​: \20030918180202\.GA21949@&#8203;math\.berkeley\.edu  
  (use stat.t instead of time.t)  
  p4raw-id​: //depot/perl@​21277


I think from reading the code (no time to step) fs.t uses $accurate_timestamps which is NTFS sensistive to check atime or not. stat.t has no such code\, isntead it does


open(FOO\, ">$tmpfile") || DIE("Can't open temp test file​: $!");

my($nlink\, $mtime\, $ctime) = (stat(FOO))[$NLINK\, $MTIME\, $CTIME];

# The clock on a network filesystem might be different from the # system clock. my $Filesystem_Time_Offset = abs($mtime - time); ............................. SKIP​: {   skip "Too much clock skew between system and filesystem"\, 5   if ($Filesystem_Time_Offset > 5);   print "# Zzz...\n";   sleep($Filesystem_Time_Offset+1);   my $f = 'tstamp.tmp';


-- bulk88 ~ bulk88 at hotmail.com

p5pRT commented 10 years ago

From @bulk88

Here is a patch for io/fs.t failing. op/stat.t needs responses from the ML before I can decide if I can do something about it. Also a perldelta will be needed. I guess it will be part of op/stat.t since this ticket will stay open even after this patch was applied due to the unresolved op/stat.t failures.

-- bulk88 ~ bulk88 at hotmail.com

p5pRT commented 10 years ago

From @bulk88

0001-perl-21442-fix-fs.t-failures-on-Win32-FAT-drive.patch ```diff From 59e95818283c359852c6adf8c335695c2f159e40 Mon Sep 17 00:00:00 2001 From: bulk88 Date: Wed, 5 Mar 2014 07:42:21 -0500 Subject: [PATCH] [perl #21442] fix fs.t failures on Win32 FAT drive See ticket for details. This commit does not fix all issues in #21442. --- t/io/fs.t | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/t/io/fs.t b/t/io/fs.t index 78d22e2..5e82b45 100644 --- a/t/io/fs.t +++ b/t/io/fs.t @@ -44,6 +44,9 @@ if (defined &Win32::IsWinNT && Win32::IsWinNT()) { $has_link = 1; $accurate_timestamps = 1; } + else { + $has_link = 0; + } } my $needs_fh_reopen = -- 1.7.9.msysgit.0 ```
p5pRT commented 10 years ago

From @bulk88

On Wed Mar 05 04​:47​:12 2014\, bulk88 wrote​:

Here is a patch for io/fs.t failing. op/stat.t needs responses from the ML before I can decide if I can do something about it. Also a perldelta will be needed. I guess it will be part of op/stat.t since this ticket will stay open even after this patch was applied due to the unresolved op/stat.t failures.

Bump.

-- bulk88 ~ bulk88 at hotmail.com

p5pRT commented 10 years ago

From @tonycoz

On Wed Mar 05 04​:47​:12 2014\, bulk88 wrote​:

Here is a patch for io/fs.t failing. op/stat.t needs responses from the ML before I can decide if I can do something about it. Also a perldelta will be needed. I guess it will be part of op/stat.t since this ticket will stay open even after this patch was applied due to the unresolved op/stat.t failures.

Attached is a patch for the t/op/stat.t failure.

This only avoids the failure on MSWin32\, and doesn't try to avoid the failure if you test on FAT on say darwin or Linux.

Tony

p5pRT commented 10 years ago

From @tonycoz

0001-perl-21442-skip-link-tests-where-the-filesystem-does.patch ```diff From 659e10a2a275d0b04b04f86c1c8f2aef1a54feee Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Wed, 26 Mar 2014 11:35:48 +1100 Subject: [PATCH] [perl #21442] skip link() tests where the filesystem doesn't support them --- t/op/stat.t | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/t/op/stat.t b/t/op/stat.t index 91ce396..b325c56 100644 --- a/t/op/stat.t +++ b/t/op/stat.t @@ -93,6 +93,7 @@ close(FOO); sleep 2; +my $ERROR_INVALID_FUNCTION = 1; # win32 error code SKIP: { unlink $tmpfile_link; @@ -100,6 +101,12 @@ SKIP: { skip "link() unimplemented", 6 if $@ =~ /unimplemented/; is( $@, '', 'link() implemented' ); + + if ($tmpfile_link && + ($^O eq "MSWin32" && $^E == $ERROR_INVALID_FUNCTION)) { + skip "link() not available on this filesystem", 5 + } + ok( $lnk_result, 'linked tmp testfile' ); ok( chmod(0644, $tmpfile), 'chmoded tmp testfile' ); -- 1.7.4.msysgit.0 ```
p5pRT commented 10 years ago

From @bulk88

On Tue Mar 25 17​:46​:18 2014\, tonyc wrote​:

On Wed Mar 05 04​:47​:12 2014\, bulk88 wrote​:

Here is a patch for io/fs.t failing. op/stat.t needs responses from the ML before I can decide if I can do something about it. Also a perldelta will be needed. I guess it will be part of op/stat.t since this ticket will stay open even after this patch was applied due to the unresolved op/stat.t failures.

Attached is a patch for the t/op/stat.t failure.

This only avoids the failure on MSWin32\, and doesn't try to avoid the failure if you test on FAT on say darwin or Linux.

Tony

So when will these things start getting commited?

-- bulk88 ~ bulk88 at hotmail.com

p5pRT commented 10 years ago

From @tonycoz

On Thu\, Apr 03\, 2014 at 11​:23​:49PM -0700\, bulk88 via RT wrote​:

On Tue Mar 25 17​:46​:18 2014\, tonyc wrote​:

On Wed Mar 05 04​:47​:12 2014\, bulk88 wrote​:

Here is a patch for io/fs.t failing. op/stat.t needs responses from the ML before I can decide if I can do something about it. Also a perldelta will be needed. I guess it will be part of op/stat.t since this ticket will stay open even after this patch was applied due to the unresolved op/stat.t failures.

Attached is a patch for the t/op/stat.t failure.

This only avoids the failure on MSWin32\, and doesn't try to avoid the failure if you test on FAT on say darwin or Linux.

Tony

So when will these things start getting commited?

Next week\, I'm testing other FAT on Win32 fixes\, and until last night it was slow (USB2).

Tony

p5pRT commented 10 years ago

From @steve-m-hay

On Thu Apr 03 23​:47​:37 2014\, tonyc wrote​:

On Thu\, Apr 03\, 2014 at 11​:23​:49PM -0700\, bulk88 via RT wrote​:

On Tue Mar 25 17​:46​:18 2014\, tonyc wrote​:

On Wed Mar 05 04​:47​:12 2014\, bulk88 wrote​:

Here is a patch for io/fs.t failing. op/stat.t needs responses from the ML before I can decide if I can do something about it. Also a perldelta will be needed. I guess it will be part of op/stat.t since this ticket will stay open even after this patch was applied due to the unresolved op/stat.t failures.

Attached is a patch for the t/op/stat.t failure.

This only avoids the failure on MSWin32\, and doesn't try to avoid the failure if you test on FAT on say darwin or Linux.

Tony

So when will these things start getting commited?

Next week\, I'm testing other FAT on Win32 fixes\, and until last night it was slow (USB2).

Out of the box I currently get these failures on FAT32​:

Test Summary Report


io/fs.t (Wstat​: 0 Tests​: 55 Failed​: 8)   Failed tests​: 2-5\, 7-9\, 11 op/stat.t (Wstat​: 0 Tests​: 113 Failed​: 3)   Failed tests​: 5\, 7\, 86 win32/fs.t (Wstat​: 0 Tests​: 4 Failed​: 1)   Failed test​: 4 Files=2407\, Tests=690430\, 3901 wallclock secs (50.70 usr + 10.59 sys = 61.29 CPU) Result​: FAIL

With the two patches from above\, io/fs.t is now ok\, but op/stat.t still fails test 86\, and win32/fs.t hasn't been addressed​:

K​:\perl\t>..\perl harness -v op\stat.t [...] ok 82 # skip No lstat ok 83 # skip No lstat # Zzz... ok 84 - can create tmp file # time=1396912752\, stat=(10 0 33206 1 0 0 10 0 1396911600 1396912758 1396912757 ) # -MAC=(-6.94444444444444e-005 0.0133333333333333 -5.78703703703704e-005) ok 85 - negative -M works not ok 86 - negative -A works ok 87 - negative -C works ok 88 - unlink tmp file ok 89 - can create temp file ok 90 - -T _ doesn't break the statbuffer [...]

K​:\perl\t>..\perl harness -v win32\fs.t win32/fs.t .. # Failed test 4 - check for EEXIST at win32/fs.t line 28 # got "22" # expected "17"

1..4 ok 1 - Cannot link to unknown file ok 2 - check errno is ENOENT ok 3 - Cannot link to existing file not ok 4 - check for EEXIST Failed 1/4 subtests

p5pRT commented 10 years ago

From @bulk88

On Thu Apr 03 23​:47​:37 2014\, tonyc wrote​:

On Thu\, Apr 03\, 2014 at 11​:23​:49PM -0700\, bulk88 via RT wrote​:

On Tue Mar 25 17​:46​:18 2014\, tonyc wrote​:

On Wed Mar 05 04​:47​:12 2014\, bulk88 wrote​:

Here is a patch for io/fs.t failing. op/stat.t needs responses from the ML before I can decide if I can do something about it. Also a perldelta will be needed. I guess it will be part of op/stat.t since this ticket will stay open even after this patch was applied due to the unresolved op/stat.t failures.

Attached is a patch for the t/op/stat.t failure.

This only avoids the failure on MSWin32\, and doesn't try to avoid the failure if you test on FAT on say darwin or Linux.

Tony

So when will these things start getting commited?

Next week\, I'm testing other FAT on Win32 fixes\, and until last night it was slow (USB2).

Tony

No failures on smoke-me/tonyc/fatfix


../lib/vars.t ..................................................... ok ../lib/vars_carp.t ................................................ ok ../lib/vmsish.t ................................................... ok ../lib/warnings.t ................................................. ok x2p/find2perl.t ................................................... skipped​: Nee d something vaguely POSIX x2p/s2p.t ......................................................... ok

Test Summary Report


../cpan/IPC-Cmd/t/01_IPC-Cmd.t (Wstat​: 256 Test s​: 459 Failed​: 1)   Failed test​: 141   Non-zero exit status​: 1 ../dist/lib/t/01lib.t (Wstat​: 1280 Tes ts​: 13 Failed​: 0)   Non-zero exit status​: 5 Files=2407\, Tests=690383\, 3494 wallclock secs (82.97 usr + 4.73 sys = 87.70 CPU ) Result​: FAIL NMAKE : fatal error U1077​: '..\perl.exe' : return code '0x1' Stop.

F​:\perl\win32>cd ..\t

F​:\perl\t>perl harness ../cpan/IPC-Cmd/t/01_IPC-Cmd.t ../cpan/IPC-Cmd/t/01_IPC-Cmd.t .. ok All tests successful. Files=1\, Tests=459\, 2 wallclock secs ( 0.05 usr + 0.02 sys = 0.06 CPU) Result​: PASS

F​:\perl\t>perl -I..\lib harness ../cpan/IPC-Cmd/t/01_IPC-Cmd.t ../cpan/IPC-Cmd/t/01_IPC-Cmd.t .. ok All tests successful. Files=1\, Tests=459\, 3 wallclock secs ( 0.03 usr + 0.00 sys = 0.03 CPU) Result​: PASS

F​:\perl\t>


-- bulk88 ~ bulk88 at hotmail.com

p5pRT commented 10 years ago

From @steve-m-hay

On 8 April 2014 00​:20\, Steve Hay via RT \perlbug\-followup@&#8203;perl\.org wrote​:

On Thu Apr 03 23​:47​:37 2014\, tonyc wrote​:

On Thu\, Apr 03\, 2014 at 11​:23​:49PM -0700\, bulk88 via RT wrote​:

On Tue Mar 25 17​:46​:18 2014\, tonyc wrote​:

On Wed Mar 05 04​:47​:12 2014\, bulk88 wrote​:

Here is a patch for io/fs.t failing. op/stat.t needs responses from the ML before I can decide if I can do something about it. Also a perldelta will be needed. I guess it will be part of op/stat.t since this ticket will stay open even after this patch was applied due to the unresolved op/stat.t failures.

Attached is a patch for the t/op/stat.t failure.

This only avoids the failure on MSWin32\, and doesn't try to avoid the failure if you test on FAT on say darwin or Linux.

Tony

So when will these things start getting commited?

Next week\, I'm testing other FAT on Win32 fixes\, and until last night it was slow (USB2).

Out of the box I currently get these failures on FAT32​:

Test Summary Report ------------------- io/fs.t (Wstat​: 0 Tests​: 55 Failed​: 8) Failed tests​: 2-5\, 7-9\, 11 op/stat.t (Wstat​: 0 Tests​: 113 Failed​: 3) Failed tests​: 5\, 7\, 86 win32/fs.t (Wstat​: 0 Tests​: 4 Failed​: 1) Failed test​: 4 Files=2407\, Tests=690430\, 3901 wallclock secs (50.70 usr + 10.59 sys = 61.29 CPU) Result​: FAIL

With the two patches from above\, io/fs.t is now ok\, but op/stat.t still fails test 86\, and win32/fs.t hasn't been addressed​:

K​:\perl\t>..\perl harness -v op\stat.t [...] ok 82 # skip No lstat ok 83 # skip No lstat # Zzz... ok 84 - can create tmp file # time=1396912752\, stat=(10 0 33206 1 0 0 10 0 1396911600 1396912758 1396912757 ) # -MAC=(-6.94444444444444e-005 0.0133333333333333 -5.78703703703704e-005) ok 85 - negative -M works not ok 86 - negative -A works ok 87 - negative -C works ok 88 - unlink tmp file ok 89 - can create temp file ok 90 - -T _ doesn't break the statbuffer [...]

K​:\perl\t>..\perl harness -v win32\fs.t win32/fs.t .. # Failed test 4 - check for EEXIST at win32/fs.t line 28 # got "22" # expected "17"

1..4 ok 1 - Cannot link to unknown file ok 2 - check errno is ENOENT ok 3 - Cannot link to existing file not ok 4 - check for EEXIST Failed 1/4 subtests

I hadn't noticed the smoke-me/tonyc/fatfix branch then\, but having tried it now I find (as bulk88 did) that all tests now pass (or skip).

p5pRT commented 10 years ago

From @tonycoz

On Tue Apr 08 16​:28​:46 2014\, shay wrote​:

I hadn't noticed the smoke-me/tonyc/fatfix branch then\, but having tried it now I find (as bulk88 did) that all tests now pass (or skip).

Thanks Steve\, bulk88.

Pushed as 58a5e53e67093ffbcd1d4e5f962f2a2f8ebf4172\, 3420f3f509a0c431d3fca0ab9e77790cc7fac1ab\, e08070a001d506ba49ada1c38161255f2d1bdf06.

Tony

p5pRT commented 10 years ago

@tonycoz - Status changed from 'open' to 'resolved'