From: Michael Tremer Date: Tue, 9 Aug 2022 15:35:42 +0000 (+0000) Subject: tests: jail: Add check for nice level X-Git-Tag: 0.9.28~540 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=17841bb8ec0f0ad50ae44ef6044aaf6f9dee9726;p=pakfire.git tests: jail: Add check for nice level Signed-off-by: Michael Tremer --- diff --git a/tests/libpakfire/jail.c b/tests/libpakfire/jail.c index c502b6ae1..958951d0a 100644 --- a/tests/libpakfire/jail.c +++ b/tests/libpakfire/jail.c @@ -124,11 +124,53 @@ FAIL: return r; } +static int test_nice(const struct test* t) { + struct pakfire_jail* jail = NULL; + char** output = NULL; + int r = EXIT_FAILURE; + + const char* argv[] = { + "/command", "print-nice", NULL, + }; + + char* expected_output[] = { + "5\n", NULL, + }; + + // Create a new jail + ASSERT_SUCCESS(pakfire_jail_create(&jail, t->pakfire, 0)); + + // Set invalid nice levels + ASSERT_ERRNO(pakfire_jail_nice(jail, 100), EINVAL); + ASSERT_ERRNO(pakfire_jail_nice(jail, -100), EINVAL); + + // Set something sane + ASSERT_SUCCESS(pakfire_jail_nice(jail, 5)); + + ASSERT_SUCCESS(pakfire_jail_exec(jail, argv, &output)); + ASSERT_STRING_ARRAY_EQUALS(output, expected_output); + + // Success + r = EXIT_SUCCESS; + +FAIL: + if (jail) + pakfire_jail_unref(jail); + if (output) { + for (char** line = output; *line; line++) + free(*line); + free(output); + } + + return r; +} + int main(int argc, const char* argv[]) { testsuite_add_test(test_create); testsuite_add_test(test_env); testsuite_add_test(test_exec); testsuite_add_test(test_launch_into_cgroup); + testsuite_add_test(test_nice); return testsuite_run(argc, argv); }