Files
Rix 98ae7c8430 Lua: fix the ADPCM encoder wrappers and File:readAtToSlice
processBlock passed scalar out-parameters and read them past the end,
processSPUBlock tested a misspelled variable, and processXABlock sized
its input padding in samples instead of bytes. readAtToSlice had its
size and position swapped.
2026-09-23 13:32:05 -07:00

40 lines
1.3 KiB
Lua

-- Copyright (C) 2024 PCSX-Redux authors
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the
-- Free Software Foundation, Inc.,
-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
local lu = require 'luaunit'
local ffi = require 'ffi'
TestFile = {}
function TestFile:test_readAtToSlice()
local buf = Support.File.buffer()
buf:write('hello world')
local slice = buf:readAtToSlice(5, 6)
lu.assertEquals(slice.size, 5)
lu.assertEquals(ffi.string(slice.data, slice.size), 'world')
end
function TestFile:test_buffer()
local buf = Support.File.buffer()
buf:write('hello')
buf:write(' ')
buf:write('world')
lu.assertEquals(buf:size(), 11)
local r = buf:read(buf:size())
lu.assertEquals(tostring(r), 'hello world')
end