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
...
CMF TDK Testing is done using 3 frameworks (2 in active use):
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).
There is also a dry-run option which we often to use the debug issues or for testing changes to the frameworks.
...
Code Block |
---|
# clone the test repo git clone "https://code.rdkcentral.com/r/cmf/test" # gittiles linkbrowse 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 |
...
Code Block | ||
---|---|---|
| ||
cd ~/jenkinsroot/workspace/builds ./build_emub<platform>.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 # typical branches used are `rdk-next`, `rdk-dev-yymm`, `nightly/yyymmdd-rdk-dev`, `nightly/yyymmdd-rdk-next` |
...
on griffen:
Code Block | ||
---|---|---|
| ||
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 list usbhost # restart vm (needed during runs where VM has crashed, i.e. ping not working) vboxmanage startvm "rdkb-emu-tdk" --type headless # if above restartstart 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 |
...
Code Block | ||
---|---|---|
| ||
# 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 any of the 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
...
Code Block | ||
---|---|---|
| ||
# 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 |
To connect to to any of the 8 EMU-V TDK VM's
Code Block | ||
---|---|---|
| ||
# first connect to heron get_vpc_key -i 192.168.32.76 -u <uname> heron sudo su jenkins # get list of VM's running and their status vagrant global-status # output will list all emu-v VM's and the following TDK VM's vagrant global-status id name provider state directory ------------------------------------------------------------------------------------------------------------------------------------------------- eeacce1 tdk-emulator-1 virtualbox running /home/jenkins/manager-vagrant c4c70a1 tdk-emulator-2 virtualbox running /home/jenkins/manager-vagrant 148b8d3 tdk-emulator-3 virtualbox running /home/jenkins/manager-vagrant 09ef373 tdk-emulator-4 virtualbox running /home/jenkins/manager-vagrant e778206 tdk-emulator-5 virtualbox running /home/jenkins/manager-vagrant 9633df6 tdk-emulator-6 virtualbox running /home/jenkins/manager-vagrant 9e17573 tdk-emulator-7 virtualbox running /home/jenkins/manager-vagrant ae67a6f tdk-emulator-8 virtualbox running /home/jenkins/manager-vagrant # run command `vagrant ssh <id>` vagrant ssh eeacce1 # some other vagrant commands vagrant status <id> vagrant halt <id> vagrant up <id> # if vagrant-global status does not work (can be buggy) then cd into dir where vagrants are run from and run command vagrant status cd /home/jenkins/manager-vagrant vagrant status Current machine states: tdk-emulator-1 running (virtualbox) tdk-emulator-2 running (virtualbox) tdk-emulator-3 running (virtualbox) tdk-emulator-4 running (virtualbox) tdk-emulator-5 running (virtualbox) tdk-emulator-6 running (virtualbox) tdk-emulator-7 running (virtualbox) tdk-emulator-8 running (virtualbox) vagrant ssh tdk-emulator-1 # to ssh using IP , cat the VagrantFile to get the IP for the manager you want cat /home/jenkins/manager-vagrant/Vagrantfile tdk_managers = [ {:hostname => 'tdk-emulator-1', :ip => '192.168.21.31', :box => 'ubuntu/trusty64'}, {:hostname => 'tdk-emulator-2', :ip => '192.168.21.32', :box => 'ubuntu/trusty64'}, {:hostname => 'tdk-emulator-3', :ip => '192.168.21.33', :box => 'ubuntu/trusty64'}, {:hostname => 'tdk-emulator-4', :ip => '192.168.21.34', :box => 'ubuntu/trusty64'}, {:hostname => 'tdk-emulator-5', :ip => '192.168.21.35', :box => 'ubuntu/trusty64'}, {:hostname => 'tdk-emulator-6', :ip => '192.168.21.36', :box => 'ubuntu/trusty64'}, {:hostname => 'tdk-emulator-7', :ip => '192.168.21.38', :box => 'ubuntu/trusty64'}, {:hostname => 'tdk-emulator-8', :ip => '192.168.21.39', :box => 'ubuntu/trusty64'} ] ssh -o "StrictHostKeyChecking=no" vagrant@192.168.21.31 <-- this is currently looking for password, need to check with ALAN |
...
Code Block | ||
---|---|---|
| ||
# rdkb-emu TDK VM get_vpc_key -i 192.168.32.74 -u <username> griffen sudo su jenkins ssh -o "StrictHostKeyChecking=no" root@10.5.25.100 # RPI via telnet # telnet <iolan ip> <port> # note the port number will follow the slot the RPI is in, e.g. 10001 is R03S01, 10008 is R03S08 telnet 10.5.25.5 10002 # use CTRL-] to quit # tip if you accidently hit CTRL-C while in a telnet session it will stop responding, quit and do following to recover # echo 03 | xxd -r -p | nc <iolan ip> <port> echo 03 | xxd -r -p | nc 10.5.25.5 10015 # RPI via ssh # ssh -o "StrictHostKeyChecking=no" root@<IP> # e.g. 2 RPI-B TDK ssh -o "StrictHostKeyChecking=no" root@10.5.25.102 ssh -o "StrictHostKeyChecking=no" root@10.5.25.108 # RDKV-EMU TDK Hybrids and Clients # these device IP's are not static so you either get it's IP from the console output of the # https://jenkins.cmf.code.rdkcentral.com/view/TEST/job/test-emu-prepare-dut/ job are use vagrant to connect on heron get_vpc_key -i 192.168.32.76 -u <username> heron sudo su jenkins vagrant global-status id name provider state directory ------------------------------------------------------------------------------------------------------------------------------------------------- 7a9a0d5 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-hyb1 c8902cd default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-mc1 11caf80 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-hyb2 a0e30e0 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-mc2 bee0188 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-hyb3 e1fc8c3 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-mc3 318efaa default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-hyb4 c0ef362 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-mc4 1e66545 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-hyb5 2f90e49 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-mc5 d51c759 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-hyb6 3bb2290 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-mc6 186b64d default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-hyb7 1ad3bc7 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-mc7 972eb8b default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-hyb8 b96a896 default virtualbox running /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-mc8 # vagrant ssh <id> vagrant ssh 7a9a0d5 # or also cd into relevant dir and ssh directly cd /home/jenkins/jenkins2root/workspace/test-emu-prepare-dut/cmf_testbed/emulator/functional/em-tdk-hyb1 vagrant status vagrant ssh |
...