Introduction

CMF perform automated sanity testing of multiple video reference platforms on both Gerrit and Github contributions and on nightly branches.

Testing can also be performed on tip dunfell/rdk-next on demand.

CMF Sanity Tests are command line driven (e.g. gst-launch, aamp-cli) as well as UI driven. We have UI tests for the following UI's:

CMF Video Sanity Tests use the StormTestTM product to do image comparison, video and audio detection, OCR etc..

CMF currently support the following platforms and profiles for contribution and nightly branch CI.


PlatformProfilesTestingComment
RPI 4 IP Client Mixed Mode ACKVideo Accelerator UINightly
RPI 4 Hybrid Mixed Mode ACKVideo Accelerator UI

Nightly

Contribution


RPI 4 Mediaclient Mixed Mode ACKVideo Accelerator UINightly
BRCM972180HB

Video Accelerator UI


LGI Refapp2

Contribution

Nightly

Contribution

Nightly

contribution builds for Video Accelerator profile are meta layers only
BRCM972180HBDTVKit DVB UIOn Demand
SAGEMCOM (Broadcom)Video Accelerator UINightly
AMLOGIC AH212 IP ClientVideo Accelerator UI

Contribution

Nightly

contribution builds are meta layers only
AMLOGIC AT301 TV ProfileVideo Accelerator UI

Contribution

Nightly

contribution builds are meta layers only
SKYWORTH  (Amlogic)Video Accelerator UINightly
REALTEKVideo Accelerator UI

Contribution

Nightly

contribution builds are meta layers only
SERCOM (Blade Realtek)Video Accelerator UINightly

Automated Sanity Flows

Each sanity test flow follows the same principle:

  • Look for a free DUT resource (Jenkins Lock)
  • Retrieve the automated build image
  • Deploy the image on the DUT
    • includes deploying any test related scripts 
  • Verify the image has flashed successfully
    • check version.txt 
    • key service and process checks e.g. wpeframework, rmfstreamer etc
    • IP address has been assigned
  • Retrieve the DUT logs pre test
    • includes a long set of commands CMF define
    • retrieve the actual device logs (/opt/logs)
  • Perform the video command line and UI testing
    • Screenshots and other useful info is captured here
  • Retrieve the DUT logs post test
  • Prepare a test report (for contributions this is sent to Gerrit/Github and Verified/Platform-Verified status is set accordingly)
  • Power down the device and free it for the next request

Aim is to keep each sanity test flow to <= 30 minutes.

All interaction with the DUT is done via serial and ssh.


Some examples of the automated flows:


CMF Sanity Tests

Tests are split between command line and UI based tests.

A global appState variable is used to determine if the app should be stopped/started or is running based on the test being run.

Command Line Tests

TestShort DescriptionRPI 3 HybridRPI 3 Mediaclient

RPI 3
IPClient 

RPI 3
Refapp2
RPI 4
Hybrid 32 Bit
RPI 4
Mediaclient 32 Bit
BRCM
VA
SAGEMCOM
VA 
BRCM
Refapp2
AMLOGIC AH212AMLOGIC AT301SKYWORTH
VA
REALTEKSERCOM
VA
gst-play-1.0play a H264 or MPEG 2 local transport stream 













gst-launch uri=aamptest playback using gst-launch with aamp uri using HLS manifest













aamp-cli HLSHLS (.m3u8) video streaming using aamp-cli 













aamp-cli DASHDASH (.mpd) video streaming using aamp-cli 













aamp-cli PLAYREADY_DRMEncrypted Playready Playback with aamp-cli






WIP
WIPWIP


aamp-cli WIDEVINE_DRMEncrypted Widevine Playback with aamp-cli








WIPWIP


rmfApptest streaming from hybrid to client













rdkShellServicesCITest RDK Shell CI tests which test RDK Shell/Services API's













aampCI Tests Launches AAMP based unified player URL in a webkit instance and runs the embedded tests 














Video Accelerator UI Tests

TestShort DescriptionRPI 3 HybridRPI 3 Mediaclient

RPI 3
IPClient 

RPI 4
Hybrid 32 Bit
RPI 4
Mediaclient 32 Bit
BRCM
RefBoard VA
SAGEMCOM
VA
AMLOGIC AH212 RefBoard VAAMLOGIC AT301 RefBoard VASKYWORTH
VA
REALTEK
RefBoard VA
SERCOM
VA
vaHomeScreenTestcheck resident UI app has loaded











vaCNNVideo1Testtest CNN app launch and video playback











vaVODVideoTesttest VOD playback from resident UI











vaVimeoVideo1Testtest Vimeo app launch and playback











vaYoutubeVideoTesttest YouTube launch and playback











vaSettingsScreenCaptureTestcapture va settings screens











vaEuroNewsVideoTesttest euronews launch and playback











vaAccuWeatherTesttest Accuweather app launch and check Cork weather











vaWSJVideoTesttest WSJ app launch and playback











  • Note not all VA tests are run on contributions, key tests run are vaHomeScreenTest, vaCNNVideo1Test & vaVODVideoTest


LGI Refapp 2 UI Tests

TestShort DescriptionRPI 3
Refapp2
BRCM
Refapp2
refAppHomeScreenVideoTestcheck Refapp2 UI has loaded

refAppMovieVoDVideoTestverify movies screen and video playback using session manager 

refAppTVChannelVideoTestchannel change menu and channel change video tests from left banner and from main screen banner

refAppMovieVoDFMPVideoTestEncrypted playback (DRM) via movies screen

refAppLightningBouncingBallAppTestverify lightning app launch

refAppHTML5AppTestverify HTML 5 app launch

refAppDACTestverify DAC application download, launch and playbackWIPWIP


DTVKit DVB UI Tests

TestShort DescriptionBRCM
DVB
dvbCCountrySetupCheckcheck DVB app has loaded and if first boot set/verify the country
dvbCScanParamCheckcheck scan param screen and set/verify scan parameters
dvbCBBCONEVideoTestverify channel scan was successful and verify BBC 1 video playback
dvbCBBCTWOVideoTestverify channel scan was successful and verify BBC 2 video playback


Test Reporting

Each CMF Sanity Test Flow logs all the stages from image deployment, flashing, testing. This along with the DUT logs and video test reports are stored in Jenkins and in S3 buckets.

The video logs contain serial output from the device, logging from the test framework and screen grabs so you can actually see what was happening on the device during the test.


example jenkins sanity flow archive:


example fullLog.txt:

Flash BCMREF
Flash BCM Reference r05s12 Sequence Start
  get BOLT> prompt [SUCCESS]
  boot initrd image [SUCCESS]
  flash bcm rootfs [SUCCESS]
  get BOLT> prompt [SUCCESS]
  boot bcm reference image [SUCCESS]
  Check Service rmfstreamer [SUCCESS]
  Check Service wpeframework [SUCCESS]
  Check Ip Addr 10.5.25.72 [SUCCESS]
Flash BCM Reference r05s12 Sequence [SUCCESS]
Play BCMREF
"Testing Sequence Started" 
  HLS Video Streaming using aamp-cli [SUCCESS]
  DASH Video Streaming using aamp-cli [SUCCESS]
  PLAYREADY_DRM Video Streaming using aamp-cli [SUCCESS]
  Video Accelerator Home Screen Test [SUCCESS]
  Video Accelerator CNN App Video Detection Test [SUCCESS]
  Video Accelerator VOD Video Detection Test [SUCCESS]
  AAMP CI Tests [SUCCESS]
	AAMP CI: WebApp launch passed
	AAMP CI: 1 tests passed
	AAMP CI: 0 tests failed
	AAMP CI: HTML Web App Tests Passed
Testing Sequence [SUCCESS]


gerrit/github message:


example snippet from the StormTest video log for the CNN APP Video Detection Test:

Sanity Test Framework Architecture

 


CMFLAB Pictures 


  • No labels