These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / tools / testing / selftests / powerpc / syscalls / ipc_unmuxed.c
1 /*
2  * Copyright 2015, Michael Ellerman, IBM Corp.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version
7  * 2 of the License, or (at your option) any later version.
8  *
9  * This test simply tests that certain syscalls are implemented. It doesn't
10  * actually exercise their logic in any way.
11  */
12
13 #define _GNU_SOURCE
14 #include <errno.h>
15 #include <stdio.h>
16 #include <unistd.h>
17 #include <sys/syscall.h>
18
19 #include "utils.h"
20
21
22 #define DO_TEST(_name, _num)    \
23 static int test_##_name(void)                   \
24 {                                               \
25         int rc;                                 \
26         printf("Testing " #_name);              \
27         errno = 0;                              \
28         rc = syscall(_num, -1, 0, 0, 0, 0, 0);  \
29         printf("\treturned %d, errno %d\n", rc, errno); \
30         return errno == ENOSYS;                 \
31 }
32
33 #include "ipc.h"
34 #undef DO_TEST
35
36 static int ipc_unmuxed(void)
37 {
38         int tests_done = 0;
39
40 #define DO_TEST(_name, _num)            \
41         FAIL_IF(test_##_name());        \
42         tests_done++;
43
44 #include "ipc.h"
45 #undef DO_TEST
46
47         /*
48          * If we ran no tests then it means none of the syscall numbers were
49          * defined, possibly because we were built against old headers. But it
50          * means we didn't really test anything, so instead of passing mark it
51          * as a skip to give the user a clue.
52          */
53         SKIP_IF(tests_done == 0);
54
55         return 0;
56 }
57
58 int main(void)
59 {
60         return test_harness(ipc_unmuxed, "ipc_unmuxed");
61 }