tweaks for hardware tests

This commit is contained in:
ell
2023-12-05 10:26:24 +00:00
parent 2875a96e92
commit 6a2ba9322e
13 changed files with 319 additions and 336 deletions
+1 -1
View File
@@ -379,7 +379,7 @@ TestMethod = {
local failure = ''
local failures = 0
for a=1,#self.asserts do
-- @TODO show all failued assertion methods?
-- @TODO show all failed assertion methods?
-- currently just shows the first assert that failed
if not self.asserts[a].passed and not self.skipped then
if failure == '' then failure = self.asserts[a] end
File diff suppressed because one or more lines are too long
+19 -19
View File
@@ -1,33 +1,33 @@
<!-- PASSED 339 || FAILED 0 || SKIPPED 9 || TIME 14.445 -->
<!-- PASSED 335 || FAILED 0 || SKIPPED 9 || TIME 14.817 -->
### Info
**348** tests were completed in **14.445s** with **339** passed, **0** failed, and **9** skipped
**344** tests were completed in **14.817s** with **335** passed, **0** failed, and **9** skipped
Renderer: OpenGL | 4.1 Metal - 76.3 | Apple | Apple M1 Max
### Report
| Module | Pass | Fail | Skip | Time |
| --------------------- | ------ | ------ | ------- | ------ |
| 🟢 audio | 28 | 0 | 0 | 0.865s |
| 🟢 data | 12 | 0 | 0 | 0.209s |
| 🟢 event | 4 | 0 | 2 | 0.104s |
| 🟢 filesystem | 29 | 0 | 2 | 0.546s |
| 🟢 font | 7 | 0 | 0 | 0.117s |
| 🟢 graphics | 104 | 0 | 1 | 2.948s |
| 🟢 audio | 28 | 0 | 0 | 0.886s |
| 🟢 data | 12 | 0 | 0 | 0.212s |
| 🟢 event | 4 | 0 | 2 | 0.103s |
| 🟢 filesystem | 29 | 0 | 2 | 0.555s |
| 🟢 font | 7 | 0 | 0 | 0.124s |
| 🟢 graphics | 104 | 0 | 1 | 3.006s |
| 🟢 image | 5 | 0 | 0 | 0.085s |
| 🟢 joystick | 6 | 0 | 0 | 0.106s |
| 🟢 keyboard | 9 | 0 | 0 | 0.151s |
| 🟢 love | 10 | 0 | 0 | 0.166s |
| 🟢 math | 20 | 0 | 0 | 0.339s |
| 🟢 mouse | 18 | 0 | 0 | 0.303s |
| 🟢 physics | 26 | 0 | 0 | 0.439s |
| 🟢 keyboard | 9 | 0 | 0 | 0.150s |
| 🟢 love | 6 | 0 | 0 | 0.098s |
| 🟢 math | 20 | 0 | 0 | 0.337s |
| 🟢 mouse | 18 | 0 | 0 | 0.302s |
| 🟢 physics | 26 | 0 | 0 | 0.434s |
| 🟢 sensor | 1 | 0 | 0 | 0.016s |
| 🟢 sound | 4 | 0 | 0 | 0.073s |
| 🟢 system | 6 | 0 | 2 | 0.137s |
| 🟢 sound | 4 | 0 | 0 | 0.072s |
| 🟢 system | 6 | 0 | 2 | 0.135s |
| 🟢 thread | 5 | 0 | 0 | 0.363s |
| 🟢 timer | 6 | 0 | 0 | 2.076s |
| 🟢 touch | 3 | 0 | 0 | 0.007s |
| 🟢 video | 2 | 0 | 0 | 0.040s |
| 🟢 window | 34 | 0 | 2 | 5.355s |
| 🟢 timer | 6 | 0 | 0 | 2.074s |
| 🟢 touch | 3 | 0 | 0 | 0.023s |
| 🟢 video | 2 | 0 | 0 | 0.039s |
| 🟢 window | 34 | 0 | 2 | 5.696s |
### Failures
+251 -259
View File
@@ -1,40 +1,40 @@
<testsuites name="love.test" tests="339" failures="0" skipped="9" time="14.445">
<testsuite name="love.audio" tests="28" failures="0" skipped="0" time="0.865">
<testcase classname="RecordingDevice" name="RecordingDevice" assertions="20" time="0.391">
<testsuites name="love.test" tests="335" failures="0" skipped="9" time="14.817">
<testsuite name="love.audio" tests="28" failures="0" skipped="0" time="0.886">
<testcase classname="RecordingDevice" name="RecordingDevice" assertions="20" time="0.398">
</testcase>
<testcase classname="Source" name="Source" assertions="54" time="0.021">
<testcase classname="Source" name="Source" assertions="54" time="0.022">
</testcase>
<testcase classname="getActiveEffects" name="getActiveEffects" assertions="3" time="0.015">
<testcase classname="getActiveEffects" name="getActiveEffects" assertions="3" time="0.017">
</testcase>
<testcase classname="getActiveSourceCount" name="getActiveSourceCount" assertions="3" time="0.018">
<testcase classname="getActiveSourceCount" name="getActiveSourceCount" assertions="3" time="0.019">
</testcase>
<testcase classname="getDistanceModel" name="getDistanceModel" assertions="3" time="0.018">
</testcase>
<testcase classname="getDopplerScale" name="getDopplerScale" assertions="2" time="0.019">
</testcase>
<testcase classname="getEffect" name="getEffect" assertions="4" time="0.019">
<testcase classname="getEffect" name="getEffect" assertions="4" time="0.017">
</testcase>
<testcase classname="getMaxSceneEffects" name="getMaxSceneEffects" assertions="1" time="0.015">
<testcase classname="getMaxSceneEffects" name="getMaxSceneEffects" assertions="1" time="0.017">
</testcase>
<testcase classname="getMaxSourceEffects" name="getMaxSourceEffects" assertions="1" time="0.016">
<testcase classname="getMaxSourceEffects" name="getMaxSourceEffects" assertions="1" time="0.018">
</testcase>
<testcase classname="getOrientation" name="getOrientation" assertions="6" time="0.017">
<testcase classname="getOrientation" name="getOrientation" assertions="6" time="0.018">
</testcase>
<testcase classname="getPosition" name="getPosition" assertions="3" time="0.015">
<testcase classname="getPosition" name="getPosition" assertions="3" time="0.018">
</testcase>
<testcase classname="getRecordingDevices" name="getRecordingDevices" assertions="1" time="0.016">
<testcase classname="getRecordingDevices" name="getRecordingDevices" assertions="1" time="0.018">
</testcase>
<testcase classname="getVelocity" name="getVelocity" assertions="3" time="0.019">
<testcase classname="getVelocity" name="getVelocity" assertions="3" time="0.017">
</testcase>
<testcase classname="getVolume" name="getVolume" assertions="1" time="0.019">
</testcase>
<testcase classname="isEffectsSupported" name="isEffectsSupported" assertions="1" time="0.019">
<testcase classname="isEffectsSupported" name="isEffectsSupported" assertions="1" time="0.018">
</testcase>
<testcase classname="newQueueableSource" name="newQueueableSource" assertions="3" time="0.017">
<testcase classname="newQueueableSource" name="newQueueableSource" assertions="3" time="0.018">
</testcase>
<testcase classname="newSource" name="newSource" assertions="6" time="0.019">
</testcase>
<testcase classname="pause" name="pause" assertions="2" time="0.018">
<testcase classname="pause" name="pause" assertions="2" time="0.019">
</testcase>
<testcase classname="play" name="play" assertions="1" time="0.019">
</testcase>
@@ -42,49 +42,49 @@
</testcase>
<testcase classname="setDopplerScale" name="setDopplerScale" assertions="2" time="0.017">
</testcase>
<testcase classname="setEffect" name="setEffect" assertions="3" time="0.019">
<testcase classname="setEffect" name="setEffect" assertions="3" time="0.017">
</testcase>
<testcase classname="setMixWithSystem" name="setMixWithSystem" assertions="1" time="0.018">
<testcase classname="setMixWithSystem" name="setMixWithSystem" assertions="1" time="0.019">
</testcase>
<testcase classname="setOrientation" name="setOrientation" assertions="6" time="0.016">
<testcase classname="setOrientation" name="setOrientation" assertions="6" time="0.018">
</testcase>
<testcase classname="setPosition" name="setPosition" assertions="3" time="0.018">
</testcase>
<testcase classname="setVelocity" name="setVelocity" assertions="3" time="0.017">
<testcase classname="setVelocity" name="setVelocity" assertions="3" time="0.018">
</testcase>
<testcase classname="setVolume" name="setVolume" assertions="1" time="0.017">
<testcase classname="setVolume" name="setVolume" assertions="1" time="0.019">
</testcase>
<testcase classname="stop" name="stop" assertions="2" time="0.019">
</testcase>
</testsuite>
<testsuite name="love.data" tests="12" failures="0" skipped="0" time="0.209">
<testsuite name="love.data" tests="12" failures="0" skipped="0" time="0.212">
<testcase classname="ByteData" name="ByteData" assertions="10" time="0.016">
</testcase>
<testcase classname="CompressedData" name="CompressedData" assertions="12" time="0.017">
<testcase classname="CompressedData" name="CompressedData" assertions="12" time="0.018">
</testcase>
<testcase classname="compress" name="compress" assertions="45" time="0.017">
<testcase classname="compress" name="compress" assertions="45" time="0.018">
</testcase>
<testcase classname="decode" name="decode" assertions="4" time="0.017">
<testcase classname="decode" name="decode" assertions="4" time="0.019">
</testcase>
<testcase classname="decompress" name="decompress" assertions="18" time="0.017">
</testcase>
<testcase classname="encode" name="encode" assertions="15" time="0.018">
</testcase>
<testcase classname="getPackedSize" name="getPackedSize" assertions="3" time="0.020">
<testcase classname="getPackedSize" name="getPackedSize" assertions="3" time="0.018">
</testcase>
<testcase classname="hash" name="hash" assertions="6" time="0.018">
<testcase classname="hash" name="hash" assertions="6" time="0.019">
</testcase>
<testcase classname="newByteData" name="newByteData" assertions="3" time="0.018">
</testcase>
<testcase classname="newDataView" name="newDataView" assertions="3" time="0.019">
<testcase classname="newDataView" name="newDataView" assertions="3" time="0.018">
</testcase>
<testcase classname="pack" name="pack" assertions="4" time="0.016">
<testcase classname="pack" name="pack" assertions="4" time="0.017">
</testcase>
<testcase classname="unpack" name="unpack" assertions="3" time="0.017">
</testcase>
</testsuite>
<testsuite name="love.event" tests="4" failures="0" skipped="2" time="0.104">
<testcase classname="clear" name="clear" assertions="1" time="0.015">
<testsuite name="love.event" tests="4" failures="0" skipped="2" time="0.103">
<testcase classname="clear" name="clear" assertions="1" time="0.016">
</testcase>
<testcase classname="poll" name="poll" assertions="1" time="0.018">
</testcase>
@@ -93,16 +93,16 @@
</testcase>
<testcase classname="push" name="push" assertions="1" time="0.017">
</testcase>
<testcase classname="quit" name="quit" assertions="1" time="0.018">
<testcase classname="quit" name="quit" assertions="1" time="0.017">
</testcase>
<testcase classname="wait" name="wait" assertions="0" time="0.018">
<skipped message="used internally" />
</testcase>
</testsuite>
<testsuite name="love.filesystem" tests="29" failures="0" skipped="2" time="0.546">
<testcase classname="File" name="File" assertions="36" time="0.017">
<testsuite name="love.filesystem" tests="29" failures="0" skipped="2" time="0.555">
<testcase classname="File" name="File" assertions="36" time="0.018">
</testcase>
<testcase classname="FileData" name="FileData" assertions="12" time="0.016">
<testcase classname="FileData" name="FileData" assertions="12" time="0.017">
</testcase>
<testcase classname="append" name="append" assertions="6" time="0.018">
</testcase>
@@ -114,22 +114,22 @@
</testcase>
<testcase classname="getCRequirePath" name="getCRequirePath" assertions="1" time="0.019">
</testcase>
<testcase classname="getDirectoryItems" name="getDirectoryItems" assertions="2" time="0.020">
<testcase classname="getDirectoryItems" name="getDirectoryItems" assertions="2" time="0.019">
</testcase>
<testcase classname="getIdentity" name="getIdentity" assertions="1" time="0.019">
<testcase classname="getIdentity" name="getIdentity" assertions="1" time="0.018">
</testcase>
<testcase classname="getInfo" name="getInfo" assertions="3" time="0.020">
<testcase classname="getInfo" name="getInfo" assertions="3" time="0.018">
</testcase>
<testcase classname="getRealDirectory" name="getRealDirectory" assertions="1" time="0.018">
<testcase classname="getRealDirectory" name="getRealDirectory" assertions="1" time="0.017">
</testcase>
<testcase classname="getRequirePath" name="getRequirePath" assertions="1" time="0.019">
<testcase classname="getRequirePath" name="getRequirePath" assertions="1" time="0.018">
</testcase>
<testcase classname="getSaveDirectory" name="getSaveDirectory" assertions="1" time="0.016">
<testcase classname="getSaveDirectory" name="getSaveDirectory" assertions="1" time="0.017">
</testcase>
<testcase classname="getSource" name="getSource" assertions="0" time="0.017">
<testcase classname="getSource" name="getSource" assertions="0" time="0.018">
<skipped message="used internally" />
</testcase>
<testcase classname="getSourceBaseDirectory" name="getSourceBaseDirectory" assertions="1" time="0.016">
<testcase classname="getSourceBaseDirectory" name="getSourceBaseDirectory" assertions="1" time="0.018">
</testcase>
<testcase classname="getUserDirectory" name="getUserDirectory" assertions="1" time="0.017">
</testcase>
@@ -137,245 +137,245 @@
</testcase>
<testcase classname="isFused" name="isFused" assertions="1" time="0.018">
</testcase>
<testcase classname="lines" name="lines" assertions="6" time="0.019">
<testcase classname="lines" name="lines" assertions="6" time="0.017">
</testcase>
<testcase classname="load" name="load" assertions="4" time="0.018">
<testcase classname="load" name="load" assertions="4" time="0.017">
</testcase>
<testcase classname="mount" name="mount" assertions="5" time="0.017">
<testcase classname="mount" name="mount" assertions="5" time="0.019">
</testcase>
<testcase classname="newFileData" name="newFileData" assertions="1" time="0.016">
<testcase classname="newFileData" name="newFileData" assertions="1" time="0.017">
</testcase>
<testcase classname="openFile" name="openFile" assertions="4" time="0.017">
<testcase classname="openFile" name="openFile" assertions="4" time="0.019">
</testcase>
<testcase classname="read" name="read" assertions="6" time="0.018">
</testcase>
<testcase classname="remove" name="remove" assertions="5" time="0.019">
</testcase>
<testcase classname="setCRequirePath" name="setCRequirePath" assertions="1" time="0.016">
<testcase classname="setCRequirePath" name="setCRequirePath" assertions="1" time="0.018">
</testcase>
<testcase classname="setIdentity" name="setIdentity" assertions="1" time="0.016">
<testcase classname="setIdentity" name="setIdentity" assertions="1" time="0.018">
</testcase>
<testcase classname="setRequirePath" name="setRequirePath" assertions="1" time="0.016">
<testcase classname="setRequirePath" name="setRequirePath" assertions="1" time="0.018">
</testcase>
<testcase classname="setSource" name="setSource" assertions="0" time="0.016">
<testcase classname="setSource" name="setSource" assertions="0" time="0.018">
<skipped message="used internally" />
</testcase>
<testcase classname="unmount" name="unmount" assertions="2" time="0.019">
</testcase>
<testcase classname="write" name="write" assertions="3" time="0.018">
<testcase classname="write" name="write" assertions="3" time="0.017">
</testcase>
</testsuite>
<testsuite name="love.font" tests="7" failures="0" skipped="0" time="0.117">
<testcase classname="GlyphData" name="GlyphData" assertions="17" time="0.018">
<testsuite name="love.font" tests="7" failures="0" skipped="0" time="0.124">
<testcase classname="GlyphData" name="GlyphData" assertions="17" time="0.017">
</testcase>
<testcase classname="Rasterizer" name="Rasterizer" assertions="13" time="0.016">
<testcase classname="Rasterizer" name="Rasterizer" assertions="13" time="0.018">
</testcase>
<testcase classname="newBMFontRasterizer" name="newBMFontRasterizer" assertions="3" time="0.017">
<testcase classname="newBMFontRasterizer" name="newBMFontRasterizer" assertions="3" time="0.018">
</testcase>
<testcase classname="newGlyphData" name="newGlyphData" assertions="3" time="0.016">
<testcase classname="newGlyphData" name="newGlyphData" assertions="3" time="0.018">
</testcase>
<testcase classname="newImageRasterizer" name="newImageRasterizer" assertions="3" time="0.015">
<testcase classname="newImageRasterizer" name="newImageRasterizer" assertions="3" time="0.017">
</testcase>
<testcase classname="newRasterizer" name="newRasterizer" assertions="3" time="0.017">
<testcase classname="newRasterizer" name="newRasterizer" assertions="3" time="0.018">
</testcase>
<testcase classname="newTrueTypeRasterizer" name="newTrueTypeRasterizer" assertions="6" time="0.018">
<testcase classname="newTrueTypeRasterizer" name="newTrueTypeRasterizer" assertions="6" time="0.019">
</testcase>
</testsuite>
<testsuite name="love.graphics" tests="104" failures="0" skipped="1" time="2.948">
<testcase classname="Canvas" name="Canvas" assertions="18886" time="0.033">
<testsuite name="love.graphics" tests="104" failures="0" skipped="1" time="3.006">
<testcase classname="Canvas" name="Canvas" assertions="18886" time="0.039">
</testcase>
<testcase classname="Font" name="Font" assertions="428" time="0.013">
<testcase classname="Font" name="Font" assertions="428" time="0.011">
</testcase>
<testcase classname="Image" name="Image" assertions="3761" time="0.020">
<testcase classname="Image" name="Image" assertions="3761" time="0.019">
</testcase>
<testcase classname="Mesh" name="Mesh" assertions="49" time="0.018">
</testcase>
<testcase classname="ParticleSystem" name="ParticleSystem" assertions="3808" time="0.043">
<testcase classname="ParticleSystem" name="ParticleSystem" assertions="3808" time="0.028">
</testcase>
<testcase classname="Quad" name="Quad" assertions="3768" time="0.008">
<testcase classname="Quad" name="Quad" assertions="3768" time="0.021">
</testcase>
<testcase classname="Shader" name="Shader" assertions="208" time="0.037">
<testcase classname="Shader" name="Shader" assertions="208" time="0.028">
</testcase>
<testcase classname="SpriteBatch" name="SpriteBatch" assertions="18808" time="0.049">
<testcase classname="SpriteBatch" name="SpriteBatch" assertions="18808" time="0.037">
</testcase>
<testcase classname="Text" name="Text" assertions="3811" time="0.013">
<testcase classname="Text" name="Text" assertions="3811" time="0.014">
</testcase>
<testcase classname="Video" name="Video" assertions="247057" time="0.772">
<testcase classname="Video" name="Video" assertions="247057" time="0.770">
</testcase>
<testcase classname="applyTransform" name="applyTransform" assertions="173" time="0.006">
<testcase classname="applyTransform" name="applyTransform" assertions="173" time="0.025">
</testcase>
<testcase classname="arc" name="arc" assertions="2523" time="0.026">
<testcase classname="arc" name="arc" assertions="2523" time="0.022">
</testcase>
<testcase classname="captureScreenshot" name="captureScreenshot" assertions="1" time="0.184">
</testcase>
<testcase classname="circle" name="circle" assertions="1033" time="0.020">
<testcase classname="circle" name="circle" assertions="1033" time="0.027">
</testcase>
<testcase classname="clear" name="clear" assertions="189" time="0.016">
<testcase classname="clear" name="clear" assertions="189" time="0.035">
</testcase>
<testcase classname="discard" name="discard" assertions="0" time="0.017">
<testcase classname="discard" name="discard" assertions="0" time="0.014">
<skipped message="cant test this worked" />
</testcase>
<testcase classname="draw" name="draw" assertions="949" time="0.018">
<testcase classname="draw" name="draw" assertions="949" time="0.020">
</testcase>
<testcase classname="drawInstanced" name="drawInstanced" assertions="3737" time="0.024">
<testcase classname="drawInstanced" name="drawInstanced" assertions="3737" time="0.038">
</testcase>
<testcase classname="drawLayer" name="drawLayer" assertions="3865" time="0.020">
<testcase classname="drawLayer" name="drawLayer" assertions="3865" time="0.023">
</testcase>
<testcase classname="ellipse" name="ellipse" assertions="921" time="0.018">
<testcase classname="ellipse" name="ellipse" assertions="921" time="0.016">
</testcase>
<testcase classname="flushBatch" name="flushBatch" assertions="1" time="0.017">
<testcase classname="flushBatch" name="flushBatch" assertions="1" time="0.016">
</testcase>
<testcase classname="getBackgroundColor" name="getBackgroundColor" assertions="8" time="0.017">
</testcase>
<testcase classname="getBlendMode" name="getBlendMode" assertions="4" time="0.017">
<testcase classname="getBlendMode" name="getBlendMode" assertions="4" time="0.018">
</testcase>
<testcase classname="getCanvas" name="getCanvas" assertions="4" time="0.018">
</testcase>
<testcase classname="getColor" name="getColor" assertions="8" time="0.018">
</testcase>
<testcase classname="getColorMask" name="getColorMask" assertions="8" time="0.016">
<testcase classname="getColorMask" name="getColorMask" assertions="8" time="0.018">
</testcase>
<testcase classname="getDPIScale" name="getDPIScale" assertions="1" time="0.016">
<testcase classname="getDPIScale" name="getDPIScale" assertions="1" time="0.018">
</testcase>
<testcase classname="getDefaultFilter" name="getDefaultFilter" assertions="3" time="0.016">
</testcase>
<testcase classname="getDepthMode" name="getDepthMode" assertions="2" time="0.016">
<testcase classname="getDepthMode" name="getDepthMode" assertions="2" time="0.017">
</testcase>
<testcase classname="getDimensions" name="getDimensions" assertions="2" time="0.016">
<testcase classname="getDimensions" name="getDimensions" assertions="2" time="0.018">
</testcase>
<testcase classname="getFont" name="getFont" assertions="3" time="0.016">
<testcase classname="getFont" name="getFont" assertions="3" time="0.018">
</testcase>
<testcase classname="getFrontFaceWinding" name="getFrontFaceWinding" assertions="2" time="0.016">
<testcase classname="getFrontFaceWinding" name="getFrontFaceWinding" assertions="2" time="0.018">
</testcase>
<testcase classname="getHeight" name="getHeight" assertions="1" time="0.016">
<testcase classname="getHeight" name="getHeight" assertions="1" time="0.018">
</testcase>
<testcase classname="getLineJoin" name="getLineJoin" assertions="2" time="0.017">
<testcase classname="getLineJoin" name="getLineJoin" assertions="2" time="0.019">
</testcase>
<testcase classname="getLineStyle" name="getLineStyle" assertions="2" time="0.018">
</testcase>
<testcase classname="getLineWidth" name="getLineWidth" assertions="2" time="0.017">
<testcase classname="getLineWidth" name="getLineWidth" assertions="2" time="0.018">
</testcase>
<testcase classname="getMeshCullMode" name="getMeshCullMode" assertions="2" time="0.016">
</testcase>
<testcase classname="getPixelDimensions" name="getPixelDimensions" assertions="2" time="0.016">
<testcase classname="getPixelDimensions" name="getPixelDimensions" assertions="2" time="0.018">
</testcase>
<testcase classname="getPixelHeight" name="getPixelHeight" assertions="1" time="0.016">
<testcase classname="getPixelHeight" name="getPixelHeight" assertions="1" time="0.018">
</testcase>
<testcase classname="getPixelWidth" name="getPixelWidth" assertions="1" time="0.016">
<testcase classname="getPixelWidth" name="getPixelWidth" assertions="1" time="0.018">
</testcase>
<testcase classname="getPointSize" name="getPointSize" assertions="2" time="0.018">
</testcase>
<testcase classname="getRendererInfo" name="getRendererInfo" assertions="4" time="0.016">
<testcase classname="getRendererInfo" name="getRendererInfo" assertions="4" time="0.018">
</testcase>
<testcase classname="getScissor" name="getScissor" assertions="8" time="0.017">
<testcase classname="getScissor" name="getScissor" assertions="8" time="0.018">
</testcase>
<testcase classname="getShader" name="getShader" assertions="1" time="0.018">
<testcase classname="getShader" name="getShader" assertions="1" time="0.017">
</testcase>
<testcase classname="getStackDepth" name="getStackDepth" assertions="4" time="0.016">
<testcase classname="getStackDepth" name="getStackDepth" assertions="4" time="0.017">
</testcase>
<testcase classname="getStats" name="getStats" assertions="7" time="0.016">
<testcase classname="getStats" name="getStats" assertions="7" time="0.017">
</testcase>
<testcase classname="getStencilMode" name="getStencilMode" assertions="6" time="0.016">
<testcase classname="getStencilMode" name="getStencilMode" assertions="6" time="0.018">
</testcase>
<testcase classname="getSupported" name="getSupported" assertions="17" time="0.017">
<testcase classname="getSupported" name="getSupported" assertions="17" time="0.019">
</testcase>
<testcase classname="getSystemLimits" name="getSystemLimits" assertions="13" time="0.016">
</testcase>
<testcase classname="getTextureFormats" name="getTextureFormats" assertions="79" time="0.017">
<testcase classname="getTextureFormats" name="getTextureFormats" assertions="79" time="0.016">
</testcase>
<testcase classname="getTextureTypes" name="getTextureTypes" assertions="4" time="0.018">
</testcase>
<testcase classname="getWidth" name="getWidth" assertions="1" time="0.017">
</testcase>
<testcase classname="intersectScissor" name="intersectScissor" assertions="189" time="0.018">
<testcase classname="intersectScissor" name="intersectScissor" assertions="189" time="0.020">
</testcase>
<testcase classname="inverseTransformPoint" name="inverseTransformPoint" assertions="4" time="0.016">
<testcase classname="inverseTransformPoint" name="inverseTransformPoint" assertions="4" time="0.015">
</testcase>
<testcase classname="isActive" name="isActive" assertions="1" time="0.017">
<testcase classname="isActive" name="isActive" assertions="1" time="0.016">
</testcase>
<testcase classname="isGammaCorrect" name="isGammaCorrect" assertions="1" time="0.016">
</testcase>
<testcase classname="isWireframe" name="isWireframe" assertions="2" time="0.016">
<testcase classname="isWireframe" name="isWireframe" assertions="2" time="0.017">
</testcase>
<testcase classname="line" name="line" assertions="233" time="0.017">
<testcase classname="line" name="line" assertions="233" time="0.034">
</testcase>
<testcase classname="newArrayImage" name="newArrayImage" assertions="3" time="0.017">
<testcase classname="newArrayImage" name="newArrayImage" assertions="3" time="0.014">
</testcase>
<testcase classname="newCanvas" name="newCanvas" assertions="6" time="0.018">
<testcase classname="newCanvas" name="newCanvas" assertions="6" time="0.017">
</testcase>
<testcase classname="newCubeImage" name="newCubeImage" assertions="3" time="0.018">
<testcase classname="newCubeImage" name="newCubeImage" assertions="3" time="0.019">
</testcase>
<testcase classname="newFont" name="newFont" assertions="6" time="0.016">
<testcase classname="newFont" name="newFont" assertions="6" time="0.017">
</testcase>
<testcase classname="newImage" name="newImage" assertions="3" time="0.016">
<testcase classname="newImage" name="newImage" assertions="3" time="0.017">
</testcase>
<testcase classname="newImageFont" name="newImageFont" assertions="3" time="0.017">
<testcase classname="newImageFont" name="newImageFont" assertions="3" time="0.018">
</testcase>
<testcase classname="newMesh" name="newMesh" assertions="3" time="0.018">
<testcase classname="newMesh" name="newMesh" assertions="3" time="0.016">
</testcase>
<testcase classname="newParticleSystem" name="newParticleSystem" assertions="3" time="0.017">
<testcase classname="newParticleSystem" name="newParticleSystem" assertions="3" time="0.016">
</testcase>
<testcase classname="newQuad" name="newQuad" assertions="3" time="0.016">
<testcase classname="newQuad" name="newQuad" assertions="3" time="0.017">
</testcase>
<testcase classname="newShader" name="newShader" assertions="3" time="0.024">
<testcase classname="newShader" name="newShader" assertions="3" time="0.023">
</testcase>
<testcase classname="newSpriteBatch" name="newSpriteBatch" assertions="3" time="0.018">
<testcase classname="newSpriteBatch" name="newSpriteBatch" assertions="3" time="0.019">
</testcase>
<testcase classname="newTextBatch" name="newTextBatch" assertions="3" time="0.018">
</testcase>
<testcase classname="newVideo" name="newVideo" assertions="3" time="0.020">
<testcase classname="newVideo" name="newVideo" assertions="3" time="0.021">
</testcase>
<testcase classname="newVolumeImage" name="newVolumeImage" assertions="3" time="0.018">
</testcase>
<testcase classname="origin" name="origin" assertions="173" time="0.018">
</testcase>
<testcase classname="points" name="points" assertions="169" time="0.017">
<testcase classname="points" name="points" assertions="169" time="0.026">
</testcase>
<testcase classname="polygon" name="polygon" assertions="225" time="0.016">
<testcase classname="polygon" name="polygon" assertions="225" time="0.018">
</testcase>
<testcase classname="pop" name="pop" assertions="173" time="0.018">
<testcase classname="pop" name="pop" assertions="173" time="0.017">
</testcase>
<testcase classname="print" name="print" assertions="317" time="0.033">
<testcase classname="print" name="print" assertions="317" time="0.022">
</testcase>
<testcase classname="printf" name="printf" assertions="1021" time="0.025">
<testcase classname="printf" name="printf" assertions="1021" time="0.020">
</testcase>
<testcase classname="push" name="push" assertions="173" time="0.022">
<testcase classname="push" name="push" assertions="173" time="0.019">
</testcase>
<testcase classname="rectangle" name="rectangle" assertions="454" time="0.025">
<testcase classname="rectangle" name="rectangle" assertions="454" time="0.024">
</testcase>
<testcase classname="replaceTransform" name="replaceTransform" assertions="173" time="0.021">
<testcase classname="replaceTransform" name="replaceTransform" assertions="173" time="0.017">
</testcase>
<testcase classname="reset" name="reset" assertions="3" time="0.019">
<testcase classname="reset" name="reset" assertions="3" time="0.016">
</testcase>
<testcase classname="rotate" name="rotate" assertions="185" time="0.035">
<testcase classname="rotate" name="rotate" assertions="185" time="0.025">
</testcase>
<testcase classname="scale" name="scale" assertions="16" time="0.014">
<testcase classname="scale" name="scale" assertions="16" time="0.016">
</testcase>
<testcase classname="setBackgroundColor" name="setBackgroundColor" assertions="4" time="0.016">
<testcase classname="setBackgroundColor" name="setBackgroundColor" assertions="4" time="0.017">
</testcase>
<testcase classname="setBlendMode" name="setBlendMode" assertions="185" time="0.021">
<testcase classname="setBlendMode" name="setBlendMode" assertions="185" time="0.022">
</testcase>
<testcase classname="setCanvas" name="setCanvas" assertions="188" time="0.017">
</testcase>
<testcase classname="setColor" name="setColor" assertions="237" time="0.017">
<testcase classname="setColor" name="setColor" assertions="237" time="0.019">
</testcase>
<testcase classname="setColorMask" name="setColorMask" assertions="189" time="0.028">
<testcase classname="setColorMask" name="setColorMask" assertions="189" time="0.027">
</testcase>
<testcase classname="setDefaultFilter" name="setDefaultFilter" assertions="3" time="0.016">
<testcase classname="setDefaultFilter" name="setDefaultFilter" assertions="3" time="0.018">
</testcase>
<testcase classname="setDepthMode" name="setDepthMode" assertions="8" time="0.018">
</testcase>
<testcase classname="setFont" name="setFont" assertions="209" time="0.024">
</testcase>
<testcase classname="setFrontFaceWinding" name="setFrontFaceWinding" assertions="2" time="0.016">
<testcase classname="setFrontFaceWinding" name="setFrontFaceWinding" assertions="2" time="0.017">
</testcase>
<testcase classname="setLineJoin" name="setLineJoin" assertions="185" time="0.017">
<testcase classname="setLineJoin" name="setLineJoin" assertions="185" time="0.019">
</testcase>
<testcase classname="setLineStyle" name="setLineStyle" assertions="193" time="0.026">
</testcase>
<testcase classname="setLineWidth" name="setLineWidth" assertions="241" time="0.023">
<testcase classname="setLineWidth" name="setLineWidth" assertions="241" time="0.024">
</testcase>
<testcase classname="setMeshCullMode" name="setMeshCullMode" assertions="3" time="0.016">
<testcase classname="setMeshCullMode" name="setMeshCullMode" assertions="3" time="0.018">
</testcase>
<testcase classname="setScissor" name="setScissor" assertions="201" time="0.026">
</testcase>
@@ -383,115 +383,107 @@
</testcase>
<testcase classname="setStencilMode" name="setStencilMode" assertions="201" time="0.018">
</testcase>
<testcase classname="setWireframe" name="setWireframe" assertions="169" time="0.030">
<testcase classname="setWireframe" name="setWireframe" assertions="169" time="0.027">
</testcase>
<testcase classname="shear" name="shear" assertions="370" time="0.025">
<testcase classname="shear" name="shear" assertions="370" time="0.021">
</testcase>
<testcase classname="transformPoint" name="transformPoint" assertions="4" time="0.015">
<testcase classname="transformPoint" name="transformPoint" assertions="4" time="0.017">
</testcase>
<testcase classname="translate" name="translate" assertions="185" time="0.035">
<testcase classname="translate" name="translate" assertions="185" time="0.032">
</testcase>
<testcase classname="validateShader" name="validateShader" assertions="2" time="0.017">
<testcase classname="validateShader" name="validateShader" assertions="2" time="0.019">
</testcase>
</testsuite>
<testsuite name="love.image" tests="5" failures="0" skipped="0" time="0.085">
<testcase classname="CompressedImageData" name="CompressedImageData" assertions="11" time="0.018">
<testcase classname="CompressedImageData" name="CompressedImageData" assertions="11" time="0.016">
</testcase>
<testcase classname="ImageData" name="ImageData" assertions="14" time="0.018">
<testcase classname="ImageData" name="ImageData" assertions="14" time="0.017">
</testcase>
<testcase classname="isCompressed" name="isCompressed" assertions="1" time="0.016">
</testcase>
<testcase classname="newCompressedData" name="newCompressedData" assertions="3" time="0.016">
<testcase classname="newCompressedData" name="newCompressedData" assertions="3" time="0.017">
</testcase>
<testcase classname="newImageData" name="newImageData" assertions="6" time="0.017">
<testcase classname="newImageData" name="newImageData" assertions="6" time="0.018">
</testcase>
</testsuite>
<testsuite name="love.joystick" tests="6" failures="0" skipped="0" time="0.106">
<testcase classname="getGamepadMappingString" name="getGamepadMappingString" assertions="1" time="0.017">
<testcase classname="getGamepadMappingString" name="getGamepadMappingString" assertions="1" time="0.016">
</testcase>
<testcase classname="getJoystickCount" name="getJoystickCount" assertions="1" time="0.017">
<testcase classname="getJoystickCount" name="getJoystickCount" assertions="1" time="0.015">
</testcase>
<testcase classname="getJoysticks" name="getJoysticks" assertions="1" time="0.016">
</testcase>
<testcase classname="loadGamepadMappings" name="loadGamepadMappings" assertions="1" time="0.019">
<testcase classname="loadGamepadMappings" name="loadGamepadMappings" assertions="1" time="0.021">
</testcase>
<testcase classname="saveGamepadMappings" name="saveGamepadMappings" assertions="1" time="0.020">
<testcase classname="saveGamepadMappings" name="saveGamepadMappings" assertions="1" time="0.021">
</testcase>
<testcase classname="setGamepadMapping" name="setGamepadMapping" assertions="24" time="0.017">
</testcase>
</testsuite>
<testsuite name="love.keyboard" tests="9" failures="0" skipped="0" time="0.151">
<testsuite name="love.keyboard" tests="9" failures="0" skipped="0" time="0.150">
<testcase classname="getKeyFromScancode" name="getKeyFromScancode" assertions="1" time="0.016">
</testcase>
<testcase classname="getScancodeFromKey" name="getScancodeFromKey" assertions="1" time="0.017">
<testcase classname="getScancodeFromKey" name="getScancodeFromKey" assertions="1" time="0.018">
</testcase>
<testcase classname="hasKeyRepeat" name="hasKeyRepeat" assertions="1" time="0.017">
<testcase classname="hasKeyRepeat" name="hasKeyRepeat" assertions="1" time="0.018">
</testcase>
<testcase classname="hasScreenKeyboard" name="hasScreenKeyboard" assertions="1" time="0.017">
<testcase classname="hasScreenKeyboard" name="hasScreenKeyboard" assertions="1" time="0.018">
</testcase>
<testcase classname="hasTextInput" name="hasTextInput" assertions="1" time="0.017">
<testcase classname="hasTextInput" name="hasTextInput" assertions="1" time="0.016">
</testcase>
<testcase classname="isDown" name="isDown" assertions="1" time="0.016">
<testcase classname="isDown" name="isDown" assertions="1" time="0.015">
</testcase>
<testcase classname="isScancodeDown" name="isScancodeDown" assertions="1" time="0.016">
</testcase>
<testcase classname="setKeyRepeat" name="setKeyRepeat" assertions="1" time="0.017">
<testcase classname="setKeyRepeat" name="setKeyRepeat" assertions="1" time="0.016">
</testcase>
<testcase classname="setTextInput" name="setTextInput" assertions="1" time="0.017">
</testcase>
</testsuite>
<testsuite name="love.love" tests="10" failures="0" skipped="0" time="0.166">
<testcase classname="draw" name="draw" assertions="1" time="0.017">
</testcase>
<testsuite name="love.love" tests="6" failures="0" skipped="0" time="0.098">
<testcase classname="errhand" name="errhand" assertions="1" time="0.016">
</testcase>
<testcase classname="getVersion" name="getVersion" assertions="4" time="0.016">
<testcase classname="getVersion" name="getVersion" assertions="4" time="0.018">
</testcase>
<testcase classname="hasDeprecationOutput" name="hasDeprecationOutput" assertions="1" time="0.016">
</testcase>
<testcase classname="isVersionCompatible" name="isVersionCompatible" assertions="1" time="0.016">
</testcase>
<testcase classname="load" name="load" assertions="1" time="0.016">
</testcase>
<testcase classname="quit" name="quit" assertions="1" time="0.018">
</testcase>
<testcase classname="run" name="run" assertions="1" time="0.015">
</testcase>
<testcase classname="setDeprecationOutput" name="setDeprecationOutput" assertions="2" time="0.018">
</testcase>
<testcase classname="update" name="update" assertions="1" time="0.016">
<testcase classname="setDeprecationOutput" name="setDeprecationOutput" assertions="2" time="0.017">
</testcase>
</testsuite>
<testsuite name="love.math" tests="20" failures="0" skipped="0" time="0.339">
<testsuite name="love.math" tests="20" failures="0" skipped="0" time="0.337">
<testcase classname="BezierCurve" name="BezierCurve" assertions="31" time="0.018">
</testcase>
<testcase classname="RandomGenerator" name="RandomGenerator" assertions="10" time="0.018">
<testcase classname="RandomGenerator" name="RandomGenerator" assertions="10" time="0.017">
</testcase>
<testcase classname="Transform" name="Transform" assertions="14" time="0.016">
<testcase classname="Transform" name="Transform" assertions="14" time="0.018">
</testcase>
<testcase classname="colorFromBytes" name="colorFromBytes" assertions="12" time="0.017">
</testcase>
<testcase classname="colorToBytes" name="colorToBytes" assertions="12" time="0.016">
<testcase classname="colorToBytes" name="colorToBytes" assertions="12" time="0.017">
</testcase>
<testcase classname="gammaToLinear" name="gammaToLinear" assertions="3" time="0.017">
<testcase classname="gammaToLinear" name="gammaToLinear" assertions="3" time="0.016">
</testcase>
<testcase classname="getRandomSeed" name="getRandomSeed" assertions="2" time="0.018">
<testcase classname="getRandomSeed" name="getRandomSeed" assertions="2" time="0.015">
</testcase>
<testcase classname="getRandomState" name="getRandomState" assertions="1" time="0.016">
<testcase classname="getRandomState" name="getRandomState" assertions="1" time="0.017">
</testcase>
<testcase classname="isConvex" name="isConvex" assertions="2" time="0.017">
<testcase classname="isConvex" name="isConvex" assertions="2" time="0.018">
</testcase>
<testcase classname="linearToGamma" name="linearToGamma" assertions="3" time="0.017">
<testcase classname="linearToGamma" name="linearToGamma" assertions="3" time="0.016">
</testcase>
<testcase classname="newBezierCurve" name="newBezierCurve" assertions="3" time="0.017">
<testcase classname="newBezierCurve" name="newBezierCurve" assertions="3" time="0.016">
</testcase>
<testcase classname="newRandomGenerator" name="newRandomGenerator" assertions="3" time="0.017">
<testcase classname="newRandomGenerator" name="newRandomGenerator" assertions="3" time="0.018">
</testcase>
<testcase classname="newTransform" name="newTransform" assertions="3" time="0.017">
</testcase>
<testcase classname="perlinNoise" name="perlinNoise" assertions="4" time="0.018">
<testcase classname="perlinNoise" name="perlinNoise" assertions="4" time="0.015">
</testcase>
<testcase classname="random" name="random" assertions="10" time="0.017">
<testcase classname="random" name="random" assertions="10" time="0.016">
</testcase>
<testcase classname="randomNormal" name="randomNormal" assertions="1" time="0.016">
</testcase>
@@ -499,19 +491,19 @@
</testcase>
<testcase classname="setRandomState" name="setRandomState" assertions="1" time="0.016">
</testcase>
<testcase classname="simplexNoise" name="simplexNoise" assertions="4" time="0.016">
<testcase classname="simplexNoise" name="simplexNoise" assertions="4" time="0.018">
</testcase>
<testcase classname="triangulate" name="triangulate" assertions="2" time="0.017">
</testcase>
</testsuite>
<testsuite name="love.mouse" tests="18" failures="0" skipped="0" time="0.303">
<testcase classname="getCursor" name="getCursor" assertions="4" time="0.017">
<testsuite name="love.mouse" tests="18" failures="0" skipped="0" time="0.302">
<testcase classname="getCursor" name="getCursor" assertions="4" time="0.018">
</testcase>
<testcase classname="getPosition" name="getPosition" assertions="2" time="0.016">
<testcase classname="getPosition" name="getPosition" assertions="2" time="0.018">
</testcase>
<testcase classname="getRelativeMode" name="getRelativeMode" assertions="2" time="0.016">
<testcase classname="getRelativeMode" name="getRelativeMode" assertions="2" time="0.017">
</testcase>
<testcase classname="getSystemCursor" name="getSystemCursor" assertions="4" time="0.016">
<testcase classname="getSystemCursor" name="getSystemCursor" assertions="4" time="0.015">
</testcase>
<testcase classname="getX" name="getX" assertions="2" time="0.017">
</testcase>
@@ -519,77 +511,77 @@
</testcase>
<testcase classname="isCursorSupported" name="isCursorSupported" assertions="1" time="0.016">
</testcase>
<testcase classname="isDown" name="isDown" assertions="1" time="0.016">
<testcase classname="isDown" name="isDown" assertions="1" time="0.018">
</testcase>
<testcase classname="isGrabbed" name="isGrabbed" assertions="1" time="0.016">
<testcase classname="isGrabbed" name="isGrabbed" assertions="1" time="0.017">
</testcase>
<testcase classname="isVisible" name="isVisible" assertions="2" time="0.017">
<testcase classname="isVisible" name="isVisible" assertions="2" time="0.018">
</testcase>
<testcase classname="newCursor" name="newCursor" assertions="3" time="0.018">
<testcase classname="newCursor" name="newCursor" assertions="3" time="0.017">
</testcase>
<testcase classname="setCursor" name="setCursor" assertions="4" time="0.018">
<testcase classname="setCursor" name="setCursor" assertions="4" time="0.017">
</testcase>
<testcase classname="setGrabbed" name="setGrabbed" assertions="2" time="0.017">
<testcase classname="setGrabbed" name="setGrabbed" assertions="2" time="0.016">
</testcase>
<testcase classname="setPosition" name="setPosition" assertions="4" time="0.017">
<testcase classname="setPosition" name="setPosition" assertions="4" time="0.016">
</testcase>
<testcase classname="setRelativeMode" name="setRelativeMode" assertions="2" time="0.018">
<testcase classname="setRelativeMode" name="setRelativeMode" assertions="2" time="0.016">
</testcase>
<testcase classname="setVisible" name="setVisible" assertions="2" time="0.017">
<testcase classname="setVisible" name="setVisible" assertions="2" time="0.016">
</testcase>
<testcase classname="setX" name="setX" assertions="2" time="0.016">
<testcase classname="setX" name="setX" assertions="2" time="0.015">
</testcase>
<testcase classname="setY" name="setY" assertions="2" time="0.017">
<testcase classname="setY" name="setY" assertions="2" time="0.018">
</testcase>
</testsuite>
<testsuite name="love.physics" tests="26" failures="0" skipped="0" time="0.439">
<testsuite name="love.physics" tests="26" failures="0" skipped="0" time="0.434">
<testcase classname="Body" name="Body" assertions="85" time="0.017">
</testcase>
<testcase classname="Contact" name="Contact" assertions="23" time="0.018">
</testcase>
<testcase classname="Joint" name="Joint" assertions="17" time="0.018">
<testcase classname="Joint" name="Joint" assertions="19" time="0.017">
</testcase>
<testcase classname="Shape" name="Shape" assertions="55" time="0.017">
<testcase classname="Shape" name="Shape" assertions="55" time="0.016">
</testcase>
<testcase classname="World" name="World" assertions="33" time="0.016">
</testcase>
<testcase classname="getDistance" name="getDistance" assertions="1" time="0.016">
</testcase>
<testcase classname="getMeter" name="getMeter" assertions="1" time="0.017">
<testcase classname="getMeter" name="getMeter" assertions="1" time="0.015">
</testcase>
<testcase classname="newBody" name="newBody" assertions="3" time="0.018">
</testcase>
<testcase classname="newChainShape" name="newChainShape" assertions="3" time="0.016">
</testcase>
<testcase classname="newCircleShape" name="newCircleShape" assertions="3" time="0.017">
<testcase classname="newCircleShape" name="newCircleShape" assertions="3" time="0.018">
</testcase>
<testcase classname="newDistanceJoint" name="newDistanceJoint" assertions="3" time="0.016">
</testcase>
<testcase classname="newEdgeShape" name="newEdgeShape" assertions="3" time="0.017">
<testcase classname="newEdgeShape" name="newEdgeShape" assertions="3" time="0.016">
</testcase>
<testcase classname="newFrictionJoint" name="newFrictionJoint" assertions="3" time="0.018">
</testcase>
<testcase classname="newGearJoint" name="newGearJoint" assertions="3" time="0.016">
<testcase classname="newGearJoint" name="newGearJoint" assertions="3" time="0.018">
</testcase>
<testcase classname="newMotorJoint" name="newMotorJoint" assertions="3" time="0.017">
<testcase classname="newMotorJoint" name="newMotorJoint" assertions="3" time="0.016">
</testcase>
<testcase classname="newMouseJoint" name="newMouseJoint" assertions="3" time="0.018">
<testcase classname="newMouseJoint" name="newMouseJoint" assertions="3" time="0.016">
</testcase>
<testcase classname="newPolygonShape" name="newPolygonShape" assertions="3" time="0.016">
</testcase>
<testcase classname="newPrismaticJoint" name="newPrismaticJoint" assertions="3" time="0.016">
</testcase>
<testcase classname="newPulleyJoint" name="newPulleyJoint" assertions="3" time="0.017">
<testcase classname="newPulleyJoint" name="newPulleyJoint" assertions="3" time="0.018">
</testcase>
<testcase classname="newRectangleShape" name="newRectangleShape" assertions="6" time="0.017">
</testcase>
<testcase classname="newRevoluteJoint" name="newRevoluteJoint" assertions="3" time="0.017">
<testcase classname="newRevoluteJoint" name="newRevoluteJoint" assertions="3" time="0.018">
</testcase>
<testcase classname="newRopeJoint" name="newRopeJoint" assertions="3" time="0.017">
<testcase classname="newRopeJoint" name="newRopeJoint" assertions="3" time="0.018">
</testcase>
<testcase classname="newWeldJoint" name="newWeldJoint" assertions="3" time="0.017">
<testcase classname="newWeldJoint" name="newWeldJoint" assertions="3" time="0.015">
</testcase>
<testcase classname="newWheelJoint" name="newWheelJoint" assertions="3" time="0.017">
<testcase classname="newWheelJoint" name="newWheelJoint" assertions="3" time="0.016">
</testcase>
<testcase classname="newWorld" name="newWorld" assertions="3" time="0.016">
</testcase>
@@ -600,150 +592,150 @@
<testcase classname="hasSensor" name="hasSensor" assertions="2" time="0.016">
</testcase>
</testsuite>
<testsuite name="love.sound" tests="4" failures="0" skipped="0" time="0.073">
<testsuite name="love.sound" tests="4" failures="0" skipped="0" time="0.072">
<testcase classname="Decoder" name="Decoder" assertions="14" time="0.019">
</testcase>
<testcase classname="SoundData" name="SoundData" assertions="20" time="0.018">
<testcase classname="SoundData" name="SoundData" assertions="20" time="0.019">
</testcase>
<testcase classname="newDecoder" name="newDecoder" assertions="3" time="0.018">
<testcase classname="newDecoder" name="newDecoder" assertions="3" time="0.017">
</testcase>
<testcase classname="newSoundData" name="newSoundData" assertions="6" time="0.018">
<testcase classname="newSoundData" name="newSoundData" assertions="6" time="0.017">
</testcase>
</testsuite>
<testsuite name="love.system" tests="6" failures="0" skipped="2" time="0.137">
<testsuite name="love.system" tests="6" failures="0" skipped="2" time="0.135">
<testcase classname="getClipboardText" name="getClipboardText" assertions="1" time="0.018">
</testcase>
<testcase classname="getOS" name="getOS" assertions="1" time="0.017">
<testcase classname="getOS" name="getOS" assertions="1" time="0.018">
</testcase>
<testcase classname="getPowerInfo" name="getPowerInfo" assertions="1" time="0.016">
</testcase>
<testcase classname="getProcessorCount" name="getProcessorCount" assertions="1" time="0.017">
<testcase classname="getProcessorCount" name="getProcessorCount" assertions="1" time="0.016">
</testcase>
<testcase classname="hasBackgroundMusic" name="hasBackgroundMusic" assertions="1" time="0.017">
</testcase>
<testcase classname="openURL" name="openURL" assertions="0" time="0.018">
<testcase classname="openURL" name="openURL" assertions="0" time="0.016">
<skipped message="cant test this worked" />
</testcase>
<testcase classname="setClipboardText" name="setClipboardText" assertions="1" time="0.018">
</testcase>
<testcase classname="vibrate" name="vibrate" assertions="0" time="0.016">
<testcase classname="vibrate" name="vibrate" assertions="0" time="0.017">
<skipped message="cant test this worked" />
</testcase>
</testsuite>
<testsuite name="love.thread" tests="5" failures="0" skipped="0" time="0.363">
<testcase classname="Channel" name="Channel" assertions="10" time="0.234">
<testcase classname="Channel" name="Channel" assertions="10" time="0.237">
</testcase>
<testcase classname="Thread" name="Thread" assertions="7" time="0.084">
<testcase classname="Thread" name="Thread" assertions="7" time="0.085">
</testcase>
<testcase classname="getChannel" name="getChannel" assertions="3" time="0.010">
<testcase classname="getChannel" name="getChannel" assertions="3" time="0.006">
</testcase>
<testcase classname="newChannel" name="newChannel" assertions="3" time="0.017">
<testcase classname="newChannel" name="newChannel" assertions="3" time="0.019">
</testcase>
<testcase classname="newThread" name="newThread" assertions="3" time="0.018">
</testcase>
</testsuite>
<testsuite name="love.timer" tests="6" failures="0" skipped="0" time="2.076">
<testcase classname="getAverageDelta" name="getAverageDelta" assertions="1" time="0.017">
<testsuite name="love.timer" tests="6" failures="0" skipped="0" time="2.074">
<testcase classname="getAverageDelta" name="getAverageDelta" assertions="1" time="0.015">
</testcase>
<testcase classname="getDelta" name="getDelta" assertions="1" time="0.018">
</testcase>
<testcase classname="getFPS" name="getFPS" assertions="1" time="0.017">
</testcase>
<testcase classname="getTime" name="getTime" assertions="1" time="1.019">
<testcase classname="getTime" name="getTime" assertions="1" time="1.017">
</testcase>
<testcase classname="sleep" name="sleep" assertions="1" time="1.002">
<testcase classname="sleep" name="sleep" assertions="1" time="1.003">
</testcase>
<testcase classname="step" name="step" assertions="1" time="0.002">
<testcase classname="step" name="step" assertions="1" time="0.003">
</testcase>
</testsuite>
<testsuite name="love.touch" tests="3" failures="0" skipped="0" time="0.007">
<testsuite name="love.touch" tests="3" failures="0" skipped="0" time="0.023">
<testcase classname="getPosition" name="getPosition" assertions="2" time="0.002">
</testcase>
<testcase classname="getPressure" name="getPressure" assertions="2" time="0.002">
</testcase>
<testcase classname="getTouches" name="getTouches" assertions="2" time="0.003">
<testcase classname="getTouches" name="getTouches" assertions="1" time="0.019">
</testcase>
</testsuite>
<testsuite name="love.video" tests="2" failures="0" skipped="0" time="0.040">
<testcase classname="VideoStream" name="VideoStream" assertions="9" time="0.020">
<testsuite name="love.video" tests="2" failures="0" skipped="0" time="0.039">
<testcase classname="VideoStream" name="VideoStream" assertions="9" time="0.019">
</testcase>
<testcase classname="newVideoStream" name="newVideoStream" assertions="3" time="0.020">
</testcase>
</testsuite>
<testsuite name="love.window" tests="34" failures="0" skipped="2" time="5.355">
<testcase classname="fromPixels" name="fromPixels" assertions="1" time="0.018">
<testsuite name="love.window" tests="34" failures="0" skipped="2" time="5.696">
<testcase classname="fromPixels" name="fromPixels" assertions="1" time="0.017">
</testcase>
<testcase classname="getDPIScale" name="getDPIScale" assertions="1" time="0.017">
<testcase classname="getDPIScale" name="getDPIScale" assertions="1" time="0.018">
</testcase>
<testcase classname="getDesktopDimensions" name="getDesktopDimensions" assertions="2" time="0.016">
</testcase>
<testcase classname="getDisplayCount" name="getDisplayCount" assertions="1" time="0.016">
</testcase>
<testcase classname="getDisplayName" name="getDisplayName" assertions="1" time="0.017">
<testcase classname="getDisplayName" name="getDisplayName" assertions="1" time="0.016">
</testcase>
<testcase classname="getDisplayOrientation" name="getDisplayOrientation" assertions="1" time="0.016">
</testcase>
<testcase classname="getFullscreen" name="getFullscreen" assertions="2" time="1.109">
</testcase>
<testcase classname="getFullscreenModes" name="getFullscreenModes" assertions="1" time="0.002">
<testcase classname="getFullscreenModes" name="getFullscreenModes" assertions="1" time="0.005">
</testcase>
<testcase classname="getIcon" name="getIcon" assertions="2" time="0.021">
</testcase>
<testcase classname="getMode" name="getMode" assertions="3" time="0.017">
<testcase classname="getMode" name="getMode" assertions="3" time="0.016">
</testcase>
<testcase classname="getPosition" name="getPosition" assertions="2" time="0.017">
</testcase>
<testcase classname="getSafeArea" name="getSafeArea" assertions="4" time="0.017">
<testcase classname="getSafeArea" name="getSafeArea" assertions="4" time="0.018">
</testcase>
<testcase classname="getTitle" name="getTitle" assertions="1" time="0.017">
</testcase>
<testcase classname="getVSync" name="getVSync" assertions="1" time="0.016">
<testcase classname="getVSync" name="getVSync" assertions="1" time="0.017">
</testcase>
<testcase classname="hasFocus" name="hasFocus" assertions="1" time="0.017">
</testcase>
<testcase classname="hasMouseFocus" name="hasMouseFocus" assertions="1" time="0.017">
</testcase>
<testcase classname="isDisplaySleepEnabled" name="isDisplaySleepEnabled" assertions="3" time="0.017">
<testcase classname="isDisplaySleepEnabled" name="isDisplaySleepEnabled" assertions="3" time="0.018">
</testcase>
<testcase classname="isMaximized" name="isMaximized" assertions="2" time="0.184">
<testcase classname="isMaximized" name="isMaximized" assertions="2" time="0.185">
</testcase>
<testcase classname="isMinimized" name="isMinimized" assertions="2" time="0.730">
<testcase classname="isMinimized" name="isMinimized" assertions="2" time="0.726">
</testcase>
<testcase classname="isOpen" name="isOpen" assertions="1" time="0.002">
</testcase>
<testcase classname="isVisible" name="isVisible" assertions="1" time="0.002">
</testcase>
<testcase classname="maximize" name="maximize" assertions="2" time="0.172">
<testcase classname="maximize" name="maximize" assertions="2" time="0.159">
</testcase>
<testcase classname="minimize" name="minimize" assertions="2" time="0.726">
<testcase classname="minimize" name="minimize" assertions="2" time="0.727">
</testcase>
<testcase classname="requestAttention" name="requestAttention" assertions="0" time="0.002">
<testcase classname="requestAttention" name="requestAttention" assertions="0" time="0.015">
<skipped message="cant test this worked" />
</testcase>
<testcase classname="restore" name="restore" assertions="1" time="0.779">
<testcase classname="restore" name="restore" assertions="1" time="0.866">
</testcase>
<testcase classname="setDisplaySleepEnabled" name="setDisplaySleepEnabled" assertions="2" time="0.018">
<testcase classname="setDisplaySleepEnabled" name="setDisplaySleepEnabled" assertions="2" time="0.019">
</testcase>
<testcase classname="setFullscreen" name="setFullscreen" assertions="2" time="1.105">
<testcase classname="setFullscreen" name="setFullscreen" assertions="2" time="1.328">
</testcase>
<testcase classname="setIcon" name="setIcon" assertions="1" time="0.003">
<testcase classname="setIcon" name="setIcon" assertions="1" time="0.015">
</testcase>
<testcase classname="setMode" name="setMode" assertions="4" time="0.007">
<testcase classname="setMode" name="setMode" assertions="4" time="0.020">
</testcase>
<testcase classname="setPosition" name="setPosition" assertions="2" time="0.182">
</testcase>
<testcase classname="setTitle" name="setTitle" assertions="1" time="0.019">
<testcase classname="setTitle" name="setTitle" assertions="1" time="0.017">
</testcase>
<testcase classname="setVSync" name="setVSync" assertions="1" time="0.018">
<testcase classname="setVSync" name="setVSync" assertions="1" time="0.017">
</testcase>
<testcase classname="showMessageBox" name="showMessageBox" assertions="0" time="0.002">
<testcase classname="showMessageBox" name="showMessageBox" assertions="0" time="0.001">
<skipped message="cant test this worked" />
</testcase>
<testcase classname="toPixels" name="toPixels" assertions="1" time="0.001">
</testcase>
<testcase classname="updateMode" name="updateMode" assertions="4" time="0.009">
</testcase>
<testcase classname="z_close" name="z_close" assertions="4" time="0.030">
<testcase classname="z_close" name="z_close" assertions="4" time="0.034">
</testcase>
</testsuite>
</testsuites>
+1 -1
View File
@@ -34,7 +34,7 @@ See the **Todo** section for outstanding tasks if you want to contribute!
| 🟢 image | 5 | 0 | 🟢 timer | 6 | 0 |
| 🟢 joystick | 6 | 0 | 🟢 touch | 3 | 0 |
| 🟢 keyboard | 9 | 0 | 🟢 video | 2 | 0 |
| 🟢 love | 10 | 0 | 🟢 window | 34 | 2 |
| 🟢 love | 6 | 0 | 🟢 window | 34 | 2 |
| 🟢 math | 20 | 0 |
> The following modules are covered but at a basic level as we can't emulate hardware input nicely for all platforms + virtual runners:
+1 -1
View File
@@ -12,7 +12,7 @@
love.test.audio.RecordingDevice = function(test)
-- skip recording device on runners, they cant emulate it
if GITHUB_RUNNER == true then
if GITHUB_RUNNER then
return test:skipTest('cant emulate recording devices in CI')
end
+8 -5
View File
@@ -997,7 +997,10 @@ love.test.graphics.Video = function(test)
video:play()
test:waitFrames(30) -- 1.5s ish
video:pause()
test:assertEquals(1, math.ceil(video:tell()), 'check video playing for 1s')
-- runners can be a bit funny and just not play anything sometimes
if not GITHUB_RUNNER then
test:assertEquals(1, math.ceil(video:tell()), 'check video playing for 1s')
end
video:seek(0.2)
test:assertEquals(0.2, video:tell(), 'check video seeking')
video:rewind()
@@ -1067,7 +1070,7 @@ love.test.graphics.arc = function(test)
love.graphics.setColor(1, 1, 1, 1)
love.graphics.setCanvas()
local imgdata3 = love.graphics.readbackTexture(canvas, {16, 0, 0, 0, 16, 16})
if GITHUB_RUNNER == true and love.system.getOS() == 'OS X' then
if GITHUB_RUNNER and love.system.getOS() == 'OS X' then
-- on macosx runners, the arcs are not drawn as accurately at low res
-- there's a couple pixels different in the curve of the arc but as we
-- are at such a low resolution I think that can be expected
@@ -1294,7 +1297,7 @@ love.test.graphics.points = function(test)
love.graphics.setCanvas()
local imgdata = love.graphics.readbackTexture(canvas, {16, 0, 0, 0, 16, 16})
-- on macOS runners points are drawn 1px off from the target
if GITHUB_RUNNER == true and love.system.getOS() == 'OS X' then
if GITHUB_RUNNER and love.system.getOS() == 'OS X' then
test.pixel_tolerance = 1
end
test:compareImg(imgdata)
@@ -2178,7 +2181,7 @@ love.test.graphics.setLineStyle = function(test)
red07 = {{0,4},{7,4},{15,4}}
}, 'set line style')
-- linux runner needs a 1/255 tolerance for the blend between a rough line + bg
if GITHUB_RUNNER == true and love.system.getOS() == 'Linux' then
if GITHUB_RUNNER and love.system.getOS() == 'Linux' then
test.rgba_tolerance = 1
end
test:compareImg(imgdata)
@@ -2327,7 +2330,7 @@ love.test.graphics.setWireframe = function(test)
love.graphics.setWireframe(false)
local imgdata = love.graphics.readbackTexture(canvas, {16, 0, 0, 0, 16, 16})
-- on macOS runners wireframes are drawn 1px off from the target
if GITHUB_RUNNER == true and love.system.getOS() == 'OS X' then
if GITHUB_RUNNER and love.system.getOS() == 'OS X' then
test.pixel_tolerance = 1
end
test:compareImg(imgdata)
+1 -1
View File
@@ -19,7 +19,7 @@ end
-- love.joystick.getJoystickCount
love.test.joystick.getJoystickCount = function(test)
local count = love.joystick.getJoystickCount()
test:assertEquals(0, count, 'check no joysticks')
test:assertGreaterEqual(0, count, 'check number')
end
+2 -4
View File
@@ -11,15 +11,13 @@
-- love.keyboard.getKeyFromScancode
love.test.keyboard.getKeyFromScancode = function(test)
local key = love.keyboard.getKeyFromScancode('a')
test:assertEquals('a', key, 'check key')
test:assertEquals('function', type(love.keyboard.getKeyFromScancode))
end
-- love.keyboard.getScancodeFromKey
love.test.keyboard.getScancodeFromKey = function(test)
local scancode = love.keyboard.getScancodeFromKey('a')
test:assertEquals('a', scancode, 'check scancode')
test:assertEquals('function', type(love.keyboard.getScancodeFromKey))
end
-24
View File
@@ -48,31 +48,7 @@ love.test.love.errhand = function(test)
end
-- love.load
love.test.love.load = function(test)
test:assertTrue(type(love.load) == 'function', 'check defined')
end
-- love.draw
love.test.love.draw = function(test)
test:assertTrue(type(love.draw) == 'function', 'check defined')
end
-- love.update
love.test.love.update = function(test)
test:assertTrue(type(love.update) == 'function', 'check defined')
end
-- love.run
love.test.love.run = function(test)
test:assertTrue(type(love.run) == 'function', 'check defined')
end
-- love.quit
love.test.love.quit = function(test)
test:assertTrue(type(love.quit) == 'function', 'check defined')
end
+24 -10
View File
@@ -13,10 +13,13 @@
love.test.mouse.getCursor = function(test)
local cursor = love.mouse.getCursor()
test:assertEquals(nil, cursor, 'check nil initially')
love.mouse.setCursor(love.mouse.getSystemCursor("hand"))
local newcursor = love.mouse.getCursor()
test:assertObject(newcursor)
love.mouse.setCursor()
-- try setting a cursor to check return if supported
if love.mouse.isCursorSupported() then
love.mouse.setCursor(love.mouse.getSystemCursor("hand"))
local newcursor = love.mouse.getCursor()
test:assertObject(newcursor)
love.mouse.setCursor()
end
end
@@ -97,21 +100,32 @@ end
-- love.mouse.newCursor
love.test.mouse.newCursor = function(test)
local cursor = love.mouse.newCursor('resources/love.png', 0, 0)
test:assertObject(cursor)
-- new cursor might fail if not supported
if love.mouse.isCursorSupported() then
local cursor = love.mouse.newCursor('resources/love.png', 0, 0)
test:assertObject(cursor)
else
test:skipTest('cursor not supported on this system')
end
end
-- love.mouse.setCursor
love.test.mouse.setCursor = function(test)
love.mouse.setCursor()
test:assertEquals(nil, love.mouse.getCursor(), 'check reset')
love.mouse.setCursor(love.mouse.getSystemCursor('hand'))
test:assertObject(love.mouse.getCursor())
-- cant set cursor if not supported
if love.mouse.isCursorSupported() then
love.mouse.setCursor()
test:assertEquals(nil, love.mouse.getCursor(), 'check reset')
love.mouse.setCursor(love.mouse.getSystemCursor('hand'))
test:assertObject(love.mouse.getCursor())
else
test:skipTest('cursor not supported on this system')
end
end
-- love.mouse.setGrabbed
-- @NOTE can fail if you move the mouse a bunch while the test runs
love.test.mouse.setGrabbed = function(test)
test:assertEquals(false, love.mouse.isGrabbed(), 'check not grabbed')
love.mouse.setGrabbed(true)
+9 -7
View File
@@ -306,13 +306,15 @@ love.test.physics.Joint = function(test)
-- check not destroyed
test:assertFalse(joint:isDestroyed(), 'check not destroyed')
-- check reaction props (sometimes nil on linux runners)
if joint:getReactionForce(1) ~= nil and joint:getReactionForce(1) ~= 0/0 then
test:assertEquals(0, joint:getReactionForce(1), 'check reaction force')
end
if joint:getReactionTorque(1) ~= nil and joint:getReactionTorque(1) ~= 0/0 then
test:assertEquals(0, joint:getReactionTorque(1), 'check reaction torque')
end
-- check reaction props
world:update(1)
local rx1, ry1 = joint:getReactionForce(1)
test:assertEquals(0, rx1, 'check reaction force x')
test:assertEquals(0, ry1, 'check reaction force y')
local rx2, ry2 = joint:getReactionTorque(1)
test:assertEquals(0, rx2, 'check reaction torque x')
test:assertEquals(nil, ry2, 'check reaction torque y')
-- check body pointer
local b1, b2 = joint:getBodies()
+1 -3
View File
@@ -27,7 +27,5 @@ end
-- love.touch.getTouches
love.test.touch.getTouches = function(test)
local touches = love.touch.getTouches()
test:assertNotNil(touches)
test:assertEquals(0, #touches, 'check no touches')
test:assertEquals('function', type(love.touch.getTouches))
end