Multimedia Framework test suite

This topic describes the Multimedia Framework test suite. It provides an overview about the test suite, its coverage, how to set up the test environment to execute the test suite, and how to find further information about the test cases offered by this test suite.

Test suite overview

The Multimedia Framework test suite consists of several regression test suites that provides tests for the following classes:

All APIs that Symbian classify as PublishedAll are tested within this class.

Note: Any mention of epoc32 is offset by %EPOCROOT% that is, the full path where the epoc tree is installed.

Test approach

The test suite ensures that the APIs work as expected. Negative testing will be performed where applicable to confirm that errors are returned as documented. The tests are completely automated.

Coverage omissions

None.

Test suite details

  • Test Script Source Tree location:

    • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioConvertUtility\scripts\MM-MMF-ACLNT-CNVRT-PublicAPI.script

    • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioInputStream\scripts\MM-MMF-ACLNT-INPT-PublicAPI.script

    • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioOutputStream\scripts\MM-MMF-ACLNT-OUTPT-PublicAPI.script

    • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioPlayerUtility\scripts\MM-MMF-ACLNT-PLYR-PublicAPI.script

    • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioRecorderUtility\scripts\MM-MMF-ACLNT-RCRDR-PublicAPI.script

    • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioToneUtility\scripts\MM-MMF-ACLNT-TONE-PublicAPI.script

    • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MidiClientUtility\scripts\MM-MMF-MIDI-PublicAPI.script

    • …\os\mm\mmapitest\mmsvs\suite\mmf\T_VideoPlayerUtility\scripts\MM-MMF-VCLNT-PLYR-PublicAPI.script

    • …\os\mm\mmapitest\mmsvs\suite\mmf\T_VideoRecorderUtilityscripts\MM-MMF-VCLNT-RCRDR-PublicAPI.script

  • Test Script EPOC tree location on Emulator: When the tests are built, the scripts are first exported to the following location in the epoc tree:

    %EPOCROOT%\epoc32\data\Z\multimedia\

    Test Script Build Location: When the tests are built, the scripts are built in the following location:

    %EPOCROOT%\epoc32\release\<winscw|armv5>\<udeb|urel>\Z\multimedia

    Note: When the tests are built to be run on hardware, the files are built in the z drive of the ROM.

Test data source tree location

The test data files can be found in the following location:

  • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioConvertUtility\testdata\MM-MMF-ACLNT-CNVRT-PublicAPI.ini

  • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioInputStream\testdata\MM-MMF-ACLNT-INPT-PublicAPI.ini

  • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioOutputStream\testdata\MM-MMF-ACLNT-OUTPT-PublicAPI.ini

  • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioPlayerUtility\testdata\MM-MMF-ACLNT-PLYR-PublicAPI.ini

  • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioRecorderUtility\testdata\MM-MMF-ACLNT-RCRDR-PublicAPI.ini

  • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MdaAudioToneUtility\testdata\MM-MMF-ACLNT-TONE-PublicAPI.ini

  • …\os\mm\mmapitest\mmsvs\suite\mmf\T_MidiClientUtility\testdata\MM-MMF-MIDI-PublicAPI.ini

  • …\os\mm\mmapitest\mmsvs\suite\mmf\T_VideoPlayerUtility\testdata\MM-MMF-VCLNT-PLYR-PublicAPI.ini

  • …\os\mm\mmapitest\mmsvs\suite\mmf\T_VideoRecorderUtility\testdata\MM-MMF-VCLNT-RCRDR-PublicAPI.ini

  • …\mmapitest\mmsvs\suite\testdata\t_multimedia.ini

Test data on EPOC tree location

When the tests are built, the test data files are first exported to the following location in the epoc tree:

%EPOCROOT%\epoc32\data\Z\multimedia\

Test data build location

When the tests are built, the test data files are built in the following location:

%EPOCROOT%\epoc32\release\<winscw|armv5>\<udeb|urel>\Z\multimedia

Note: When the tests are built to be executed on hardware the files are built in the z drive of the ROM.

TestDriver file

The multimedia .driver file can be found in the following path:

…\os\mm\mmapitest\mmsvs\suite\testsuites\multimedia

It is used by TestDriver to construct the test suite tree structure and export all the appropriate files to the correct location in the epoc32 tree and on the device.

When the tests are built, the .driver file can be found in the following location:

%EPOCROOT%\epoc32\testdriver\testproduct

TCS file source location

The .tcs file can be found at the following location:

…\os\mm\mmapitest\mmsvs\suite\config\t_multimedia.tcs

TCS file build location

When the tests are built, the .tcs file is generated into the following location:

%EPOCROOT%\epoc32\release\<winscw|armv5>\<udeb|urel>\Z\multimedia

Note: When the tests are built to be executed on the hardware, the files are built into the z: drive of the ROM.

Test global environment file

The t_multimedia.ini file is the test suite global environment file, which contains the following device specific configurable parameters under the [default_camera] and [default_mmf] section:

[default_camera]:

  • Defines the number of cameras available on the device.

    count = 1

  • Set to the 0 offset index of the camera used for still photography tests.

    validstill = 0

  • Set to an invalid camera index for negative still photography tests.

    invalidstill = 100

[default_mmf]:

  • The full path and filename of the file to which converted audio data is appended.

    secondarylocation = os\mm\mmapitest\mmsvs\testdata\mmf\T_MdaAudioConvertUtility\note2.wav

  • Defines the full path and filename of a file containing audio sample data to be converted.

    primaryfile = os\mm\mmapitest\mmsvs\testdata\mmf\T_MdaAudioConvertUtility\note.wav

  • Defines the of the audio controller on the device.

    controlleruid = 101F5022

  • Defines the default bitrate of the converted audio file.

    convert_bitrate = 128000

  • Defines the codec to be used for the converted audio object.

    secondarycodec = PcmWavCodec

  • Defines the codec to be used for the source (unconverted) audio object.

    primarycodec = PcmWavCodec

  • Defines the TFourcc code of the converted audio format.

    fourcc_codecformat = KMMFFourCCCodePCM16

  • Defines the default bitrate the audio stream player may be set to.

    Input_bitrate = 10000

  • Defines the format the input audio stream may be set to.

    fourcc_inputdatatype = KMMFFourCCCodePCM16

  • Defines the format the output audio stream may be set to.

    fourcc_outputdatatype = KMMFFourCCCodePCM16

  • The playback file of the audio player.

    playbackfile = os\mm\mmapitest\mmsvs\testdata\mmf\T_MdaAudioPlayerUtility\test.wav

  • Defines the format in which the audio data will be recorded.

    fourcc_rcrdrdatatype = KMMFFourCCCodePCM16

  • The audio tone sequence files or descriptors to be played back by the audio tone player.

    sequence = os\mm\mmapitest\mmsvs\testdata\mmf\T_MdaAudioToneUtility\sequence1.sqn

  • This is the alternate playback sequence.

    alternate_sequence = os\mm\mmapitest\mmsvs\testdata\mmf\T_MdaAudioToneUtility\sequence2.sqn

  • Badsequence is a corrupt sequence used in negative tests.

    bad_sequence = os\mm\mmapitest\mmsvs\testdata\mmf\T_MdaAudioToneUtility\badsequence.sqn

  • The corrupt file and path used for negative testing of the audio tone player.

    wrong_filename = \wrongplace\wrongfile.file

  • Defines the default priority (A priority between EMdaPriorityMin and EMdaPriorityMax) of the tone to be played back.

    tone_priority = 50

  • Defines the default prioritypreference value, which define the behaviour to be adopted by an audio client if a higher priority client takes over the device.

    tone_prioritypreference = TimeAndQuality

The file containing Musical Instrument Digital Interface (MIDI) data to be used by the MIDI client.

midifilename = os\mm\mmapitest\mmsvs\testdata\mmf\T_MidiClientUtility\midi.mid

This enables you to modify these parameter values so that the tests may be executed with different test data. For example, if the bitrate of the audio stream player on the device under test is 2000, set input_bitrate to2000.

Test Environment and Execution

Device Setup

The following test suites requires additional plug-ins to be built before they can be run.

T_MidiClientUtility

The T_MidiClientUtility test suite requires that the device under test has the MIDI client plug-in with the MIDI controller in place. The Symbian platform does not provide an implementation of the MIDI controller assuming that device creators are likely to have their own implementation.

In the absence of a production quality MIDI controller, the test suite can be run using the test MIDI controller which can be found in the following location:

…\mw\mmmw\mmfwtest\mmfunittest\MidiClnt\MidiTestCntrl

The following commands for building these are in the following location:

…\os\mm\mmapitest\mmsvs\suite\group\mmsetup.pl

This can be run by running mmsetup.bat.

system("bldmake bldfiles");
system("abld build $platform $build miditstcntrl");

T_VideoPlayerUtility and T_VideoRecorderUtility

The T_VideoPlayerUtility and T_VideoRecorderUtility suites needs the device under test to have the camera hardware, complete video controller, video player and recorder application. The Symbian platform does not implement a complete video controller, CCamera, CVideoPlayerUtility and CVideoRecorderUtility classes assuming that device creators will have their own specific implementation depending on the hardware. In such cases, the device specific camera, codec and other input file related details can be modified in t_multimedia.ini (see Test global environment file section).

In the absence of a production quality camera application the test suite can be executed using the test camera application. The test camera application can be found in the following location (relative to the location of the source code):

…\os\mm\imagingandcamerafws\camerafw

The following components are to be built for the test video controller for Symbian platform versions 9.1-9.3:

  • TestFrameworkServer

  • TestFrameworkClient

These components can be found in the following location:

…\os\mm\mmtestenv

  • TS_CMMFVideoTestCustomCommands

  • TS_CMMFVideoTestController

…\mw\mmmw\mmfwtest\mmfunittest

The following commands for building these are in the following path:

…\os\mm\mmapitest\mmsvs\suite\group\mmsetup.pl

This can be executed by running mmsetup.bat.

system("bldmake bldfiles");
system("abld test build $platform $build testcamera");
system("bldmake bldfiles");
system("abld build $platform $build TestFrameworkServer");
system("abld build $platform $build TestFrameworkClient");
system("bldmake bldfiles");
system("abld build $platform $build TS_CMMFVideoTestCustomCommands");
system("abld build $platform $build TS_CMMFVideoTestController");

From version 9.4 onwards, Avi Video Controller has been added to Symbian platform. In order for this controller to work, a xvid codec is required. The code for this codec can be downloaded from http://developer.symbian.org/wiki/index.php/File:Xvid.zip.

Follow the instructions in the readme.txt file contained in the zip file to build it. Please refer to Multimedia test technology for further information regarding test environment and build and execution procedure.

Support

For support issues related to this test suite, its description, and issues related to running the tests, test pass rates, and potential defects, contact Symbian or your SDK provider. In most instances, this will be either through the Symbian technical consulting teams, the SDK provider forums, or the developer area of the Symbian Web site.