diff --git a/tests/boot-ram.dhall b/tests/boot-ram.dhall new file mode 100644 index 0000000..03422a1 --- /dev/null +++ b/tests/boot-ram.dhall @@ -0,0 +1,9 @@ +-- SPDX-License-Identifier: CC0-1.0 + +let Genode = env:DHALL_GENODE + +let sumRam = + λ(boot : Genode.Boot.Type) + → let sum = Genode.Init.sumResources boot.config in sum.ram + +in sumRam diff --git a/tests/driver-hw.nix b/tests/driver-hw.nix index de62698..588fd78 100644 --- a/tests/driver-hw.nix +++ b/tests/driver-hw.nix @@ -37,7 +37,7 @@ let defaultScript = ''run_genode_until {child "init" exited with exit value 0} 60''; mkTest = { name ? "unamed", testScript ? defaultScript, testConfig, testInputs ? [ ] - , env ? { }, qemuMem ? 32, ... # TODO: remove ... + , env ? { }, ... # TODO: remove ... }@t: let manifest = lib.mergeManifests (with testPkgs; @@ -89,10 +89,11 @@ let return } + global env global spawn_id spawn ${hostPkgs.qemu_test}/bin/qemu-system-x86_64 \ -machine q35 -serial mon:stdio -nographic \ - -m size=${toString qemuMem} \ + -m size=[expr ($env(TEST_RAM) / 1048576) + 16] \ -kernel "${testPkgs.bender}" \ -initrd "${image}" wait_for_output $wait_for_re $timeout_value $spawn_id @@ -109,14 +110,18 @@ let inherit baseSetup testConfig testScript; preferLocalBuild = true; testName = name; + DHALL_GENODE = "${testPkgs.dhallGenode}/package.dhall"; + MANIFEST = manifest; } '' mkdir -p $out/bin echo "$testScript" > $out/test-script echo "$baseSetup" > $out/base-setup + eval $(${apps.dhall-to-bash.program} --declare "TEST_RAM" <<< "${./boot-ram.dhall} ${testConfig}") ln -s ${testDriver}/bin/genode-test-driver $out/bin/ wrapProgram $out/bin/genode-test-driver \ - --run "export testScript=\"\$(cat $out/test-script)\"" \ - --run "export baseSetup=\"\$(cat $out/base-setup)\"" \ + --set testScript "$testScript" \ + --set baseSetup "$baseSetup" \ + --set TEST_RAM $TEST_RAM \ ''; passMeta = drv: diff --git a/tests/driver-nova.nix b/tests/driver-nova.nix index 3edb93f..d31118d 100644 --- a/tests/driver-nova.nix +++ b/tests/driver-nova.nix @@ -37,7 +37,7 @@ let defaultScript = ''run_genode_until {child "init" exited with exit value 0} 60''; mkTest = { name ? "unamed", testScript ? defaultScript, testConfig, testInputs ? [ ] - , env ? { }, qemuMem ? 32, ... # TODO: remove ... + , env ? { }, ... # TODO: remove ... }@t: let manifest = lib.mergeManifests (with testPkgs; @@ -89,10 +89,11 @@ let return } + global env global spawn_id spawn ${hostPkgs.qemu_test}/bin/qemu-system-x86_64 \ -machine q35 -serial mon:stdio -nographic \ - -m size=${toString qemuMem} \ + -m size=[expr ($env(TEST_RAM) / 1048576) + 16] \ -kernel "${testPkgs.bender}" \ -initrd "${testPkgs.NOVA}/hypervisor-x86_64 arg=iommu novpid serial,${image}" wait_for_output $wait_for_re $timeout_value $spawn_id @@ -109,14 +110,18 @@ let inherit baseSetup testConfig testScript; preferLocalBuild = true; testName = name; + DHALL_GENODE = "${testPkgs.dhallGenode}/package.dhall"; + MANIFEST = manifest; } '' mkdir -p $out/bin echo "$testScript" > $out/test-script echo "$baseSetup" > $out/base-setup + eval $(${apps.dhall-to-bash.program} --declare "TEST_RAM" <<< "${./boot-ram.dhall} ${testConfig}") ln -s ${testDriver}/bin/genode-test-driver $out/bin/ wrapProgram $out/bin/genode-test-driver \ - --run "export testScript=\"\$(cat $out/test-script)\"" \ - --run "export baseSetup=\"\$(cat $out/base-setup)\"" \ + --set testScript "$testScript" \ + --set baseSetup "$baseSetup" \ + --set TEST_RAM $TEST_RAM \ ''; passMeta = drv: diff --git a/tests/noux.nix b/tests/noux.nix index 6fc3ff3..d683cca 100644 --- a/tests/noux.nix +++ b/tests/noux.nix @@ -13,6 +13,5 @@ testEnv.mkTest rec { noux posix ]; - qemuMem = 64; meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ehmry ]; } diff --git a/tests/solo5/default.nix b/tests/solo5/default.nix index 67f5745..7263181 100644 --- a/tests/solo5/default.nix +++ b/tests/solo5/default.nix @@ -53,7 +53,6 @@ let testScript = '' run_genode_until {child "init" exited with exit value 0} 30 ''; - qemuMem = 64; } { @@ -62,7 +61,6 @@ let testScript = '' run_genode_until {child "init" exited with exit value 0} 30 ''; - qemuMem = 64; } {