# SPDX-FileCopyrightText: Emery Hemingway # # SPDX-License-Identifier: LicenseRef-Hippocratic-1.1 let tests = call: { fs_report = call ./fs_report.nix { }; libc = call ./libc.nix { }; log = call ./log.nix { }; signal = call ./signal.nix { }; # solo5 = call ./solo5 { }; }; in { genodepkgs, nixpkgs, dhall-haskell }: let hostPkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ (self: super: { inherit (dhall-haskell.packages) dhall; }) ]; }; depot = hostPkgs.callPackage ../depot { }; testPkgs = genodepkgs; lib = hostPkgs.lib // { dhallText = name: source: hostPkgs.runCommand name { inherit name source; preferLocalBuild = true; buildInputs = [ hostPkgs.dhall ]; DHALL_PRELUDE = "${testPkgs.dhallPackages.prelude}/package.dhall"; DHALL_GENODE = "${testPkgs.dhallPackages.genode}/package.dhall"; } '' export XDG_CACHE_HOME=$NIX_BUILD_TOP dhall text < $source > $out ''; renderDhallInit = path: args: hostPkgs.runCommand "init.xml" { preferLocalBuild = true; buildInputs = [ hostPkgs.dhall ]; initConfig = path; initArgs = args; DHALL_PRELUDE = "${testPkgs.dhallPrelude}/package.dhall"; DHALL_GENODE = "${testPkgs.dhallGenode}/package.dhall"; } '' export XDG_CACHE_HOME=$NIX_BUILD_TOP dhall text \ <<< 'let Prelude = env:DHALL_GENODE in Prelude.Init.render (Prelude.Init::{ children = toMap (env:initConfig env:initArgs) })' \ > $out ''; }; linux = tests (import ./driver-linux.nix { inherit testPkgs hostPkgs lib depot; }).callTest; nova = (call: ((tests call) // { pci = call ./pci.nix { }; })) (import ./driver-nova.nix { inherit testPkgs hostPkgs lib depot; }).callTest; testsToList = tests: map (test: { inherit (test) name; value = test; }) (builtins.attrValues tests); in with builtins; listToAttrs (concatLists (map (testsToList) [ linux nova ]))