genode/repos/os/run/fb_bench.run
2025-02-27 12:53:40 +01:00

90 lines
2.6 KiB
Plaintext

assert {[have_recipe pkg/[drivers_interactive_pkg]]} \
"Recipe for 'pkg/[drivers_interactive_pkg]' not available."
if {[have_cmd_switch --autopilot]} {
assert {![have_spec linux] && ![have_board virt_qemu_riscv]} \
"Autopilot mode is not supported on this platform."
}
create_boot_directory
import_from_depot [depot_user]/src/[base_src] \
[depot_user]/pkg/[drivers_interactive_pkg] \
[depot_user]/src/nitpicker \
[depot_user]/src/gui_fb \
[depot_user]/src/init
build { test/fb_bench }
install_config {
<config>
<parent-provides>
<service name="ROM"/>
<service name="IRQ"/>
<service name="IO_MEM"/>
<service name="IO_PORT"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<default caps="100"/>
<start name="timer" ram="1M">
<provides><service name="Timer"/></provides>
</start>
<start name="drivers" caps="1500" ram="120M" managing_system="yes">
<binary name="init"/>
<route>
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
<service name="Timer"> <child name="timer"/> </service>
<service name="Capture"> <child name="nitpicker"/> </service>
<service name="Event"> <child name="nitpicker"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="nitpicker" ram="4M">
<provides>
<service name="Gui"/> <service name="Capture"/> <service name="Event"/>
</provides>
<config focus="rom">
<capture/> <event/>
<domain name="default" layer="1" width="1024" height="768"/>
<default-policy domain="default"/>
</config>
<route> <any-service> <parent/> <any-child/> </any-service> </route>
</start>
<start name="gui_fb" ram="5M">
<provides> <service name="Framebuffer"/> <service name="Input"/> </provides>
<config/>
<route>
<service name="Gui"> <child name="nitpicker"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="test-fb_bench" ram="72M">
<!--
- We need this big amount of RAM because the VESA driver reports a
- large buffer on some hardware and the test mirrors this buffer in
- RAM.
-->
<config/>
</start>
</config>}
set fd [open [run_dir]/genode/focus w]
puts $fd "<focus label=\"gui_fb -> \" domain=\"default\"/>"
close $fd
build_boot_image [build_artifacts]
# disable QEMU graphic to enable testing on our machines without SDL and X
append qemu_args "-nographic "
run_genode_until {.*--- Framebuffer benchmark finished ---.*\n} 40