diff --git a/flake.lock b/flake.lock index bcef6ac..4eb0d97 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1611784459, - "narHash": "sha256-f5ZAW9dK/m2W2F+Gsb9nVuGTcVbnhkUezfaqWYaXAF8=", + "lastModified": 1611948132, + "narHash": "sha256-mH7hD1ps1FcRaVdP36jZWZFHdESVPY5rdTNJR16z7D4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5547b2f67042994ec0155cef24296681dc7fba5a", + "rev": "aa48e205a2e0516ff4b96c79eeb666aaaccd418c", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index bcdd768..122e467 100644 --- a/flake.nix +++ b/flake.nix @@ -1,25 +1,27 @@ { description = "Genode packages"; - outputs = { self, nixpkgs }: let - localSystems = [ "x86_64-linux" ]; - crossSystems = [ "aarch64-genode" "x86_64-genode" ]; + systems = { + localSystem = [ "x86_64-linux" ]; + crossSystem = [ "aarch64-genode" "x86_64-genode" ]; + }; + systemSpace = nixpkgs.lib.cartesianProductOfSets systems; forAllLocalSystems = f: - nixpkgs.lib.genAttrs localSystems (system: f system); + nixpkgs.lib.genAttrs systems.localSystem (system: f system); forAllCrossSystems = f: with builtins; let - f' = localSystem: crossSystem: + f' = { localSystem, crossSystem }: let system = localSystem + "-" + crossSystem; in { name = system; value = f { inherit system localSystem crossSystem; }; }; - list = nixpkgs.lib.lists.crossLists f' [ localSystems crossSystems ]; + list = map f' systemSpace; attrSet = listToAttrs list; in attrSet; diff --git a/tests/default.nix b/tests/default.nix index 8a76c86..29cca13 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -7,59 +7,59 @@ let testingPython = import ./lib/testing-python.nix; - testSpecs = map (p: import p) [ - ./ahci.nix - ./bash.nix - ./hello.nix - ./log.nix - ./vmm_x86.nix - ./x86.nix - ]; + testSpace = lib.cartesianProductOfSets { - cores = [ - /* { - prefix = "hw-pc-"; - testingPython = testingPython { - inherit flake system localSystem crossSystem pkgs; - extraConfigurations = [ ../nixos-modules/base-hw-pc.nix ]; - }; - specs = [ "x86" "hw" ]; - platforms = [ "x86_64-genode" ]; - } - */ - /* { - prefix = "hw-virt_qemu-"; - testingPython = testingPython { - inherit flake system localSystem crossSystem pkgs; - extraConfigurations = [ ../nixos-modules/base-hw-virt_qemu.nix ]; - }; - specs = [ "aarch64" "hw" ]; - platforms = [ "aarch64-genode" ]; - } - */ - { - prefix = "nova-"; - testingPython = testingPython { - inherit flake system localSystem crossSystem pkgs; - extraConfigurations = [ ../nixos-modules/nova.nix ]; - }; - specs = [ "x86" "nova" ]; - platforms = [ "x86_64-genode" ]; - } - ]; + test = map (p: import p) [ + ./ahci.nix + ./bash.nix + ./hello.nix + ./log.nix + ./vmm_x86.nix + ./x86.nix + ]; - cores' = builtins.filter (core: - builtins.any (x: x == pkgs.stdenv.hostPlatform.system) core.platforms) - cores; + core = builtins.filter (core: + builtins.any (x: x == pkgs.stdenv.hostPlatform.system) core.platforms) [ + /* { + prefix = "hw-pc-"; + testingPython = testingPython { + inherit flake system localSystem crossSystem pkgs; + extraConfigurations = [ ../nixos-modules/base-hw-pc.nix ]; + }; + specs = [ "x86" "hw" ]; + platforms = [ "x86_64-genode" ]; + } + */ + /* { + prefix = "hw-virt_qemu-"; + testingPython = testingPython { + inherit flake system localSystem crossSystem pkgs; + extraConfigurations = [ ../nixos-modules/base-hw-virt_qemu.nix ]; + }; + specs = [ "aarch64" "hw" ]; + platforms = [ "aarch64-genode" ]; + } + */ + { + prefix = "nova-"; + testingPython = testingPython { + inherit flake system localSystem crossSystem pkgs; + extraConfigurations = [ ../nixos-modules/nova.nix ]; + }; + specs = [ "x86" "nova" ]; + platforms = [ "x86_64-genode" ]; + } + ]; + + }; testList = let - f = core: test: + f = { core, test }: if (test.constraints or (_: true)) core.specs then { name = core.prefix + test.name; value = core.testingPython.makeTest test; } else null; - - in lib.lists.crossLists f [ cores' testSpecs ]; + in map f testSpace; in builtins.listToAttrs (builtins.filter (_: _ != null) testList)