import fileio; var PATH: string const = "scripts:/lib/file/fileio.txt"; // test global constants { assert MAX_FILENAME_SIZE > 0, "MAX_FILENAME_SIZE failed"; assert MAX_FILES_OPEN > 0, "MAX_FILES_OPEN failed"; assert END_OF_FILE == -1, "END_OF_FILE failed"; } // test open and close { var reader = open(PATH, "r"); assert reader != null, "open failed on existing file"; var file = open("scripts:/doesNotExist", "r"); assert file == null, "open failed on nonexisting file"; assert reader.close() == true, "close failed"; } // test append { var appender = open(PATH, "a"); assert appender.write("appended text") == true, "append failed"; appender.close(); var writer = open(PATH, "w"); writer.write("Hello, World!\n"); writer.close(); } // test rename { var reader = open(PATH, "r"); assert reader.rename("scripts:/lib/file/newName.txt") == true, "rename failed"; reader.close(); } // test seek { var reader = open(PATH, "r"); assert reader.seek("set", 6) == true, "seek failed"; var contents = reader.read(string); assert contents == " World!\n", "seek failed to move"; reader.close(); } // test accessors { var reader = open(PATH, "r"); assert reader.error() == false, "error failed"; assert reader.completed() == false, "completed failed"; assert reader.position() == 0, "position failed"; assert reader.size() == 14, "size failed"; assert reader.mode() == "r", "mode failed"; reader.read(string); // assert reader.error() == false, "error failed"; // assert reader.completed() == true, "completed failed"; // Leaks for some reason? // assert reader.position() == 14, "position failed"; // assert reader.size() == 13, "size failed"; // assert reader.mode() == "r", "mode failed"; reader.close(); } // test write { assert output.write(8), "write int failed"; assert output.write("\n"), "write string failed"; assert output.write(12.5), "write float failed"; } // test read { output.write("\n"); // enter 8 assert input.read(int) == 8, "read int failed"; // enter 12.5 assert input.read(float) == 12.5, "read float failed"; // enter test assert input.read(string) == "test\n", "read string failed"; // invaild types assert input.read(type) == null, "type failed"; assert input.read(any) == null, "any failed"; }