1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /*
- * 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");
- }
|