test: skip test-path on Salsa CI

Salsa is the Debian git forge. In the package build environment test-path
always fails as we cannot set up cgroups and so the path unit fails to
start. Skip the test in that environment.

Unfortunately meson doesn't allow to skip individual tests by name.
This commit is contained in:
Luca Boccassi
2023-08-12 15:15:55 +01:00
committed by Luca Boccassi
parent f7590e3cb4
commit a0b0b670ab
2 changed files with 17 additions and 8 deletions

View File

@@ -339,6 +339,8 @@ const char *ci_environment(void) {
return (ans = "github-actions");
if (getenv("AUTOPKGTEST_ARTIFACTS") || getenv("AUTOPKGTEST_TMP"))
return (ans = "autopkgtest");
if (getenv("SALSA_CI_IMAGES"))
return (ans = "salsa-ci");
FOREACH_STRING(var, "CI", "CONTINOUS_INTEGRATION") {
/* Those vars are booleans according to Semaphore and Travis docs:

View File

@@ -100,17 +100,24 @@ static int _check_states(unsigned line,
service_state_to_string(service->state),
service_result_to_string(service->result));
if (service->state == SERVICE_FAILED &&
service->main_exec_status.status == EXIT_CGROUP &&
!ci_environment())
if (service->state == SERVICE_FAILED && service->main_exec_status.status == EXIT_CGROUP) {
const char *ci = ci_environment();
/* On a general purpose system we may fail to start the service for reasons which are
* not under our control: permission limits, resource exhaustion, etc. Let's skip the
* test in those cases. On developer machines we require proper setup. */
return log_notice_errno(SYNTHETIC_ERRNO(ECANCELED),
"Failed to start service %s, aborting test: %s/%s",
UNIT(service)->id,
service_state_to_string(service->state),
service_result_to_string(service->result));
if (!ci)
return log_notice_errno(SYNTHETIC_ERRNO(ECANCELED),
"Failed to start service %s, aborting test: %s/%s",
UNIT(service)->id,
service_state_to_string(service->state),
service_result_to_string(service->result));
/* On Salsa we can't setup cgroups so the unit always fails. The test checks if it
* can but continues if it cannot at the beginning, but on Salsa it fails here. */
if (streq(ci, "salsa-ci"))
exit(EXIT_TEST_SKIP);
}
if (n >= end) {
log_error("Test timeout when testing %s", UNIT(path)->id);