Index: launch.scm
==================================================================
--- launch.scm
+++ launch.scm
@@ -106,17 +106,27 @@
 			     (let ((var (car varval))
 				   (val (cadr varval)))
 			       (debug:print 1 "Adding pre-var/val " var " = " val " to the environment")
 			       (setenv var val)))))
 		     varpairs)))
-	  (setenv "MT_TEST_RUN_DIR" work-area)
-	  (setenv "MT_TEST_NAME" test-name)
-	  (setenv "MT_ITEM_INFO" (conc itemdat))
-	  (setenv "MT_RUNNAME"   runname)
-	  (setenv "MT_MEGATEST"  megatest)
-	  (setenv "MT_TARGET"    target)
-	  (setenv "MT_LINKTREE"  (configf:lookup *configdat* "setup" "linktree"))
+	  (for-each
+	   (lambda (varval)
+	     (let ((var (car varval))
+		   (val (cadr varval)))
+	       (if val
+		   (setenv var val)
+		   (begin
+		     (debug:print 0 "ERROR: required variable " var " does not have a valid value. Exiting")
+		     (exit)))))
+	     (list 
+	      (list  "MT_TEST_RUN_DIR" work-area)
+	      (list  "MT_TEST_NAME" test-name)
+	      (list  "MT_ITEM_INFO" (conc itemdat))
+	      (list  "MT_RUNNAME"   runname)
+	      (list  "MT_MEGATEST"  megatest)
+	      (list  "MT_TARGET"    target)
+	      (list  "MT_LINKTREE"  (configf:lookup *configdat* "setup" "linktree"))))
 	  (if mt-bindir-path (setenv "PATH" (conc (getenv "PATH") ":" mt-bindir-path)))
 	  ;; (change-directory top-path)
 	  (if (not (setup-for-run))
 	      (begin
 		(debug:print 0 "Failed to setup, exiting") 

Index: runs.scm
==================================================================
--- runs.scm
+++ runs.scm
@@ -691,13 +691,15 @@
      ;;
      (else
       (debug:print 4 "FAILS: " fails)
       ;; If one or more of the prereqs-not-met are FAIL then we can issue
       ;; a message and drop hed from the items to be processed.
-
+      ;; (runs:mixed-list-testname-and-testrec->list-of-strings prereqs-not-met)
       (if (not (null? prereqs-not-met))
-	  (debug:print-info 1 "waiting on tests; " (string-intersperse prereqs-not-met ", ")))
+	  (debug:print-info 1 "waiting on tests; " (string-intersperse 
+						    (runs:mixed-list-testname-and-testrec->list-of-strings 
+						     prereqs-not-met) ", ")))
       
       (if (null? fails)
 	  (begin
 	    ;; couldn't run, take a breather
 	    (debug:print-info 0 "Waiting for more work to do...")

ADDED   tests/speedtest/megatest.config
Index: tests/speedtest/megatest.config
==================================================================
--- /dev/null
+++ tests/speedtest/megatest.config
@@ -0,0 +1,48 @@
+[fields]
+sysname TEXT
+fsname TEXT
+datapath TEXT
+
+[setup]
+transport #{scheme (if (getenv "USEHTTP") "http" "fs")}
+
+max_concurrent_jobs 50
+
+# It is possible (but not recommended) to override the rsync command used
+# to populate the test directories. For test development the following 
+# example can be useful
+#
+testcopycmd cp --remove-destination -rsv TEST_SRC_PATH/. TEST_TARG_PATH/. >> TEST_TARG_PATH/mt_launch.log 2>> TEST_TARG_PATH/mt_launch.log
+
+# FULL or 2, NORMAL or 1, OFF or 0
+synchronous OFF
+
+# override the logview command
+#
+logviewer (%MTCMD%) 2> /dev/null > /dev/null
+
+# override the html viewer launch command
+#
+# htmlviewercmd firefox -new-window 
+htmlviewercmd konqueror
+
+[jobtools]
+launcher nbfake
+
+[server]
+
+# If the server can't be started on this port it will try the next port until
+# it succeeds
+port 8080
+
+# This server will keep running this number of hours after last access. 
+# Three minutes is 0.05 hours
+timeout 0.025
+
+## disks are:
+## name host:/path/to/area
+## -or-
+## name /path/to/area
+[disks]
+disk0 #{getenv MT_RUN_AREA_HOME}/tmp_run
+

ADDED   tests/speedtest/runconfigs.config
Index: tests/speedtest/runconfigs.config
==================================================================
--- /dev/null
+++ tests/speedtest/runconfigs.config
@@ -0,0 +1,3 @@
+[default]
+SOMEVAR This should show up in SOMEVAR3
+

ADDED   tests/speedtest/tests/speedtest/main.sh
Index: tests/speedtest/tests/speedtest/main.sh
==================================================================
--- /dev/null
+++ tests/speedtest/tests/speedtest/main.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# a bunch of steps in 2 second increments
+for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17;do
+  $MT_MEGATEST -step step$i :state start :status running -setlog results$i.html
+  sleep $TEST_DELAY
+  $MT_MEGATEST -step step$i :state end :status 0
+done
+
+exit 0

ADDED   tests/speedtest/tests/speedtest/testconfig
Index: tests/speedtest/tests/speedtest/testconfig
==================================================================
--- /dev/null
+++ tests/speedtest/tests/speedtest/testconfig
@@ -0,0 +1,18 @@
+[setup]
+runscript main.sh
+
+[requirements]
+priority 1
+
+[items]
+SETLOG 0 1
+TEST_DELAY 0 1 2 3 4 5 6 7 8 9 10
+ITERATIONS 0 1 2 3 4 5 6 7 8 9 10
+
+[test_meta]
+author matt
+owner  bob
+description This test checks that a multi-lineitem test with mix of pass and non-fail rolls up a PASS
+
+tags first,single
+reviewed 09/10/2011, by Matt