}
int manager_new(UnitFileScope scope, unsigned test_run_flags, Manager **_m) {
- Manager *m;
+ _cleanup_(manager_freep) Manager *m = NULL;
int r;
assert(_m);
r = manager_default_environment(m);
if (r < 0)
- goto fail;
+ return r;
r = hashmap_ensure_allocated(&m->units, &string_hash_ops);
if (r < 0)
- goto fail;
+ return r;
r = hashmap_ensure_allocated(&m->jobs, NULL);
if (r < 0)
- goto fail;
+ return r;
r = hashmap_ensure_allocated(&m->cgroup_unit, &path_hash_ops);
if (r < 0)
- goto fail;
+ return r;
r = hashmap_ensure_allocated(&m->watch_bus, &string_hash_ops);
if (r < 0)
- goto fail;
+ return r;
r = sd_event_default(&m->event);
if (r < 0)
- goto fail;
+ return r;
r = manager_setup_run_queue(m);
if (r < 0)
- goto fail;
+ return r;
r = manager_setup_signals(m);
if (r < 0)
- goto fail;
+ return r;
r = manager_setup_cgroup(m);
if (r < 0)
- goto fail;
+ return r;
r = manager_setup_time_change(m);
if (r < 0)
- goto fail;
+ return r;
r = manager_setup_sigchld_event_source(m);
if (r < 0)
- goto fail;
+ return r;
m->udev = udev_new();
- if (!m->udev) {
- r = -ENOMEM;
- goto fail;
- }
+ if (!m->udev)
+ return -ENOMEM;
r = manager_setup_prefix(m);
if (r < 0)
- goto fail;
+ return r;
if (MANAGER_IS_SYSTEM(m) && test_run_flags == 0) {
r = mkdir_label("/run/systemd/units", 0755);
if (r < 0 && r != -EEXIST)
- goto fail;
+ return r;
}
m->taint_usr =
* since they might have gotten serialized across the reexec. */
*_m = m;
+ m = NULL;
return 0;
-
-fail:
- manager_free(m);
- return r;
}
static int manager_setup_notify(Manager *m) {
int manager_new(UnitFileScope scope, unsigned test_run_flags, Manager **m);
Manager* manager_free(Manager *m);
+DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
void manager_enumerate(Manager *m);
int manager_startup(Manager *m, FILE *serialization, FDSet *fds);
_cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
CGroupContext *cc = NULL;
_cleanup_(bpf_program_unrefp) BPFProgram *p = NULL;
- Manager *m = NULL;
+ _cleanup_(manager_freep) Manager *m = NULL;
Unit *u;
char log_buf[65535];
int r;
unit_dump(u, stdout, NULL);
r = bpf_firewall_compile(u);
- if (IN_SET(r, -ENOTTY, -ENOSYS, -EPERM )) {
+ if (IN_SET(r, -ENOTTY, -ENOSYS, -EPERM ))
/* Kernel doesn't support the necessary bpf bits, or masked out via seccomp? */
- manager_free(m);
return EXIT_TEST_SKIP;
- }
assert_se(r >= 0);
assert(u->ip_bpf_ingress);
assert_se(SERVICE(u)->exec_command[SERVICE_EXEC_START]->command_next->exec_status.code != CLD_EXITED ||
SERVICE(u)->exec_command[SERVICE_EXEC_START]->command_next->exec_status.status != EXIT_SUCCESS);
- manager_free(m);
-
return 0;
}
static int test_cgroup_mask(void) {
_cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
- Manager *m = NULL;
+ _cleanup_(manager_freep) Manager *m = NULL;
Unit *son, *daughter, *parent, *root, *grandchild, *parent_deep;
FILE *serial = NULL;
FDSet *fdset = NULL;
assert_se(unit_get_target_mask(parent) == ((CGROUP_MASK_CPU | CGROUP_MASK_CPUACCT | CGROUP_MASK_IO | CGROUP_MASK_BLKIO | CGROUP_MASK_MEMORY) & m->cgroup_supported));
assert_se(unit_get_target_mask(root) == ((CGROUP_MASK_CPU | CGROUP_MASK_CPUACCT | CGROUP_MASK_IO | CGROUP_MASK_BLKIO | CGROUP_MASK_MEMORY) & m->cgroup_supported));
- manager_free(m);
-
return 0;
}
int main(int argc, char *argv[]) {
_cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
_cleanup_(sd_bus_error_free) sd_bus_error err = SD_BUS_ERROR_NULL;
- Manager *m = NULL;
+ _cleanup_(manager_freep) Manager *m = NULL;
Unit *a = NULL, *b = NULL, *c = NULL, *d = NULL, *e = NULL, *g = NULL, *h = NULL;
FILE *serial = NULL;
FDSet *fdset = NULL;
assert_se(!hashmap_get(a->dependencies[UNIT_PROPAGATES_RELOAD_TO], c));
assert_se(!hashmap_get(c->dependencies[UNIT_RELOAD_PROPAGATED_FROM], a));
- manager_free(m);
-
return 0;
}
static int run_tests(UnitFileScope scope, const test_function_t *tests) {
const test_function_t *test = NULL;
- Manager *m = NULL;
+ _cleanup_(manager_freep) Manager *m = NULL;
int r;
assert_se(tests);
for (test = tests; test && *test; test++)
(*test)(m);
- manager_free(m);
-
return 0;
}
int main(int argc, char *argv[]) {
_cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
- Manager *m = NULL;
+ _cleanup_(manager_freep) Manager *m = NULL;
Unit *idle_ok, *idle_bad, *rr_ok, *rr_bad, *rr_sched;
Service *ser;
FILE *serial = NULL;
assert_se(ser->exec_context.cpu_sched_policy == SCHED_RR);
assert_se(ser->exec_context.cpu_sched_priority == 99);
- manager_free(m);
-
return EXIT_SUCCESS;
}
ExecCommand *c = NULL, *c1;
const char *ccc;
- Manager *m = NULL;
+ _cleanup_(manager_freep) Manager *m = NULL;
Unit *u = NULL;
r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_MINIMAL, &m);
exec_command_free_list(c);
unit_free(u);
- manager_free(m);
}
static void test_config_parse_log_extra_fields(void) {
int r;
- Manager *m = NULL;
+ _cleanup_(manager_freep) Manager *m = NULL;
Unit *u = NULL;
ExecContext c = {};
exec_context_free_log_extra_fields(&c);
unit_free(u);
- manager_free(m);
log_info("/* %s – bye */", __func__);
}
}
static int test_unit_printf(void) {
- Manager *m = NULL;
+ _cleanup_free_ char *mid = NULL, *bid = NULL, *host = NULL, *uid = NULL, *user = NULL, *shell = NULL, *home = NULL;
+ _cleanup_(manager_freep) Manager *m = NULL;
Unit *u, *u2;
int r;
- _cleanup_free_ char *mid = NULL, *bid = NULL, *host = NULL, *uid = NULL, *user = NULL, *shell = NULL, *home = NULL;
-
assert_se(specifier_machine_id('m', NULL, NULL, &mid) >= 0 && mid);
assert_se(specifier_boot_id('b', NULL, NULL, &bid) >= 0 && bid);
assert_se(host = gethostname_malloc());
expect(u2, "%b", bid);
expect(u2, "%H", host);
expect(u2, "%t", "/run/user/*");
-
- manager_free(m);
#undef expect
return 0;
int main(int argc, char *argv[]) {
_cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
+ _cleanup_(manager_freep) Manager *m = NULL;
Unit *a, *b, *c, *u;
- Manager *m;
int r;
log_set_max_level(LOG_DEBUG);
unit_unwatch_pid(c, 4711);
assert_se(manager_get_unit_by_pid(m, 4711) == NULL);
- manager_free(m);
-
return 0;
}