mu-test: add valgrind check

Make it a bit easier to skip some tests when running under valgrind.
This commit is contained in:
Dirk-Jan C. Binnema
2025-05-24 19:18:10 +03:00
parent 782e6cbe05
commit 452969355c
3 changed files with 26 additions and 0 deletions

View File

@ -93,6 +93,7 @@ $(BUILDDIR_VALGRIND):
vg_opts:=--enable-debuginfod=no --leak-check=full --error-exitcode=1 vg_opts:=--enable-debuginfod=no --leak-check=full --error-exitcode=1
test-valgrind: export G_SLICE=always-malloc test-valgrind: export G_SLICE=always-malloc
test-valgrind: export G_DEBUG=gc-friendly test-valgrind: export G_DEBUG=gc-friendly
test-valgrind: export MU_VALGRIND=memcheck
test-valgrind: build-valgrind test-valgrind: build-valgrind
@$(MESON) test -C $(BUILDDIR_VALGRIND) \ @$(MESON) test -C $(BUILDDIR_VALGRIND) \
--wrap="$(VALGRIND) $(vg_opts)" \ --wrap="$(VALGRIND) $(vg_opts)" \
@ -102,6 +103,7 @@ check-valgrind: test-valgrind
# we do _not_ pass helgrind; but this seems to be a false-alarm # we do _not_ pass helgrind; but this seems to be a false-alarm
# https://gitlab.gnome.org/GNOME/glib/-/issues/2662 # https://gitlab.gnome.org/GNOME/glib/-/issues/2662
test-helgrind: export MU_VALGRIND=helgrind
test-helgrind: $(BUILDDIR_VALGRIND) test-helgrind: $(BUILDDIR_VALGRIND)
$(MESON) -C $(BUILDDIR_VALGRIND) test \ $(MESON) -C $(BUILDDIR_VALGRIND) test \
--wrap="$(VALGRIND) --tool=helgrind --error-exitcode=1" \ --wrap="$(VALGRIND) --tool=helgrind --error-exitcode=1" \

View File

@ -42,6 +42,13 @@ Mu::mu_test_mu_hacker()
{ {
return !!g_getenv("MU_HACKER"); return !!g_getenv("MU_HACKER");
} }
bool
Mu::mu_test_mu_valgrind()
{
return !!g_getenv("MU_VALGRIND");
}
/* LCOV_EXCL_STOP*/ /* LCOV_EXCL_STOP*/

View File

@ -43,6 +43,23 @@ void mu_test_init(int *argc, char ***argv);
*/ */
bool mu_test_mu_hacker(); bool mu_test_mu_hacker();
/**
* Are we running under Valgrind?
*
* @return true or false
*/
bool mu_test_mu_valgrind();
/**
* Skip test when running under valgrind
*/
#define mu_test_skip_valgrind_return() do { \
if (mu_test_mu_valgrind()) { \
g_test_skip("skip (valgrind not supported)"); \
return; \
} \
} while(0)
/** /**
* set the timezone * set the timezone
* *