XO1.5 run-in tests

From OLPC
Revision as of 18:40, 7 December 2009 by Rsmith (talk | contribs) (Procedure)
Jump to: navigation, search

CL1B Run-in tests

Plan

For CL1B we are going integrate the runin tests into our main build. This completely eliminates a image download step on the manufacturing floor and will be useful for in field diagnostics.

Prerequisites

During the OS builds we will run md5deep and generate a manifest of all the files in the build and compress the file.

(excluding /var/log, /proc, /sys....)

Procedure

 Early in the boot (rc.d S00- or some such) check the TS mfg flag for run in

 if !run-in then exit
    run-in =  [ `cat /OFW/mfg-data/TS` == "RUNIN" ] (or what ever bash function we have to do this)

 Start run-in test:
  
  remove /bootpart/runin/fail.log
  remove /bootpart/runin/olpc.fth
  
  uncompress fs_hash.md5.whatever
 
  Start X with our set of tests in xinitrc.

  Grab start time.
  Start tests:

    - Set the charger pwm to 0% so it runs off of battery as much as possible
      Tell EC not to charge battery. Run test for n hours on battery. 
      After 4-n hours re-enable full power and tell EC to charge battery
      
    - Run md5deep to compare the all the files vs the manifest.
      run over and over.
	? running multiple md5deeps on different parts of the fs
	for a different type of stress.
    
    - Run cpuburn with floating point
    
    - Run memtester
    
    - Run camera with output to the screen an possbily to file

    - Run play audio (file of silence)

    - Check cputemp

    - ? Turn wireless on and off by reloading firmware?
    - ? Suspend resume?
    - ? do some r and r stuff to work the video engine harder ?	

    - Reboot tests [Not quite sure how to do with other long running tests]

  Wait time < 4hours:
    watch /tmp/fail.log for any items to show up
    if present the write fail.log and olpc.fth to /bootpart/runin and reboot

  Check battery to make sure it returned to fully charged

 Clean up droppings

 Re-run md5deep to verify the files are still pristine.
 Copy Run-In result file into /bootpart/runin

Notes

  • Each test runs in its own process and checks for pass fail and appends to /tmp/fail.log
  • If any test fails it outputs a fail report into a 'fail.log'. Top level script watchs for items in

/tmp/fail.log and if found aborts the runin early. Then copies the /tmp/fail.log and rundone.fth to /bootpart/runin.