1
0
Fork 0
wasp-os/wasp/boards/simulator/test_smoke.py
Daniel Thompson f1f5cc9e0c simulator: Introduce fully automatic testint
Currently the tests do little more than fire up the simulator and
switch into (and out of) the built in applications. However this is
useful and allows us to fully integrate as a CI job.

Unfortunately the numpy warning from pysdl2 mean we have been forced
to disable all warnings to prevent pytest from collecting and reporting
them.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-04 20:11:41 +00:00

64 lines
1.4 KiB
Python

import pytest
import time
import wasp
def step():
wasp.system._tick()
wasp.machine.deepsleep()
wasp.system.step = step
def play(appname):
system = wasp.system
system.switch(system.apps[appname])
for i in range(4):
system.step()
time.sleep(0.125)
system.switch(system.quick_ring[0])
wasp.system.play = play
wasp.system.apps = {}
for app in wasp.system.quick_ring + wasp.system.launcher_ring:
wasp.system.apps[app.NAME] = app
@pytest.fixture
def system():
system = wasp.system
if system.app != system.quick_ring[0]:
system.switch(system.quick_ring[0])
system.step()
return system
def test_step(system):
system.step()
def test_quick_ring(system):
names = [ x.NAME for x in system.quick_ring ]
assert('Clock' in names)
assert('Steps' in names)
assert('Timer' in names)
assert('Heart' in names)
def test_launcher_ring(system):
names = [ x.NAME for x in system.launcher_ring ]
assert('Self Test' in names)
assert('Settings' in names)
assert('Torch' in names)
def test_steps(system):
system.play('Steps')
def test_timer(system):
system.play('Timer')
def test_heart(system):
system.play('Heart')
def test_self_test(system):
system.play('Self Test')
def test_settings(system):
system.play('Settings')
def test_torch(system):
system.play('Torch')