]> git.ipfire.org Git - people/stevee/pakfire.git/commitdiff
tests: jail: Check for correct exit code on SEGV
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 13 Dec 2022 11:02:35 +0000 (11:02 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 13 Dec 2022 11:02:35 +0000 (11:02 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
tests/libpakfire/jail.c

index cccaa3d8e024a6460cc89b9077c536e7466cd781..784e89ef18d1402d63a2c9a4de52e5e411d4eab3 100644 (file)
@@ -80,6 +80,30 @@ FAIL:
        return r;
 }
 
+static int test_segv(const struct test* t) {
+       struct pakfire_jail* jail = NULL;
+       int r = EXIT_FAILURE;
+
+       const char* argv[] = {
+               "/command", "segv", NULL,
+       };
+
+       // Create a new jail
+       ASSERT_SUCCESS(pakfire_jail_create(&jail, t->pakfire, 0));
+
+       // Check if we receive the correct exit code
+       ASSERT(pakfire_jail_exec(jail, argv, NULL, NULL, NULL) == 139);
+
+       // Success
+       r = EXIT_SUCCESS;
+
+FAIL:
+       if (jail)
+               pakfire_jail_unref(jail);
+
+       return r;
+}
+
 static int test_env(const struct test* t) {
        struct pakfire_jail* jail = NULL;
 
@@ -362,6 +386,7 @@ FAIL:
 int main(int argc, const char* argv[]) {
        testsuite_add_test(test_create);
        testsuite_add_test(test_exit_code);
+       testsuite_add_test(test_segv);
        testsuite_add_test(test_env);
        testsuite_add_test(test_exec);
        testsuite_add_test(test_launch_into_cgroup);