mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 14:54:07 +10:00
100 lines
2.4 KiB
Plaintext
100 lines
2.4 KiB
Plaintext
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";
|
|
}
|