summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichał Łoś <michal.los@siili.com>2024-05-10 18:14:34 +0200
committerMichał Łoś <michal.los@siili.com>2024-05-16 20:59:13 +0200
commit5c3cfd2eebc2cc8a11bf2b00f24e84a67a559b43 (patch)
treef121d85a0251eee3c16dd57a5e05a4c5c64e9315
parent107f76f29adf270ccb747fa39a2e521eac76da88 (diff)
Limit size of large files test for VxWorks
VxWorks doesn't allow mapping file beyond EOF, adjust tests to encompass that. Additionally, for testing on VxWorks we use use builtin /tmp which is a RAM disk (in case of VxWorks-supported imx.6 bord which have 1GB of RAM), set max size of tested large file to 256MB, 28 bits. Task-number: QTBUG-115777 Change-Id: I73cbe112331b7cb95d80bb44b792578a1eb88a07 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 7678edebba7e93ce648714cd6849023e2880813f)
-rw-r--r--tests/auto/corelib/io/largefile/tst_largefile.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/largefile/tst_largefile.cpp b/tests/auto/corelib/io/largefile/tst_largefile.cpp
index 6fcd78cf8e..647f8f7d55 100644
--- a/tests/auto/corelib/io/largefile/tst_largefile.cpp
+++ b/tests/auto/corelib/io/largefile/tst_largefile.cpp
@@ -46,6 +46,10 @@ public:
// This means that files are limited to 2 GB − 1 bytes.
// Limit max size to 256MB
maxSizeBits = 28; // 256 MiB
+ #elif defined(Q_OS_VXWORKS)
+ // VxWorks doesn't support sparse files, also, default /tmp directory is a RAM-disk which
+ // limits its capacity.
+ maxSizeBits = 28; // 256 MiB
#elif defined(QT_LARGEFILE_SUPPORT)
maxSizeBits = 36; // 64 GiB
#else
@@ -491,12 +495,16 @@ void tst_LargeFile::mapFile()
//Linux: memory-mapping beyond EOF usually succeeds, but depends on the filesystem
// 32-bit: limited to 44-bit offsets (when sizeof(off_t) == 8)
//Windows: memory-mapping beyond EOF is not allowed
+//VxWorks: memory-mapping beyond EOF is not allowed
void tst_LargeFile::mapOffsetOverflow()
{
enum {
#ifdef Q_OS_WIN
Succeeds = false,
MaxOffset = 63
+#elif defined(Q_OS_VXWORKS)
+ Succeeds = false,
+ MaxOffset = 8 * sizeof(QT_OFF_T) - 1
#else
Succeeds = true,
# if (defined(Q_OS_LINUX) || defined(Q_OS_ANDROID)) && Q_PROCESSOR_WORDSIZE == 4