Introduce _cleanup_(manager_freep)
This commit is contained in:
parent
9aa2e409bc
commit
c70cac548a
|
@ -667,7 +667,7 @@ static int manager_setup_sigchld_event_source(Manager *m) {
|
|||
}
|
||||
|
||||
int manager_new(UnitFileScope scope, unsigned test_run_flags, Manager **_m) {
|
||||
Manager *m;
|
||||
_cleanup_(manager_freep) Manager *m = NULL;
|
||||
int r;
|
||||
|
||||
assert(_m);
|
||||
|
@ -729,62 +729,60 @@ int manager_new(UnitFileScope scope, unsigned test_run_flags, Manager **_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 =
|
||||
|
@ -795,11 +793,8 @@ int manager_new(UnitFileScope scope, unsigned test_run_flags, Manager **_m) {
|
|||
* 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) {
|
||||
|
|
|
@ -379,6 +379,7 @@ struct Manager {
|
|||
|
||||
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);
|
||||
|
|
|
@ -41,7 +41,7 @@ int main(int argc, char *argv[]) {
|
|||
_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;
|
||||
|
@ -128,11 +128,9 @@ int main(int argc, char *argv[]) {
|
|||
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);
|
||||
|
@ -167,7 +165,5 @@ int main(int argc, char *argv[]) {
|
|||
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;
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
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;
|
||||
|
@ -114,8 +114,6 @@ static int test_cgroup_mask(void) {
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
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;
|
||||
|
@ -143,7 +143,5 @@ int main(int argc, char *argv[]) {
|
|||
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;
|
||||
}
|
||||
|
|
|
@ -623,7 +623,7 @@ static void test_exec_standardinput(Manager *m) {
|
|||
|
||||
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);
|
||||
|
@ -639,8 +639,6 @@ static int run_tests(UnitFileScope scope, const test_function_t *tests) {
|
|||
for (test = tests; test && *test; test++)
|
||||
(*test)(m);
|
||||
|
||||
manager_free(m);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
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;
|
||||
|
@ -98,7 +98,5 @@ int main(int argc, char *argv[]) {
|
|||
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;
|
||||
}
|
||||
|
|
|
@ -113,7 +113,7 @@ static void test_config_parse_exec(void) {
|
|||
|
||||
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);
|
||||
|
@ -443,7 +443,6 @@ static void test_config_parse_exec(void) {
|
|||
exec_command_free_list(c);
|
||||
|
||||
unit_free(u);
|
||||
manager_free(m);
|
||||
}
|
||||
|
||||
static void test_config_parse_log_extra_fields(void) {
|
||||
|
@ -461,7 +460,7 @@ 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 = {};
|
||||
|
||||
|
@ -508,7 +507,6 @@ static void test_config_parse_log_extra_fields(void) {
|
|||
exec_context_free_log_extra_fields(&c);
|
||||
|
||||
unit_free(u);
|
||||
manager_free(m);
|
||||
|
||||
log_info("/* %s – bye */", __func__);
|
||||
}
|
||||
|
|
|
@ -199,12 +199,11 @@ static void test_unit_name_mangle(void) {
|
|||
}
|
||||
|
||||
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());
|
||||
|
@ -276,8 +275,6 @@ static int test_unit_printf(void) {
|
|||
expect(u2, "%b", bid);
|
||||
expect(u2, "%H", host);
|
||||
expect(u2, "%t", "/run/user/*");
|
||||
|
||||
manager_free(m);
|
||||
#undef expect
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
|
||||
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);
|
||||
|
@ -90,7 +90,5 @@ int main(int argc, char *argv[]) {
|
|||
unit_unwatch_pid(c, 4711);
|
||||
assert_se(manager_get_unit_by_pid(m, 4711) == NULL);
|
||||
|
||||
manager_free(m);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue