diff --git a/pkgs/by-name/po/poco/disable-broken-tests.patch b/pkgs/by-name/po/poco/disable-broken-tests.patch new file mode 100644 index 000000000000..7c0f27352e15 --- /dev/null +++ b/pkgs/by-name/po/poco/disable-broken-tests.patch @@ -0,0 +1,21 @@ +diff --git a/Data/testsuite/src/DataTest.cpp b/Data/testsuite/src/DataTest.cpp +index a78c4e5..e8d9335 100644 +--- a/Data/testsuite/src/DataTest.cpp ++++ b/Data/testsuite/src/DataTest.cpp +@@ -1652 +1652 @@ CppUnit::Test* DataTest::suite() +- CppUnit_addTest(pSuite, DataTest, testSQLChannel); ++ // CppUnit_addTest(pSuite, DataTest, testSQLChannel); +diff --git a/Net/testsuite/src/HTTPClientSessionTest.cpp b/Net/testsuite/src/HTTPClientSessionTest.cpp +index 31de150..b5c0d13 100644 +--- a/Net/testsuite/src/HTTPClientSessionTest.cpp ++++ b/Net/testsuite/src/HTTPClientSessionTest.cpp +@@ -406 +406 @@ CppUnit::Test* HTTPClientSessionTest::suite() +- CppUnit_addTest(pSuite, HTTPClientSessionTest, testGetSmallUnix); ++ // CppUnit_addTest(pSuite, HTTPClientSessionTest, testGetSmallUnix); +diff --git a/Net/testsuite/src/SocketTest.cpp b/Net/testsuite/src/SocketTest.cpp +index 27c1800..9bd684b 100644 +--- a/Net/testsuite/src/SocketTest.cpp ++++ b/Net/testsuite/src/SocketTest.cpp +@@ -900 +900 @@ CppUnit::Test* SocketTest::suite() +- CppUnit_addTest(pSuite, SocketTest, testEchoUnixLocal); ++ // CppUnit_addTest(pSuite, SocketTest, testEchoUnixLocal); diff --git a/pkgs/by-name/po/poco/package.nix b/pkgs/by-name/po/poco/package.nix index 2117341d5232..6fa0f07d1286 100644 --- a/pkgs/by-name/po/poco/package.nix +++ b/pkgs/by-name/po/poco/package.nix @@ -54,10 +54,23 @@ stdenv.mkDerivation rec { MYSQL_DIR = libmysqlclient; MYSQL_INCLUDE_DIR = "${MYSQL_DIR}/include/mysql"; - cmakeFlags = [ - # use nix provided versions of sqlite, zlib, pcre, expat, ... instead of bundled versions - (lib.cmakeBool "POCO_UNBUNDLED" true) - ]; + cmakeFlags = + let + # These tests require running services, which the checkPhase is ill equipeed to provide + # TODO get them running in a nixosTest + excludeTestsRegex = lib.concatStringsSep "|" [ + "Redis" + "DataODBC" + "MongoDB" + "DataMySQL" + ]; + in + [ + # use nix provided versions of sqlite, zlib, pcre, expat, ... instead of bundled versions + (lib.cmakeBool "POCO_UNBUNDLED" true) + (lib.cmakeBool "ENABLE_TESTS" true) + (lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'${excludeTestsRegex}'") + ]; patches = [ # Remove on next release @@ -67,8 +80,16 @@ stdenv.mkDerivation rec { url = "https://patch-diff.githubusercontent.com/raw/pocoproject/poco/pull/4879.patch"; hash = "sha256-VFWuRuf0GPYFp43WKI8utl+agP+7a5biLg7m64EMnVo="; }) + # failing on darwin, could perhaps be patched / a fix upstreamed later + ./disable-broken-tests.patch ]; + doCheck = true; + preCheck = '' + # workaround for some tests trying to write to /homeless-shelter + export HOME=$(mktemp -d) + ''; + postFixup = '' grep -rlF INTERFACE_INCLUDE_DIRECTORIES "$dev/lib/cmake/Poco" | while read -r f; do substituteInPlace "$f" \