It will be used for testing nss modules.
causes all non-matching test functions to be skipped. Only applies to tests
using our regular test boilerplate.
+* `$SYSTEMD_ASSERT_RETURN_IS_CRITICAL` — Takes a boolean to control if
+ `assert_return()` and friends call `abort()`.
+
fuzzers:
* `$SYSTEMD_FUZZ_OUTPUT` — A boolean that specifies whether to write output to
#include <stdlib.h>
#include "assert-util.h"
+#include "env-util.h"
#include "errno-util.h"
#include "log.h"
assert_return_is_critical = b;
}
+void log_set_assert_return_is_critical_from_env(void) {
+ static int cached = INT_MIN;
+ int r;
+
+ if (cached == INT_MIN) {
+ r = secure_getenv_bool("SYSTEMD_ASSERT_RETURN_IS_CRITICAL");
+ if (r < 0 && r != -ENXIO)
+ log_debug_errno(r, "Failed to parse $SYSTEMD_ASSERT_RETURN_IS_CRITICAL, ignoring: %m");
+
+ cached = r;
+ }
+
+ if (cached >= 0)
+ log_set_assert_return_is_critical(cached);
+}
+
bool log_get_assert_return_is_critical(void) {
return assert_return_is_critical;
}
/* Logging for various assertions */
void log_set_assert_return_is_critical(bool b);
+void log_set_assert_return_is_critical_from_env(void);
bool log_get_assert_return_is_critical(void) _pure_;
void log_assert_failed_return(const char *text, const char *file, int line, const char *func);