Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Template Tickets (these are cloned for each task)

TaskTemplate Ticket
TDK Intake

Jira
serverRDK
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyCMFLAB-1125

RDK-B Iteration/Release

Jira
serverRDK
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyCMFLAB-552

RDK-V Iteration/Release

Jira
serverRDK
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyCMFLAB-365

RDK-B CODEMGMT Iteration

Jira
serverRDK
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyCODEMGMT-238

RDK-B CODEMGMT Quarterly Release

Jira
serverRDK
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyCODEMGMT-425

RDK-V CODEMGMT Iteration

Jira
serverRDK
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyCODEMGMT-180

RDK-V CODEMGMT Quarterly Release

Jira
serverRDK
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyCODEMGMT-554

RDK-C CODEMGMT Quarterly Release

Jira
serverJIRA
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyCODEMGMT-1063


Sanity Test Frameworks

CMF Video Sanity Tests

CMF Broadband Sanity Tests

CMF Sanity Test Monitoring Test Descriptions

Sanity Test Build Trend

Sanity Test Design

...

draw.io Diagram
bordertrue
viewerToolbartrue
fitWindowfalse
diagramNameSanity Test Framework
simpleViewerfalse
width
diagramWidth1055
revision1


Sanity Test Flows

DUTJenkins Sanity Test Flow JobComments
EMU-Bhttps://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-rdkb-emulator-wifi-flow/
  • there are 3 Sanity EMU-B setups on 
    • Raven
    • R02Server
    • Wind
RPI-Bhttps://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-rdkb-raspberrypi-wifi-flow/
EMU-Vhttps://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-hv04-emulators/
  • EMU's are setup on laptop connected to StormTest HV04
RPI-Vhttps://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-rdkv-raspberrypi-flow/
  • RPI-V RPI's are setup on R04 which is StormTest enabled rack
RPI RefApphttps://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-raspberrypi-refapp-flow/
  • RPI-V Refapp RPI's are setup on R04 which is StormTest enabled rack
  • Uses StormTest OCR to check subtitles
RPI Thunderhttps://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-raspberrypi-thunder-flow/
  • RPI Thunder are setup on R04 stormtest rack
RPI Westeroshttps://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-oss-raspberrypi-flow/
  • Deprecated ?

xg1v3

xi3v2

https://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-hv04-platforms/
  • Deprecated
  • StormTest HV04


TDK Test Frameworks

TDK Documentation and Releases

...

  • EACH PHASE OF THE FRAMEWORK CAN BE RUN INDEPENDENTLY


All of which are kicked off with a set of input parameters to their various Jenkins jobs. Currently supporting 4 'RUNTYPE' options – 'release', 'nightly', 'nightly-full', and 'master' (no longer used).

...

  • This produces a comparison report per platform on a configurable number of TDK Reference Releases
  • Useful on TDK Intake to see any change in test status or tests removed/added etc

TDK Test Metrics


CMFLAB

CMFLAB Confluence

Test and Git

CMF Gerrit

Comcast Gerrit

...

Code Block
# clone the test repo
git clone "https://code.rdkcentral.com/r/cmf/test"

# browse code in browser via gitiles (must be logged into gerrit)
https://code.rdkcentral.com/r/plugins/gitiles/cmf/test

# TDK test results repo (soon to be deprecated, used to store TDK reference results)
git clone "https://code.rdkcentral.com/r/tata/test-results"

# clone the jenkins dsl test repo where all our test jenkins jobs are maintained
git clone "https://code.rdkcentral.com/r/cmf/jenkins-dsl/jobs/test"

# setup the commit hook if you want push changes for review in CMF Gerrit
cd <repo>
gitdir=$(git rev-parse --git-dir); curl -o ${gitdir}/hooks/commit-msg https://code.rdkcentral.com/r/tools/hooks/commit-msg ; chmod +x ${gitdir}/hooks/commit-msg

# useful git commands/workflow sequence if/when working on branches rather than pushing changes directly on master
git checkout master
git pull —rebase
git checkout -b <branch name>

… make changes
git add <files>
git commit -m "CMFLAB-XXX <commit msg>"
git push origin <branch name>
  if single commit:
    git checkout master
    git cherry-pick <commit ID>
    git push origin HEAD:refs/for/master
  if multiple commits:
    git rebase -i HEAD~<# of commits from HEAD>
    … pick top commit; squash all others
    git log (**check to see that squashed commit has Change-ID)
    if no Change-ID in commit: git commit —amend; exit editor (Change-ID should now be there)
    git push origin HEAD:refs/for/master

Test AWS S3 Buckets


S3 BucketPurpose
s3://rdkcmf-test-results/
  • stores nightly and release sanity and TDK test results
  • store TDK reference results
s3://rdkcmf-test-logs/
  • stores nightly and release logs from TDK test runs
  • may be used in future for sanity testing
s3://rdkcmf-artifacts/jobs/
  • where all builds from internal jenkins are stored
  • we mainly use this to retrieve images from tdk and community build jobs
s3://rdkcmf-artifacts/jobs/test-manual-artifacts/
  • where we store our development builds, refer to next section below
s3://rdkcmf-community-artifacts/jobs/
  • where all builds are stored from contribution builds, useful if you want to run some testing on a contribution

Test Development Builds

The test team maintain their own build scripts which we use to build and test debug images for defect investigations. These scripts are run on personal build slaves and can be used to build on any branch we support in CMF.

...

Code Block
languagebash
# check if tftp server is running on the TDK Manager VM
vagrant@tdk-emulator-rdkb:~$ ps -ef | grep tftp
vagrant  12660 12630  0 12:17 pts/0    00:00:00 grep --color=auto tftp
root     13444 13389  0 Sep18 ?        00:00:00 sudo python /var/lib/tomcat6/webapps/rdk-test-tool/fileStore/tftp_server.py 69 /var/lib/tomcat6/webapps/rdk-test-tool/logs/logs/
root     13446 13444  0 Sep18 ?        00:00:05 python /var/lib/tomcat6/webapps/rdk-test-tool/fileStore/tftp_server.py 69 /var/lib/tomcat6/webapps/rdk-test-tool/logs/logs/

# Manually start TDK TFTP Server on a TDK VM (tftp server is used on manager to transfer agent logs from DUT)
sudo python /var/lib/tomcat6/webapps/rdk-test-tool/fileStore/tftp_server.py 69 /var/lib/tomcat6/webapps/rdk-test-tool/logs/logs/ &

# kill tftp serrver 
sudo pkill -f tftp

# to manually set the route on TDK Manager VM (this is needed if you can't connect to the webui of VM via your browser), e.g. can happen when VM was restarted abnormally
route del default
sudo route del default; sudo route add default gw 192.168.32.1 dev eth1

# to change interface or mechanism for agent log transfer (can be set to tftp/REST) edit tm.config file and restart tomcat
vi /var/lib/tomcat6/webapps/rdk-test-tool/fileStore/tm.config
sudo pkill -f tftp
sudo service tomcat6 stop 
sudo service tomcat6 start

...

 Provisioning RPI SD Cards for first time use:

The CMF procedure for flashing RPI's using UBOOT for automated testing is documented in RPI flashing procedure documentation

Instructions for flashing RPI SD images (MAC)

To format SD card using SD Formatter

To flash SD cardRDK SD cards with a prebuilt sd image:

...

Instructions for partitioning RPI SSD (from Ubuntu Host)

Best results on linux seen with GNOME Partition Editor (gparted)

Install from universal repositories, requires super user permissions to run the program.

Partitioning Info: 

16GB SSD Layout:

PartitionLabelDesignationFile SystemSize (MiB)
1BOOTPrimaryFat32488
2RDKPrimaryEXT42048
3UBUPrimaryEXT410240
4DATAPrimaryEXT4(Remaining Space)


32GB SSD Layout:

PartitionLabelDesignationFile SystemSize (MiB)
1BOOTPrimaryFat32488
2RDKPrimaryEXT410240
3UBUPrimaryEXT410240
4DATAPrimaryEXT4(Remaining Space)

GParted RPi SSD PartitionsImage Added

Instructions for flashing boot & root filesystems onto SSD (Nix)

Important: the boot partition must be populated at a bare minimum before the ssd is put into a DUT for the CMF Automation to succeed.

The partitions created in the previous section should be mounted to your filesystem, in recent ubuntu, these should mount to 

  • /media/($USER)/BOOT
  • /media/($USER)/RDK
  • /media/($USER)/UBU

...

# Acquire an RDK Build archive:
$ aws s3 ls s3://rdkcmf-artifacts/jobs/community-build-rdkv-raspberrypi/
# Choose latest build number, e.g. 1472, check files therein, then copy the build to your local workspace:
$ aws s3 cp s3://rdkcmf-artifacts/jobs/community-build-rdkv-raspberrypi/1472/test-archive-rdk-hybrid-raspberrypi-community-nightly-<build-id>.tar.gz .
# Extract the archive into a local directory:
$ mkdir rdk-hybrid && tar xvzf test-archive-rdk-hybrid-raspberrypi-community-nightly-<build-id>.tar.gz -C rdk-hybrid
# Configure u-boot as explicit kernel image for first time sd provisioning:
# Edit the file rdk-hybrid/boot/config.txt, find the line `#kernel=""` and change it to `kernel=u-boot.bin`, save and close the file.
# Copy the boot contents to BOOT partition
$ cp -r rdk-hybrid/boot /media/($USER)/BOOT
# Extract the root filesystem to RDK partition
$ tar xvjf rdk-hybrid/rootfs/rdk-generic-hybrid-wpe-image-raspberrypi-rdk-hybrid.tar.bz2 -C /media/($USER)/RDK

# Provisioning RDK-CMF-UBUNTU (WiFi Client):
# Acquire RDK-CMF-Ubuntu:
$ aws s3 ls s3://rdkcmf-artifacts/test-artifacts/test-ubuntu-artifacts
# Choose latest build number, e.g. 3, check files therein, then copy the build root file system (rootfs) to your local workspace (No need for boot filesystem):
$ aws s3 cp s3://rdkcmf-artifacts/test-artifacts/test-ubuntu-artifacts/3/ubuntu_rootfs_<build-sha>.tar.bz2 .
# Extract the archive into the SSD UBU Partition:
$ tar xvjf ubuntu_rootfs_<build-sha>.tar.bz2 -C /media/($USER)/UBU

# Ensure all Read/Write cases complete
$ sudo sync

Unmount/Eject the sd card and transfer to the DUT

Useful RPI setup links:

...