Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:41

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /*
0004  *  COPYRIGHT (c) 1989-2013.
0005  *  On-Line Applications Research Corporation (OAR).
0006  *
0007  * Redistribution and use in source and binary forms, with or without
0008  * modification, are permitted provided that the following conditions
0009  * are met:
0010  * 1. Redistributions of source code must retain the above copyright
0011  *    notice, this list of conditions and the following disclaimer.
0012  * 2. Redistributions in binary form must reproduce the above copyright
0013  *    notice, this list of conditions and the following disclaimer in the
0014  *    documentation and/or other materials provided with the distribution.
0015  *
0016  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0017  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0018  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0019  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0020  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0021  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0022  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0023  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0024  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0025  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0026  * POSSIBILITY OF SUCH DAMAGE.
0027  */
0028 
0029 #if !defined(OPERATION_COUNT)
0030 #define OPERATION_COUNT 100
0031 #endif
0032 
0033 #ifdef HAVE_CONFIG_H
0034 #include "config.h"
0035 #endif
0036 
0037 #include <tmacros.h>
0038 #include <timesys.h>
0039 #include "test_support.h"
0040 
0041 #include <pthread.h>
0042 
0043 const char rtems_test_name[] = "PSXTMTHREAD 01";
0044 
0045 /* forward declarations to avoid warnings */
0046 void *POSIX_Init(void *argument);
0047 void *TestThread(void *argument);
0048 
0049 pthread_t ThreadId;
0050 
0051 void *TestThread(
0052   void *argument
0053 )
0054 {
0055   return NULL;
0056 }
0057 
0058 
0059 static void benchmark_pthread_create(
0060   int    iteration,
0061   void  *argument
0062 )
0063 {
0064   int status;
0065 
0066   status = pthread_create( &ThreadId, NULL, TestThread, NULL );
0067   rtems_test_assert( !status );
0068 }
0069 
0070 void *POSIX_Init(
0071   void *argument
0072 )
0073 {
0074   TEST_BEGIN();
0075 
0076   rtems_time_test_measure_operation(
0077     "pthread_create: no preempt",
0078     benchmark_pthread_create,
0079     NULL,
0080     1,
0081     0
0082   );
0083 
0084 
0085   TEST_END();
0086 
0087   rtems_test_exit(0);
0088 }
0089 
0090 /* configuration information */
0091 
0092 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0093 #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
0094 
0095 #define CONFIGURE_MAXIMUM_POSIX_THREADS     OPERATION_COUNT + 2
0096 #define CONFIGURE_POSIX_INIT_THREAD_TABLE
0097 
0098 #define CONFIGURE_INIT
0099 
0100 #include <rtems/confdefs.h>
0101 /* end of file */