Tests are divided in unit tests and integration tests.
The test coverage is currently incomplete. More tests will be added in the future.
The GStreamer unit tests will require a camera for indexing. It is also advised to have the gige-daemon running to speed up test runs.
Unit tests are implemented with the help of the catch2 framework.
To execute unit tests, build the project and call make test.
To retrieve verbose output without calling a single test executable, set the environment variable CTEST_OUTPUT_ON_FAILURE=1
Integration tests are tests that verify the proper interaction of multiple elements. This would, for example, include the execution of complete GStreamer pipelines.
They are not executed automatically.
Release Tests are tests that are run to ensure no problems arise when deploying tiscamera. This includes the building of different tiscamera configurations. They are not executed automatically.
The following tests are executed by a tester before publication of a new release. The tests are executed on the current reference system.
For most tests, the following configuration is assumed:
cmake -DTCAM_BUILD_ARAVIS=ON -DTCAM_BUILD_USB=ON -DTCAM_BUILD_LIBUSB=ON -DTCAM_BUILD_TESTS=ON -DTCAM_BUILD_TOOLS=ON ..
[ ] Building/Installation
[ ] The README instructions are clear and correct.
[ ] scripts/install-dependencies.sh installs all required dependencies for compilation/run time
[ ] tests/release/build-configurations.py runs without error.
make testexecutes without errors. Requires installation or sourcing of env.sh.
make packagecreates a Debian package that is installable and executable. See Package Testing.
[ ] Sourcing env.sh sets all paths correctly
tcam-ctrl -llists all devices.
tcam-capturecan be started and works as expected.
[ ] installation works
sudo make installruns without warnings/error
sudo systemctl start gige-daemon.service
[ ] tcam-capture
[ ] Starting with
--fullscreenopens in fullscreen mode
[ ] Starting with
--serialopens the device with the given serial.
[ ] Starting with
--format <caps string>opens the last device with the described format.
[ ] Pressing the fit-to-view button resizes the display area fit the current window size.
[ ] ROI display
[ ] ROIs can be adjusted via mouse
[ ] ROIs can be moved via mouse
[ ] hotkeys
[ ] trigger button works Active trigger mode and press the trigger button to receive a new image (default: spacebar).
[ ] reopen the device dialog Reopen the device dialog to select a new device (default: ctrl-o).
[ ] Pressing F11 or f toggles fullscreen mode
[ ] evironment
[ ] GST_DEBUG output
[ ] Setting GST_DEBUG=tcam*:5 enables debug output.
[ ] Setting GST_DEBUG=0 disables any output log.
[ ] TCAM_GIGE_PACKET_SIZE works
- [ ]
TCAM_LOG=DEBUG gst-launch-1.0 tcambin serial=<serial> ! videoconvert ! ximagesinkto verify the size.
[ ] GStreamer Elements
[ ] tcamsrc
[ ] tcamsrc property drop-incomplete-frames=false delivers incomplete frames. Testable by changing the mtu.
[ ] delivers correct GstMeta data
[ ] tcamautoexposure
[ ] auto exposure changes the exposure value
[ ] increasing auto exposure min increases the lowest possible exposure value the algorithm chooses. - [ ] auto exposure max is correctly limited by the used framerate. - [ ] lowering auto exposure max causes adjustments by the algorithms when high exposure values are set.
[ ] auto gain changes the gain value.
[ ] increasing auto gain min increases the lowest possible gain value the algorithm chooses.
[ ] lowering auto gain max causes adjustments by the algorithms when high gain values are set.
[ ] auto iris changes the iris value
[ ] iris is on maximum opening when exposure/gain adjustments are sufficient
[ ] iris closes when image becomes the bright and exposure/gain are already at their minim values.
[ ] USB
[ ] extension units are correctly loaded when
[ ] USB 2
[ ] USB 23
[ ] USB 33/37
[ ] UDEV
[ ] extension units are correctly loaded when a camera is attached
[ ] libusb cameras like the afu050 can be opened
The following steps are to be taken to ensure proper package integrity. These steps should be executed on a vanilla reference system.
sudo apt install tiscamera-*.debinstalls the package without warnings etc.
[ ] The gige-daemon is running.
[ ] The gige-daemon is running after a reboot.
tcam-ctrl -llists all expected devices and has no waiting period.
tcam-ctrl -p <serial>lists all properties for a UVC camera (this verifies tcam-uvc-extension-loader).
gst-launch-1.0 tcambin ! videoconvert ! ximagesinkopens the first device and displays an image.
tcam-capturecorrectly interacts with cameras
[ ] camera images and The Imaging Source icon are correctly displayed.
[ ] The documenation can be opened and used. Default path: /usr/share/theimagingsource/tiscamera/documentation/index.html
sudo apt remove tiscameraremoves the package without warnings, etc.