On Tuesday, April 29, 2014 10:39:31 AM UTC+5:30, Thomas Mueller wrote:
>
>
> No, TestFileSystem works for me if run alone. What operating system and 
> file system do you use? Is your file system read-only maybe?
>

I'm running Fedora 18.  No, my file-system is not read-only -- this is the 
file-system of my developer workstation, the one I work on (so can't be 
readonly).


To get past the earlier, NonWritableChannelException exception that I was 
getting, I modified the H2 code as follows...

TestFileSystem.testSimple(String) {
    ...
    // new AssertThrows(IOException.class) {
    new AssertThrows(NonWritableChannelException.class) {
            new 
AssertThrows(java.nio.channels.NonWritableChannelException.class) {
                @Override
                public void test() throws Exception {
                    fc.truncate(10);
                }
            };


... and it was happy. 

But then I started getting this NPE:

java.lang.NullPointerException
at org.h2.test.unit.TestFileSystem.testClasspath(TestFileSystem.java:220)
at org.h2.test.unit.TestFileSystem.test(TestFileSystem.java:73)
at org.h2.test.unit.TestFileSystem.main(TestFileSystem.java:55)
at com.amritatech.rephrase.H2DatabaseTest.main(H2DatabaseTest.java:40)



which is the following code:

    private void testClasspath() throws IOException {
        String resource = "org/h2/test/testSimple.in.txt";
        InputStream in;
        in = getClass().getResourceAsStream("/" + resource);
        assertTrue(in != null);
        in.close();
        in = getClass().getClassLoader().getResourceAsStream(resource);  // 
line 220

I'm using version 1.3.174 codebase, btw. Is this unit testing exercise 
supposed to be run from some specialized test-jar bundle of H2? Fyi, I'm 
imported the codebase in Eclipse and I'm running it from there, so I'm not 
aware of any specialized path/classpath setups that may be required.

 

> Before you think about using your file system with a database, I suggest 
> to ensure the unit test (TestFileSystem) passes.
>

Yes, I definitely intend to do that.

But another basic question that I have is this: Once the TestFileSystem 
unit test begins to pass on the default ("file:/") file-system, and once I 
have register()'ed my file-system using my FilePath-subclass's register(), 
do I need to do anything else? For example, do I need to...
   a) comment out calls to file-systems (like zip/zip2, cache/cache2, ...) that 
seem 'irrelevant' to testing my own file-system?

   b) change TestBase.BASE_TEST_DIR and .TEMP_DIR to point to my 
file-system, like so...
             BASE_TEST_DIR = "myfs:/path/to/data"
             TEMP_DIR = "myfs:/path/to/data/tmp"

        ... early on in the control flow?

Regards,
/PN

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to h2-database+unsubscr...@googlegroups.com.
To post to this group, send email to h2-database@googlegroups.com.
Visit this group at http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to