diff --git a/samples/zephyr/run-tests.go b/samples/zephyr/run-tests.go
index 9b57664..8124f9f 100644
--- a/samples/zephyr/run-tests.go
+++ b/samples/zephyr/run-tests.go
@@ -41,6 +41,8 @@
 // Output from this test run is written to the given log file.
 var logOut = flag.String("logout", "tests.log", "Log file to write to")
 
+var preBuilt = flag.String("prebuilt", "", "Name of file with prebuilt tests")
+
 func main() {
 	err := run()
 	if err != nil {
@@ -69,13 +71,20 @@
 		fmt.Fprintf(lg, "---- Running %q\n", group.Name)
 
 		for _, test := range group.Tests {
-			for _, cmd := range test.Commands {
-				fmt.Printf("    %s\n", cmd)
-				fmt.Fprintf(lg, "---- Run: %s\n", cmd)
-				err = runCommand(cmd, lg)
+			if *preBuilt == "" {
+				// No prebuilt, build the tests
+				// ourselves.
+				err = runCommands(test.Build, lg)
 				if err != nil {
 					return err
 				}
+			} else {
+				panic("TODO")
+			}
+
+			err = runCommands(test.Commands, lg)
+			if err != nil {
+				return err
 			}
 
 			err = expect(lg, lines, test.Expect)
@@ -91,6 +100,20 @@
 	return nil
 }
 
+// Run a set of commands
+func runCommands(cmds [][]string, lg io.Writer) error {
+	for _, cmd := range cmds {
+		fmt.Printf("    %s\n", cmd)
+		fmt.Fprintf(lg, "---- Run: %s\n", cmd)
+		err := runCommand(cmd, lg)
+		if err != nil {
+			return err
+		}
+	}
+
+	return nil
+}
+
 // Run a single command.
 func runCommand(cmd []string, lg io.Writer) error {
 	c := exec.Command(cmd[0], cmd[1:]...)
