aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVirendra Kakade <virendra.kakade@ni.com>2022-04-05 14:12:30 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2022-04-12 13:30:48 -0700
commitfc2242994be5234a93b5cc6f5677fdc0e0d3d093 (patch)
treeebf67a7a4704a5c35451308b1f85fc41c6f9f572
parent0a561c6c3f42adeee82dffa5c0fc050e8dad1667 (diff)
downloaduhd-fc2242994be5234a93b5cc6f5677fdc0e0d3d093.tar.gz
uhd-fc2242994be5234a93b5cc6f5677fdc0e0d3d093.tar.bz2
uhd-fc2242994be5234a93b5cc6f5677fdc0e0d3d093.zip
tests: add filesystem flashing to streaming tests
Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
-rw-r--r--.ci/templates/job-uhd-streaming-tests-beauty.yml7
-rw-r--r--.ci/templates/job-uhd-streaming-tests.yml93
-rw-r--r--.ci/templates/stages-uhd-pipeline.yml8
3 files changed, 96 insertions, 12 deletions
diff --git a/.ci/templates/job-uhd-streaming-tests-beauty.yml b/.ci/templates/job-uhd-streaming-tests-beauty.yml
index 3712d5397..2852c9644 100644
--- a/.ci/templates/job-uhd-streaming-tests-beauty.yml
+++ b/.ci/templates/job-uhd-streaming-tests-beauty.yml
@@ -5,6 +5,9 @@ parameters:
- ubuntu2004
- name: uhdSrcDir
type: string
+- name: uhdArtifactSource
+ type: string
+ default: current
- name: testLength
type: string
@@ -16,6 +19,8 @@ jobs:
testLength: '${{ parameters.testLength }}'
toolset: 'make'
uhdSrcDir: '${{ parameters.uhdSrcDir }}'
+ uhdArtifactSource: ${{ parameters.uhdArtifactSource }}
+ xilinxLocation: /opt/Xilinx/Vivado_Lab/2019.1
dutMatrix:
# beauty-N320-0 XG:
# dutName: 'beauty-N320-0'
@@ -38,3 +43,5 @@ jobs:
dutSecondAddr: '192.168.20.2'
dutMgmtAddr: '10.0.57.29'
dutFPGA: 'CG_400'
+ dutEmbeddedImagesArtifact: 'x4xx-images'
+ uartSerial: '2516351E2C9A'
diff --git a/.ci/templates/job-uhd-streaming-tests.yml b/.ci/templates/job-uhd-streaming-tests.yml
index a5387a403..147493ade 100644
--- a/.ci/templates/job-uhd-streaming-tests.yml
+++ b/.ci/templates/job-uhd-streaming-tests.yml
@@ -19,6 +19,11 @@ parameters:
- 'smoke'
- 'full'
- 'stress'
+- name: uhdArtifactSource
+ type: string
+ default: current
+- name: xilinxLocation
+ type: string
jobs:
- job: uhd_streaming_tests_${{ parameters.suiteName }}
@@ -35,23 +40,93 @@ jobs:
steps:
- checkout: self
clean: true
- - download: current
+
+ - checkout: meta-ettus
+ clean: true
+
+ - script: |
+ if [ "${{ parameters.uhdArtifactSource }}" = "current" ]; then
+ echo '##vso[task.setvariable variable=uhd_artifact_directory]'$(Agent.BuildDirectory)
+ else
+ echo '##vso[task.setvariable variable=uhd_artifact_directory]'$(Agent.BuildDirectory)/${{ parameters.uhdArtifactSource }}
+ fi
+ displayName: Set uhddev pipeline artifact location
+
+ - script: |
+ rm -rf $(uhd_artifact_directory)/$(dutEmbeddedImagesArtifact)
+ rm -rf $(uhd_artifact_directory)/uhddev-${{ parameters.testOS }}-${{ parameters.toolset }}
+ displayName: Cleanup from prior run
+
+ - download: ${{ parameters.uhdArtifactSource }}
+ artifact: $(dutEmbeddedImagesArtifact)
+ displayName: Download $(dutEmbeddedImagesArtifact)
+
+ - task: ExtractFiles@1
+ inputs:
+ archiveFilePatterns: $(uhd_artifact_directory)/$(dutEmbeddedImagesArtifact)/u-boot-jtag-files.zip
+ destinationFolder: $(uhd_artifact_directory)/$(dutEmbeddedImagesArtifact)
+ cleanDestinationFolder: false
+ overwriteExistingFiles: true
+ displayName: Extract JTAG artifact
+
+ - download: ${{ parameters.uhdArtifactSource }}
artifact: uhddev-${{ parameters.testOS }}-${{ parameters.toolset }}
- displayName: download pipeline artifact ${{ parameters.testOS }}-${{ parameters.toolset }}
+ displayName: Download uhddev-${{ parameters.testOS }}-${{ parameters.toolset }} artifact
+
- task: ExtractFiles@1
inputs:
archiveFilePatterns: $(Pipeline.Workspace)/uhddev-${{ parameters.testOS }}-${{ parameters.toolset }}/uhddev-${{ parameters.testOS }}-${{ parameters.toolset }}.tar.gz
destinationFolder: $(Build.BinariesDirectory)
cleanDestinationFolder: true
+ displayName: Extract uhddev-${{ parameters.testOS }}-${{ parameters.toolset }} artifact
+
+ - script: |
+ cd $(Agent.TempDirectory)
+ python3 -m venv venv
+ source venv/bin/activate
+ echo '##vso[task.setvariable variable=USRP_EMB_VENV]'$(realpath venv)
+ echo '##vso[task.setvariable variable=USRP_EMB_IMAGE_PATH]'$(uhd_artifact_directory)/$(dutEmbeddedImagesArtifact)
+ echo '##vso[task.setvariable variable=USRP_EMB_FTDI_SERIAL]'$(uartSerial)
+ python3 -m pip install -U pip
+ pip3 install wheel
+ pip3 install --upgrade $(Build.SourcesDirectory)/meta-ettus-dev/contrib/test/usrp_emb
+ displayName: Create usrp_emb venv
+
+ - script: |
+ source ${{ parameters.xilinxLocation }}/settings64.sh
+ source $USRP_EMB_VENV/bin/activate
+ usrp_emb_x4xx_mender_update
+ displayName: Update device using Mender
+
+ - script: |
+ source $USRP_EMB_VENV/bin/activate
+ USRP_EMB_TARGET_IP=$(usrp_emb_x4xx_boot_linux)
+ echo Target IP is $USRP_EMB_TARGET_IP
+ echo '##vso[task.setvariable variable=USRP_EMB_TARGET_IP]'$USRP_EMB_TARGET_IP
+ displayName: Boot target, get mgmt IP
+
+ # Setting the timezone on the embedded device is
+ # required to make the test runtimes to look sane.
- script: |
- ssh-keygen -f ~/.ssh/known_hosts -R $(dutMgmtAddr)
- ssh -o StrictHostKeyChecking=no -tt root@$(dutMgmtAddr) "uhd_image_loader --args addr=localhost,type=$(dutType),fpga=$(dutFPGA)"
+ export HOST_TIME_ZONE=$(cat /etc/timezone)
+ ssh-keygen -f ~/.ssh/known_hosts -R $USRP_EMB_TARGET_IP
+ ssh -o StrictHostKeyChecking=no -tt root@$USRP_EMB_TARGET_IP "timedatectl set-timezone $HOST_TIME_ZONE"
+ displayName: Set timezone to Host
+
+ - script: |
+ sleep 60
+ displayName: Wait for device to finish booting
+
+ - script: |
+ ssh-keygen -f ~/.ssh/known_hosts -R $USRP_EMB_TARGET_IP
+ ssh -o StrictHostKeyChecking=no -tt root@$USRP_EMB_TARGET_IP "uhd_image_loader --args addr=localhost,type=$(dutType),fpga=$(dutFPGA)"
sleep 60
displayName: Flash FPGA $(dutFPGA)
+
- script: |
- ssh-keygen -f ~/.ssh/known_hosts -R $(dutMgmtAddr)
- ssh -o StrictHostKeyChecking=no -tt root@$(dutMgmtAddr) "ethtool -A sfp0 tx on"
- ssh -o StrictHostKeyChecking=no -tt root@$(dutMgmtAddr) "ethtool -A sfp1 tx on"
+ ssh-keygen -f ~/.ssh/known_hosts -R $USRP_EMB_TARGET_IP
+ ssh -o StrictHostKeyChecking=no -tt root@$USRP_EMB_TARGET_IP "ethtool -A sfp0 tx on"
+ ssh -o StrictHostKeyChecking=no -tt root@$USRP_EMB_TARGET_IP "ethtool -A sfp1 tx on"
displayName: Enable Tx Pause Frames on sfp0 and sfp1
condition: and(succeeded(), eq(variables.dutType, 'x4xx'), eq(variables.dutFPGA, 'CG_400'))
# - script: |
@@ -64,7 +139,7 @@ jobs:
# export PYTHONPATH=${{ parameters.uhdSrcDir }}/host/tests/streaming_performance
# cd ${{ parameters.uhdSrcDir }}/host/tests/pytests
# sudo python3 -m pytest -s test_streaming.py -m "not dpdk" --dut_type $(dutType) --test_length ${{ parameters.testLength }} \
- # --addr $(dutAddr) --second_addr $(dutSecondAddr) --mgmt_addr $(dutMgmtAddr) \
+ # --addr $(dutAddr) --second_addr $(dutSecondAddr) --mgmt_addr $USRP_EMB_TARGET_IP \
# --uhd_build_dir $(Build.BinariesDirectory)/uhddev/build --junitxml $(Common.TestResultsDirectory)/TEST-$(dutName).xml
# continueOnError: true
# displayName: Run streaming tests on $(dutName)
@@ -80,7 +155,7 @@ jobs:
# Disable creation of __pycache__ files using -B to avoid errors on clean up during next run
# as using sudo below creates them with root priveleges.
sudo --preserve-env=PYTHONPATH python3 -B -m pytest -s test_streaming.py -m "dpdk" --dut_type $(dutType) --test_length ${{ parameters.testLength }} \
- --addr $(dutAddr) --second_addr $(dutSecondAddr) --mgmt_addr $(dutMgmtAddr) \
+ --addr $(dutAddr) --second_addr $(dutSecondAddr) --mgmt_addr $USRP_EMB_TARGET_IP \
--uhd_build_dir $(Build.BinariesDirectory)/uhddev/build --junitxml $(Common.TestResultsDirectory)/TEST-$(dutName)-dpdk.xml
continueOnError: true
displayName: Run streaming tests with DPDK on $(dutName)
diff --git a/.ci/templates/stages-uhd-pipeline.yml b/.ci/templates/stages-uhd-pipeline.yml
index b2386b351..fdf00e215 100644
--- a/.ci/templates/stages-uhd-pipeline.yml
+++ b/.ci/templates/stages-uhd-pipeline.yml
@@ -224,11 +224,13 @@ stages:
- stage: test_streaming_stage
displayName: Test UHD Streaming
- dependsOn: build_uhd_stage_linux
- condition: and(succeeded('build_uhd_stage_linux'), ${{ parameters.run_streaming_tests }})
+ dependsOn:
+ - build_uhd_stage_linux
+ - build_uhd_embedded_system_images
+ condition: and(succeeded('build_uhd_stage_linux'), succeeded('build_uhd_embedded_system_images'), ${{ parameters.run_streaming_tests }})
jobs:
- template: job-uhd-streaming-tests-beauty.yml
parameters:
testOS: ubuntu2004
- uhdSrcDir: $(Build.SourcesDirectory)
+ uhdSrcDir: $(Build.SourcesDirectory)/uhddev
testLength: ${{ parameters.testLength }}