On Sat, 7 Mar 2009, Jakub Narebski wrote:
Boyd Lynn Gerber <gerberb@xxxxxxxxx> writes:
Test fails for SCO OpenServer 6.0 MP4 with 1.6.2
Below is the set -x output of the tests.
Could you run it without -x, but with --debug (as option to test
itself) instead? Because what matters here not on which command the
test failed (we know it is on gitweb_run), but what error message
gitweb returned.
Yes,
Also the problem might with in Perl modules gitweb uses (CGI, Encode,
...), and with Perl version used, although it is less likely...
It is a perl problem...
* FAIL 18: .git blob (file)
gitweb_run "p=.git;a=blob;f=file"
[Sun Mar 8 01:11:44 2009] gitweb.perl: -T and -B not implemented on
filehandles at /tmp/git-1.6.2/t/../gitweb/gitweb.perl line 2853.
* FAIL 19: .git blob_plain (file)
gitweb_run "p=.git;a=blob_plain;f=file"
[Sun Mar 8 01:11:44 2009] gitweb.perl: -T and -B not implemented on
filehandles at /tmp/git-1.6.2/t/../gitweb/gitweb.perl line 2853.
* FAIL 62: path_info: project/branch:file
gitweb_run "" "/.git/master:file"
[Sun Mar 8 01:12:15 2009] gitweb.perl: -T and -B not implemented on
filehandles at /tmp/git-1.6.2/t/../gitweb/gitweb.perl line 2853.
* FAIL 66: path_info: project/branch:/file
gitweb_run "" "/.git/master:/file"
[Sun Mar 8 01:12:17 2009] gitweb.perl: -T and -B not implemented on
filehandles at /tmp/git-1.6.2/t/../gitweb/gitweb.perl line 2853.
I am not really sure what to do about it. I contacted SCO on a
different problem with the same type of filehandle problem and they told
me they have not implemented any thing is the OS that could do this test.
This is what I traced it to...
This is what Tim Rice and I received from SCO...
Re: __fpending()
Tim Rice wrote:
It looks like it needs __fpending, __fpurge, & __freading.
But as mentioned before, we can use funflush for __fpurge.
And for __freading() you could use
#define __freading(p) ((p)->__flag & _IOREAD)
or if we were to have had it in <stdio.h>, it'd look
more like the following (for C) for various reasons:
#define __freading(p) ((void)sizeof(__filbuf(p)), ((FILE *)(p))->__flag &
_IOREAD)
I strongly suspect these missing APIs are responsible for the
For C++, it's be an inline routine checking the flag.
I strongly suspect these missing APIs are responsible for the
problem I found with Perl too. See "uw714 MP4 perl" and "osr600
MP4 perl" thread.
This hadn't been raised as a possibility as far as I've
read in that thread -- did I miss something? Does this
mean you've built your own perl for uw7 and found that
you needed one or more of these __f...() routines?
And Boyd Gerber wrote:
Ah yes, we're doing
#if defined(__USLC__)
return (fp->__flag & _IOREAD) != 0;
#else
return (fp->_flag & _IOREAD) != 0;
#endif
Would you consider this test case.
......
cat > tst.pl << 'EOF'
open (FH, $ARGV[0]) || die ("Can't open $ARGV[0] -- $!\n");
print "Text\n" if (-T FH);
print "Binary\n" if (-B FH);
close (FH);
EOF
......
On OpenServer 5 if you run "perl tst.pl tst.pl" it will say
Text
On UnixWare 7.1.4 MP4 and OpenSever 6.0 MP4 if you run "perl tst.pl
tst.pl" it will say -T and -B not implemented on filehandles at tst.pl
line 2.
While googling I found according to a post by Randal Schwartz that this
means perl doesn't know enough about stdio on that platform.
Looking at /opt/lib/perl5/5.8.8/i386-unixware-thread-multi/Config_heavy.pl
we see things like stdio_base='((fp)->_base)' but then we have
d_stdiobase='undef' so it is not used.
And this wouldn't work but probably isn't used because of
d_stdiobase='undef'
stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
If we had __fbufsiz() it might be
stdio_bufsiz='__fbufsiz(fp)'
As the test program shows, there is something missing in UnixWare's
and OpenServer 6 perl's implementation.
--
Boyd Gerber <gerberb@xxxxxxxxx> 801 849-0213
ZENEZ 1042 East Fort Union #135, Midvale Utah 84047
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html