diff options
Diffstat (limited to 'tvix/eval/default.nix')
-rw-r--r-- | tvix/eval/default.nix | 136 |
1 files changed, 6 insertions, 130 deletions
diff --git a/tvix/eval/default.nix b/tvix/eval/default.nix index aa8d8a4af4..91661291f7 100644 --- a/tvix/eval/default.nix +++ b/tvix/eval/default.nix @@ -1,133 +1,9 @@ -{ depot, pkgs, lib, ... }: +# TODO: find a way to build the benchmarks via crate2nix +{ depot, pkgs, ... }: -lib.fix (self: -depot.third_party.naersk.buildPackage { - src = depot.third_party.gitignoreSource ./.; - # see https://github.com/nix-community/naersk/issues/169 - root = depot.nix.sparseTree ./. [ ./Cargo.lock ./Cargo.toml ]; +depot.tvix.crates.workspaceMembers.tvix-eval.build.override { + runTests = true; - doCheck = true; - cargoBuildOptions = opts: opts ++ [ "--all-targets" ]; - - # Tell the test suite where to find upstream nix, to compare eval results - # against - NIX_INSTANTIATE_BINARY_PATH = "${pkgs.nix}/bin/nix-instantiate"; - - meta.ci.targets = builtins.attrNames self.passthru; - - passthru.cpp-nix-run-lang-tests = pkgs.stdenv.mkDerivation { - name = "cpp-nix-run-lang-tests"; - - src = ./src/tests; - dontConfigure = true; - - nativeBuildInputs = [ - pkgs.buildPackages.nix - ]; - - buildPhase = '' - chmod +x $scriptPath - patchShebangs --build $scriptPath - - mkdir store var - export NIX_STORE_DIR="$(realpath store)" - export NIX_STATE_DIR="$(realpath var)" - - $scriptPath - ''; - - installPhase = "touch $out"; - - passAsFile = [ "script" ]; - script = '' - #!/usr/bin/env bash - # SPDX-License-Identifier: LGPL-2.1-only - # SPDX-FileCopyrightText: © 2022 The TVL Contributors - # SPDX-FileCopyrightText: © 2004-2022 The Nix Contributors - # - # Execute language tests found in tvix_tests and nix_tests - # using the C++ Nix implementation. Based on NixOS/nix:tests/lang.sh. - - expect() { - local expected res - expected="$1" - shift - set +e - "$@" - res="$?" - set -e - [[ $res -eq $expected ]] - } - - TESTDIR="''${1:-.}" - - fail=0 - - for i in "$TESTDIR/"*_tests/parse-fail-*.nix; do - echo "parsing $i (should fail)"; - if ! expect 1 nix-instantiate --parse - < $i 2> /dev/null; then - echo "FAIL: $i shouldn't parse" - fail=1 - fi - done - - for i in "$TESTDIR/"*_tests/parse-okay-*.nix; do - echo "parsing $i (should succeed)"; - if ! expect 0 nix-instantiate --parse - < $i > /dev/null; then - echo "FAIL: $i should parse" - fail=1 - fi - done - - for i in "$TESTDIR/"*_tests/eval-fail-*.nix; do - echo "evaluating $i (should fail)"; - if ! expect 1 nix-instantiate --eval $i 2> /dev/null; then - echo "FAIL: $i shouldn't evaluate" - fail=1 - fi - done - - export TEST_VAR="foo" - - for i in "$TESTDIR/"*_tests/eval-okay-*.nix; do - echo "evaluating $i (should succeed)"; - - base="$(dirname "$i")/$(basename "$i" ".nix")" - - if [[ "$(basename "$i")" == "eval-okay-search-path.nix" ]]; then - # TODO(sterni): fix this test - echo "SKIPPED: $i" - continue - fi - - if test -e $base.exp; then - flags= - if test -e $base.flags; then - flags=$(cat $base.flags) - fi - if ! expect 0 nix-instantiate $flags --eval --strict $base.nix > $base.out; then - echo "FAIL: $i should evaluate" - fail=1 - elif ! diff $base.out $base.exp; then - echo "FAIL: evaluation result of $i not as expected" - fail=1 - fi - fi - - if test -e $base.exp.xml; then - if ! expect 0 nix-instantiate --eval --xml --no-location --strict \ - $base.nix > $base.out.xml; then - echo "FAIL: $i should evaluate" - fail=1 - elif ! cmp -s $base.out.xml $base.exp.xml; then - echo "FAIL: XML evaluation result of $i not as expected" - fail=1 - fi - fi - done - - exit $fail - ''; - }; + # Make C++ Nix available, to compare eval results against. + testInputs = [ pkgs.nix ]; } -) |