Blame gl/tests/test-pthread.c

Packit Service 991b93
/* Test of <pthread.h> substitute.
Packit Service 991b93
   Copyright (C) 2019-2020 Free Software Foundation, Inc.
Packit Service 991b93
Packit Service 991b93
   This program is free software: you can redistribute it and/or modify
Packit Service 991b93
   it under the terms of the GNU General Public License as published by
Packit Service 991b93
   the Free Software Foundation; either version 3 of the License, or
Packit Service 991b93
   (at your option) any later version.
Packit Service 991b93
Packit Service 991b93
   This program is distributed in the hope that it will be useful,
Packit Service 991b93
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 991b93
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 991b93
   GNU General Public License for more details.
Packit Service 991b93
Packit Service 991b93
   You should have received a copy of the GNU General Public License
Packit Service 991b93
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
Packit Service 991b93
Packit Service 991b93
/* Written by Bruno Haible <bruno@clisp.org>, 2019.  */
Packit Service 991b93
Packit Service 991b93
#include <config.h>
Packit Service 991b93
Packit Service 991b93
#include <pthread.h>
Packit Service 991b93
Packit Service 991b93
#include "verify.h"
Packit Service 991b93
Packit Service 991b93
/* Check that the types are all defined.  */
Packit Service 991b93
Packit Service 991b93
pthread_t t1;
Packit Service 991b93
pthread_attr_t t2;
Packit Service 991b93
Packit Service 991b93
pthread_once_t t3 = PTHREAD_ONCE_INIT;
Packit Service 991b93
Packit Service 991b93
pthread_mutex_t t4 = PTHREAD_MUTEX_INITIALIZER;
Packit Service 991b93
pthread_mutexattr_t t5;
Packit Service 991b93
Packit Service 991b93
pthread_rwlock_t t6 = PTHREAD_RWLOCK_INITIALIZER;
Packit Service 991b93
pthread_rwlockattr_t t7;
Packit Service 991b93
Packit Service 991b93
pthread_cond_t t8 = PTHREAD_COND_INITIALIZER;
Packit Service 991b93
pthread_condattr_t t9;
Packit Service 991b93
Packit Service 991b93
pthread_key_t t10;
Packit Service 991b93
Packit Service 991b93
pthread_spinlock_t t11;
Packit Service 991b93
Packit Service 991b93
#ifdef TODO /* Not implemented in gnulib yet */
Packit Service 991b93
pthread_barrier_t t12;
Packit Service 991b93
pthread_barrierattr_t t13;
Packit Service 991b93
#endif
Packit Service 991b93
Packit Service 991b93
/* Check that the various macros are defined.  */
Packit Service 991b93
Packit Service 991b93
/* Constants for pthread_attr_setdetachstate().  */
Packit Service 991b93
int ds[] = { PTHREAD_CREATE_JOINABLE, PTHREAD_CREATE_DETACHED };
Packit Service 991b93
Packit Service 991b93
/* Constants for pthread_exit().  */
Packit Service 991b93
void *canceled = PTHREAD_CANCELED;
Packit Service 991b93
Packit Service 991b93
/* Constants for pthread_mutexattr_settype().  */
Packit Service 991b93
int mt[] = {
Packit Service 991b93
  PTHREAD_MUTEX_DEFAULT,
Packit Service 991b93
  PTHREAD_MUTEX_NORMAL,
Packit Service 991b93
  PTHREAD_MUTEX_RECURSIVE,
Packit Service 991b93
  PTHREAD_MUTEX_ERRORCHECK
Packit Service 991b93
};
Packit Service 991b93
Packit Service 991b93
#ifdef TODO /* Not implemented in gnulib yet */
Packit Service 991b93
Packit Service 991b93
/* Constants for pthread_mutexattr_setrobust().  */
Packit Service 991b93
int mr[] = { PTHREAD_MUTEX_ROBUST, PTHREAD_MUTEX_STALLED };
Packit Service 991b93
Packit Service 991b93
/* Constants for pthread_barrierattr_setpshared().  */
Packit Service 991b93
int bp[] = { PTHREAD_PROCESS_SHARED, PTHREAD_PROCESS_PRIVATE };
Packit Service 991b93
Packit Service 991b93
/* Constants for pthread_barrier_wait().  */
Packit Service 991b93
int bw[] = { PTHREAD_BARRIER_SERIAL_THREAD };
Packit Service 991b93
Packit Service 991b93
/* Constants for pthread_setcancelstate().  */
Packit Service 991b93
int cs[] = { PTHREAD_CANCEL_ENABLE, PTHREAD_CANCEL_DISABLE };
Packit Service 991b93
Packit Service 991b93
/* Constants for pthread_setcanceltype().  */
Packit Service 991b93
int ct[] = { PTHREAD_CANCEL_DEFERRED, PTHREAD_CANCEL_ASYNCHRONOUS };
Packit Service 991b93
Packit Service 991b93
#endif
Packit Service 991b93
Packit Service 991b93
Packit Service 991b93
int
Packit Service 991b93
main (void)
Packit Service 991b93
{
Packit Service 991b93
  return 0;
Packit Service 991b93
}