diff --git a/repos/dde_rump/run/libc_vfs_ext2.run b/repos/dde_rump/run/libc_vfs_ext2.run index bf2a58a2d..b520c3f56 100644 --- a/repos/dde_rump/run/libc_vfs_ext2.run +++ b/repos/dde_rump/run/libc_vfs_ext2.run @@ -1,98 +1,16 @@ -if {[have_spec arm]} { - assert_spec arm_v7 -} +set mkfs_cmd [check_installed mke2fs] +set mkfs_opts "-F" -# -# Check used commands -# -set mke2fs [check_installed mke2fs] -set dd [check_installed dd] +set test_build_components "lib/vfs/rump" -# -# Build -# -set build_components { - core init - drivers/timer - server/ram_blk - lib/vfs/rump - test/libc_vfs -} +set test_vfs_config "" -build $build_components - -# -# Build EXT2-file-system image -# -catch { exec $dd if=/dev/zero of=bin/ext2.raw bs=1M count=16 } -catch { exec $mke2fs -F bin/ext2.raw } - -create_boot_directory - -# -# Generate config -# -append config { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} - -install_config $config - -# -# Boot modules -# - -# generic modules -set boot_modules { - core ld.lib.so init - libc.lib.so - libm.lib.so - ram_blk +set test_boot_modules { rump_fs.lib.so rump.lib.so - test-libc_vfs - timer vfs_rump.lib.so - ext2.raw } -build_boot_image $boot_modules +set use_vfs_server 0 -append qemu_args " -nographic" - -run_genode_until {.*child "test-libc_vfs" exited with exit value 0.*} 60 - -exec rm -f bin/ext2.raw +source ${genode_dir}/repos/libports/run/libc_vfs_filesystem_test.inc diff --git a/repos/dde_rump/run/libc_vfs_fs_ext2.run b/repos/dde_rump/run/libc_vfs_fs_ext2.run index 6c51bb7c6..0569bb1c6 100644 --- a/repos/dde_rump/run/libc_vfs_fs_ext2.run +++ b/repos/dde_rump/run/libc_vfs_fs_ext2.run @@ -1,107 +1,16 @@ -if {[have_spec arm]} { - assert_spec arm_v7 -} +set mkfs_cmd [check_installed mke2fs] +set mkfs_opts "-F" -# -# Check used commands -# -set mke2fs [check_installed mke2fs] -set dd [check_installed dd] +set test_build_components "lib/vfs/rump" -# -# Build -# -set build_components { - core init - drivers/timer - server/ram_blk - lib/vfs/rump - server/vfs - test/libc_vfs -} +set test_vfs_config "" -build $build_components - -# -# Build EXT2-file-system image -# -catch { exec $dd if=/dev/zero of=bin/ext2.raw bs=1M count=16 } -catch { exec $mke2fs -F bin/ext2.raw } - -create_boot_directory - -# -# Generate config -# -append config { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} - -install_config $config - -# -# Boot modules -# - -# generic modules -set boot_modules { - core ld.lib.so init - libc.lib.so - libm.lib.so - ram_blk +set test_boot_modules { rump_fs.lib.so rump.lib.so - test-libc_vfs - timer - vfs vfs_rump.lib.so - ext2.raw } -build_boot_image $boot_modules +set use_vfs_server 1 -append qemu_args " -nographic" - -run_genode_until {.*child "test-libc_vfs" exited with exit value 0.*} 60 - -exec rm -f bin/ext2.raw +source ${genode_dir}/repos/libports/run/libc_vfs_filesystem_test.inc diff --git a/repos/libports/run/libc_vfs_filesystem_test.inc b/repos/libports/run/libc_vfs_filesystem_test.inc new file mode 100644 index 000000000..79b838ba2 --- /dev/null +++ b/repos/libports/run/libc_vfs_filesystem_test.inc @@ -0,0 +1,202 @@ +# +# \brief Test for block-backed file-systems in the libc VFS +# \author Christian Prochaska +# \author Emery Hemingway +# \date 2017-07-31 +# + +# +# \arg mkfs_cmd +# \arg mkfs_opts +# \arg use_vfs_server +# \arg test_build_components +# \arg test_vfs_config +# \arg test_boot_modules +# + +if {[have_spec odroid_xu] || [have_spec zynq]} { + puts "Run script does not support this platform." + exit 0 +} + +# use SD on ARM +set use_sd_card_drv [expr [have_spec omap4] || [have_spec arndale] || [have_spec pl180]] + +# use AHCI on x86 +set use_ahci [expr [have_spec x86] && ![have_spec linux]] + +# use ram_blk on Linux +set use_ram_blk [have_spec linux] + +if {[catch { exec which $mkfs_cmd } ]} { + puts stderr "Error: $mkfs_cmd not installed, aborting test"; exit } + +if {[expr ![have_include "power_on/qemu"] && !$use_ram_blk]} { + puts "\nPlease setup your native sd or hard drive. Remove this fail stop"; + puts "check when you have prepared your native environment.\n"; + exit 0 +} + +# +# Build +# + +set build_components { test/libc_vfs } + +lappend build_components {*}$test_build_components + +lappend_if $use_sd_card_drv build_components drivers/sd_card + +source ${genode_dir}/repos/base/run/platform_drv.inc +append_platform_drv_build_components + +build $build_components + +create_boot_directory + +set depot_pkgs "genodelabs/src/[base_src] genodelabs/src/init" + +lappend_if $use_ahci depot_pkgs genodelabs/src/ahci_drv +lappend_if $use_ram_blk depot_pkgs genodelabs/src/ram_blk +lappend_if $use_vfs_server depot_pkgs genodelabs/src/vfs + +import_from_depot {*}$depot_pkgs + +# +# Generate config +# + +set config { + + + + + + + + + + + + + + + + + + + + + + + } +append_if [have_include "power_on/qemu"] config { + } +append config { + + + } +if {$use_vfs_server} { + append config "" +} else { + append config $test_vfs_config +} +append config { + + + } + +append_platform_drv_config + +append_if $use_ahci config { + + + + + + + + + + + } + +append_if $use_sd_card_drv config { + + + + +} + +append_if $use_ram_blk config { + + + + + } + +append_if $use_vfs_server config " + + + + + + } + $test_vfs_config + + + + " + +append config { + +} + +install_config $config + +# +# Boot modules +# + +# generic modules +append boot_modules { + libc.lib.so libm.lib.so posix.lib.so + test-libc_vfs +} + +lappend boot_modules {*}$test_boot_modules + +lappend_if $use_sd_card_drv boot_modules sd_card_drv +lappend_if $use_ram_blk boot_modules test.hda + +append_platform_drv_boot_modules + +build_boot_image $boot_modules + +puts "#### boot_modules: $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_cmd $mkfs_opts $disk_image" +puts "formating disk: $cmd" +catch { exec sh -c $cmd } + +# +# Qemu +# +append qemu_args " -nographic " +append_if $use_ahci qemu_args " -drive id=disk,file=$disk_image,format=raw,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -boot d" +append_if $use_sd_card_drv qemu_args " -drive file=$disk_image,format=raw,if=sd,cache=writeback " + +run_genode_until ".*child \"test-libc_vfs\" exited with exit value 0.*" 90 + +exec rm -f $disk_image + +# vi: set ft=tcl : diff --git a/tool/autopilot.list b/tool/autopilot.list index 2d7e94ab4..c34860156 100644 --- a/tool/autopilot.list +++ b/tool/autopilot.list @@ -11,7 +11,6 @@ libc_fatfs libc_getenv libc_pipe libc_vfs -libc_vfs_ext2 libc_vfs_fs libc_vfs_ram libc_vfs_block