Skip to content

Latest commit

 

History

History

mwts-filesystem

	MWTS-FILESYSTEM
	---------------


INTRODUCTION

  mwts-filesystem is a test package aimed for measuring file system
  performance. Verifying file system performance is important
  for delivering good end user experience on the device.

  Test cases can be targeted for example following filesystems/devices:
    - MMC (fat)
    - root filesystem (ext4,ext3,ubifs)
    - temp filesystem (ext4,ext3,tmpfs)
    - eMMC (fat) (embedded memorycard)
    - eMMC (ext3,ext4)
    - USB mass storage
      
  In different test cases you can test for example for each device:
   - read throughput
   - write throughput
   - create file latency
   - create dir latency
   - remove file latency
   - remove dir latency
   - sync latency

  Build in General test case package test root file system, tmp file system and device as USB mass storage.
  Paths and devices are different in platform and devices, so you must install also platform test package,
  which installs this package or change /usr/lib/tests/FilesystemTest.conf by hand.


SOURCE CODE AND COMPILING

  Look doc/MWTS.README.

  Doxygen API documentation can be generated by running 'doxygen' in mwts-filesystem
  root directory


ENVIRONMENT REQUIREMENTS

  All test cases are executed in device except Mass Storage test cases.    

  Mass Storage test cases are executed in PC Linux.         
  You need to have USB-cable connection to device. Device asks mode and you must select mass storage mode.
  Now PC mounts automatically devices MMC and embedded MMC cards into PC. All devices don't have MMC or eMMC cards,
  so check what is mounted and there.  Main trend seens to be, that device does not have SD-card place for
  exterternal SD-card to plug in.

EXECUTING TESTS

  For local test cases you need to connect to device using ssh connection and
  start MIN tool using command 'min'. Look doc/MWTS.README.




EXECUTING MASS STORAGE TESTS

  Mass Storage test cases are executed in PC Linux.

  Expected functionality of the device is like this:
  You need to have USB-cable connection to device. Device asks mode and you must select mass storage mode.
  Now PC mounts automatically devices MMC and embedded MMC cards into PC.

  When this is written, this kind of functionality is not found in any MeeGo device, writer has tested.
  To test devices Mass Storage capabilities, tests asset provides for you convinience utilities to
  set up Mass Storage mode in any device, that has USB-fuctionality and big enough root filesystem.

  Utility "/usr/bin/make_mass_storege_filesystem.sh" is a script that makes 1 GB Mass Storage file in device and
  sets device in Mass Storage mode. It should be run as "root" in device, so copy it to device.
  USB cable should be connected between PC and device. If you run this script in USB-networking, USB-networking hangs
  at the end of script, because Mass Storage mode is set on. New file is created in device,
  so all date in Mass Stirage created this way is destroyed.

  Utility "/usr/bin/set_mass_storege_mode.sh" sets device to mass storage mode using sharing file created with
  script described above. It does not destroy anything.

  In most moders linux distributions, they found that device is in mass storage mode providing it automatically
  mounted in "/media/MeeGo". This is set in test assets configuration file as default for Mass Storage Cases.

  Check also /usr/lib/tests/FilesystemTest.conf that devices mass storage cards are mounted in directories conf file says.
  If needed, correct conf to adapt your device.

EXECUTING MASS STORAGE TESTS for EXPERTS

  If this is not enough for your needs to test Mass Storage and if you are an expert or wan't to be one,
  you can refer Internet instructions, for instance
  <http://www.linux-usb.org/gadget/file_storage.html>
  <http://www.linux-usb.org/usbtest/>

  Connect into device. You should have root privileges in device.

  Try to load use mass storage module by hand.
  Command like this can work

          modprobe g_file_storage file=/dev/mmcblk0p3 stall=0

  On the desktop PC you can mount mass storage device by hand:

          sudo mkdir -p /mnt/meego
          sudo mount -t vfat /dev/sdb /mnt/meego -o gid=<username>,uid=<username>,rw

  Note, that you must change /usr/lib/tests/FilesystemTest.conf to adapt these directories.





TEST RESULTS

  Test results can be found from device in directory /var/log/tests/
  Result files are named according to test cases, <test_case_name>.result file contains
  overall information about test run and measured values.
  

MIN SCRIPTER INTERFACE

  SelectTarget UBI|TMP|EMMC_FAT|EMMC_EXT3|EMMC_EXT4|USBMSD_MMC|USBMSD_EMMC
     selects target where testing is done
  SelectSource UBI|TMP|EMMC_FAT|EMMC_EXT3||EMMC_EXT4|USBMSD_MMC|USBMSD_EMMC
     selects source in copy tests
  SetIterationCount <count>
     set number of iterations to be run for latency cases
  SetBlockSize <size>
     set block size for file write/read/copy cases
  SetBlockCount <count>
     set number of blocks to be transferred in write/read/copy cases
  CreateFileLatency
     test latency of creating a file on selected device
  RemoveFileLatency
     test latency of removing a file from selected device
  MoveFileLatency
     test latency of moving a file on selected device
  CreateDirLatency
     test latency of creating a directory on selected device
  RemoveDirLatency
     test latency of removing a directory from selected device
  SyncLatency
     measure data synchronization latency on device  
  ReadSpeed
     measure reading speed on selected target device
  WriteSpeed
     measure writing speed to selected target device  
  CopySpeed
     measure copying speed to from source device to target device
  FormatTarget
     format target device (if applicable)


KNOWN ISSUES

  When this was written, none of tested MeeGo device provided UI to set device into Mass Storage mode,
  when USB-cable is plugged in. You should adapt intructions given above to set up mass stoage by
  extra utilities provided by test asset, these utilities are not official distributions functionality.