Files
genode-world/run/python3.run
Johannes Schlatow a67a5de5ef python3 package for sculpt
Provides recipes for deploying python3 on sculpt.
Also adds the feature of triggering the execution of python scripts
on ROM updates (see python3.run).
2018-07-03 15:23:09 +02:00

150 lines
3.2 KiB
Tcl

#
# \brief Test for running python
# \author Norman Feske
# \author Johannes Schlatow
# \date 2011-11-22
#
if {![have_spec x86]} {
puts "Run script is only supported on x86"; exit 0 }
proc depot_user {} { return [get_cmd_arg --depot-user local] }
create_boot_directory
import_from_depot [depot_user]/pkg/python3
#
# Build
#
build {
core init
drivers/timer
drivers/rtc
server/dynamic_rom
}
#
# Generate config
#
set config {
<config verbose="yes">
<parent-provides>
<service name="ROM"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
<service name="IO_PORT"/>
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<default caps="100"/>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer" /></provides>
</start>
<start name="rtc_drv">
<resource name="RAM" quantum="1M"/>
<provides> <service name="Rtc"/> </provides>
</start>
<start name="dynamic_rom">
<resource name="RAM" quantum="1M"/>
<provides> <service name="ROM" /> </provides>
<config>
<rom name="hello.py">
<inline>
print(" \r\n\r");
print(" -============================-");
print(" || ||");
print(" || Python Core 3 ||");
print(" || ||");
print(" || Genode 18.05 ||");
print(" || ||");
print(" -============================-");
print(" \r");
print(" 2018 by Genode Labs www.genode-labs.com");
print(" \r\n\r");
</inline>
<sleep milliseconds="4000" />
<inline>
print("Hello again")
</inline>
<sleep milliseconds="4000" />
</rom>
</config>
</start>
<start name="python3" caps="200">
<resource name="RAM" quantum="16M"/>
<route>
<service name="ROM" label="hello.py"> <child name="dynamic_rom" /> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
<config>
<pythonpath name="/python/Lib/:" />
<file name="hello.py" on-rom-update="hello.py" />
<vfs>
<dir name="dev">
<log/>
<jitterentropy name="urandom" />
<jitterentropy name="random" />
<rtc/>
<zero/>
</dir>
<dir name="python">
<tar name="python3.tar" />
</dir>
<rom name="hello.py" />
</vfs>
<libc stdin="/dev/zero" stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/>
</config>
</start>
</config>
}
install_config $config
#
# Boot modules
#
# generic modules
append boot_modules {
core init
ld.lib.so
timer
rtc_drv
dynamic_rom
}
build_boot_image $boot_modules
#
# Execute test case
#
append qemu_args " -nographic "
run_genode_until {.*Hello again.*} 60
grep_output {python3\] }
compare_output_to {
[init -> python3]
[init -> python3] -============================-
[init -> python3] || ||
[init -> python3] || Python Core 3 ||
[init -> python3] || ||
[init -> python3] || Genode 18.05 ||
[init -> python3] || ||
[init -> python3] -============================-
[init -> python3]
[init -> python3] 2018 by Genode Labs www.genode-labs.com
[init -> python3]
}
# vi: set ft=tcl :