linux/tools/testing/selftests/powerpc/syscalls/ipc_unmuxed.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-or-later
   2/*
   3 * Copyright 2015, Michael Ellerman, IBM Corp.
   4 *
   5 * This test simply tests that certain syscalls are implemented. It doesn't
   6 * actually exercise their logic in any way.
   7 */
   8
   9#define _GNU_SOURCE
  10#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_TEST
  31
  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_TEST
  42
  43        /*
  44         * If we ran no tests then it means none of the syscall numbers were
  45         * defined, possibly because we were built against old headers. But it
  46         * means we didn't really test anything, so instead of passing mark it
  47         * 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