Closed p5pRT closed 11 years ago
The following tests fail on DragonflyBSD:
Test Summary Report ------------------- ../lib/File/Copy.t (Wstat: 20224 Tests: 84 Failed: 0) Non-zero exit status: 79 Parse errors: Bad plan. You planned 465 tests but ran 84. ../lib/filetest.t (Wstat: 512 Tests: 15 Failed: 2) Failed tests: 12-13 Non-zero exit status: 2 Files=2382\, Tests=619227\, 1302 wallclock secs (81.26 usr 67.84 sys + 582.18 cusr 491.78 csys = 1223.06 CPU) Result: FAIL
Further detail from running the tests under harness:
$ ./perl harness -v ../lib/File/Copy.t Inappropriate file type or format: file-31740 => 2777 at ../lib/File/Copy.t line 339. # Looks like you planned 465 tests but ran 84. # Looks like your test exited with 79 just after 84. ../lib/File/Copy.t .. 1..465 ok 1 - 'copy()' is a usage error ok 2 - 'copy('arg')' is a usage error ok 3 - 'copy('arg'\, 'arg'\, 'arg'\, 'arg')' is a usage error ok 4 - 'move()' is a usage error ok 5 - 'move('arg')' is a usage error ok 6 - 'move('arg'\, 'arg'\, 'arg')' is a usage error ok 7 - copy(fn\, fn): files of the same size ok 8 - copy(fn\, fn): same contents # next test checks copying to STDOUT ok ok 10 - copy(*F\, fn): same contents ok 11 - copy(\*F\, fn): same contents ok 12 - copy(fn\, io): same contents ok 13 - copy(fn\, fh): same contents ok 14 - move on missing file ok 15 - target still there ok 16 - move ok 17 - destination exists ok 18 - source does not ok 19 - contents preserved ok 20 - mtime preserved by copy() ok 21 - copy(fn\, dir): same contents ok 22 - copy over the same file works ok 23 - copy to itself fails ok 24 - but warns ok 25 - contents preserved ok 26 - move(fn\, dir): same contents ok 27 - file moved indeed ok 28 - copy to itself (via symlink) fails ok 29 - emits a warning ok 30 - rt.perl.org 5196: copying to itself would truncate the file ok 31 - copy to itself (via hardlink) fails ok 32 - emits a warning ok 33 - rt.perl.org 5196: copying to itself would truncate the file ok 34 - a bad buffer size fails to copy ok 35 - with a helpful error message ok 36 - There is 1 warning ok 37 - but does not truncate the destination ok 38 - nor change the destination's contents ok 39 - copy with leading whitespace ok 40 - copy(fn\, fn): files of the same size ok 41 - copy(fn\, fn): same contents # next test checks copying to STDOUT ok ok 43 - copy(*F\, fn): same contents ok 44 - copy(\*F\, fn): same contents ok 45 - copy(fn\, io): same contents ok 46 - copy(fn\, fh): same contents ok 47 - move on missing file ok 48 - target still there ok 49 - move ok 50 - destination exists ok 51 - source does not ok 52 - contents preserved ok 53 - mtime preserved by copy() while testing cross-partition ok 54 - copy(fn\, dir): same contents ok 55 - copy over the same file works ok 56 - copy to itself fails ok 57 - but warns ok 58 - contents preserved ok 59 - move(fn\, dir): same contents ok 60 - file moved indeed ok 61 - copy to itself (via symlink) fails ok 62 - emits a warning ok 63 - rt.perl.org 5196: copying to itself would truncate the file ok 64 - copy to itself (via hardlink) fails ok 65 - emits a warning ok 66 - rt.perl.org 5196: copying to itself would truncate the file ok 67 - a bad buffer size fails to copy ok 68 - with a helpful error message ok 69 - There is 1 warning ok 70 - but does not truncate the destination ok 71 - nor change the destination's contents ok 72 - copy with leading whitespace ok 73 - Permission bits set correctly ok 74 - Permission bits set correctly ok 75 - Permission bits set correctly ok 76 - Permission bits set correctly ok 77 - Permission bits not modified ok 78 - Permission bits not modified ok 79 - Permission bits set correctly ok 80 - Permission bits set correctly ok 81 - Permission bits set correctly ok 82 - Permission bits set correctly ok 83 - Permission bits not modified ok 84 - Permission bits not modified Dubious\, test returned 79 (wstat 20224\, 0x4f00) Failed 381/465 subtests
Test Summary Report ------------------- ../lib/File/Copy.t (Wstat: 20224 Tests: 84 Failed: 0) Non-zero exit status: 79 Parse errors: Bad plan. You planned 465 tests but ran 84. Files=1\, Tests=84\, 0 wallclock secs ( 0.02 usr 0.02 sys + 0.09 cusr 0.05 csys = 0.17 CPU) Result: FAIL
$ ./perl harness -v ../lib/filetest.t # Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 80. # got: '1' # expected: undef
# Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 82. # got: '1' # expected: undef # Looks like you failed 2 tests of 15. ../lib/filetest.t .. 1..15 ok 1 - required pragma successfully ok 2 - filetest dies with bad subpragma on import ok 3 - hint bits not set without pragma in place ok 4 - use filetest; ok 5 - hint bits set with pragma loaded ok 6 - hint bits not set with pragma unimported ok 7 - filetest dies without subpragma on unimport ok 8 - filetest dies with bad subpragma on unuse ok 9 - filetest dies with bad subpragma on use ok 10 - filetest dies with missing subpragma on use ok 11 - filetest dies with missing subpragma on unuse not ok 12 - filetest.tst should not be recognized as writable not ok 13 - filetest.tst should not be recognized as writable ok 14 - filetest.tst should be recognized as writable ok 15 - filetest.tst should be recognized as writable Dubious\, test returned 2 (wstat 512\, 0x200) Failed 2/15 subtests
Test Summary Report ------------------- ../lib/filetest.t (Wstat: 512 Tests: 15 Failed: 2) Failed tests: 12-13 Non-zero exit status: 2 Files=1\, Tests=15\, 0 wallclock secs ( 0.00 usr 0.02 sys + 0.03 cusr 0.03 csys = 0.09 CPU) Result: FAIL
On Tue\, Feb 19\, 2013 at 03:19:22AM -0800\, Kidney Bingos wrote:
The following tests fail on DragonflyBSD: [snip] $ ./perl harness -v ../lib/File/Copy.t Inappropriate file type or format: file-31740 => 2777 at ../lib/File/Copy.t line 339.
This means that perl is trying to do a chmod 2777 and is getting an OS error. Perhaps this version of BSD doesn't support the GID bit?
What error (if any) do the following give you:
$ touch foo $ chmod 2777 foo $ perl -le 'for (0..7) { chmod((($_ \<\< 9)|0777)\, "foo") or print "failed $_: $!" }'
$ ./perl harness -v ../lib/filetest.t # Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 80. # got: '1' # expected: undef
# Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 82. # got: '1' # expected: undef # Looks like you failed 2 tests of 15.
This is basically doing:
system "chflags uchg foo"; use filetest 'access'; print "ok\n" if ! -w "foo" print "ok\n" if ! -W "foo"
Since I have no idea what chflags does\, I can't comment further.
-- Justice is when you get what you deserve. Law is when you get what you pay for.
The RT System itself - Status changed from 'new' to 'open'
On Sat\, Feb 23\, 2013 at 11:57:04PM +0000\, Dave Mitchell wrote:
On Tue\, Feb 19\, 2013 at 03:19:22AM -0800\, Kidney Bingos wrote:
The following tests fail on DragonflyBSD: [snip] $ ./perl harness -v ../lib/File/Copy.t Inappropriate file type or format: file-31740 => 2777 at ../lib/File/Copy.t line 339.
This means that perl is trying to do a chmod 2777 and is getting an OS error. Perhaps this version of BSD doesn't support the GID bit?
What error (if any) do the following give you:
$ touch foo $ chmod 2777 foo $ perl -le 'for (0..7) { chmod((($_ \<\< 9)|0777)\, "foo") or print "failed $_: $!" }'
$ touch foo $ chmod 2777 foo $ ls -l total 1 -rwxrwsrwx 1 bingos bingos 0 Feb 24 18:27 foo drwxr-xr-x 3 bingos bingos 512 Feb 19 11:01 repos $ /opt/perl-5.16.2/bin/perl -le 'for (0..7) { chmod((($_ \<\< 9)|0777)\, "foo") or print "failed $_: $!" }' failed 2: Inappropriate file type or format failed 3: Inappropriate file type or format failed 4: Inappropriate file type or format failed 5: Inappropriate file type or format failed 6: Inappropriate file type or format failed 7: Inappropriate file type or format $
SetGID is supported. What seems to occur above is that once the sticky bit is set (sticky bit being restricted to directories on UFS-based FS) one can't change it\, [ http://leaf.dragonflybsd.org/cgi/web-man?command=chmod§ion=1 http://leaf.dragonflybsd.org/cgi/web-man?command=chmod§ion=2 ] which behaviour I can reproduce 'outside' perl:
$ touch foo $ chmod 2777 foo $ chmod 1777 foo $ chmod 2777 foo chmod: foo: Inappropriate file type or format
$ ./perl harness -v ../lib/filetest.t # Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 80. # got: '1' # expected: undef
# Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 82. # got: '1' # expected: undef # Looks like you failed 2 tests of 15.
This is basically doing:
system "chflags uchg foo"; use filetest 'access'; print "ok\\n" if \! \-w "foo" print "ok\\n" if \! \-W "foo"
Since I have no idea what chflags does\, I can't comment further.
chflags is similar to chattr on Linux from what I can gather. It wasn't something I was aware of until I found this test failing. [ http://leaf.dragonflybsd.org/cgi/web-man?command=chflags§ion=1 ]
On Dragonfly:
$ touch foo $ if [ -w foo ]; then echo "Yes"; fi Yes $ chflags uchg foo $ if [ -w foo ]; then echo "Yes"; fi Yes
On FreeBSD 7.4:
$ touch foo $ if [ -w foo ]; then echo "Yes"; fi Yes $ chflags uchg foo $ if [ -w foo ]; then echo "Yes"; fi $
I had raised this ticket so I didn't forget the test failures this time :(
On Sun Feb 24 11:07:42 2013\, chris@bingosnet.co.uk wrote:
On Sat\, Feb 23\, 2013 at 11:57:04PM +0000\, Dave Mitchell wrote:
On Tue\, Feb 19\, 2013 at 03:19:22AM -0800\, Kidney Bingos wrote:
The following tests fail on DragonflyBSD: [snip] $ ./perl harness -v ../lib/File/Copy.t Inappropriate file type or format: file-31740 => 2777 at ../lib/File/Copy.t line 339.
This means that perl is trying to do a chmod 2777 and is getting an OS error. Perhaps this version of BSD doesn't support the GID bit?
What error (if any) do the following give you:
$ touch foo $ chmod 2777 foo $ perl -le 'for (0..7) { chmod((($_ \<\< 9)|0777)\, "foo") or print "failed $_: $!" }'
$ touch foo $ chmod 2777 foo $ ls -l total 1 -rwxrwsrwx 1 bingos bingos 0 Feb 24 18:27 foo drwxr-xr-x 3 bingos bingos 512 Feb 19 11:01 repos $ /opt/perl-5.16.2/bin/perl -le 'for (0..7) { chmod((($_ \<\< 9)|0777)\, "foo") or print "failed $_: $!" }' failed 2: Inappropriate file type or format failed 3: Inappropriate file type or format failed 4: Inappropriate file type or format failed 5: Inappropriate file type or format failed 6: Inappropriate file type or format failed 7: Inappropriate file type or format $
SetGID is supported. What seems to occur above is that once the sticky bit is set (sticky bit being restricted to directories on UFS-based FS) one can't change it\, [ http://leaf.dragonflybsd.org/cgi/web-man?command=chmod§ion=1 http://leaf.dragonflybsd.org/cgi/web-man?command=chmod§ion=2 ] which behaviour I can reproduce 'outside' perl:
$ touch foo $ chmod 2777 foo $ chmod 1777 foo $ chmod 2777 foo chmod: foo: Inappropriate file type or format
$ ./perl harness -v ../lib/filetest.t # Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 80. # got: '1' # expected: undef
# Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 82. # got: '1' # expected: undef # Looks like you failed 2 tests of 15.
This is basically doing:
system "chflags uchg foo"; use filetest 'access'; print "ok\\n" if \! \-w "foo" print "ok\\n" if \! \-W "foo"
Since I have no idea what chflags does\, I can't comment further.
chflags is similar to chattr on Linux from what I can gather. It wasn't something I was aware of until I found this test failing. [ http://leaf.dragonflybsd.org/cgi/web-man?command=chflags§ion=1 ]
On Dragonfly:
$ touch foo $ if [ -w foo ]; then echo "Yes"; fi Yes $ chflags uchg foo $ if [ -w foo ]; then echo "Yes"; fi Yes
On FreeBSD 7.4:
$ touch foo $ if [ -w foo ]; then echo "Yes"; fi Yes $ chflags uchg foo $ if [ -w foo ]; then echo "Yes"; fi $
I had raised this ticket so I didn't forget the test failures this time :(
Are these failures still appearing with 5.18.0?
And\, assuming they are\, do we have an idea how to fix them for this OS -- or what the right thing should be?
Thank you very much. Jim Keenan
On Sun\, May 19\, 2013 at 07:37:33PM -0700\, James E Keenan via RT wrote:
On Sun Feb 24 11:07:42 2013\, chris@bingosnet.co.uk wrote:
On Sat\, Feb 23\, 2013 at 11:57:04PM +0000\, Dave Mitchell wrote:
On Tue\, Feb 19\, 2013 at 03:19:22AM -0800\, Kidney Bingos wrote:
The following tests fail on DragonflyBSD: [snip] $ ./perl harness -v ../lib/File/Copy.t Inappropriate file type or format: file-31740 => 2777 at ../lib/File/Copy.t line 339.
This means that perl is trying to do a chmod 2777 and is getting an OS error. Perhaps this version of BSD doesn't support the GID bit?
What error (if any) do the following give you:
$ touch foo $ chmod 2777 foo $ perl -le 'for (0..7) { chmod((($_ \<\< 9)|0777)\, "foo") or print "failed $_: $!" }'
$ touch foo $ chmod 2777 foo $ ls -l total 1 -rwxrwsrwx 1 bingos bingos 0 Feb 24 18:27 foo drwxr-xr-x 3 bingos bingos 512 Feb 19 11:01 repos $ /opt/perl-5.16.2/bin/perl -le 'for (0..7) { chmod((($_ \<\< 9)|0777)\, "foo") or print "failed $_: $!" }' failed 2: Inappropriate file type or format failed 3: Inappropriate file type or format failed 4: Inappropriate file type or format failed 5: Inappropriate file type or format failed 6: Inappropriate file type or format failed 7: Inappropriate file type or format $
SetGID is supported. What seems to occur above is that once the sticky bit is set (sticky bit being restricted to directories on UFS-based FS) one can't change it\, [ http://leaf.dragonflybsd.org/cgi/web-man?command=chmod§ion=1 http://leaf.dragonflybsd.org/cgi/web-man?command=chmod§ion=2 ] which behaviour I can reproduce 'outside' perl:
$ touch foo $ chmod 2777 foo $ chmod 1777 foo $ chmod 2777 foo chmod: foo: Inappropriate file type or format
$ ./perl harness -v ../lib/filetest.t # Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 80. # got: '1' # expected: undef
# Failed test 'filetest.tst should not be recognized as writable' # at ../lib/filetest.t line 82. # got: '1' # expected: undef # Looks like you failed 2 tests of 15.
This is basically doing:
system "chflags uchg foo"; use filetest 'access'; print "ok\\n" if \! \-w "foo" print "ok\\n" if \! \-W "foo"
Since I have no idea what chflags does\, I can't comment further.
chflags is similar to chattr on Linux from what I can gather. It wasn't something I was aware of until I found this test failing. [ http://leaf.dragonflybsd.org/cgi/web-man?command=chflags§ion=1 ]
On Dragonfly:
$ touch foo $ if [ -w foo ]; then echo "Yes"; fi Yes $ chflags uchg foo $ if [ -w foo ]; then echo "Yes"; fi Yes
On FreeBSD 7.4:
$ touch foo $ if [ -w foo ]; then echo "Yes"; fi Yes $ chflags uchg foo $ if [ -w foo ]; then echo "Yes"; fi $
I had raised this ticket so I didn't forget the test failures this time :(
Are these failures still appearing with 5.18.0?
And\, assuming they are\, do we have an idea how to fix them for this OS -- or what the right thing should be?
Thank you very much. Jim Keenan
I dealt with these in what was blead and became v5.18.0
33821f2f1514a9813696be8d26217081cabbf062 lib/File/Copy.t d04589db35f09d1a2397c7ca43216163acba7a2d lib/filetest.t
The sticky bit appears to be extremely sticky.
And the dflybsd filetests don't appear to honour chflags.
Skipped those applicable tests on DragonflyBSD.
Cheers\,
@iabyn - Status changed from 'open' to 'resolved'
Migrated from rt.perl.org#116851 (status was 'resolved')
Searchable as RT116851$