Tim Ellison wrote:
Paulex Yang wrote:
Tim,
Are you looking at this FileTest now?
I have not had time, so if you can fix them then please go ahead.
I've looked over this test, and
basically I think it's the test itself can be improved. If 8.3 filename
is disabled, the test_getCanonicalPath and test_getCanonicalFile fails
on both RI and Harmony. Look inside the tests, it creates a file
"longfilename.tst" and "longfi~`.tst", and try to assert these two file
returns same canonical path. My suggestions on this test are:
1. About platform issue, these two tests are windows specific, and there
are quite a few other test cases in FileTest written like "if(onWindows)
blabla", they should be separated to another platform dependent test
cases, according to our test convention proposal
2. About long file name issue, I think these 8.3 file name tests are
still valuable, I suggest to check the workstation's status at first,
and if it supports 8.3 filename, go on the tests, otherwise just skip
over this block, the status can be easily get by codes below: (suppose
we got a resource test file named as "longfilename.res")
private boolean support8Dot3Filename(){
return new File(basedir+"longfi~1.res").exists();
}
your comments?
Just wondering if that is something we should be able to answer in the
general case from the IFileSystem ? I guess no impl code takes notice
of that support, in which case what is the test testing?
The File.getCanonicalPath() should always return singular file path for
same underlying file even the j.i.File instances are constructed by
different parameters, and the 8.3 file name is one of case to be tested,
i.e, if new File("longfi~1.tst").getCanonicalPath() return same value
with new File("longfilename.tst").getCanonicalPath(), other similar
cases to be tested includes "./longfilename.tst" or "<absolute
path>/longfilename.tst". These tests are trying to verify Harmony has
same behavior on these cases(including 8.3 filename) with RI.
Moreover, stepping into the getCanonicalPath() implementation, there IS
some special process for Windows on this issue - a method named
platformCanonicalPath which locates in
native-src/win.IA32/luni/helpers.c, I guess(before looking more inside
to really understand what happens in this method ;-) ) this is the codes
taking care of this kind of supports.
So I think the only evil is the tests should be more accommodate to the
OS configuration. That's why I proposed the fix.
Regards,
Tim
Tim Ellison wrote:
Can you stick it into a JIRA? I may have time to look into it.
Regards,
Tim
Richard Liang wrote:
Hello Nathan,
Yes. When I disable 8.3 filename support on my WinXP, I get the same
error.
IMHO, our test case cannot assume whether the 8.3 filename is disabled
or not.
Richard.
Nathan Beyer wrote:
I'm running them through the Ant scripts.
ant -f make/build.xml test
I do have the 8.3 filename support disabled on my laptop, so I'm
wondering
if that's it.
-Nathan
-----Original Message-----
From: Richard Liang [mailto:[EMAIL PROTECTED]
Sent: Sunday, June 18, 2006 12:14 AM
To: [email protected]
Subject: Re: [classlib] tests.api.java.io.FileTest failures on
Windows XP
Hello Nathan ,
The test just pass on my eclipse. How do you execute this test?
Nathan Beyer wrote:
Does anyone else get the following failures when running the classlib
test
suite on Windows XP? I've been getting these for months and just
ignoring
them while I worked on other stuff, because they always happened.
Before
I
start digging into I wanted to see if anyone else is getting these
reports.
test_getCanonicalFileFailureTest 5: Incorrect File Returned:
C:\dev\harmony\classlib\modules\luni\bin\test\long-JDK2-
3\longdi~1\longfi~1.
tst
junit.framework.AssertionFailedError: Test 5: Incorrect File
Returned:
C:\dev\harmony\classlib\modules\luni\bin\test\long-JDK2-
3\longdi~1\longfi~1.
tst at
tests.api.java.io.FileTest.test_getCanonicalFile(FileTest.java:783)
at
java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)0.171
test_getCanonicalPathFailureTest 6: Incorrect Path Returned.
(C:\dev\harmony\classlib\modules\luni\bin\test\long-JDK2-3\longfi~1.tst
insteadof
C:\dev\harmony\classlib\modules\luni\bin\test\long-JDK2-
3\longfilenameJDK2-3
.tst)
junit.framework.AssertionFailedError: Test 6: Incorrect Path
Returned.
(C:\dev\harmony\classlib\modules\luni\bin\test\long-JDK2-3\longfi~1.tst
insteadof
C:\dev\harmony\classlib\modules\luni\bin\test\long-JDK2-
3\longfilenameJDK2-3
.tst) at
tests.api.java.io.FileTest.test_getCanonicalPath(FileTest.java:867)
at
java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:205)
--
Richard Liang
China Software Development Lab, IBM
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Paulex Yang
China Software Development Lab
IBM
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]