about summary refs log tree commit diff
path: root/pkgs/development/libraries/xmlsec/default.nix
diff options
context:
space:
mode:
authorFabian Möller <fabianm88@gmail.com>2020-07-15 10:56:59 +0200
committerFabian Möller <fabianm88@gmail.com>2020-07-15 10:56:59 +0200
commitde3781374143fe28a5cbdf7e3d15b6b07a645363 (patch)
tree4a724801270f4195814f9609d86b860da3942b4d /pkgs/development/libraries/xmlsec/default.nix
parentbe4406edeecf6e2225b6c6d96a24f89ed4b314e1 (diff)
xmlsec: add simple libxmlsec1 crypto loading test
Diffstat (limited to 'pkgs/development/libraries/xmlsec/default.nix')
-rw-r--r--pkgs/development/libraries/xmlsec/default.nix26
1 files changed, 25 insertions, 1 deletions
diff --git a/pkgs/development/libraries/xmlsec/default.nix b/pkgs/development/libraries/xmlsec/default.nix
index 86cc6638fa611..a0b5da31aab08 100644
--- a/pkgs/development/libraries/xmlsec/default.nix
+++ b/pkgs/development/libraries/xmlsec/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, libxml2, gnutls, libxslt, pkgconfig, libgcrypt, libtool
-, openssl, nss }:
+, openssl, nss, lib, runCommandCC, writeText }:
 
+lib.fix (self:
 let
   version = "1.2.28";
 in
@@ -41,6 +42,28 @@ stdenv.mkDerivation {
     moveToOutput "lib/xmlsec1Conf.sh" "$dev"
   '';
 
+  passthru.tests.libxmlsec1-crypto = runCommandCC "libxmlsec1-crypto-test"
+    {
+      nativeBuildInputs = [ pkgconfig ];
+      buildInputs = [ self libxml2 libxslt libtool ];
+    } ''
+    $CC $(pkg-config --cflags --libs xmlsec1) -o crypto-test ${writeText "crypto-test.c" ''
+      #include <xmlsec/xmlsec.h>
+      #include <xmlsec/crypto.h>
+
+      int main(int argc, char **argv) {
+        return xmlSecInit() ||
+          xmlSecCryptoDLLoadLibrary(argc > 1 ? argv[1] : 0) ||
+          xmlSecCryptoInit();
+      }
+    ''}
+
+    for crypto in "" gcrypt gnutls nss openssl; do
+      ./crypto-test $crypto
+    done
+    touch $out
+  '';
+
   meta = {
     homepage = http://www.aleksey.com/xmlsec;
     downloadPage = https://www.aleksey.com/xmlsec/download.html;
@@ -50,3 +73,4 @@ stdenv.mkDerivation {
     updateWalker = true;
   };
 }
+)