Testing
Each installation step comes with its set of tests to make sure LimeNurse works as expected
Ouside tests
Those tests shall be performed on the development laptop, or any laptop enabling connection of the Raspberry Pi on USB C and ethernet interfaces. iOs and linux laptop shall have lsusb installed and sudo access. Windows computer shall have usbview installed and in the path. It will also require enabling scripts on powershell
The first step shall be launched after the Data Link Layer deployment has been performed
# Linux
scripts/01-configure-gadget-test.sh --source outside --platform <ios/linux>
# Windows
scripts/01-configure-gadget-test.ps1 --source outside --platform windows # Windows
Look for an USB device matching limelight vendor and product
Gather its USB descriptors using lsusb
Compare them to real limelight ones
PS : If the tests are not performed on a Linux laptop (or linux VM), the usb descriptors won’t be precise enough for the test to succeed.
The second step shall be launched after the Network Layer deployment has been performed For the following tests, the pi needs to be connected to the test laptop both through USB and ethernet.
# Linux
scripts/02-configure-network-test.sh --source outside --platform <ios/linux> --user <ssh user> --password <ssh password> --hostname limenurse
# Windows
scripts/02-configure-network-test.ps1 --source outside --platform windows --user <ssh user> --password <ssh password> --hostname limenurse
Check that limelight.local and limelight.eth.local names resolve to the configured IP (except for Windows)
Check that limenurse.local resolve to an IP (depending on the wifi router on which Pi is connected to wifi)
Check that the ethernet, USB and wlan IP are pingable
Check that limenurse.local is pingable
Check that limelight.local, limelight.eth.local are pingable (except for Windows)
Check that ssh connection on Pi is possible through ethernet and wlan IP
Check that ssh connection on Pi is possible through limenurse.local
Check that ssh connection on Pi is possible through limelight.eth.local (except for Windows)
The third step shall be launched after the Transport Layer deployment has been performed For the following tests, the limelight needs to be connected to the raspberry pi.
# Linux / iOs
scripts/04-configure-routing-test.sh --source outside --platform <ios/linux>
# Windows
scripts/04-configure-routing-test.ps1 --source outside --platform windows
Check that the PI is discoverable as a limelight on both ethernet and USB interfaces using python limelightlib
Check that the limelight Rest API is accessible on both ethernet and USB interfaces using python limelightlib
Check that the limelight webclient is accessible on both ethernet and USB interfaces
Inside tests
Those tests shall be performed on the Pi.
The first step shall be launched after the Data Link deployment has been done
scripts/01-configure-gadget-test.sh --source inside
Check that configfs has been mounted
Check that libcomposite module has been installed
Check that descriptors files exists
Check that gadget has been bind to UDC drivers
Check that limelight-gadget.service is enabled and active
Check that the usb0 interface has the configured ip address
The second step shall be launched after the Network deployment has been performed
scripts/02-configure-network-test.sh --source inside --user <ssh user> --password <ssh password> --hostname limenurse
Check that `limelight-address.service`_ is enabled and active
Check that the eth0 and usb0 interfaces have the required ip address
Check that dnsmasq service is enabled and active
Check that `limelight-dns.service`_ is enabled and active
Check that avahi-daemon is enabled and active
Check that python resolver runs
Check that the resolver log file exist and does not contain errors
The third step shall be launched after the Transport Layer deployment has been performed
scripts/03-configure-routing-test.sh --source inside
Check that limelight-routing.service is enabled and active
Check that python forwarder runs
Check that the forwarder log file exist and does not contain errors