From 64ea8d91f855bd537cff0bb98560e878819cb6d4 Mon Sep 17 00:00:00 2001 From: Steven Koo Date: Mon, 22 Mar 2021 11:53:37 -0500 Subject: ci: support for x3xx devtest on rhombus Rhombus is a test suite that is intended run devtests for multiple devices in parallel. This commit adds support for x300 and x310 support. This uses redis to mutex access to the hardware between Azure Pipeline agents. This also updates the fpga using Vivado over ssh to the host machine. Signed-off-by: Steven Koo --- .ci/templates/job-uhd-devtest.yml | 91 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 .ci/templates/job-uhd-devtest.yml (limited to '.ci/templates/job-uhd-devtest.yml') diff --git a/.ci/templates/job-uhd-devtest.yml b/.ci/templates/job-uhd-devtest.yml new file mode 100644 index 000000000..81733bd88 --- /dev/null +++ b/.ci/templates/job-uhd-devtest.yml @@ -0,0 +1,91 @@ +parameters: +- name: suiteName + type: string +- name: testOS + type: string + values: + - ubuntu2004 +- name: knownHost + type: string +- name: toolset + type: string + values: + - make +- name: uhdSrcDir + type: string +- name: redisHost + type: string +- name: dutMatrix + type: object + +jobs: +- job: uhd_devtest_${{ parameters.suiteName }}_${{ parameters.testOS }} + displayName: uhd devtest ${{ parameters.suiteName }} ${{ parameters.testOS }} + pool: + name: de-dre-lab + demands: + - suiteName -equals ${{ parameters.suiteName }} + - testOS -equals ${{ parameters.testOS }} + variables: + - group: sdr-pipeline-vars + strategy: + matrix: ${{ parameters.dutMatrix }} + workspace: + clean: outputs + steps: + - checkout: self + clean: true + - task: InstallSSHKey@0 + displayName: 'Install Ettus SSH key' + inputs: + knownHostsEntry: '${{ parameters.knownHost }}' + sshPublicKey: '$(ettus_ssh_pubkey)' + sshKeySecureFile: 'id_rsa.ettus' + - download: current + artifact: ${{ parameters.testOS }}-${{ parameters.toolset }} + displayName: Download pipeline artifact ${{ parameters.testOS }}-${{ parameters.toolset }} + - task: ExtractFiles@1 + inputs: + archiveFilePatterns: $(Pipeline.Workspace)/${{ parameters.testOS }}-${{ parameters.toolset }}/${{ parameters.testOS }}-${{ parameters.toolset }}.tar.gz + destinationFolder: $(Build.BinariesDirectory) + cleanDestinationFolder: true + - script: | + cd $(Build.BinariesDirectory)/uhddev/build + mkdir -p fpga_images + rm -rf fpga_images/* + python3 utils/uhd_images_downloader.py -t $(devModel) -i fpga_images \ + -b $(sdr-fileserver) + displayName: Download FPGA Images + - script: | + mkdir -p $(Common.TestResultsDirectory)/devtest + cd $(Common.TestResultsDirectory)/devtest + export PATH=$(Build.BinariesDirectory)/uhddev/build/utils:$(Build.BinariesDirectory)/uhddev/build/examples:$PATH + export LD_LIBRARY_PATH=$(Build.BinariesDirectory)/uhddev/build/lib:$LD_LIBRARY_PATH + python3 ${{ parameters.uhdSrcDir }}/.ci/utils/mutex_hardware.py \ + --jtag_x3xx $(jtagServer),$(jtagSerial),$(Build.BinariesDirectory)/uhddev/build/fpga_images/usrp_$(devModel)_fpga_$(devFpga).bit \ + ${{ parameters.redisHost }} $(devName) \ + "$(Build.BinariesDirectory)/uhddev/build/utils/uhd_usrp_probe --args addr=$(devAddr)" \ + "python3 ${{ parameters.uhdSrcDir }}/host/tests/devtest/run_testsuite.py \ + --src-dir ${{ parameters.uhdSrcDir }}/host/tests/devtest \ + --devtest-pattern $(devtestPattern) --args addr=$(devAddr),type=$(devType) \ + --build-type Release --build-dir $(Build.BinariesDirectory)/uhddev/build \ + --python-interp python3 --xml" + continueOnError: true + condition: and(succeeded(), eq(variables.devType, 'x300'), eq(variables.devBus, 'ip')) + displayName: Run devtest on $(devName) $(devFpga) + - script: | + cd $(Common.TestResultsDirectory)/devtest + python3 ${{ parameters.uhdSrcDir }}/.ci/utils/format_devtest_junitxml.py \ + $(Common.TestResultsDirectory)/devtest \ + $(Common.TestResultsDirectory)/devtest/devtestresults.xml + continueOnError: true + displayName: Format devtest xml + - task: PublishTestResults@2 + inputs: + testResultsFormat: 'JUnit' + testResultsFiles: '$(Common.TestResultsDirectory)/devtest/devtestresults.xml' + testRunTitle: $(devName) $(devFpga) devtest + buildConfiguration: 'Release' + mergeTestResults: true + failTaskOnFailedTests: true + displayName: Upload devtest results -- cgit v1.2.3