Avoid running development-related tests in c++utilities build

This commit is contained in:
Martchus 2023-11-22 13:23:52 +01:00
parent 71edcb87fe
commit 047fa83d42
3 changed files with 107 additions and 3 deletions

View File

@ -0,0 +1,60 @@
From a1bed55eda18b127750c7bff97f97474cd5c3ce9 Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Wed, 22 Nov 2023 12:56:30 +0100
Subject: [PATCH 1/2] Enable tidy tests only by default via
`ENABLE_DEVEL_DEFAULTS`
This test is only relevant for development. Additionally, the behavior of
clang-format differs slightly between versions so this can really cause
needlessly failures.
---
cmake/modules/BasicConfig.cmake | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/cmake/modules/BasicConfig.cmake b/cmake/modules/BasicConfig.cmake
index 6a9d65a..dc9a696 100644
--- a/cmake/modules/BasicConfig.cmake
+++ b/cmake/modules/BasicConfig.cmake
@@ -403,8 +403,14 @@ if (NOT META_NO_TIDY)
if (CMAKE_FORMAT_BIN)
set(CMAKE_FORMAT_ENABLED_DEFAULT ON)
endif ()
+ set(TIDY_TESTS_ENABLED_DEFAULT OFF)
+ if (ENABLE_DEVEL_DEFAULTS AND CLANG_FORMAT_ENABLED_DEFAULT)
+ set(TIDY_TESTS_ENABLED_DEFAULT ON)
+ endif ()
option(CLANG_FORMAT_ENABLED "enables creation of tidy target using clang-format" "${CLANG_FORMAT_ENABLED_DEFAULT}")
option(CMAKE_FORMAT_ENABLED "enables creation of tidy target using cmake-format" "${CMAKE_FORMAT_ENABLED_DEFAULT}")
+ option(TIDY_TESTS_ENABLED "enables tests for checking whether code is well-formatted using clang-format"
+ "${TIDY_TESTS_ENABLED_DEFAULT}")
endif ()
# add target for tidying with clang-format
@@ -427,14 +433,16 @@ if (NOT META_NO_TIDY
add_dependencies(tidy "${META_TARGET_NAME}_tidy")
# also add a test to verify whether sources are tidy
- add_test(
- NAME "${META_TARGET_NAME}_tidy_test"
- COMMAND "${CLANG_FORMAT_BIN}" -output-replacements-xml -style=file ${FORMATABLE_FILES}
- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
- list(APPEND CHECK_TARGET_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format")
- set_tests_properties(
- "${META_TARGET_NAME}_tidy_test" PROPERTIES FAIL_REGULAR_EXPRESSION "<replacement.*>.*</replacement>" REQUIRED_FILES
- "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format")
+ if (TIDY_TESTS_ENABLED)
+ add_test(
+ NAME "${META_TARGET_NAME}_tidy_test"
+ COMMAND "${CLANG_FORMAT_BIN}" -output-replacements-xml -style=file ${FORMATABLE_FILES}
+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
+ list(APPEND CHECK_TARGET_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format")
+ set_tests_properties(
+ "${META_TARGET_NAME}_tidy_test" PROPERTIES FAIL_REGULAR_EXPRESSION "<replacement.*>.*</replacement>"
+ REQUIRED_FILES "${CMAKE_CURRENT_SOURCE_DIR}/.clang-format")
+ endif ()
endif ()
# add target for tidying with cmake-format
--
2.42.1

View File

@ -0,0 +1,35 @@
From 8fb7de6fe0ce506d1521f586ab841266b2783ef8 Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Wed, 22 Nov 2023 12:59:20 +0100
Subject: [PATCH 2/2] Enable AppStream tests only by default via
`ENABLE_DEVEL_DEFAULTS`
This test already fails on deprecations so it is likely not a good idea to
run it in general as it would cause needless failures.
---
cmake/modules/AppUtilities.cmake | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/cmake/modules/AppUtilities.cmake b/cmake/modules/AppUtilities.cmake
index 9a46b48..2272431 100644
--- a/cmake/modules/AppUtilities.cmake
+++ b/cmake/modules/AppUtilities.cmake
@@ -80,9 +80,14 @@ function (add_appstream_file)
COMPONENT appimage)
# add test
+ set(APPSTREAM_TESTS_ENABLED_DEFAULT OFF)
find_program(APPSTREAMCLI_BIN "appstreamcli")
+ if (ENABLE_DEVEL_DEFAULTS AND APPSTREAMCLI_BIN)
+ set(APPSTREAM_TESTS_ENABLED_DEFAULT ON)
+ endif ()
+ option(APPSTREAM_TESTS_ENABLED "enables tests for checking whether AppStream files" "${APPSTREAM_TESTS_ENABLED_DEFAULT}")
if (NOT APPSTREAMCLI_BIN)
- message(STATUS "Could not find appstreamcli; won't add test/target to validate appstream files")
+ message(FATAL_ERROR "Unable to validate appstreamcli files; appstreamcli not found")
else ()
add_test(NAME "${META_TARGET_NAME}_appstream_validation" COMMAND "${APPSTREAMCLI_BIN}" validate "${APPSTREAM_FILE}")
endif ()
--
2.42.1

View File

@ -6,7 +6,7 @@
_reponame=cpp-utilities
pkgname=c++utilities
pkgver=5.24.2
pkgrel=1
pkgrel=2
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities'
license=('GPL')
@ -16,8 +16,17 @@ makedepends=('cmake' 'ninja')
checkdepends=('cppunit')
provides=(libc++utilities.so)
url="https://github.com/Martchus/${_reponame}"
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('46e79313900a8cbb7a3c0211fcc0cd07c2c8a6c2bcaeb11aec7fc706dc5914b1')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz"
0001-Enable-tidy-tests-only-by-default-via-ENABLE_DEVEL_D.patch
0002-Enable-AppStream-tests-only-by-default-via-ENABLE_DE.patch)
sha256sums=('46e79313900a8cbb7a3c0211fcc0cd07c2c8a6c2bcaeb11aec7fc706dc5914b1'
SKIP SKIP)
prepare() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
patch -p1 -i ../0001-Enable-tidy-tests-only-by-default-via-ENABLE_DEVEL_D.patch
patch -p1 -i ../0002-Enable-AppStream-tests-only-by-default-via-ENABLE_DE.patch
}
build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"