diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-08-08 16:04:42 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-08-13 06:35:37 +0000 |
commit | 12aaa58dac35800b5b7d77f81cf2a87c21ee55da (patch) | |
tree | be0add9e5c22a85d20b5d78206aa74f956eb2a1b /nixpkgs/pkgs/development/libraries/libqtdbustest | |
parent | 45892a5591202f75a1c2f1ca7c62a92c7566e3c5 (diff) | |
parent | 5a8e9243812ba528000995b294292d3b5e120947 (diff) | |
download | nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.gz nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.bz2 nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.lz nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.xz nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.tar.zst nixlib-12aaa58dac35800b5b7d77f81cf2a87c21ee55da.zip |
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Conflicts: nixpkgs/pkgs/applications/window-managers/sway/default.nix nixpkgs/pkgs/build-support/go/module.nix nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix nixpkgs/pkgs/development/libraries/mesa/default.nix nixpkgs/pkgs/servers/dict/dictd-db.nix Link: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/issues/391
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libqtdbustest')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libqtdbustest/default.nix | 102 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libqtdbustest/less-pedantic-process-finding.patch | 86 |
2 files changed, 188 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libqtdbustest/default.nix b/nixpkgs/pkgs/development/libraries/libqtdbustest/default.nix new file mode 100644 index 000000000000..8ef8975a01af --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libqtdbustest/default.nix @@ -0,0 +1,102 @@ +{ stdenv +, lib +, fetchbzr +, fetchpatch +, testers +, cmake +, cmake-extras +, dbus +, dbus-test-runner +, gtest +, pkg-config +, procps +, python3 +, qtbase +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "libqtdbustest"; + version = "unstable-2017-01-06"; + + src = fetchbzr { + url = "lp:libqtdbustest"; + rev = "42"; + sha256 = "sha256-5MQdGGtEVE/pM9u0B0xFXyITiRln9p+8/MLtrrCZqi8="; + }; + + patches = [ + # Tests are overly pedantic when looking for launched process names in `ps`, break on python wrapper vs real python + # Just check if basename + arguments match, like libqtdbusmock does + ./less-pedantic-process-finding.patch + + # Disable QProcess start timeout + (fetchpatch { + url = "https://salsa.debian.org/debian-ayatana-team/libqtdbustest/-/raw/0788df10bc6f2aa47c2b73fc1df944686a9ace1e/debian/patches/1003_no-QProcess-waitForstarted-timeout.patch"; + hash = "sha256-ThDbn6URvkj5ARDMj+xO0fb1Qh2YQRzVy24O03KglHI="; + }) + + # More robust dbus address reading + (fetchpatch { + url = "https://salsa.debian.org/debian-ayatana-team/libqtdbustest/-/raw/7e55c79cd032c702b30d834c1fb0b65661fc6eeb/debian/patches/1004_make-reading-address-from-dbus-daemon-more-robust.patch"; + hash = "sha256-hq8pdducp/udxoGWGt1dgL/7VHcbJO/oT1dOY1zew8M="; + }) + ]; + + strictDeps = true; + + postPatch = lib.optionalString (!finalAttrs.doCheck) '' + # Don't build tests when we're not running them + sed -i -e '/add_subdirectory(tests)/d' CMakeLists.txt + ''; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = [ + cmake-extras + qtbase + ]; + + nativeCheckInputs = [ + dbus + dbus-test-runner + procps + (python3.withPackages (ps: with ps; [ + python-dbusmock + ])) + ]; + + checkInputs = [ + gtest + ]; + + dontWrapQtApps = true; + + doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; + + enableParallelChecking = false; + + checkPhase = '' + runHook preCheck + + dbus-test-runner -t make -p test -p "''${enableParallelChecking:+-j $NIX_BUILD_CORES}" + + runHook postCheck + ''; + + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + + meta = with lib; { + description = "Library for testing DBus interactions using Qt"; + homepage = "https://launchpad.net/libqtdbustest"; + license = licenses.lgpl3Only; + platforms = platforms.unix; + maintainers = teams.lomiri.members; + mainProgram = "qdbus-simple-test-runner"; + pkgConfigModules = [ + "libqtdbustest-1" + ]; + }; +}) diff --git a/nixpkgs/pkgs/development/libraries/libqtdbustest/less-pedantic-process-finding.patch b/nixpkgs/pkgs/development/libraries/libqtdbustest/less-pedantic-process-finding.patch new file mode 100644 index 000000000000..b50fc5d1e476 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libqtdbustest/less-pedantic-process-finding.patch @@ -0,0 +1,86 @@ +diff '--color=auto' -ur '--color=never' a/tests/libqtdbustest/TestDBusTestRunner.cpp b/tests/libqtdbustest/TestDBusTestRunner.cpp +--- a/tests/libqtdbustest/TestDBusTestRunner.cpp 2023-01-20 21:36:16.948292559 +0100 ++++ b/tests/libqtdbustest/TestDBusTestRunner.cpp 2023-01-20 21:55:40.554530221 +0100 +@@ -44,7 +44,7 @@ + TEST_F(TestDBusTestRunner, StartsSessionService) { + QSharedPointer<QProcessDBusService> process( + new QProcessDBusService("test.session.name", +- QDBusConnection::SessionBus, "/usr/bin/python3", ++ QDBusConnection::SessionBus, "python3", + QStringList() << "-m" << "dbusmock" << "test.session.name" + << "/test/object" << "test.Interface")); + +@@ -58,15 +58,14 @@ + pgrep.waitForFinished(); + pgrep.waitForReadyRead(); + +- EXPECT_EQ( +- "/usr/bin/python3 -m dbusmock test.session.name /test/object test.Interface", +- QString::fromUtf8(pgrep.readAll().trimmed()).toStdString()); ++ EXPECT_TRUE( ++ pgrep.readAll().contains("python3 -m dbusmock test.session.name /test/object test.Interface")); + } + + TEST_F(TestDBusTestRunner, StartsSystemService) { + QSharedPointer<QProcessDBusService> process( + new QProcessDBusService("test.system.name", +- QDBusConnection::SystemBus, "/usr/bin/python3", ++ QDBusConnection::SystemBus, "python3", + QStringList() << "-m" << "dbusmock" << "-s" + << "test.system.name" << "/test/object" + << "test.Interface")); +@@ -81,9 +80,8 @@ + pgrep.waitForFinished(); + pgrep.waitForReadyRead(); + +- EXPECT_EQ( +- "/usr/bin/python3 -m dbusmock -s test.system.name /test/object test.Interface", +- QString::fromUtf8(pgrep.readAll().trimmed()).toStdString()); ++ EXPECT_TRUE( ++ pgrep.readAll().contains("python3 -m dbusmock -s test.system.name /test/object test.Interface")); + } + + TEST_F(TestDBusTestRunner, SetsEnvironmentVariables) { +diff '--color=auto' -ur '--color=never' a/tests/libqtdbustest/TestQProcessDBusService.cpp b/tests/libqtdbustest/TestQProcessDBusService.cpp +--- a/tests/libqtdbustest/TestQProcessDBusService.cpp 2023-01-20 21:36:16.948292559 +0100 ++++ b/tests/libqtdbustest/TestQProcessDBusService.cpp 2023-01-20 21:54:34.633384937 +0100 +@@ -45,7 +45,7 @@ + + TEST_F(TestQProcessDBusService, WaitsForServiceAppeared) { + QProcessDBusService process("test.name", QDBusConnection::SessionBus, +- "/usr/bin/python3", ++ "python3", + QStringList() << "-m" << "dbusmock" << "test.name" << "/test/object" + << "test.Interface"); + +@@ -58,14 +58,13 @@ + pgrep.waitForFinished(); + pgrep.waitForReadyRead(); + +- EXPECT_EQ( +- "/usr/bin/python3 -m dbusmock test.name /test/object test.Interface", +- QString::fromUtf8(pgrep.readAll().trimmed()).toStdString()); ++ EXPECT_TRUE( ++ pgrep.readAll().contains("python3 -m dbusmock test.name /test/object test.Interface")); + } + + TEST_F(TestQProcessDBusService, ThrowsErrorForFailToStart) { + QProcessDBusService process("test.name", QDBusConnection::SessionBus, +- "/usr/bin/python3", ++ "python3", + QStringList() << "-m" << "dbusmock" << "not.test.name" + << "/test/object" << "test.Interface"); + +diff '--color=auto' -ur '--color=never' a/tests/libqtdbustest/TestSuicidalProcess.cpp b/tests/libqtdbustest/TestSuicidalProcess.cpp +--- a/tests/libqtdbustest/TestSuicidalProcess.cpp 2023-01-20 21:36:16.948292559 +0100 ++++ b/tests/libqtdbustest/TestSuicidalProcess.cpp 2023-01-20 21:55:07.219951081 +0100 +@@ -51,8 +51,7 @@ + pgrep.waitForFinished(); + pgrep.waitForReadyRead(); + +- EXPECT_EQ("sleep 5", +- QString::fromUtf8(pgrep.readAll().trimmed()).toStdString()); ++ EXPECT_TRUE(pgrep.readAll().contains("sleep 5")); + } + + } // namespace |