From 3b9d3aa99f667b951a9b50088676542a58b4d317 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Mon, 20 Jan 2020 18:53:53 +0100 Subject: [PATCH] Pin Bender revision --- packages/bender/default.nix | 8 +++-- tests/driver-sotest-nova.nix | 57 ++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 tests/driver-sotest-nova.nix diff --git a/packages/bender/default.nix b/packages/bender/default.nix index 7cdf31a..748c975 100644 --- a/packages/bender/default.nix +++ b/packages/bender/default.nix @@ -9,13 +9,15 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "blitz"; repo = "bender"; - rev = version; - sha256 = "0bj9h8q1in1nkbs55lkc4ifawiq5yya842kmiasag3hwcm3vywy3"; + rev = "2c449524be4ea9fbb86b4e19d95fcfdc0a3bff0f"; + sha256 = "0xmy4izgxwxg10cc1q7q3zhzp01nk3dwr2hbq7vrbmk8j1z0r4yz"; }; hardeningDisable = [ "all" ]; enableParallelBuilding = true; nativeBuildInputs = [ cmake ]; - cmakeFlags = "-DVERSION=${version}"; + cmakeFlags = [ "-DVERSION=${version}" ]; + + installPhase = "install standalone/bender $out"; } diff --git a/tests/driver-sotest-nova.nix b/tests/driver-sotest-nova.nix new file mode 100644 index 0000000..65d3c49 --- /dev/null +++ b/tests/driver-sotest-nova.nix @@ -0,0 +1,57 @@ +# SPDX-License-Identifier: CC0-1.0 + +{ system, apps, testPkgs, hostPkgs, lib, depot }: + +let + mkTest = { name ? "unamed", testConfig, env ? { }, ... }: + let + env' = { + DHALL_PRELUDE = "${testPkgs.dhallPrelude}/package.dhall"; + DHALL_GENODE = "${testPkgs.dhallGenode}/package.dhall"; + BASE_NOVA_MANIFEST = testPkgs.genode.base-nova.manifest; + OS_MANIFEST = testPkgs.genode.os.manifest; + SOTEST_PRODUCER_MANIFEST = testPkgs.sotest-producer.manifest; + } // env; + + image = apps.nova-image.function env' + "${./driver-nova-config.dhall} ${testConfig}"; + + drv = hostPkgs.runCommand "nova-${name}-sotest" env' '' + cp "${testPkgs.bender}" bender + cp "${testPkgs.NOVA}/hypervisor-x86_64" hypervisor + cp "${image}" image.elf + mkdir -p $out/nix-support + ${hostPkgs.zip}/bin/zip "$out/binaries.zip" \ + bender hypervisor-x86_64 image.elf + ${apps.dhall-to-yaml.program} < ${ + ./sotest_config.dhall + } > "$out/sotest_config.yaml" + echo file zip $out/binaries.zip >> "$out/nix-support/hydra-build-products" + echo file config $out/sotest_config.yaml >> "$out/nix-support/hydra-build-products" + ''; + + in drv // { + inherit image; + config = hostPkgs.runCommand (name + ".dhall") env' '' + ${apps.dhall.program} <<< "(${ + ./driver-nova-config.dhall + } ${testConfig})" > $out + ''; + xml = hostPkgs.runCommand (name + ".config") env' '' + ${apps.render-init.program} "(${ + ./driver-nova-config.dhall + } ${testConfig}).config" > $out''; + }; + +in { + callTest = path: args: + (import path ({ + testEnv = { + inherit mkTest lib; + isLinux = false; + isNova = true; + }; + pkgs = testPkgs; + inherit depot; + } // args)); +}