[openfirmware] [commit] r2998 - cpu/x86/pc/olpc/via
repository service
svn at openfirmware.info
Sat Jun 2 12:02:39 CEST 2012
Author: quozl
Date: Sat Jun 2 12:02:39 2012
New Revision: 2998
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2998
Log:
OLPC - test menu, automatic tests; maintain an overall failure state and report it at the end, handle any escape request from the hold message, make the quit item the default afterwards, and provide the timed menu again. #11847.
Modified:
cpu/x86/pc/olpc/via/mfgtest.fth
Modified: cpu/x86/pc/olpc/via/mfgtest.fth
==============================================================================
--- cpu/x86/pc/olpc/via/mfgtest.fth Fri Jun 1 20:57:38 2012 (r2997)
+++ cpu/x86/pc/olpc/via/mfgtest.fth Sat Jun 2 12:02:39 2012 (r2998)
@@ -31,6 +31,8 @@
warning on
0 value pass?
+0 value overall-fail?
+0 value stop?
: mfg-wait-return ( -- )
." ... Press any key to proceed ... "
@@ -52,7 +54,7 @@
?dup if ( return-code )
??cr ." Selftest failed. Return code = " .d cr
mfg-color-red sq-border!
- false to pass?
+ false to pass? true to overall-fail?
red-screen
flush-keyboard
mfg-wait-return
@@ -62,12 +64,12 @@
cancel
mfg-color-green sq-border!
true to pass?
- d# 2000 hold-message drop
+ d# 2000 hold-message if true to stop? then
then
else
??cr ." Selftest failed due to abort" cr
mfg-color-red sq-border!
- false to pass?
+ false to pass? true to overall-fail?
red-screen
flush-keyboard
mfg-wait-return
@@ -95,11 +97,16 @@
mfg-test-result
;
-: all-tests-passed ( -- )
+: overall ( -- )
restore-scroller-bg
clear-screen
- ." All automatic tests passed successfully." cr cr cr
- green-screen
+ overall-fail? if
+ ." Some tests failed." cr cr cr
+ red-screen
+ else
+ ." All automatic tests passed successfully." cr cr cr
+ green-screen
+ then
wait-return
cursor-off scroller-off gui-alerts refresh
flush-keyboard
@@ -140,6 +147,8 @@
icon: quit.icon rom:quit.565
: play-item ( -- ) \ Interactive autorun of all tests
+ false to overall-fail?
+ false to stop?
#mfgcols #mfgtests + #mfgcols ?do
i set-current-sq
refresh
@@ -147,12 +156,14 @@
d# 10 ms key? if unloop unloop exit then
loop
run-menu-item
- pass? 0= if unloop exit then
+ stop? if unloop exit then
loop
- all-tests-passed
+ 0 3 rc>sq set-current-sq \ quit-item
+ overall
;
-: quit-item ( -- ) menu-done ;
+false value quit?
+: quit-item ( -- ) true to quit? menu-done ;
: init-menu ( -- )
?open-screen ?open-pointer
@@ -196,8 +207,8 @@
restore-scroller-bg
;
-: autorun-from-gamekey ( -- )
- default-selection set-current-sq refresh
+: pause-to-interact
+ refresh
(cr kill-line
0 d# 30 do
i d# 10 mod 0= if (cr i d# 10 / .d then
@@ -205,12 +216,25 @@
key? or if ( )
drop ( )
menu-interact ( )
+ true to quit?
unloop exit ( -- )
then ( )
d# 100 ms ( )
-1 +loop
+;
+
+: autorun-from-gamekey ( -- )
+ false to quit?
+ default-selection set-current-sq
+ pause-to-interact
+ quit? if exit then
play-item
+ stop? if menu-interact exit then
+ quit? if exit then
+ 0 3 rc>sq set-current-sq \ quit-item
+ pause-to-interact
;
+
: gamekey-auto-menu ( -- )
['] run-menu behavior >r
['] autorun-from-gamekey to run-menu \ Run menu automatically after a timeout
More information about the openfirmware
mailing list