From 17841bb8ec0f0ad50ae44ef6044aaf6f9dee9726 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 9 Aug 2022 15:35:42 +0000 Subject: [PATCH] tests: jail: Add check for nice level Signed-off-by: Michael Tremer --- tests/libpakfire/jail.c | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) 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); } -- 2.47.2