CMF![](/images/icons/linkext7.gif)
RDK Releases![](/images/icons/linkext7.gif)
Documentation![](/images/icons/linkext7.gif)
CMF Videos![](/images/icons/linkext7.gif)
Support
Support for CMF is provided by the RDK Support group.
To contact RDK Support:
Enter a ticket: https://jira.rdkcentral.com/
or
E-mail: support@rdkcentral.com
Template Tickets (these are cloned for each task)
Task | Template Ticket |
---|---|
TDK Intake | CMFLAB-1125 - Getting issue details... STATUS |
RDK-B Iteration/Release | CMFLAB-552 - Getting issue details... STATUS |
RDK-V Iteration/Release | CMFLAB-365 - Getting issue details... STATUS |
RDK-B CODEMGMT Iteration | CODEMGMT-238 - Getting issue details... STATUS |
RDK-B CODEMGMT Quarterly Release | CODEMGMT-425 - Getting issue details... STATUS |
RDK-V CODEMGMT Iteration | CODEMGMT-180 - Getting issue details... STATUS |
RDK-V CODEMGMT Quarterly Release | CODEMGMT-554 - Getting issue details... STATUS |
Sanity Test Flows
TDK Documentation and Releases
CMF Test Framework Design
CMF TDK Testing is done using 3 frameworks (2 in active use):
DUT | TDK Framework | Jenkins Flow | TDK Manager | Comments |
---|---|---|---|---|
EMU-B | ATF | https://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-atf-start-flow-emub/ | http://192.168.32.63/rdk-test-tool/?targetUri=%2Fexecution%2Fcreate | |
RPI-B | ATF | https://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-atf-start-flow-rpib/ | http://192.168.32.69/rdk-test-tool/?targetUri=%2Fexecution%2Fcreate | |
RPI-V | ATF | https://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-atf-start-flow-rpiv/ | http://192.168.32.70/rdk-test-tool/?targetUri=%2Fexecution%2Fcreate | |
EMU-V | RDKV-EMU | https://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-emu-start-flow/ | see section "Access EMU-V TDK VM's on browser" in Useful Tips |
|
|
|
|
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'. Below is each framework's instruction to run a flow job for the various RUNTYPE options and the differences those options make in regards to each phase of each flow.
Test Metrics | Link |
---|---|
Nightly | CMF Nightly Test Metrics |
Iteration | CMF Iteration Test Metrics |
Quarterly | CMF Release Test Metrics |
CMF Test Git Repositories and Useful Info
# clone the test repo git clone "https://code.rdkcentral.com/r/cmf/test" # gittiles link (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
S3 bucket | ||
---|---|---|
s3://rdkcmf-test-results/ |
| |
s3://rdkcmf-artifacts/jobs/test-manual-artifacts/ |
|
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.
The scripts will upload the images to an s3 bucket and can also be used to automatically smoke test the image.
The scripts are maintained in the cmf test git repository https://code.rdkcentral.com/r/plugins/gitiles/cmf/test/+/master/cmf_testbed/tools/builds/
1) launch build slave via https://jenkins.cmf.code.rdkcentral.com/job/jenkins-reserve-slave
2) ssh to build slave (see jenkins console o/p for IP address)
3) set up build scripts on your build slave (if not already setup)
cd ~/jenkinsroot/workspace git clone "https://code.rdkcentral.com/r/cmf/test" ln -s test/cmf_testbed/tools/builds/ builds
4) build your image, e.g.
cd ~/jenkinsroot/workspace/builds ./build_emub.sh <branch> <prepare|build> Note follow the prompts to select what image(s) you want to build and whether you want to automatically smoke test the image
ifconfig iwconfig systemctl | grep -i ccsp systemctl -l status <service> journalctl -u <service> ps -axf | grep hostapd <- check hotspot
systemctl systemctl -l status <service> journalctl -u <service> ps -axf | grep rmfstreamer
on griffen:
get_vpc_key -i 192.168.32.74 -u <username> griffen sudo su jenkins # general info commands vboxmanage list vms vboxmanage list runningvms vboxmanage showvminfo "rdkb-emu-tdk" vboxmanage list usbhost # restart vm vboxmanage startvm "rdkb-emu-tdk" --type headless # if above restart doesn't work power it off first vboxmanage controlvm rdkb-emu-tdk poweroff vboxmanage startvm "rdkb-emu-tdk" --type headless # destroy VM - mechanism 1 vboxmanage controlvm rdkb-emu-tdk poweroff vboxmanage unregistervm "rdkb-emu-tdk" --delete # destroy VM - mechanism 2 vboxmanage startvm rdkb-emu-tdk --type emergencystop vboxmanage unregistervm --delete rdkb-emu-tdk # rdp session for RDK-B Emulator, run following ssh command then on RDP client connect to localhost:3388 ssh -o "PasswordAuthentication=no" -L 3388:192.168.32.74:3388 -i ~/.griffen-<username>.rsa <username>@192.168.32.74
# do get vps on heron first get_vpc_key -i 192.168.32.76 -u <username> heron # ssh and tunnel through local port for the TDK Manager your interested in ssh -L 8085:192.168.21.31:8080 -i ~/.heron-jamescol.rsa jamescol@192.168.32.76 ssh -L 8086:192.168.21.32:8080 -i ~/.heron-jamescol.rsa jamescol@192.168.32.76 ssh -L 8087:192.168.21.33:8080 -i ~/.heron-jamescol.rsa jamescol@192.168.32.76 ssh -L 8088:192.168.21.34:8080 -i ~/.heron-jamescol.rsa jamescol@192.168.32.76 ssh -L 8089:192.168.21.35:8080 -i ~/.heron-jamescol.rsa jamescol@192.168.32.76 ssh -L 8090:192.168.21.36:8080 -i ~/.heron-jamescol.rsa jamescol@192.168.32.76 ssh -L 8091:192.168.21.38:8080 -i ~/.heron-jamescol.rsa jamescol@192.168.32.76 ssh -L 8092:192.168.21.39:8080 -i ~/.heron-jamescol.rsa jamescol@192.168.32.76 # now you can access any of the 8 TDK EMU-V TDK Managers in your browser via http://localhost:<port>/rdk-test-tool/execution/create # e.g. ssh -L 8085:192.168.21.31:8080 -i ~/.heron-jamescol.rsa jamescol@192.168.32.76 http://localhost:8086/rdk-test-tool/execution/create
To connect to TDK Manager VM's used in ATF testing: EMU-B TDK Manager VM, RPI-B TDK VM, RPI-V TDK VM you can use one of two methods either via vagrant ssh or ssh directly using it’s IP
( i ) via vagrant
# first connect to griffen get_vpc_key -i 192.168.32.74 -u <username> griffen sudo su jenkins # get list of VM's running and their status vagrant global-status # output will look like vagrant global-status id name provider state directory ------------------------------------------------------------------------------------------------------------ f6380e9 nfs-server-rdkb virtualbox running /home/jenkins/cmflab-vagrants/nfs-server/rdkb 0885fe0 tdk-emulator-rdkb virtualbox running /home/jenkins/cmflab-vagrants/rdkb/emulator/tdk 5e18def tdk-emulator-rdkb-rpi virtualbox running /home/jenkins/cmflab-vagrants/rdkb/rpi/tdk f3fdd9a tdk-emulator-raven-atf-rpi-rdkv virtualbox running /home/jenkins/cmflab-vagrants/rdkv/rpi/tdk 81a242c tdk-emulator-rdkb-rpi-e2e virtualbox running /home/jenkins/cmflab-vagrants/rdkb/rpi/tdk-e2e 1b99642 rdkb-webserver virtualbox running /home/jenkins/cmflab-vagrants/rdkb/webserver # run command `vagrant ssh <id>` vagrant ssh 0885fe0 # some other vagrant commands vagrant status <id> vagrant halt <id> vagrant up <id>
( ii ) via ssh
# first connect to griffen or some other lab server machine (e.g. heron/corvus/raven) get_vpc_key -i 192.168.32.74 -u <username> griffen sudo su jenkins # ssh to TDK VM using it's IP # TDK Manager Emulator ssh -o "StrictHostKeyChecking=no" vagrant@10.5.25.40 ssh -o "StrictHostKeyChecking=no" vagrant@192.168.32.63 http://192.168.32.63/rdk-test-tool/execution/create # TDK Manager RPI-B ssh -o "StrictHostKeyChecking=no" vagrant@10.5.25.41 ssh -o "StrictHostKeyChecking=no" vagrant@192.168.32.69 http://192.168.32.69/rdk-test-tool/execution/create # TDK Manager RPI-V ssh -o "StrictHostKeyChecking=no" vagrant@10.5.25.43 ssh -o "StrictHostKeyChecking=no" vagrant@192.168.32.70 http://192.168.32.70/rdk-test-tool/execution/create
Some General TDK Manager VM Commands
# 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