Using MONK you can write tests like you would write unit tests, just that they are able to interact with your embedded system.
Let’s look at an example. In the following example we have an embedded system with a serial terminal and a network interface. We want to write a test, which checks whether the network interface receives correct information via dhcp.
The test case written with nosetests:
import nose.tools as nt import monk_tf.conn as mc import monk_tf.dev as md def test_dhcp(): """ check whether dhcp is implemented correctly """ # setup device = md.Device(mc.SerialConn('/dev/ttyUSB1','root','sosecure')) # exercise device.cmd('dhcpc -i eth0') # verify ifconfig_out = device.cmd('ifconfig eth0') nt.ok_('192.168.2.100' in ifconfig_out)
Even for non python programmers it should be not hard to guess, that this test will connect to a serial interface on /dev/ttyUSB1, send the shell command dhcpc to get a new IP adress for the eth0 interface, and in the end it checks whether the received IP address that the tester would expect. No need to worry about connection handling, login and session handling.
For more information see the API Docs.