You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

Introduction 

CMF perform fully 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, aampcli) 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 3 Hybrid 

Video Accelerator UI


LGI Refapp2

Contribution

Nightly

Contribution

Nightly


RPI 3 MediaclientVideo Accelerator UI

Contribution

Nightly


RPI 3 IP ClientVideo Accelerator UINightly
RPI 4 Hybrid 32 BitVideo Accelerator UINightly
RPI 4 Mediaclient 32 BitVideo Accelerator UINightly
BRCM972180HB

Video Accelerator UI


LGI Refapp2

Contribution

Nightly

Contribution

Nightly

contribution builds are meta layers only
BRCM972180HBDTVKit DVB UINightly

Currently Not Run:   BCM72180-135 - Getting issue details... STATUS

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
REALTEKVideo Accelerator UIWIP

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 accordinly)
  • 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
BRCM
Refapp2
AMLOGIC AH212AMLOGIC AT301REALTEK
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







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
VA
AMLOGIC AH212AMLOGIC AT301REALTEK
vaHomeScreenTestcheck resident UI app has loaded





WIPWIP
vaCNNVideo1Testtest CNN app launch and video playback





WIPWIP
vaVODVideoTesttest VOD playback from resident UI





WIPWIP
vaVimeoVideo1Testtest Vimeo app launch and playback





WIPWIP
vaYoutubeVideoTesttest YouTube launch and playback





WIPWIP
vaSettingsScreenCaptureTestcapture va settings screens





WIPWIP
vaEuroNewsVideoTesttest euronews launch and playback





WIPWIP
vaAccuWeatherTesttest Accuweather app launch and check Cork weather





WIPWIP
vaWSJVideoTesttest WSJ app launch and playback





WIPWIP
  • 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.

For 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:


  • No labels