From a05c130435d559bcea8dd213294ae7e8159b1d51 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 29 May 2024 00:44:23 -0400 Subject: [PATCH] gnu: jami: Work toward reinstating functional tests. * gnu/packages/patches/jami-enable-testing.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/jami.scm (jami) [source]: Apply it. [phases] : Use 'ctest' to run tests. Update comment explaining why the QML test suite is disabled. Change-Id: I5c9333a3b5064ecec9a2dd4fe13ae597d5354b7c --- gnu/local.mk | 1 + gnu/packages/jami.scm | 25 +++++++++++------- .../patches/jami-enable-testing.patch | 26 +++++++++++++++++++ 3 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 gnu/packages/patches/jami-enable-testing.patch diff --git a/gnu/local.mk b/gnu/local.mk index e9e0f184f4..89592f832f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1505,6 +1505,7 @@ dist_patch_DATA = \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/isync-openssl3-fix.patch \ %D%/packages/patches/itk-snap-alt-glibc-compat.patch \ + %D%/packages/patches/jami-enable-testing.patch \ %D%/packages/patches/jami-libjami-headers-search.patch \ %D%/packages/patches/jami-qwindowkit.patch \ %D%/packages/patches/jami-skip-tests-requiring-internet.patch \ diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index cb5995cc14..6f42b1ef67 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -232,6 +232,7 @@ (define-public jami (base32 "1wqi50n80khyngj48brc8wg3m6jq471h9gm62yxpj4f8z5j81ncd")) (patches (search-patches + "jami-enable-testing.patch" "jami-libjami-headers-search.patch" "jami-qwindowkit.patch" "jami-skip-tests-requiring-internet.patch" @@ -276,22 +277,28 @@ (define-public jami ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1504). (setenv "XDG_SESSION_TYPE" "x11"))) (replace 'check - (lambda* (#:key tests? #:allow-other-keys) + (lambda* (#:key tests? parallel-tests? #:allow-other-keys) (when tests? (setenv "QT_QPA_PLATFORM" "offscreen") (setenv "QT_QUICK_BACKEND" "software") ;; The tests require a writable HOME. (setenv "HOME" "/tmp") - (display "Running unit tests...\n") - (invoke "tests/unit_tests") + (let ((ctest-args + (list "-V" "--output-on-failure" + "-j" (if parallel-tests? + (number->string (parallel-job-count)) + "1")))) - ;; The qml_tests suite is not run, as it currently exits with - ;; an unclear status of 1 (see: - ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1605). - ;; (display "Running functional tests...\n") - ;; (invoke "tests/qml_tests") - )))))) + (display "Running unit tests...\n") + (apply invoke "ctest" "-R" "Unit_Tests" ctest-args) + + ;; The QML test suite is currently disabled as it segfaults + ;; (see: + ;; https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1631). + ;; (display "Running functional tests...\n") (apply invoke + ;; "ctest" "-R" "Qml_Tests" ctest-args) + ))))))) (native-inputs (list googletest pkg-config diff --git a/gnu/packages/patches/jami-enable-testing.patch b/gnu/packages/patches/jami-enable-testing.patch new file mode 100644 index 0000000000..3e27a8def9 --- /dev/null +++ b/gnu/packages/patches/jami-enable-testing.patch @@ -0,0 +1,26 @@ +Fix an issue where ctest wouldn't find the qml test files. +Upstream status: forwarded to jami@gnu.org + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e802357f..75cffda2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -884,5 +884,6 @@ qt_finalize_executable(${PROJECT_NAME}) + # tests + if(BUILD_TESTING) + message("Add Jami tests") ++ enable_testing() + add_subdirectory(${TESTS_DIR}) + endif() +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index 37796e52..06008ccf 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -1,6 +1,6 @@ + cmake_minimum_required(VERSION 3.16) + +-enable_testing(true) ++enable_testing() + + set(QT_TESTING_MODULES + ${QT_MODULES}