Fail gracefully in case of unsupported extended file attributes Avoid null bytes in error message strings Fix include path in XRootDConfig.cmake Avoid dereferencing unaligned pointers Support big endian in XrdZip
105 lines
3.6 KiB
Diff
105 lines
3.6 KiB
Diff
From 2c256ffaf44d8d811398c6dfe0ea754ae55672eb Mon Sep 17 00:00:00 2001
|
|
From: Mattias Ellert <mattias.ellert@physics.uu.se>
|
|
Date: Wed, 22 Nov 2023 06:20:19 +0100
|
|
Subject: [PATCH] Avoid /tmp when running some tests
|
|
|
|
Many features in xrootd require file system support for extended file
|
|
attributes. Tests that run tests on these features fail if the file
|
|
system does not support them. The /tmp directory in many Linux
|
|
installations is using a tmpfs partition. The tmpfs file system does
|
|
not support extended file attributes, so some tests that use /tmp to
|
|
store files fail.
|
|
|
|
This commit changes some affected tests so that they create the
|
|
temporary directory containing the test files in the current working
|
|
directory instead of /tmp.
|
|
|
|
Example of failure:
|
|
|
|
17/34 Test #20: XrdEc::AlignedWriteTest ...................................................***Failed 0.07 sec
|
|
You have selected:
|
|
|
|
Selected tests/
|
|
Selected tests/MicroTest::AlignedWriteTest
|
|
|
|
Running:
|
|
|
|
.F
|
|
|
|
MicroTest.cc:506:Assertion
|
|
Test name: MicroTest::AlignedWriteTest
|
|
assertion failed
|
|
- Expression: _st.IsOK()
|
|
- [*status]: [ERROR] Internal error: std::bad_alloc
|
|
|
|
Failures !!!
|
|
Run: 1 Failure total: 1 Failures: 1 Errors: 0
|
|
|
|
The following tests FAILED:
|
|
20 - XrdEc::AlignedWriteTest (Failed)
|
|
21 - XrdEc::SmallWriteTest (Failed)
|
|
22 - XrdEc::BigWriteTest (Failed)
|
|
23 - XrdEc::VectorReadTest (Failed)
|
|
24 - XrdEc::IllegalVectorReadTest (Failed)
|
|
25 - XrdEc::AlignedWrite1MissingTest (Failed)
|
|
26 - XrdEc::AlignedWrite2MissingTest (Failed)
|
|
27 - XrdEc::AlignedWriteTestIsalCrcNoMt (Failed)
|
|
28 - XrdEc::SmallWriteTestIsalCrcNoMt (Failed)
|
|
29 - XrdEc::BigWriteTestIsalCrcNoMt (Failed)
|
|
30 - XrdEc::AlignedWrite1MissingTestIsalCrcNoMt (Failed)
|
|
31 - XrdEc::AlignedWrite2MissingTestIsalCrcNoMt (Failed)
|
|
|
|
In addition to addressing the above failures, the commit also
|
|
addresses the following warnings during the XRootD::smoke-test test:
|
|
|
|
34: setfattr: /tmp/xrdfs-test-ChGSEb/01.ref: Operation not supported
|
|
34: Extended attributes not supported, using downloaded checksums for server checks
|
|
34: setfattr: /tmp/xrdfs-test-ChGSEb/02.ref: Operation not supported
|
|
34: Extended attributes not supported, using downloaded checksums for server checks
|
|
34: setfattr: /tmp/xrdfs-test-ChGSEb/03.ref: Operation not supported
|
|
34: Extended attributes not supported, using downloaded checksums for server checks
|
|
---
|
|
tests/XRootD/smoke.sh | 2 +-
|
|
tests/XrdEcTests/MicroTest.cc | 6 +++++-
|
|
2 files changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/tests/XRootD/smoke.sh b/tests/XRootD/smoke.sh
|
|
index 58e0f93f0..76ae67fd9 100755
|
|
--- a/tests/XRootD/smoke.sh
|
|
+++ b/tests/XRootD/smoke.sh
|
|
@@ -39,7 +39,7 @@ ${XRDFS} ${HOST} statvfs /
|
|
${XRDFS} ${HOST} spaceinfo /
|
|
|
|
# create local temporary directory
|
|
-TMPDIR=$(mktemp -d /tmp/xrdfs-test-XXXXXX)
|
|
+TMPDIR=$(mktemp -d ${PWD}/xrdfs-test-XXXXXX)
|
|
|
|
# cleanup after ourselves if something fails
|
|
trap "rm -rf ${TMPDIR}" EXIT
|
|
diff --git a/tests/XrdEcTests/MicroTest.cc b/tests/XrdEcTests/MicroTest.cc
|
|
index d02743351..5b375c6fe 100644
|
|
--- a/tests/XrdEcTests/MicroTest.cc
|
|
+++ b/tests/XrdEcTests/MicroTest.cc
|
|
@@ -34,6 +34,8 @@
|
|
|
|
#include "XrdZip/XrdZipCDFH.hh"
|
|
|
|
+#include "XrdSys/XrdSysPlatform.hh"
|
|
+
|
|
#include <string>
|
|
#include <memory>
|
|
#include <limits>
|
|
@@ -280,7 +282,9 @@ void MicroTest::Init( bool usecrc32c )
|
|
objcfg.reset( new ObjCfg( "test.txt", nbdata, nbparity, chsize, usecrc32c, true ) );
|
|
rawdata.clear();
|
|
|
|
- char tmpdir[32] = "/tmp/xrootd-xrdec-XXXXXX";
|
|
+ char tmpdir[MAXPATHLEN];
|
|
+ CPPUNIT_ASSERT( getcwd(tmpdir, MAXPATHLEN - 21) );
|
|
+ strcat(tmpdir, "/xrootd-xrdec-XXXXXX");
|
|
// create the data directory
|
|
CPPUNIT_ASSERT( mkdtemp(tmpdir) );
|
|
datadir = tmpdir;
|
|
--
|
|
2.42.0
|
|
|