| /* | |
| * Copyright 2015, Michael Ellerman, IBM Corp. | |
| * | |
| * 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 test simply tests that certain syscalls are implemented. It doesn't | |
| * actually exercise their logic in any way. | |
| */ | |
| #define _GNU_SOURCE | |
| #include <errno.h> | |
| #include <stdio.h> | |
| #include <unistd.h> | |
| #include <sys/syscall.h> | |
| #include "utils.h" | |
| #define DO_TEST(_name, _num) \ | |
| static int test_##_name(void) \ | |
| { \ | |
| int rc; \ | |
| printf("Testing " #_name); \ | |
| errno = 0; \ | |
| rc = syscall(_num, -1, 0, 0, 0, 0, 0); \ | |
| printf("\treturned %d, errno %d\n", rc, errno); \ | |
| return errno == ENOSYS; \ | |
| } | |
| #include "ipc.h" | |
| #undef DO_TEST | |
| static int ipc_unmuxed(void) | |
| { | |
| int tests_done = 0; | |
| #define DO_TEST(_name, _num) \ | |
| FAIL_IF(test_##_name()); \ | |
| tests_done++; | |
| #include "ipc.h" | |
| #undef DO_TEST | |
| /* | |
| * If we ran no tests then it means none of the syscall numbers were | |
| * defined, possibly because we were built against old headers. But it | |
| * means we didn't really test anything, so instead of passing mark it | |
| * as a skip to give the user a clue. | |
| */ | |
| SKIP_IF(tests_done == 0); | |
| return 0; | |
| } | |
| int main(void) | |
| { | |
| return test_harness(ipc_unmuxed, "ipc_unmuxed"); | |
| } |