| /* |
| * Copyright (c) 2018 Cyril Hrubis <chrubis@suse.cz> |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License as |
| * published by the Free Software Foundation; either version 2 of |
| * the License, or (at your option) any later version. |
| * |
| * This program is distributed in the hope that it would be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| */ |
| |
| /* |
| * Assert that tst_res() from child started by exec() is propagated to the main |
| * test process. |
| * |
| * This test should be executed as: |
| * $ PATH=$PATH:$PWD ./test_exec |
| */ |
| |
| #define _GNU_SOURCE |
| #include <unistd.h> |
| #include "tst_test.h" |
| |
| static void do_test(void) |
| { |
| char *const argv[] = {"test_exec_child", NULL}; |
| char path[4096]; |
| |
| if (tst_get_path("test_exec_child", path, sizeof(path))) |
| tst_brk(TCONF, "Couldn't find test_exec_child in $PATH"); |
| |
| execve(path, argv, environ); |
| |
| tst_res(TBROK | TERRNO, "EXEC!"); |
| } |
| |
| static struct tst_test test = { |
| .test_all = do_test, |
| .child_needs_reinit = 1, |
| }; |