XO1.5 run-in tests
Jump to navigation
Jump to 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 memtest - 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.