a9fc5304c0
The pattern "Test succeeded" is relied on by the automated testing framework. We need to use it consistently to avoid false negatives.
165 lines
3.6 KiB
Tcl
165 lines
3.6 KiB
Tcl
#
|
|
# \brief Test for using the libc_vfs plugin with the FFAT file system
|
|
# \author Christian Prochaska
|
|
# \date 2012-07-03
|
|
#
|
|
|
|
set use_sd_card_drv [expr [have_spec omap4] || [have_spec exynos5] || [have_spec pl180]]
|
|
set use_atapi_drv [have_spec x86]
|
|
|
|
if {[catch { exec which mkfs.vfat } ]} {
|
|
puts stderr "Error: mkfs.vfat not installed, aborting test"; exit }
|
|
|
|
if {[have_spec linux]} {
|
|
puts "Run script does not support this platform"; exit }
|
|
|
|
#
|
|
# Build
|
|
#
|
|
|
|
set build_components {
|
|
core init
|
|
drivers/timer
|
|
server/ffat_fs
|
|
test/libc_vfs
|
|
}
|
|
|
|
lappend_if [have_spec pci] build_components drivers/pci
|
|
lappend_if [have_spec acpi] build_components drivers/acpi
|
|
lappend_if $use_atapi_drv build_components drivers/atapi
|
|
lappend_if $use_sd_card_drv build_components drivers/sd_card
|
|
|
|
build $build_components
|
|
create_boot_directory
|
|
|
|
#
|
|
# Generate config
|
|
#
|
|
|
|
set config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="RAM"/>
|
|
<service name="CAP"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="PD"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="LOG"/>
|
|
<service name="SIGNAL"/>
|
|
</parent-provides>
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Timer"/> </provides>
|
|
</start>
|
|
<start name="ffat_fs">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="File_system"/> </provides>
|
|
<config> <policy label="" root="/" writeable="yes" /> </config>
|
|
</start>
|
|
<start name="test-libc_vfs">
|
|
<resource name="RAM" quantum="2M"/>
|
|
<config>
|
|
<libc stdout="/dev/log">
|
|
<vfs>
|
|
<dir name="dev"> <log/> </dir>
|
|
<fs/>
|
|
</vfs>
|
|
</libc>
|
|
</config>
|
|
</start>
|
|
}
|
|
|
|
append_if [have_spec acpi] config {
|
|
<start name="acpi">
|
|
<resource name="RAM" quantum="8M"/>
|
|
<binary name="acpi_drv"/>
|
|
<provides>
|
|
<service name="PCI"/>
|
|
<service name="IRQ" />
|
|
</provides>
|
|
<route>
|
|
<service name="PCI"> <any-child /> </service>
|
|
<any-service> <parent/> <any-child /> </any-service>
|
|
</route>
|
|
</start>}
|
|
|
|
append_if [expr ![have_spec acpi] && [have_spec pci]] config {
|
|
<start name="pci_drv">
|
|
<resource name="RAM" quantum="5M"/>
|
|
<provides><service name="PCI"/></provides>
|
|
</start>}
|
|
|
|
append_if $use_atapi_drv config {
|
|
<start name="atapi_drv">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Block"/> </provides>
|
|
<config ata="yes" />
|
|
</start>
|
|
}
|
|
|
|
append_if $use_sd_card_drv config {
|
|
<start name="sd_card_drv">
|
|
<resource name="RAM" quantum="1M" />
|
|
<provides><service name="Block"/></provides>
|
|
</start>
|
|
}
|
|
|
|
append config {
|
|
</config>
|
|
}
|
|
|
|
install_config $config
|
|
|
|
#
|
|
# Boot modules
|
|
#
|
|
|
|
# generic modules
|
|
set boot_modules {
|
|
core init timer ffat_fs
|
|
ld.lib.so libc.lib.so
|
|
test-libc_vfs
|
|
}
|
|
|
|
lappend_if [have_spec pci] boot_modules pci_drv
|
|
lappend_if [have_spec acpi] boot_modules acpi_drv
|
|
lappend_if $use_atapi_drv boot_modules atapi_drv
|
|
lappend_if $use_sd_card_drv boot_modules sd_card_drv
|
|
|
|
build_boot_image $boot_modules
|
|
|
|
#
|
|
# Execute test case
|
|
#
|
|
|
|
set disk_image "bin/test.hda"
|
|
set cmd "dd if=/dev/zero of=$disk_image bs=1024 count=65536"
|
|
puts "creating disk image: $cmd"
|
|
catch { exec sh -c $cmd }
|
|
|
|
set cmd "mkfs.vfat -F32 $disk_image"
|
|
puts "formating disk image with vfat file system: $cmd"
|
|
catch { exec sh -c $cmd }
|
|
|
|
#
|
|
# Qemu
|
|
#
|
|
append qemu_args " -m 128 -nographic "
|
|
append_if $use_atapi_drv qemu_args " -hda $disk_image -boot order=d "
|
|
append_if $use_sd_card_drv qemu_args " -drive file=$disk_image,if=sd,cache=writeback "
|
|
|
|
run_genode_until {.*child exited with exit value 0.*} 60
|
|
|
|
exec rm -f $disk_image
|
|
|
|
puts "\nTest succeeded\n"
|
|
|
|
# vi: set ft=tcl :
|