# SPDX-License-Identifier: CC0-1.0 let tests = call: { log = call ./log.nix { }; signal = call ./signal.nix { }; } // call ./solo5 { }; in { self, apps, system, localSystem, crossSystem, genodepkgs, nixpkgs , genode-depot, lib }: let buildPkgs = import nixpkgs { system = localSystem; }; depot = genode-depot.packages.${system}; testPkgs = genodepkgs; addManifest = drv: drv // { manifest = buildPkgs.runCommand "${drv.name}.dhall" { inherit drv; } '' set -eu echo -n '[' >> $out find $drv/ -type f -printf ',{mapKey= "%f",mapValue="%p"}' >> $out echo -n ']' >> $out ''; }; linux = (call: ((tests call) // { block_router = call ./block_router.nix { }; })) (import ./driver-linux.nix { inherit apps testPkgs buildPkgs lib depot addManifest; }).callTest; nova = (call: ((tests call) // { driver_manager = call ./driver_manager.nix { }; noux = call ./noux.nix { }; pci = call ./pci.nix { }; rtc = call ./rtc.nix { }; })) (import ./driver-nova.nix { inherit apps system testPkgs buildPkgs lib depot addManifest; }).callTest; hw = (call: ((tests call) // { # noux = call ./noux.nix { }; pci = call ./pci.nix { }; rtc = call ./rtc.nix { }; })) (import ./driver-hw.nix { inherit apps system testPkgs buildPkgs lib depot addManifest; }).callTest; testsToList = tests: map (test: { inherit (test) name; value = test; }) (builtins.attrValues tests); hw-sotest = map ({ name, value }: { name = name + "-sotest"; value = value.sotest; }) (testsToList hw); nova-sotest = map ({ name, value }: { name = name + "-sotest"; value = value.sotest; }) (testsToList nova); in with builtins; listToAttrs ((concatLists (map (testsToList) [ linux hw nova ])) ++ hw-sotest ++ nova-sotest)