diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt index ba4574d30d1..bbcf5d1f85c 100644 --- a/tests/auto/CMakeLists.txt +++ b/tests/auto/CMakeLists.txt @@ -72,6 +72,7 @@ if(QT_BUILD_WASM_BATCHED_TESTS) add_subdirectory(corelib/io/qstandardpaths) add_subdirectory(corelib/io/qfileselector) add_subdirectory(corelib/io/qfile) + add_subdirectory(corelib/io/qdir) add_subdirectory(corelib/serialization) add_subdirectory(corelib/text) add_subdirectory(corelib/thread) diff --git a/tests/auto/corelib/io/qdir/CMakeLists.txt b/tests/auto/corelib/io/qdir/CMakeLists.txt index 4032d7ac19f..c0ee97528c2 100644 --- a/tests/auto/corelib/io/qdir/CMakeLists.txt +++ b/tests/auto/corelib/io/qdir/CMakeLists.txt @@ -12,86 +12,105 @@ if(NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT) endif() # Collect test data -list(APPEND test_data "testdir") -list(APPEND test_data "testData") -list(APPEND test_data "searchdir") -list(APPEND test_data "resources") -list(APPEND test_data "entrylist") -list(APPEND test_data "types") -list(APPEND test_data "tst_qdir.cpp") +list(APPEND test_data_dirs "testdir") +list(APPEND test_data_dirs "testData") +list(APPEND test_data_dirs "searchdir") +list(APPEND test_data_dirs "resources") +list(APPEND test_data_dirs "entrylist") +list(APPEND test_data_dirs "types") +list(APPEND test_data_dirs "tst_qdir.cpp") -qt_internal_add_test(tst_qdir - SOURCES - tst_qdir.cpp - LIBRARIES - Qt::CorePrivate - Qt::TestPrivate - TESTDATA ${test_data} + +set(test_data_files) + +foreach(dir ${test_data_dirs}) + set(out) + file(GLOB_RECURSE out true RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${dir}/*) + if (NOT out) + set(out ${dir}) + endif() + set(test_data_files ${test_data_files} ${out}) +endforeach() + +set(android_testdata_resource_files +"entrylist/directory/dummy" +"entrylist/file" +"resources/entryList/file1.data" +"resources/entryList/file2.data" +"resources/entryList/file3.data" +"resources/entryList/file4.nothing" +"searchdir/subdir1/picker.png" +"searchdir/subdir2/picker.png" +"testData/empty" +"testdir/dir/qdir.pro" +"testdir/dir/qrc_qdir.cpp" +"testdir/dir/tmp/empty" +"testdir/dir/tst_qdir.cpp" +"testdir/spaces/foo. bar" +"testdir/spaces/foo.bar" +"tst_qdir.cpp" +"types/a" +"types/a.a" +"types/a.b" +"types/a.c" +"types/b" +"types/b.a" +"types/b.b" +"types/b.c" +"types/c" +"types/c.a" +"types/c.b" +"types/c.c" +"types/d.a/dummy" +"types/d.b/dummy" +"types/d.c/dummy" +"types/d/dummy" +"types/e.a/dummy" +"types/e.b/dummy" +"types/e.c/dummy" +"types/e/dummy" +"types/f.a/dummy" +"types/f.b/dummy" +"types/f.c/dummy" +"types/f/dummy" ) -# Resources: -set(qdir_resource_files - "resources/entryList/" -) -qt_internal_add_resource(tst_qdir "qdir" - PREFIX - "/tst_qdir/" - FILES - ${qdir_resource_files} -) +if (WASM) + qt_internal_add_test(tst_qdir + SOURCES + tst_qdir.cpp + LIBRARIES + Qt::CorePrivate + Qt::TestPrivate + TESTDATA + ) + qt_internal_add_resource(tst_qdir "tst_qdir" + PREFIX + "/tst_qdir" + FILES + ${test_data_files} + ) +elseif (ANDROID) + qt_internal_add_test(tst_qdir + SOURCES + tst_qdir.cpp + LIBRARIES + Qt::CorePrivate + Qt::TestPrivate + TESTDATA ${test_data_dirs} + ) -## Scopes: -##################################################################### - -qt_internal_extend_target(tst_qdir CONDITION CONFIG___contains___builtin_testdata - DEFINES - BUILTIN_TESTDATA -) - -if(ANDROID) # Resources: - set(android_testdata_resource_files - "entrylist/directory/dummy" - "entrylist/file" - "resources/entryList/file1.data" - "resources/entryList/file2.data" - "resources/entryList/file3.data" - "resources/entryList/file4.nothing" - "searchdir/subdir1/picker.png" - "searchdir/subdir2/picker.png" - "testData/empty" - "testdir/dir/qdir.pro" - "testdir/dir/qrc_qdir.cpp" - "testdir/dir/tmp/empty" - "testdir/dir/tst_qdir.cpp" - "testdir/spaces/foo. bar" - "testdir/spaces/foo.bar" - "tst_qdir.cpp" - "types/a" - "types/a.a" - "types/a.b" - "types/a.c" - "types/b" - "types/b.a" - "types/b.b" - "types/b.c" - "types/c" - "types/c.a" - "types/c.b" - "types/c.c" - "types/d.a/dummy" - "types/d.b/dummy" - "types/d.c/dummy" - "types/d/dummy" - "types/e.a/dummy" - "types/e.b/dummy" - "types/e.c/dummy" - "types/e/dummy" - "types/f.a/dummy" - "types/f.b/dummy" - "types/f.c/dummy" - "types/f/dummy" + set(qdir_resource_files + "resources/entryList/" + ) + + qt_internal_add_resource(tst_qdir "qdir" + PREFIX + "/tst_qdir/" + FILES + ${qdir_resource_files} ) qt_internal_add_resource(tst_qdir "android_testdata" @@ -100,4 +119,35 @@ if(ANDROID) FILES ${android_testdata_resource_files} ) + +else() + + qt_internal_add_test(tst_qdir + SOURCES + tst_qdir.cpp + LIBRARIES + Qt::CorePrivate + Qt::TestPrivate + TESTDATA ${test_data_dirs} + ) + + # Resources: + set(qdir_resource_files + "resources/entryList/" + ) + + qt_internal_add_resource(tst_qdir "qdir" + PREFIX + "/tst_qdir/" + FILES + ${qdir_resource_files} + ) endif() + +## Scopes: +##################################################################### + +qt_internal_extend_target(tst_qdir CONDITION CONFIG___contains___builtin_testdata + DEFINES + BUILTIN_TESTDATA +) diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp index 7b05a88e811..99ececa3c20 100644 --- a/tests/auto/corelib/io/qdir/tst_qdir.cpp +++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #if defined(Q_OS_WIN) #include @@ -263,7 +264,11 @@ void tst_QDir::init() void tst_QDir::initTestCase() { #ifdef BUILTIN_TESTDATA +#ifdef Q_OS_WASM + m_dataDir = QEXTRACTTESTDATA("/tst_qdir"); +#else m_dataDir = QEXTRACTTESTDATA("/"); +#endif QVERIFY2(!m_dataDir.isNull(), qPrintable("Did not find testdata. Is this builtin?")); m_dataPath = m_dataDir->path(); #elif QT_CONFIG(cxx17_filesystem) // This code doesn't work in QNX on the CI @@ -450,6 +455,9 @@ void tst_QDir::mkdirOnSymlink() fi.setFile(path); #if defined(Q_OS_QNX) QSKIP("Fails on QNX QTBUG-98561"); +#endif +#if defined (Q_OS_WASM) + QEXPECT_FAIL("", "fails on wasm, see bug: QTBUG-127766", Continue); #endif QVERIFY2(fi.exists() && fi.isDir(), msgDoesNotExist(path).constData()); #endif @@ -514,6 +522,9 @@ void tst_QDir::makedirReturnCode() // the next line specifically targets Windows and macOS (QTBUG-85997, QTBUG-97110) // calling mkpath on an existing drive name (Windows) or root path (macOS) shall pass +#ifdef Q_OS_WASM + QEXPECT_FAIL("", "fails on wasm, see bug QTBUG-127767", Continue); +#endif QVERIFY(QDir().mkpath(QDir::rootPath())); QVERIFY(!QDir().mkdir(QDir::rootPath())); @@ -1933,11 +1944,13 @@ void tst_QDir::longFileName_data() QTest::addColumn("length"); QTest::newRow("128") << 128; +#ifndef Q_OS_WASM QTest::newRow("256") << 256; QTest::newRow("512") << 512; QTest::newRow("1024") << 1024; QTest::newRow("2048") << 2048; QTest::newRow("4096") << 4096; +#endif } void tst_QDir::longFileName() @@ -2287,6 +2300,8 @@ void tst_QDir::equalityOperator_data() QString pathinroot("/boot/.."); #elif defined(Q_OS_VXWORKS) QString pathinroot("/tmp/.."); +#elif defined(Q_OS_WASM) + QString pathinroot("/tmp/.."); #else QString pathinroot("/usr/.."); #endif