==================================== Functional tests ==================================== Tests are located in the :code:`src/ska_low_sps_testsuite/functional_tests` directory and are executed using one of three methods. .. toctree:: :maxdepth: 1 gui interactive pytest 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: .. toctree:: :maxdepth: 1 test_descriptions/synchronisation_test test_descriptions/init_station_test test_descriptions/adc_test test_descriptions/daq_test test_descriptions/station_sample_test test_descriptions/station_channel_spacing_test test_descriptions/bandpass_test test_descriptions/channelizer_offline_test test_descriptions/channelizer_test test_descriptions/pfb_test test_descriptions/tile_beam_test test_descriptions/tile_beam_tracking_test test_descriptions/flagging_test test_descriptions/antenna_buffer_test test_descriptions/station_beam_test test_descriptions/independent_beams_test test_descriptions/full_station_test test_descriptions/health_monitoring_test test_descriptions/ddr_test test_descriptions/eth40g_test test_descriptions/config_time_test test_descriptions/f2f_test test_descriptions/preadu_test test_descriptions/c2c_test test_descriptions/spead_station_beam_test test_descriptions/spead_tile_beam_test test_descriptions/spead_raw_adc_test test_descriptions/spead_antenna_buffer_test test_descriptions/spead_channelised_test Creating New Hardware Tests ============================ Classes created in the :code:`/functional_tests/tests` directory beginning with :code:`test_` are automatically imported by the :code:`test_wrapper` script once added to the :code:`test_wrapper` file's :code:`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 :code:`test_wrapper` (:code:`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 :code:`init_between_iterations` to True manually. Work will be done in the future to expose these options to the 3 interfaces (:doc:`pytest`, :doc:`gui` and :doc:`interactive`). Note: The test_wrapper for the Cabinet Test GUI is actually: :code:`src/ska_low_sps_testsuite/cabinet_test_gui/gui_ctrl.py`