Skip to content

Commit

Permalink
cryptsetup: enable and fix tests (#46346)
Browse files Browse the repository at this point in the history
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.

(cherry picked from commit 8c6cf3d)
  • Loading branch information
xeji committed Sep 8, 2018
1 parent f890192 commit 0817f94
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
10 changes: 10 additions & 0 deletions pkgs/os-specific/linux/cryptsetup/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand All @@ -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";
Expand Down
19 changes: 19 additions & 0 deletions pkgs/os-specific/linux/cryptsetup/disable-failing-tests.patch
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 0817f94

Please sign in to comment.