From 50295fdb8a94109025183a07915fd2e185faaa1a Mon Sep 17 00:00:00 2001 From: Miku AuahDark Date: Sat, 16 Mar 2024 15:11:21 +0800 Subject: [PATCH 1/2] Test: Add tests for love.sensors. --- testing/tests/sensor.lua | 87 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/testing/tests/sensor.lua b/testing/tests/sensor.lua index fcf3379dc..f619a5192 100644 --- a/testing/tests/sensor.lua +++ b/testing/tests/sensor.lua @@ -2,6 +2,51 @@ -- @NOTE we can't test this module fully as it's hardware dependent -- however we can test methods do what is expected and can handle certain params +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- +------------------------------------HELPERS------------------------------------- +-------------------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +local function testIsEnabled(test, sensorType) + love.sensor.setEnabled(sensorType, true) + test:assertTrue(love.sensor.isEnabled(sensorType), 'check ' .. sensorType .. ' enabled') + love.sensor.setEnabled(sensorType, false) + test:assertFalse(love.sensor.isEnabled(sensorType), 'check ' .. sensorType .. ' disabled') +end + + +local function testGetName(test, sensorType) + love.sensor.setEnabled(sensorType, true) + local ok, name = pcall(love.sensor.getName, sensorType) + test:assertTrue(ok, 'check sensor.getName("' .. sensorType .. '") success') + test:assertEquals(type(name), 'string', 'check sensor.getName("' .. sensorType .. '") return value type') + + love.sensor.setEnabled(sensorType, false) + ok, name = pcall(love.sensor.getName, sensorType) + test:assertFalse(ok, 'check sensor.getName("' .. sensorType .. '") errors when disabled') + + love.sensor.setEnabled(sensorType, false) + ok, x, y, z = pcall(love.sensor.getData, sensorType) + test:assertFalse(ok, 'check sensor.getData("' .. sensorType .. '") errors when disabled') +end + + +local function testGetData(test, sensorType) + love.sensor.setEnabled(sensorType, true) + local ok, x, y, z = pcall(love.sensor.getData, sensorType) + test:assertTrue(ok, 'check sensor.getData("' .. sensorType .. '") success') + if ok then + test:assertNotNil(x) + test:assertNotNil(y) + test:assertNotNil(z) + end + + love.sensor.setEnabled(sensorType, false) + ok, x, y, z = pcall(love.sensor.getData, sensorType) + test:assertFalse(ok, 'check sensor.getData("' .. sensorType .. '") errors when disabled') +end + -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ------------------------------------METHODS------------------------------------- @@ -17,3 +62,45 @@ love.test.sensor.hasSensor = function(test) test:assertNotNil(accelerometer) test:assertNotNil(gyroscope) end + + +-- love.sensor.isEnabled and love.sensor.setEnabled +love.test.sensor.isEnabled = function(test) + local accelerometer = love.sensor.hasSensor('accelerometer') + local gyroscope = love.sensor.hasSensor('gyroscope') + + if accelerometer or gyroscope then + if accelerometer then testIsEnabled(test, 'accelerometer') end + if gyroscope then testIsEnabled(test, 'gyroscope') end + else + test:skipTest('neither accelerometer nor gyroscope are supported in this system') + end +end + + +-- love.sensor.getName +love.test.sensor.getName = function(test) + local accelerometer = love.sensor.hasSensor('accelerometer') + local gyroscope = love.sensor.hasSensor('gyroscope') + + if accelerometer or gyroscope then + if accelerometer then testGetName(test, 'accelerometer') end + if gyroscope then testGetName(test, 'gyroscope') end + else + test:skipTest('neither accelerometer nor gyroscope are supported in this system') + end +end + + +-- love.sensor.getData +love.test.sensor.getData = function(test) + local accelerometer = love.sensor.hasSensor('accelerometer') + local gyroscope = love.sensor.hasSensor('gyroscope') + + if accelerometer or gyroscope then + if accelerometer then testGetData(test, 'accelerometer') end + if gyroscope then testGetData(test, 'gyroscope') end + else + test:skipTest('neither accelerometer nor gyroscope are supported in this system') + end +end From 6f86c195bc33d7f595460b8054390dc7fe1bd25e Mon Sep 17 00:00:00 2001 From: Miku AuahDark Date: Sat, 16 Mar 2024 20:47:17 +0800 Subject: [PATCH 2/2] Test: Remove leftover love.sensor.getData calls when testing love.sensor.getName. --- testing/tests/sensor.lua | 4 ---- 1 file changed, 4 deletions(-) diff --git a/testing/tests/sensor.lua b/testing/tests/sensor.lua index f619a5192..56c5da7b5 100644 --- a/testing/tests/sensor.lua +++ b/testing/tests/sensor.lua @@ -25,10 +25,6 @@ local function testGetName(test, sensorType) love.sensor.setEnabled(sensorType, false) ok, name = pcall(love.sensor.getName, sensorType) test:assertFalse(ok, 'check sensor.getName("' .. sensorType .. '") errors when disabled') - - love.sensor.setEnabled(sensorType, false) - ok, x, y, z = pcall(love.sensor.getData, sensorType) - test:assertFalse(ok, 'check sensor.getData("' .. sensorType .. '") errors when disabled') end