FAT32 Conformance Test Suite

Describes the FAT32 conformance test suite.

Test Suite Overview

The FAT32 Conformance Test Suite ensures conformance with various functionality provided by the implementation of FAT32. This includes verification of FAT32 parameters as defined by the Microsoft Extensible Firmware Initiative FAT32 System Specification (refer the Microsoft Web site).

Test Approach

The test suite attempts to validate all the FAT32 parameters in the boot sector, the FAT table and the FSInfo sector. It ensures that these fields contain correct values and that the system handles the introduction of incorrect values by generating appropriate errors.

This suite tests the File Allocation Table and its integrity in various conditions. For example, attempts are made to access clusters that are beyond the legal cluster bounds, to fill the disk to its maximum capacity and to remove the media while operations are taking place.

Negative testing is be performed where applicable to confirm that errors are returned as documented.

All tests except the final test, REMOVEMEDIA, are automated. The final test case requires user intervention to remove a memory card when advised.

Coverage Omissions

The following are not tested:

  • Fields specific to the FAT16 and FAT12 implementation.

  • Name limits and character sets.

Test Suite Details

Test Script Source Tree Location

Descriptions of the test cases that is, test script can be found at the following location:

...\baseapitest\basesvs\conformance\f32\fat32\scripts\f32-fat32-conformance.script.

Test Script EPOC tree Location

When the tests are built for emulator or hardware (winscw/armv5), the script is exported into the following location in the epoc tree: %EPOCROOT%\epoc32\data\Z\base\conformance\f32\fat32.

Test Script Build Location

When the tests are built, the script is built into the following location:

%EPOCROOT%\epoc32\release\<winscw|armv5>\<udeb|urel>\Z\base\conformance\f32\fat32\

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

Test Data Source Tree Location

The test suite contains following test data file:

...\baseapitest\basesvs\conformance\f32\fat32\testdata\<winscw|armv5>\f32-fat32-conformance.ini

Test Data Files EPOC Tree Location

When the tests are built for emulator or hardware (winscw/armv5), the data file is exported into the following location in the epoc tree: %EPOCROOT%\epoc32\data\Z\base\conformance\f32\fat32\.

Test Data Files Emulator Location

When the tests are built, the test data file are built into the following location: %EPOCROOT%\epoc32\release\winscw\<udeb/urel>\Z\base\conformance\f32\fat32\.

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

Test .driver File

The base.driver file found in ...\baseapitest\basesvs\testsuites\base\ is used by the test driver 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 is found in the following location:

...\baseapitest\basesvs\config\t_base.tcs

TCS File Build Location

When the tests are built, the script is generated in the following location:

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

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

Test Environment and Execution

General Test environment

The test suite has the following environment requirements:

  • Removable media must have a FAT32 file system

  • The minimum size of SD card acceptable for FAT32 is 2GB. For MMC and other forms of removable media the minimum size is 512MB.

  • The card must be inserted before test suite execution.

  • If testing on an emulator (WINSCW) the size of the emulated memory card can be changed by modifying the epoc.ini file. This file can be found in %EPOCROOT%\epoc32\data\.

    For example, MultiMediaCardSize=1048510 sets the size to 1GB

Refer to Base F32 Test Technology for general environment details.

How to create error logs

File System logging is switched off by default. To turn it on, set the SetDebug field in the Common section of the configuration file (f32-fat32-conformance.ini) to 1. Refer to Test Data Source Tree Location and Test Data Files EPOC Tree Location for the file locations.

File System logging only applies to UDEB builds. The log data output will be sent to a terminal emulation program, such as Hyper Terminal, through a debug port on the hardware board (for H4 this is Com0).

The port settings for the terminal emulator are:

  • Baud rate: 115200

  • Data bits: 8

  • Stop bits: 1

  • Parity: none

  • Flow control: none

Test execution instructions

For test execution instructions refer to Base F32 Test Technology. The test suite requires a ROM to be built with FAT32 and SD support. To do this substitute the buildrom step in the Base Test Technology Document with the steps listed below

Building ROM for hardware testing

  1. Navigate to …\epoc32\rom and execute one of the following commands:

    for automated testing using Test Driver:

    buildrom –D_STARTUPMODE2 –D_EABI=ARMV5 –DRVCT <h4hrp/h2> –DUSE_SDIO_SD_MMC –DWITH_FAT32 techview_statapi

    for manual testing (without Test Driver):

    buildrom -D_STARTUPMODE2 -D_NAND2 <h4hrp/h2> techview t_base

  2. To transfer the image onto the hardware board through MMC card zip the image file and rename it sys$rom.zip. Place the zipped file on an MMC card and start the board.