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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
gboolean
|
||||||
test_utils_init (TestFlags requirement_flags,
|
test_utils_init (TestFlags requirement_flags,
|
||||||
TestFlags known_failure_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");
|
g_print ("WARNING: Missing required feature[s] for this test\n");
|
||||||
else if (known_failure)
|
else if (known_failure)
|
||||||
g_print ("WARNING: Test is known to fail\n");
|
g_print ("WARNING: Test is known to fail\n");
|
||||||
|
|
||||||
|
return (!missing_requirement && !known_failure);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -68,7 +68,7 @@ typedef enum
|
|||||||
extern CoglContext *test_ctx;
|
extern CoglContext *test_ctx;
|
||||||
extern CoglFramebuffer *test_fb;
|
extern CoglFramebuffer *test_fb;
|
||||||
|
|
||||||
void
|
gboolean
|
||||||
test_utils_init (TestFlags requirement_flags,
|
test_utils_init (TestFlags requirement_flags,
|
||||||
TestFlags known_failure_flags);
|
TestFlags known_failure_flags);
|
||||||
|
|
||||||
|
@ -15,11 +15,18 @@
|
|||||||
G_STMT_START { \
|
G_STMT_START { \
|
||||||
if (strcmp (#FUNC, argv[1]) == 0) \
|
if (strcmp (#FUNC, argv[1]) == 0) \
|
||||||
{ \
|
{ \
|
||||||
test_utils_init (REQUIREMENTS, KNOWN_FAIL_REQUIREMENTS); \
|
if (test_utils_init (REQUIREMENTS, KNOWN_FAIL_REQUIREMENTS) \
|
||||||
|
|| g_getenv ("COGL_TEST_TRY_EVERYTHING") != NULL) \
|
||||||
|
{ \
|
||||||
FUNC (); \
|
FUNC (); \
|
||||||
test_utils_fini (); \
|
test_utils_fini (); \
|
||||||
exit (0); \
|
exit (0); \
|
||||||
} \
|
} \
|
||||||
|
else \
|
||||||
|
{ \
|
||||||
|
exit (1); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
} G_STMT_END
|
} G_STMT_END
|
||||||
|
|
||||||
#define UNPORTED_TEST(FUNC)
|
#define UNPORTED_TEST(FUNC)
|
||||||
|
@ -36,10 +36,16 @@ main (int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
test_utils_init (unit_test->requirement_flags,
|
if (test_utils_init (unit_test->requirement_flags,
|
||||||
unit_test->known_failure_flags);
|
unit_test->known_failure_flags)
|
||||||
|
|| g_getenv ("COGL_TEST_TRY_EVERYTHING") != NULL)
|
||||||
|
{
|
||||||
unit_test->run ();
|
unit_test->run ();
|
||||||
test_utils_fini ();
|
test_utils_fini ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user