about summary refs log tree commit diff
path: root/pkgs/development/compilers/binaryen
diff options
context:
space:
mode:
authorYorick van Pelt <yorick@yorickvanpelt.nl>2022-05-30 13:02:20 +0200
committerWill Cohen <willcohen@users.noreply.github.com>2022-06-23 11:14:21 -0400
commitd531cd40af1f8385eb1f0c2384dc5a9e1ccb32db (patch)
treeb0f56add02f6e92cf030e72d5d92bd828f87bb78 /pkgs/development/compilers/binaryen
parentc3b5da2298bfb484d6cc70bea6b53ae69980a4ed (diff)
binaryen: run tests
Diffstat (limited to 'pkgs/development/compilers/binaryen')
-rw-r--r--pkgs/development/compilers/binaryen/default.nix31
1 files changed, 28 insertions, 3 deletions
diff --git a/pkgs/development/compilers/binaryen/default.nix b/pkgs/development/compilers/binaryen/default.nix
index c70b02cc55acb..9f417c5ef7ad3 100644
--- a/pkgs/development/compilers/binaryen/default.nix
+++ b/pkgs/development/compilers/binaryen/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, cmake, python3, fetchFromGitHub, emscripten }:
+{ lib, stdenv, cmake, python3, fetchFromGitHub, emscripten,
+  gtest, lit, nodejs, filecheck
+}:
 
 stdenv.mkDerivation rec {
   pname = "binaryen";
@@ -8,12 +10,35 @@ stdenv.mkDerivation rec {
     owner = "WebAssembly";
     repo = "binaryen";
     rev = "version_${version}";
-    sha256 = "sha256-CcGxPBdUiNLfMjjJKFMdDvaIrHvf2M/gCub4JBw4+8c=";
-    fetchSubmodules = true;
+    sha256 = "sha256-KGrzAME2Gt4WFIcBJ4L6k4DtE+OtuH4KFbEMPe+f+pA=";
   };
 
   nativeBuildInputs = [ cmake python3 ];
 
+  preConfigure = ''
+    if [ $doCheck -eq 1 ]; then
+      sed -i '/googletest/d' third_party/CMakeLists.txt
+    else
+      cmakeFlagsArray=($cmakeFlagsArray -DBUILD_TESTS=0)
+    fi
+  '';
+
+  checkInputs = [ gtest lit nodejs filecheck ];
+  checkPhase = ''
+    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib python3 ../check.py $tests
+  '';
+
+  tests = [
+    "version" "wasm-opt" "wasm-dis"
+    "crash" "dylink" "ctor-eval"
+    "wasm-metadce" "wasm-reduce" "spec"
+    "lld" "wasm2js" "validator"
+    "example" "unit"
+    # "binaryenjs" "binaryenjs_wasm" # not building this
+    "lit" "gtest"
+  ];
+  doCheck = stdenv.isLinux;
+
   meta = with lib; {
     homepage = "https://github.com/WebAssembly/binaryen";
     description = "Compiler infrastructure and toolchain library for WebAssembly, in C++";