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);
}