Skip to content

Commit

Permalink
tests;
Browse files Browse the repository at this point in the history
  • Loading branch information
bjornbytes committed Jun 14, 2024
1 parent 6b18734 commit f78af61
Show file tree
Hide file tree
Showing 10 changed files with 692 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ jobs:
run: cmake -B build -D LOVR_BUILD_BUNDLE=ON
- name: Build
run: cmake --build build
- name: Test
run: ./build/bin/lovr test
- name: AppImage
run: >
curl -sOL https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage &&
Expand Down
5 changes: 5 additions & 0 deletions test/conf.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
function lovr.conf(t)
t.identity = 'test'
t.modules.graphics = not os.getenv('CI')
t.window = nil
end
60 changes: 60 additions & 0 deletions test/lovr/filesystem.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
group('filesystem', function()
test('File', function()
local long = string.rep('a', 2000) .. '.txt'
local file, err = lovr.filesystem.newFile(long, 'r')
assert(not file and err)

local missing = 'does/not/exist.txt'
local file, err = lovr.filesystem.newFile(missing, 'r')
assert(not file and err)
local file, err = lovr.filesystem.newFile(missing, 'w')
assert(not file and err)

local file, err = lovr.filesystem.newFile('test.txt', 'w')
assert(file and not err)
assert(file:write('hi'))
file:release()
assert(lovr.filesystem.read('test.txt') == 'hi')

assert(lovr.filesystem.write('test.txt', 'hi'))
local file, err = lovr.filesystem.newFile('test.txt', 'r')
assert(file and not err)
assert(file:getMode() == 'r')
assert(file:getPath() == 'test.txt')
assert(file:getSize() == 2)
local data, size = file:read()
assert(data == 'hi' and size == 2)
file:release()

assert(lovr.filesystem.isDirectory('dir') or lovr.filesystem.createDirectory('dir'))
local file, err = lovr.filesystem.newFile('dir', 'r')
assert(not file and err)
local file, err = lovr.filesystem.newFile('dir', 'w')
assert(not file and err)
assert(lovr.filesystem.remove('dir'))

assert(lovr.filesystem.write('test.txt', 'hi'))
local file, err = lovr.filesystem.newFile('test.txt', 'r')
assert(file and not err)
assert(file:isEOF() == false)
assert(file:tell() == 0)
assert(file:seek(1))
assert(file:tell() == 1)
assert(file:read(1) == 'i')
assert(file:tell() == 2)
assert(file:isEOF() == true)

assert(file:seek(1000000))
assert(file:tell() == 1000000)
assert(file:read(1000000) == '')
assert(file:isEOF() == true)

assert(pcall(file.seek, file, -1) == false)
assert(pcall(file.seek, file, 2^53 - 1) == true)
assert(pcall(file.seek, file, 2^53) == false)

assert(file:seek(0))
assert(file:read(2) == 'hi')
assert(file:tell() == 2)
end)
end)
Loading

0 comments on commit f78af61

Please sign in to comment.