Functional tests
Tests are located in the src/ska_low_sps_testsuite/functional_tests directory and are executed using one of three methods.
These hardware tests were developed primarily as a regression test suite for the TPM FPGA Firmware. Though they also double as a way to verify a hardware setup against a known good firmware and software. These tests verify that once configured the hardware is operating as expected and this includes all of the many science data products produced by the TPM.
Hardware Test Descriptions
Below is an overview of each of the self checking hardware tests:
- Synchronisation Test
- Initialise Station Test
- ADC Test
- DAQ (Data Acquisition) Test
- Station Sample Test
- Station Channel Spacing Test
- Bandpass Test
- Channelizer Offline Test
- Channelizer Test
- PFB (Polyphase Filter Bank) Test
- Tile Beamformer Test
- Tile Beam Tracking Test
- Flagging Test
- Antenna Buffer Test
- Station Beam Test
- Independent Beams Test
- Full Station Test
- Health Monitoring Test
- DDR Test
- ETH40G (40GbE) Test
- Configuration Time Test
- F2F (FPGA to FPGA) Test
- PreADU Test
- C2C (Chip to Chip, FPGA to CPLD) Test
- SPEAD Station Beam Test
- SPEAD Tile Beam Test
- SPEAD Raw ADC Test
- SPEAD Antenna Buffer Test
- SPEAD Channelised Data Test
Creating New Hardware Tests
Classes created in the /functional_tests/tests directory beginning with test_ are automatically imported by
the test_wrapper script once added to the test_wrapper file’s self.tests dictionary.
Running Test Multiple Times
If you want to run the tests multiple times usually there is a test parameter to change the number of iterations.
If this doesn’t exist or you want to reinitialize between tests then the test_wrapper
(src/ska_low_sps_testsuite/functional_tests/test_wrapper.py) has an iterations argument in the execute function.
If you want to reinitialize between iterations then you have to change init_between_iterations to True manually.
Work will be done in the future to expose these options to the 3 interfaces (Pytest, Cabinet Test GUI and Interactive terminal).
Note: The test_wrapper for the Cabinet Test GUI is actually: src/ska_low_sps_testsuite/cabinet_test_gui/gui_ctrl.py