Emery Hemingway
ca042e4e6e
The ram plugin to the VFS must send notifications to watch handles on files when they are removed. This brings the VFS server to parity with the ram_fs server for the sake of notifications. Move run/fs_report to gems and use the vfs server and the vfs init plugin in the test. Ref #2902
101 lines
2.4 KiB
Plaintext
101 lines
2.4 KiB
Plaintext
#
|
|
# Build
|
|
#
|
|
set build_components {
|
|
core init drivers/timer
|
|
lib/vfs/import
|
|
server/fs_report
|
|
server/fs_rom
|
|
server/vfs
|
|
test/fs_report
|
|
}
|
|
|
|
build $build_components
|
|
|
|
create_boot_directory
|
|
|
|
#
|
|
# Generate config
|
|
#
|
|
append config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="IRQ"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
<service name="PD"/>
|
|
<service name="ROM"/>
|
|
</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="vfs">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="File_system"/> </provides>
|
|
<config>
|
|
<vfs>
|
|
<ram/>
|
|
<import>
|
|
<dir name="test-fs_report">
|
|
<inline name="devices">
|
|
<devices version="initial"/>
|
|
</inline>
|
|
</dir>
|
|
</import>
|
|
</vfs>
|
|
<policy label_prefix="fs_report -> " root="/" writeable="yes"/>
|
|
<policy label_prefix="fs_rom -> " root="/test-fs_report"/>
|
|
<policy label_prefix="test-fs_report -> " root="/test-fs_report" writeable="yes"/>
|
|
</config>
|
|
</start>
|
|
<!--
|
|
All reports sent by 'test-fs_report' are prefixed with the label of the
|
|
component. Hence, they are written to the 'test-fs_report/' subdirectory.
|
|
-->
|
|
<start name="fs_report">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="Report"/> </provides>
|
|
<config> <vfs> <fs/> </vfs> </config>
|
|
</start>
|
|
<start name="fs_rom">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="ROM"/> </provides>
|
|
<config/>
|
|
</start>
|
|
<start name="test-fs_report">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<config> <vfs> <fs/> </vfs> </config>
|
|
<route>
|
|
<service name="ROM" label="devices"> <child name="fs_rom"/> </service>
|
|
<service name="ROM" label="focus"> <child name="fs_rom"/> </service>
|
|
<service name="Report" label="devices"> <child name="fs_report"/> </service>
|
|
<service name="Report" label="focus"> <child name="fs_report"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</route>
|
|
</start>
|
|
</config>}
|
|
|
|
install_config $config
|
|
|
|
#
|
|
# Boot modules
|
|
#
|
|
set boot_modules {
|
|
core ld.lib.so init timer
|
|
fs_report fs_rom test-fs_report
|
|
vfs vfs.lib.so vfs_import.lib.so
|
|
}
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
append qemu_args " -nographic"
|
|
|
|
run_genode_until {child "test-fs_report" exited with exit value 0.*\n} 30
|