fixup! tests: consolidate rtc, signal, pci into x86 test
This commit is contained in:
parent
ae135e118d
commit
1400dded7e
|
@ -251,10 +251,13 @@ in genodeSources // {
|
||||||
inherit buildUpstream buildDepot ports specs toolchain genodeBase;
|
inherit buildUpstream buildDepot ports specs toolchain genodeBase;
|
||||||
|
|
||||||
make = target:
|
make = target:
|
||||||
buildUpstream {
|
let
|
||||||
name = builtins.replaceStrings [ "/" ] [ "-" ] target;
|
name = builtins.replaceStrings [ "/" ] [ "-" ] target;
|
||||||
|
attrs = buildOverrides.${name} or { };
|
||||||
|
in buildUpstream ({
|
||||||
|
inherit name;
|
||||||
targets = [ target ];
|
targets = [ target ];
|
||||||
};
|
} // attrs);
|
||||||
|
|
||||||
depot = name:
|
depot = name:
|
||||||
let attrs = buildOverrides.${name} or { };
|
let attrs = buildOverrides.${name} or { };
|
||||||
|
|
|
@ -23,6 +23,13 @@ with ports; {
|
||||||
buildInputs = with buildPackages; [ zlib ];
|
buildInputs = with buildPackages; [ zlib ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# The following are tests that never exit
|
||||||
|
# and have no conventions on log output.
|
||||||
|
|
||||||
|
"test-pci".patches = [ ./test-pci.patch ];
|
||||||
|
|
||||||
|
"test-signal".patches = [ ./test-signal.patch ];
|
||||||
|
|
||||||
usb_drv.portInputs = [ dde_linux ];
|
usb_drv.portInputs = [ dde_linux ];
|
||||||
|
|
||||||
vbox5 = {
|
vbox5 = {
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
diff --git a/repos/os/src/test/pci/test.cc b/repos/os/src/test/pci/test.cc
|
||||||
|
index c6d9e2012b..050de6136c 100644
|
||||||
|
--- a/repos/os/src/test/pci/test.cc
|
||||||
|
+++ b/repos/os/src/test/pci/test.cc
|
||||||
|
@@ -92,4 +92,5 @@ void Component::construct(Genode::Env &env)
|
||||||
|
pci.release_device(prev_device_cap);
|
||||||
|
|
||||||
|
log("--- Platform test finished ---");
|
||||||
|
+ env.parent().exit(0);
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff --git a/repos/os/src/test/signal/main.cc b/repos/os/src/test/signal/main.cc
|
||||||
|
index 4e16765ada..88769a2399 100644
|
||||||
|
--- a/repos/os/src/test/signal/main.cc
|
||||||
|
+++ b/repos/os/src/test/signal/main.cc
|
||||||
|
@@ -693,6 +693,7 @@ struct Main
|
||||||
|
{
|
||||||
|
test_8.destruct();
|
||||||
|
log("--- Signalling test finished ---");
|
||||||
|
+ env.parent().exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
Main(Env &env) : env(env)
|
|
@ -1,11 +1,6 @@
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
let
|
let tests = call: { log = call ./log.nix { }; };
|
||||||
tests = call:
|
|
||||||
{
|
|
||||||
log = call ./log.nix { };
|
|
||||||
signal = call ./signal.nix { };
|
|
||||||
} // call ./solo5 { };
|
|
||||||
|
|
||||||
in { apps, buildPackages, depot, genodepkgs, lib, nixpkgs }:
|
in { apps, buildPackages, depot, genodepkgs, lib, nixpkgs }:
|
||||||
|
|
||||||
|
@ -32,18 +27,16 @@ let
|
||||||
((tests call) // {
|
((tests call) // {
|
||||||
driver_manager = call ./driver_manager.nix { };
|
driver_manager = call ./driver_manager.nix { };
|
||||||
noux = call ./noux.nix { };
|
noux = call ./noux.nix { };
|
||||||
pci = call ./pci.nix { };
|
x86 = call ./x86.nix { };
|
||||||
rtc = call ./rtc.nix { };
|
} // call ./solo5 { })) (import ./driver-nova.nix {
|
||||||
})) (import ./driver-nova.nix {
|
|
||||||
inherit apps addManifest buildPackages depot lib nixpkgs testPkgs;
|
inherit apps addManifest buildPackages depot lib nixpkgs testPkgs;
|
||||||
}).callTest;
|
}).callTest;
|
||||||
|
|
||||||
hw = (call:
|
hw = (call:
|
||||||
((tests call) // {
|
((tests call) // {
|
||||||
# noux = call ./noux.nix { };
|
# noux = call ./noux.nix { };
|
||||||
pci = call ./pci.nix { };
|
x86 = call ./x86.nix { };
|
||||||
rtc = call ./rtc.nix { };
|
} // call ./solo5 { })) (import ./driver-hw.nix {
|
||||||
})) (import ./driver-hw.nix {
|
|
||||||
inherit apps addManifest buildPackages depot lib nixpkgs testPkgs;
|
inherit apps addManifest buildPackages depot lib nixpkgs testPkgs;
|
||||||
}).callTest;
|
}).callTest;
|
||||||
|
|
||||||
|
|
|
@ -35,13 +35,14 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultScript =
|
defaultScript =
|
||||||
''run_genode_until {[init] child "harness" exited with exit value 0} 60'';
|
''run_genode_until {child "init" exited with exit value 0} 120'';
|
||||||
|
|
||||||
mkTest = { name ? "unamed", testScript ? defaultScript, testConfig
|
mkTest = { name ? "unamed", testScript ? defaultScript, testConfig
|
||||||
, testInputs ? [ ], testEnv ? { }, qemuArgs ? [ ], sotest ? false, ... }@t:
|
, testInputs ? [ ], testEnv ? { }, qemuArgs ? [ ], sotest ? false, ... }@t:
|
||||||
let
|
let
|
||||||
manifest = lib.mergeManifests (map addManifest
|
manifest = lib.mergeManifests (map addManifest (with testPkgs;
|
||||||
(with testPkgs; [ base-hw-pc init sotest-producer ] ++ testInputs));
|
[ base-hw-pc sotest-producer ]
|
||||||
|
++ map genodeSources.depot [ "init" "rtc_drv" ] ++ testInputs));
|
||||||
testConfig' = "${./test-wrapper.dhall} ${testConfig} (toMap ${manifest})";
|
testConfig' = "${./test-wrapper.dhall} ${testConfig} (toMap ${manifest})";
|
||||||
testEnv' = {
|
testEnv' = {
|
||||||
DHALL_GENODE = "${testPkgs.dhallGenode}/source.dhall";
|
DHALL_GENODE = "${testPkgs.dhallGenode}/source.dhall";
|
||||||
|
|
|
@ -35,13 +35,14 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultScript =
|
defaultScript =
|
||||||
''run_genode_until {[init] child "harness" exited with exit value 0} 60'';
|
''run_genode_until {child "init" exited with exit value 0} 120'';
|
||||||
|
|
||||||
mkTest = { name ? "unamed", testScript ? defaultScript, testConfig
|
mkTest = { name ? "unamed", testScript ? defaultScript, testConfig
|
||||||
, testInputs ? [ ], testEnv ? { }, qemuArgs ? [ ], sotest ? false, ... }@t:
|
, testInputs ? [ ], testEnv ? { }, qemuArgs ? [ ], sotest ? false, ... }@t:
|
||||||
let
|
let
|
||||||
manifest = lib.mergeManifests (map addManifest (with testPkgs;
|
manifest = lib.mergeManifests (map addManifest (with testPkgs;
|
||||||
[ base-nova (genodeSources.make "init") sotest-producer ]
|
[ base-nova sotest-producer ]
|
||||||
|
++ map genodeSources.depot [ "init" "rtc_drv" ]
|
||||||
++ testInputs));
|
++ testInputs));
|
||||||
testConfig' = "${./test-wrapper.dhall} ${testConfig} (toMap ${manifest})";
|
testConfig' = "${./test-wrapper.dhall} ${testConfig} (toMap ${manifest})";
|
||||||
testEnv' = {
|
testEnv' = {
|
||||||
|
@ -93,7 +94,8 @@ let
|
||||||
global spawn_id
|
global spawn_id
|
||||||
set TEST_MIB [expr (([file size ${image}] + $env(TEST_RAM)) >> 20) + 24]
|
set TEST_MIB [expr (([file size ${image}] + $env(TEST_RAM)) >> 20) + 24]
|
||||||
spawn ${buildPackages.qemu_test}/bin/qemu-system-x86_64 \
|
spawn ${buildPackages.qemu_test}/bin/qemu-system-x86_64 \
|
||||||
-machine q35 -serial mon:stdio -nographic \
|
-machine q35 -cpu phenom -smp 2 \
|
||||||
|
-serial mon:stdio -nographic \
|
||||||
-m size=$TEST_MIB \
|
-m size=$TEST_MIB \
|
||||||
-kernel "${testPkgs.bender}" \
|
-kernel "${testPkgs.bender}" \
|
||||||
-initrd "${testPkgs.NOVA}/hypervisor-x86_64 arg=iommu novpid serial,${image}" \
|
-initrd "${testPkgs.NOVA}/hypervisor-x86_64 arg=iommu novpid serial,${image}" \
|
||||||
|
|
|
@ -19,7 +19,6 @@ testEnv.mkTest {
|
||||||
"ps2_drv"
|
"ps2_drv"
|
||||||
"report_rom"
|
"report_rom"
|
||||||
"rom_reporter"
|
"rom_reporter"
|
||||||
"rtc_drv"
|
|
||||||
"usb_drv"
|
"usb_drv"
|
||||||
"vesa_drv"
|
"vesa_drv"
|
||||||
]) ++ (map pkgs.genodeSources.make [ "test/driver_manager" ]);
|
]) ++ (map pkgs.genodeSources.make [ "test/driver_manager" ]);
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
|
||||||
|
|
||||||
{ testEnv, pkgs, ... }:
|
|
||||||
with pkgs;
|
|
||||||
|
|
||||||
testEnv.mkTest {
|
|
||||||
name = "pci";
|
|
||||||
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ehmry ];
|
|
||||||
|
|
||||||
testConfig = ./pci.dhall;
|
|
||||||
testInputs =
|
|
||||||
(map pkgs.genodeSources.depot [ "acpi_drv" "platform_drv" "report_rom" ])
|
|
||||||
++ (map pkgs.genodeSources.make [ "test/pci" ]);
|
|
||||||
testScript = ''
|
|
||||||
run_genode_until ".*--- Platform test finished ---.*\n" 60
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
-- SPDX-License-Identifier: CC0-1.0
|
|
||||||
|
|
||||||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
|
||||||
|
|
||||||
let Genode = Test.Genode
|
|
||||||
|
|
||||||
let Child = Genode.Init.Child
|
|
||||||
|
|
||||||
let init =
|
|
||||||
Genode.Init::{
|
|
||||||
, children = toMap
|
|
||||||
{ test-rtc =
|
|
||||||
Child.flat
|
|
||||||
Child.Attributes::{
|
|
||||||
, binary = "test-rtc"
|
|
||||||
, exitPropagate = True
|
|
||||||
, routes =
|
|
||||||
[ Genode.Init.ServiceRoute.parent "Timer"
|
|
||||||
, Genode.Init.ServiceRoute.child "Rtc" "rtc_drv"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
, rtc_drv =
|
|
||||||
Child.flat
|
|
||||||
Child.Attributes::{
|
|
||||||
, binary = "rtc_drv"
|
|
||||||
, provides = [ "Rtc" ]
|
|
||||||
, routes = [ Genode.Init.ServiceRoute.parent "IO_PORT" ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
in Test::{ children = Test.initToChildren init }
|
|
|
@ -1,13 +0,0 @@
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
|
||||||
|
|
||||||
{ testEnv, pkgs, ... }:
|
|
||||||
with pkgs;
|
|
||||||
|
|
||||||
testEnv.mkTest {
|
|
||||||
name = "rtc";
|
|
||||||
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ehmry ];
|
|
||||||
|
|
||||||
testConfig = ./rtc.dhall;
|
|
||||||
testInputs = map pkgs.genodeSources.depot [ "rtc_drv" "test-rtc" ];
|
|
||||||
testScript = "run_genode_until {--- RTC test finished ---} 40";
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
-- SPDX-License-Identifier: CC0-1.0
|
|
||||||
|
|
||||||
let Test = ./test.dhall ? env:DHALL_GENODE_TEST
|
|
||||||
|
|
||||||
let Genode = Test.Genode
|
|
||||||
|
|
||||||
let Init = Genode.Init
|
|
||||||
|
|
||||||
let Child = Init.Child
|
|
||||||
|
|
||||||
in Test::{
|
|
||||||
, children = toMap
|
|
||||||
{ test-signal =
|
|
||||||
Child.flat
|
|
||||||
Child.Attributes::{
|
|
||||||
, binary = "test-signal"
|
|
||||||
, exitPropagate = True
|
|
||||||
, priority = 5
|
|
||||||
, resources = Init.Resources::{
|
|
||||||
, caps = 500
|
|
||||||
, ram = Genode.units.MiB 10
|
|
||||||
}
|
|
||||||
, routes = [ Init.ServiceRoute.parent "Timer" ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
|
||||||
|
|
||||||
{ testEnv, pkgs, ... }:
|
|
||||||
with pkgs;
|
|
||||||
|
|
||||||
testEnv.mkTest rec {
|
|
||||||
name = "signal";
|
|
||||||
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ehmry ];
|
|
||||||
|
|
||||||
testConfig = ./signal.dhall;
|
|
||||||
testInputs = [ (pkgs.genodeSources.depot "test-signal") ];
|
|
||||||
testScript = "run_genode_until {--- Signalling test finished ---} 120";
|
|
||||||
}
|
|
|
@ -36,7 +36,6 @@ let
|
||||||
"nic_bridge"
|
"nic_bridge"
|
||||||
"nic_loopback"
|
"nic_loopback"
|
||||||
"sequence"
|
"sequence"
|
||||||
"rtc_drv"
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,9 @@ let wrapHarness
|
||||||
, Init.ServiceRoute.parent "IO_MEM"
|
, Init.ServiceRoute.parent "IO_MEM"
|
||||||
, Init.ServiceRoute.parent "IO_PORT"
|
, Init.ServiceRoute.parent "IO_PORT"
|
||||||
, Init.ServiceRoute.parent "IRQ"
|
, Init.ServiceRoute.parent "IRQ"
|
||||||
|
, Init.ServiceRoute.parent "VM"
|
||||||
, Init.ServiceRoute.child "Timer" "timer"
|
, Init.ServiceRoute.child "Timer" "timer"
|
||||||
|
, Init.ServiceRoute.child "Rtc" "rtc"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,6 +49,15 @@ in λ(test : Test.Type)
|
||||||
, provides = [ "Timer" ]
|
, provides = [ "Timer" ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
, { mapKey = "rtc"
|
||||||
|
, mapValue =
|
||||||
|
Child.flat
|
||||||
|
Child.Attributes::{
|
||||||
|
, binary = "rtc_drv"
|
||||||
|
, provides = [ "Rtc" ]
|
||||||
|
, routes = [ Init.ServiceRoute.parent "IO_PORT" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
, { mapKey = "harness", mapValue = wrapHarness test.children }
|
, { mapKey = "harness", mapValue = wrapHarness test.children }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,7 @@ in { Genode = Genode
|
||||||
, Init.ServiceRoute.parent "IO_MEM"
|
, Init.ServiceRoute.parent "IO_MEM"
|
||||||
, Init.ServiceRoute.parent "IO_PORT"
|
, Init.ServiceRoute.parent "IO_PORT"
|
||||||
, Init.ServiceRoute.parent "IRQ"
|
, Init.ServiceRoute.parent "IRQ"
|
||||||
|
, Init.ServiceRoute.parent "VM"
|
||||||
, Init.ServiceRoute.child "Timer" "timer"
|
, Init.ServiceRoute.child "Timer" "timer"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,27 @@ let ServiceRoute = Init.ServiceRoute
|
||||||
|
|
||||||
let label = λ(_ : Text) → { local = _, route = _ } : Child.Attributes.Label
|
let label = λ(_ : Text) → { local = _, route = _ } : Child.Attributes.Label
|
||||||
|
|
||||||
let init =
|
let signal =
|
||||||
|
Child.flat
|
||||||
|
Child.Attributes::{
|
||||||
|
, binary = "test-signal"
|
||||||
|
, exitPropagate = True
|
||||||
|
, priority = 5
|
||||||
|
, resources = Init.Resources::{ caps = 500, ram = Genode.units.MiB 10 }
|
||||||
|
, routes = [ Init.ServiceRoute.parent "Timer" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
let rtc =
|
||||||
|
Child.flat
|
||||||
|
Child.Attributes::{
|
||||||
|
, binary = "test-rtc"
|
||||||
|
, routes =
|
||||||
|
[ Genode.Init.ServiceRoute.parent "Timer"
|
||||||
|
, Genode.Init.ServiceRoute.parent "Rtc"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
let pciInit =
|
||||||
Init::{
|
Init::{
|
||||||
, verbose = True
|
, verbose = True
|
||||||
, children = toMap
|
, children = toMap
|
||||||
|
@ -74,4 +94,10 @@ let init =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
in Test::{ children = Test.initToChildren init }
|
in Test::{
|
||||||
|
, children =
|
||||||
|
[ { mapKey = "signal", mapValue = signal }
|
||||||
|
, { mapKey = "rtc", mapValue = rtc }
|
||||||
|
]
|
||||||
|
# Test.initToChildren pciInit
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
{ testEnv, pkgs, ... }:
|
||||||
|
with pkgs;
|
||||||
|
|
||||||
|
testEnv.mkTest {
|
||||||
|
name = "x86";
|
||||||
|
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ehmry ];
|
||||||
|
|
||||||
|
testConfig = ./x86.dhall;
|
||||||
|
testInputs = (map pkgs.genodeSources.depot [
|
||||||
|
"acpi_drv"
|
||||||
|
"platform_drv"
|
||||||
|
"report_rom"
|
||||||
|
"test-signal"
|
||||||
|
]) ++ (map pkgs.genodeSources.make [ "test/pci" "test/rtc" ]);
|
||||||
|
}
|
Loading…
Reference in New Issue