mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 15:40:41 -05:00
cogl tests: Normally skip tests that are not expected to succeed
If a test is not expected to succeed, then running it could be considered to be a waste of resources, particularly if the failure might manifest as an indefinite hang (see cogl!11), or if the test is likely to dump core and trigger "expensive" crash-reporting mechanisms like systemd-coredump, corekeeper, abrt or apport. Skip the tests that are expected to fail. They can still be requested via an environment variable, which can be set after fixing a bug to check which tests are now passing. Originally cogl!15, adapted for mutter's fork of cogl to use gboolean instead of CoglBool. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1272 Signed-off-by: Simon McVittie <smcv@debian.org>
This commit is contained in:
parent
720360b07a
commit
59a2bff8e2
@ -77,7 +77,7 @@ is_boolean_env_set (const char *variable)
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
gboolean
|
||||
test_utils_init (TestFlags requirement_flags,
|
||||
TestFlags known_failure_flags)
|
||||
{
|
||||
@ -156,6 +156,8 @@ test_utils_init (TestFlags requirement_flags,
|
||||
g_print ("WARNING: Missing required feature[s] for this test\n");
|
||||
else if (known_failure)
|
||||
g_print ("WARNING: Test is known to fail\n");
|
||||
|
||||
return (!missing_requirement && !known_failure);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -68,7 +68,7 @@ typedef enum
|
||||
extern CoglContext *test_ctx;
|
||||
extern CoglFramebuffer *test_fb;
|
||||
|
||||
void
|
||||
gboolean
|
||||
test_utils_init (TestFlags requirement_flags,
|
||||
TestFlags known_failure_flags);
|
||||
|
||||
|
@ -15,10 +15,17 @@
|
||||
G_STMT_START { \
|
||||
if (strcmp (#FUNC, argv[1]) == 0) \
|
||||
{ \
|
||||
test_utils_init (REQUIREMENTS, KNOWN_FAIL_REQUIREMENTS); \
|
||||
FUNC (); \
|
||||
test_utils_fini (); \
|
||||
exit (0); \
|
||||
if (test_utils_init (REQUIREMENTS, KNOWN_FAIL_REQUIREMENTS) \
|
||||
|| g_getenv ("COGL_TEST_TRY_EVERYTHING") != NULL) \
|
||||
{ \
|
||||
FUNC (); \
|
||||
test_utils_fini (); \
|
||||
exit (0); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
exit (1); \
|
||||
} \
|
||||
} \
|
||||
} G_STMT_END
|
||||
|
||||
|
@ -36,10 +36,16 @@ main (int argc, char **argv)
|
||||
return 1;
|
||||
}
|
||||
|
||||
test_utils_init (unit_test->requirement_flags,
|
||||
unit_test->known_failure_flags);
|
||||
unit_test->run ();
|
||||
test_utils_fini ();
|
||||
|
||||
return 0;
|
||||
if (test_utils_init (unit_test->requirement_flags,
|
||||
unit_test->known_failure_flags)
|
||||
|| g_getenv ("COGL_TEST_TRY_EVERYTHING") != NULL)
|
||||
{
|
||||
unit_test->run ();
|
||||
test_utils_fini ();
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user