diff --git a/repos/os/run/demo.run b/repos/os/run/demo.run
index 4db7f10113..59a1d3a65b 100644
--- a/repos/os/run/demo.run
+++ b/repos/os/run/demo.run
@@ -2,7 +2,10 @@
# Build
#
-if {[have_spec odroid_xu]} {
+if {[have_spec odroid_xu] ||
+ [have_spec wand_quad] ||
+ ([get_cmd_switch --autopilot] && [have_spec linux]) ||
+ ([get_cmd_switch --autopilot] && [have_include "power_on/qemu"])} {
puts "Run script does not support this platform."
exit 0
}
@@ -66,13 +69,19 @@ append_if [have_spec sdl] config {
append_platform_drv_config
append_if [have_spec framebuffer] config {
-
+
+ }
+append_if [expr [have_spec framebuffer] && [have_spec x86]] config {
-
+
+ }
+append_if [expr [have_spec framebuffer] && ![have_spec x86]] config {
+
+
}
append_if [have_spec gpio] config "
-
+
@@ -87,7 +96,7 @@ append_if [have_spec imx53] config {
append_if [have_spec ps2] config {
-
+
}
@@ -118,7 +127,7 @@ append config {
-
+
@@ -176,7 +185,7 @@ append config {
-
+
@@ -197,8 +206,8 @@ append config {
-
-
+
+
@@ -213,7 +222,7 @@ append config {
-
+
@@ -228,7 +237,7 @@ append config {
-
+
@@ -293,4 +302,20 @@ append_platform_drv_boot_modules
build_boot_image $boot_modules
-run_genode_until forever
+if {[get_cmd_switch --autopilot]} {
+ run_genode_until {\[init -> scout\] png is.*\n} 40
+
+ grep_output {(requests resources: ram_quota)|(Error)}
+
+ # remove Error messages which are not fatal, mostly
+ unify_output {(?n)^.*platform_drv] Error:.*ACPI table information is wrong.*$} ""
+ unify_output {(?n)^.*platform_drv] Error: adjust size from.*$} ""
+ unify_output {(?n)^.*acpi_drv] Error:.*platform_info.*$} ""
+ unify_output {(?n)^.*ps2_drv] Error: no data available.*$} ""
+ unify_output {(?n)^.*ps2_drv] Error: failed to read from port.*$} ""
+
+ compare_output_to {}
+
+} else {
+ run_genode_until forever
+}
diff --git a/tool/autopilot.list b/tool/autopilot.list
index f188cac2b5..ee7b72b2d6 100644
--- a/tool/autopilot.list
+++ b/tool/autopilot.list
@@ -109,3 +109,4 @@ ada
fs_report
log_core
utf8
+demo