mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 23:04:08 +10:00
146 lines
3.5 KiB
Plaintext
146 lines
3.5 KiB
Plaintext
import fileio;
|
|
|
|
var PATH: string const = "scripts:/lib/file/fileio.txt";
|
|
|
|
// reset file to orginal state
|
|
fn reset() {
|
|
var writer = open(PATH, "w");
|
|
writer.write("Hello, World!\n");
|
|
|
|
writer.close();
|
|
}
|
|
|
|
// 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 read
|
|
{
|
|
// // enter test
|
|
// assert input.read(string) == "test\n", "read string failed";
|
|
|
|
// // enter 8
|
|
// assert input.read(int) == 8, "read int failed";
|
|
|
|
// // enter 12.5
|
|
// assert input.read(float) == 12.5, "read float failed";
|
|
|
|
// // invaild types
|
|
// assert input.read(type) == null, "read type failed";
|
|
// assert input.read(any) == null, "read any failed";
|
|
}
|
|
|
|
// test write
|
|
{
|
|
assert output.write(8) == true, "write int failed";
|
|
assert output.write("\n") == true, "write string failed";
|
|
assert output.write(12.5) == true, "write float failed";
|
|
}
|
|
|
|
|
|
// test open and close
|
|
{
|
|
var reader = open(PATH, "r");
|
|
assert reader != null, "open failed in reading mode";
|
|
|
|
assert reader.close() == true, "close failed";
|
|
|
|
var file = open("scripts:/doesNotExist", "r");
|
|
assert file == null, "open failed on nonexisting file";
|
|
}
|
|
|
|
// test write
|
|
{
|
|
var writer = open(PATH, "w");
|
|
assert writer != null, "open failed in writing mode";
|
|
|
|
assert writer.read(string) != null, "read in writing mode failed";
|
|
assert writer.write("writen text") == true, "write in writing mode failed";
|
|
|
|
writer.close();
|
|
reset();
|
|
}
|
|
|
|
// test append
|
|
{
|
|
var appender = open(PATH, "a");
|
|
assert appender != null, "open failed on appending file";
|
|
|
|
assert appender.write("appended text") == true, "append failed";
|
|
|
|
appender.close();
|
|
reset();
|
|
}
|
|
|
|
// test read extended
|
|
{
|
|
var reader = open(PATH, "r+");
|
|
assert reader != null, "open failed on read extended mode";
|
|
|
|
assert reader.write("writen text") == true, "write in read extended failed";
|
|
assert reader.read(string) == "d!\n", "read in read extended failed";
|
|
|
|
reader.close();
|
|
reset();
|
|
}
|
|
|
|
// test write extended
|
|
{
|
|
var writer = open(PATH, "w+");
|
|
assert writer != null, "open failed on write extended mode";
|
|
|
|
assert writer.write("writen text") == true, "write in write extended failed";
|
|
|
|
writer.seek("bgn", 0);
|
|
|
|
assert writer.read(string) == "writen text", "read in write extended failed";
|
|
|
|
writer.close();
|
|
reset();
|
|
}
|
|
|
|
// test rename
|
|
{
|
|
var reader = open(PATH, "r");
|
|
assert reader.rename("scripts:/lib/file/newName.txt") == true, "rename failed";
|
|
|
|
reader.rename(PATH);
|
|
reader.close();
|
|
}
|
|
|
|
// test seek
|
|
{
|
|
var reader = open(PATH, "r");
|
|
assert reader.seek("bgn", 6) == true, "seek operation failed";
|
|
|
|
var contents = reader.read(string);
|
|
assert contents == " World!\n", "seek failed to move file position";
|
|
|
|
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 after read failed";
|
|
assert reader.position() == 14, "position failed";
|
|
assert reader.size() == 14, "size failed";
|
|
assert reader.mode() == "r", "mode failed";
|
|
|
|
reader.close();
|
|
}
|
|
|
|
print "All good"; |