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.
This commit is contained in:
xeji 2018-09-08 21:24:15 +02:00 committed by GitHub
parent b58a230c60
commit 8c6cf3de3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 0 deletions

View file

@ -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";

View file

@ -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