58 lines · c
1// SPDX-License-Identifier: GPL-2.0-or-later2/*3 * Copyright 2015, Michael Ellerman, IBM Corp.4 *5 * This test simply tests that certain syscalls are implemented. It doesn't6 * actually exercise their logic in any way.7 */8 9#define _GNU_SOURCE10#include <errno.h>11#include <stdio.h>12#include <unistd.h>13#include <sys/syscall.h>14 15#include "utils.h"16 17 18#define DO_TEST(_name, _num) \19static int test_##_name(void) \20{ \21 int rc; \22 printf("Testing " #_name); \23 errno = 0; \24 rc = syscall(_num, -1, 0, 0, 0, 0, 0); \25 printf("\treturned %d, errno %d\n", rc, errno); \26 return errno == ENOSYS; \27}28 29#include "ipc.h"30#undef DO_TEST31 32static int ipc_unmuxed(void)33{34 int tests_done = 0;35 36#define DO_TEST(_name, _num) \37 FAIL_IF(test_##_name()); \38 tests_done++;39 40#include "ipc.h"41#undef DO_TEST42 43 /*44 * If we ran no tests then it means none of the syscall numbers were45 * defined, possibly because we were built against old headers. But it46 * means we didn't really test anything, so instead of passing mark it47 * as a skip to give the user a clue.48 */49 SKIP_IF(tests_done == 0);50 51 return 0;52}53 54int main(void)55{56 return test_harness(ipc_unmuxed, "ipc_unmuxed");57}58