From 1d826b5caaf038c921e57b24e7b36ac9f32feead Mon Sep 17 00:00:00 2001 From: AlexandraTrifan Date: Fri, 20 Dec 2024 12:21:49 +0200 Subject: [PATCH] docs: add initial test cases for the DAC plugin. Signed-off-by: AlexandraTrifan --- docs/tests/plugins/dac/dac_tests.rst | 380 +++++++++++++++++++++++++++ docs/tests/plugins/index.rst | 1 + 2 files changed, 381 insertions(+) create mode 100644 docs/tests/plugins/dac/dac_tests.rst diff --git a/docs/tests/plugins/dac/dac_tests.rst b/docs/tests/plugins/dac/dac_tests.rst new file mode 100644 index 000000000..3b14e8b31 --- /dev/null +++ b/docs/tests/plugins/dac/dac_tests.rst @@ -0,0 +1,380 @@ +.. _dac_tests: + +DAC Plugin - Test suite +======================= + +.. note:: + + User guide: :ref:`DAC Plugin user Guide` + +The DAC plugin tests are a set of tests that are run to verify the DAC plugin in Scopy. + +The following apply for all the test cases in this suite. +If the test case has special requirements, they will be listed in the test case section. + +Setup environment: +------------------- + +.. _adalm_pluto_emu_setup: + +**AdalmPluto.Emu:** + - Open Scopy. + - Start the IIO-EMU process. + - Connect to the ADALM-Pluto device using the EMU dropdown. + +.. _adalm_pluto_device_setup: + +**AdalmPluto.Device:** + - Open Scopy. + - Connect the ADALM-Pluto device to the system. + - Connect to the ADALM-Pluto device in Scopy using USB/network backend. + +**Depends on::** + - Test TST.PREFS.RESET + +Prerequisites: + - Scopy v2.0.0 or later with DAC plugin installed on the system. + - Tests listed as dependencies are successfully completed. + - Reset .ini files to default using the Preferences "Reset" button. + +Test 1 - Compatibility with device +---------------------------------------------------- + +.. _TST.DAC.COMPAT: + +**UID:** TST.DAC.COMPAT + +**Description:** This test verifies that the DAC plugin is compatible with the selected device +and that the plugin is able to correctly parse it. + +**Preconditions:** + - :ref:`AdalmPluto.Emu` + - OS: ALL (Windows, Linux-x86_64, Linux-arm64, Linux-arm32, macOS) + +**Steps:** + 1. Open the DAC plugin. + 2. Switch the "Mode" to "Buffer" and check the "Channels" list: + - **Expected result:** The channels list contains the following: **cf-ad9361-dds-core-lpc:voltage0** + and **cf-ad9361-dds-core-lpc:voltage1**. + 3. Switch the "Mode" to "DDS" and check the TX section: + - **Expected result:** The TX section contains one entry with "TX1". + +**Result:** PASS/FAIL + +Test 2 - Buffer mode file loading +---------------------------------------------------- + +.. _TST.DAC.BUFFER_LOAD: + +**UID:** TST.DAC.BUFFER_LOAD + +**Description:** This test verifies that the DAC plugin is able to load a file in buffer mode. + +**Preconditions:** + - :ref:`AdalmPluto.Emu` + - OS: ALL (Windows, Linux-x86_64, Linux-arm64, Linux-arm32, macOS) + +**Resources:** + - ``__ + - ``__ + +**Steps:** + 1. Open the DAC plugin. + 2. Switch the "Mode" to "Buffer". + 3. Select the *sine_complex_1_15360_sr_15360000_samps_40000_ampl_32767.csv* file using the + "Browse" button. + 4. Press the "Load" button. + - **Expected result:** + - The file should be loaded successfully. + - The "File Size" field is populated with ** 40 ksamples**. + - The Run button is enabled. + - A new section called "DATA CONFIGURATION" should appear. + - The bottom log section contains the following entry structure: *[timestamp] + Successfully loaded: [file name]*. + 5. Select the *tutorial_chapters.json* file from the resources provided above + using the "Browse" button. + 6. Press the "Load" button. + - **Expected result:** + - The file should NOT be loaded. + - The Run button is disabled. + - The bottom log section contains the following entry structure: *[timestamp] + Failed to load: [file name]*. + +**Result:** PASS/FAIL + +Test 3 - Buffer mode channel selection +---------------------------------------------------- + +.. _TST.DAC.BUFFER_CHANNEL_SELECT: + +**UID:** TST.DAC.BUFFER_CHANNEL_SELECT + +**Description:** This test verifies that the DAC plugin is able to validate channel selection in buffer mode. + +**Preconditions:** + - :ref:`AdalmPluto.Device` + - OS: ANY + +**Resources:** + - ``__ + +**Steps:** + 1. Open the DAC plugin. + 2. Switch the "Mode" to "Buffer". + 3. Select the *sine_complex_1_15360_sr_15360000_samps_40000_ampl_32767.csv* file using the + "Browse" button. + 4. Press the "Load" button. + 5. Check the channels list for enabled channels: + - **Expected result:** Both channels are enabled. + 6. Press "Run". + - **Expected result:** + - The "Run" button changes to "Stop". + - The bottom log section contains the following entry structure: + *[timestamp] Pushed 40000 samples, 160000 bytes (1/1 buffers).* + 7. While the plugin is running, disable one of the channels. + - **Expected result:** + - The plugin keeps running. + - The bottom log section contains the following entry structure: + *[timestamp] Pushed 40000 samples, 80000 bytes (1/1 buffers).* + 8. While the plugin is still running, disable the other channel. + - **Expected result:** + - The plugin stops running and the button change back to "Run". + - The bottom log section contains the following entry structure: + *[timestamp] Unable to create buffer, no channel enabled.* + +**Result:** PASS/FAIL + +Test 4 - Buffer mode file size validation +--------------------------------------------------------- + +.. _TST.DAC.BUFFER_FILE_SIZE: + +**UID:** TST.DAC.BUFFER_FILE_SIZE + +**Description:** This test verifies that the DAC plugin is able to validate the file +size in buffer mode. + +**Preconditions:** + - :ref:`AdalmPluto.Device` + - OS: ANY + +**Resources:** + - ``__ + +**Steps:** + 1. Open the DAC plugin. + 2. Switch the "Mode" to "Buffer". + 3. Select the *sine_complex_1_15360_sr_15360000_samps_40000_ampl_32767.csv* file using the + "Browse" button. + 4. Press the "Load" button. + 5. Check the "File Size" field. + - **Expected result:** The "File Size" field is populated with **40 ksamples**. + 6. Change the "File Size" field to a value higher than the actual file size (write 50 and press Enter). + - **Expected result:** The field value remains 40 ksamples since that's + the maximum number of samples in the file. + 7. Change the "File Size" field to a value lower than the actual file size (write 30 and press Enter). + - **Expected result:** The field value changes to 30 ksamples. + 8. Change the "File Size" using the "+" button. + - **Expected result:** The field value changes to the 31. + 9. Change the "File Size" using the "-" button. + - **Expected result:** The field value changes to the 30. + +**Result:** PASS/FAIL + +Test 5 - Cyclic buffer mode +--------------------------------------------- + +.. _TST.DAC.BUFFER_CYCLIC: + +**UID:** TST.DAC.BUFFER_CYCLIC + +**Description:** This test verifies the DAC plugin buffer generation in cyclic mode. + +**Depends on::** + - Test TST.ADC.* + - Test TST.Debugger.* + +**Preconditions:** + - :ref:`AdalmPluto.Device` + - ADALM-Pluto with loopback cable between RX and TX. + - OS: ALL (Windows, Linux-x86_64, Linux-arm64, Linux-arm32, macOS) + +**Resources:** + - ``__ + +**Steps:** + 1. Open the DAC plugin. + 2. Switch the "Mode" to "Buffer". + 3. Select the *sine_complex_1_15360_sr_15360000_samps_40000_ampl_32767.csv* file using the + "Browse" button. + 4. Press the "Load" button. + 5. Press "Run". + 6. Open the Debugger plugin. + 7. In the **ad9361-phy** device, set the **frequency** attribute for the **altvoltage1 TX_LO** + and **altvoltage0 RX_LO** channels to 2450000000. + 8. Open the ADC plugin. + 9. Change the Buffer Size to 4096. + 10. Press "Run". + 11. Check the ADC plugin for the generated signal. + - **Expected result:** A sinewave is seen on the ADC plot. + 12. Stop the DAC plugin while monitoring the ADC plot. + - **Expected result:** The sinewave no longer appears. + +**Result:** PASS/FAIL + +Test 6 - DDS modes +---------------------------------- + +.. _TST.DAC.DDS_MODES: + +**UID:** TST.DAC.DDS_MODES + +**Description:** This test verifies the DAC plugin DDS modes. + +**Preconditions:** + - :ref:`AdalmPluto.Emu` + - OS: ANY + +**Steps:** + 1. Open the DAC plugin. + 2. Switch the "Mode" to "DDS". + 3. Change the "DDS Mode" to **One CW Tone**. + - **Expected result:** + - One configuration panel appears. + - The configuration panel contains the following fields: + - **frequency**: 9.279985 MHz + - **scale**: -Inf db + - **phase**: 90 + - the channel name: "Tone 1 - TX1_I_F1" + 4. Change the "DDS Mode" to **Two CW Tones**. + - **Expected result:** + - Two configuration panels appear having the same fields as in the previous step. + - The second channel name: "Tone 2 - TX1_I_F2" + 5. Change the "DDS Mode" to **Independent I/Q Control**. + - **Expected result:** + - Four configuration panels appear having the same fields as in the previous step. + - The third channel name: "Tone 1 - TX1_Q_F1" + - The fourth channel name: "Tone 2 - TX1_Q_F2" + +**Result**: PASS/FAIL + +Test 7 - DDS mode sinewave generation +------------------------------------------------------ + +.. _TST.DAC.DDS_SINEWAVE: + +**UID:** + TST.DAC.DDS_SINEWAVE + +**Description:** + This test verifies the DAC plugin DDS mode sinewave generation. + +**Depends on::** + - Test TST.DEBUGGER.* + - Test TST.ADC.* + +**Preconditions:** + - :ref:`AdalmPluto.Device` + - ADALM-Pluto with loopback cable between RX and TX. + - OS: ALL (Windows, Linux-x86_64, Linux-arm64, Linux-arm32, macOS) + +**Steps:** + 1. Open the DAC plugin. + 2. Switch the "Mode" to "DDS". + 3. Change the "DDS Mode" to **One CW Tone**. + 4. Change the "frequency" to 1 MHz. + 5. Change the "scale" to 0 db. + 6. Open the Debugger plugin. + 7. In the **ad9361-phy** device, set the **frequency** attribute for the **altvoltage1 TX_LO** and + **altvoltage0 RX_LO** channels to 2450000000. + 8. Open the ADC plugin. + 9. Enable all the Measurements. + 10. Press "Run". + 11. Check the plot for the generated sinewave. + - **Expected result:** + - A sinewave should be seen on the ADC plot. + - The measurements show a frequency of 1 MHz. + 12. In the DAC plugin change the "DDS Mode" to **Disabled**. + - **Expected result:** The sinewave no longer appears on the ADC plot. + +**Result:** PASS/FAIL + +Test 8 - DDS mode attributes refresh +----------------------------------------------------- + +.. _TST.DAC.DDS_ATTRS: + +**UID:** TST.DAC.DDS_ATTRS + +**Description:** This test verifies the DAC plugin DDS mode attributes refresh. + +**Depends on::** + - Test TST.DEBUGGER.* + +**Preconditions:** + - :ref:`AdalmPluto.Emu` + - OS: ANY + +**Steps:** + 1. Open the DAC plugin. + 2. Switch the "Mode" to "DDS". + 3. Change the "DDS Mode" to **One CW Tone**. + 4. Change the "frequency" to 1 MHz. + 5. Open the Debugger plugin. + 6. In the **cf-ad9361-dds-core-lpc** device, set the **frequency** attribute + for the **altvoltage0 TX1_I_F1** to 2000000. + 7. Go to the DAC Plugin and click the refresh attributes button. + - **Expected result:** The frequency field is updated to 2 MHz. + +**Result:** PASS/FAIL + + +Test 9 - Plugin tutorial +--------------------------------- + +.. _TST.DAC.TUTORIAL: + +**UID:** TST.DAC.TUTORIAL + +**Description:** This test verifies the DAC plugin tutorial. + +**Preconditions:** + - :ref:`AdalmPluto.Emu` + - OS: ANY + +**Steps:** + 1. Open the DAC plugin. + 2. Click the "Info" button. + - **Expected result:** A pop-up window with 2 buttons (Tutorial and Documentation) + should appear. + 3. Click the "Documentation" button. + - **Expected result:** The documentation page opens in the default browser. + 4. Click the "Tutorial" button. + - **Expected result:** + - The tutorial opens as a walkthrough in the plugin. + +**Result:** PASS/FAIL + +Test 10 - Channel attributes +-------------------------------------------- + +.. _TST.DAC.CHANNEL_ATTRS: + +**UID:** TST.DAC.CHANNEL_ATTRS + +**Description:** This test verifies the DAC plugin channel attributes. + +**Preconditions:** + - :ref:`AdalmPluto.Emu` + - OS: ANY + +**Steps:** + 1. Open the DAC plugin. + 2. Switch the "Mode" to "Buffer". + 3. In the "Channels" panel click on the first channel "cf-ad9361-dds-core-lpc:voltage0". + - **Expected result:** The channel attributes are displayed in the right side menu. + 4. Change the **sampling_frequency** attribute to 38400000. + - **Expected result:** The attribute is updated successfully. + +**Result:** PASS/FAIL + diff --git a/docs/tests/plugins/index.rst b/docs/tests/plugins/index.rst index 729dd834a..1a9c00535 100644 --- a/docs/tests/plugins/index.rst +++ b/docs/tests/plugins/index.rst @@ -14,6 +14,7 @@ Contents pqm/pqm_tests datalogger/datalogger_test + dac/dac_tests .. add the path to each plugin test case here