summary refs log tree commit diff
path: root/pkgs/os-specific/linux/cryptsetup
diff options
context:
space:
mode:
authorxeji <36407913+xeji@users.noreply.github.com>2018-09-08 21:24:15 +0200
committerGitHub <noreply@github.com>2018-09-08 21:24:15 +0200
commit8c6cf3de3d1d448ba17b5d0433068862d7f6efc9 (patch)
tree3840e44923d8c36a5d6513b6743c741cca70e741 /pkgs/os-specific/linux/cryptsetup
parentb58a230c60c31effd8eac43cb3a88d172ee19b71 (diff)
downloadnixpkgs-8c6cf3de3d1d448ba17b5d0433068862d7f6efc9.tar
nixpkgs-8c6cf3de3d1d448ba17b5d0433068862d7f6efc9.tar.gz
nixpkgs-8c6cf3de3d1d448ba17b5d0433068862d7f6efc9.tar.bz2
nixpkgs-8c6cf3de3d1d448ba17b5d0433068862d7f6efc9.tar.lz
nixpkgs-8c6cf3de3d1d448ba17b5d0433068862d7f6efc9.tar.xz
nixpkgs-8c6cf3de3d1d448ba17b5d0433068862d7f6efc9.tar.zst
nixpkgs-8c6cf3de3d1d448ba17b5d0433068862d7f6efc9.zip
cryptsetup: enable and fix tests (#46346)
Some tests use O_DIRECT which is filesystem dependent and fails in a
sandbox as well as on some filesystems without sandboxing.
Patch out O_DIRECT and disable the 4 test cases that still fail in a
sandbox. See discussion in #46151.
Diffstat (limited to 'pkgs/os-specific/linux/cryptsetup')
-rw-r--r--pkgs/os-specific/linux/cryptsetup/default.nix10
-rw-r--r--pkgs/os-specific/linux/cryptsetup/disable-failing-tests.patch19
2 files changed, 29 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix
index 178fc7d9140..2b5c3817ddf 100644
--- a/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -14,8 +14,16 @@ stdenv.mkDerivation rec {
     sha256 = "0d2p9g2wqcv6l3671gvw96p16jadbgyh21ddy2bhqgi96dq3qflx";
   };
 
+  # Disable 4 test cases that fail in a sandbox
+  patches = [ ./disable-failing-tests.patch ];
+
   postPatch = ''
     patchShebangs tests
+
+    # O_DIRECT is filesystem dependent and fails in a sandbox (on tmpfs)
+    # and on several filesystem types (btrfs, zfs) without sandboxing.
+    # Remove it, see discussion in #46151
+    substituteInPlace tests/unit-utils-io.c --replace "| O_DIRECT" ""
   '';
 
   NIX_LDFLAGS = "-lgcc_s";
@@ -30,6 +38,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ lvm2 json_c openssl libuuid popt ]
     ++ stdenv.lib.optional enablePython python2;
 
+  doCheck = true;
+
   meta = {
     homepage = https://gitlab.com/cryptsetup/cryptsetup/;
     description = "LUKS for dm-crypt";
diff --git a/pkgs/os-specific/linux/cryptsetup/disable-failing-tests.patch b/pkgs/os-specific/linux/cryptsetup/disable-failing-tests.patch
new file mode 100644
index 00000000000..1504bf3e151
--- /dev/null
+++ b/pkgs/os-specific/linux/cryptsetup/disable-failing-tests.patch
@@ -0,0 +1,19 @@
+diff -ur a/tests/blockwise-compat b/tests/blockwise-compat
+--- a/tests/blockwise-compat	2018-09-08 12:23:11.706555098 +0200
++++ b/tests/blockwise-compat	2018-09-08 12:24:24.444393460 +0200
+@@ -148,15 +148,11 @@
+ 	# device/file fn_name length
+ 	RUN "P" $1 read_buffer $BSIZE
+ 	RUN "P" $1 read_buffer $((2*BSIZE))
+-	RUN "F" $1 read_buffer $((BSIZE-1))
+-	RUN "F" $1 read_buffer $((BSIZE+1))
+ 	RUN "P" $1 read_buffer 0
+ 
+ 	RUN "P" $1 write_buffer $BSIZE
+ 	RUN "P" $1 write_buffer $((2*BSIZE))
+ 
+-	RUN "F" $1 write_buffer $((BSIZE-1))
+-	RUN "F" $1 write_buffer $((BSIZE+1))
+ 	RUN "F" $1 write_buffer 0
+ 
+ 	# basic blockwise functions