source: rtems/testsuites/psxtmtests/psxtmcleanup01/init.c @ 6073c71d

5
Last change on this file since 6073c71d was 8f5abea, checked in by Himanshu40 <himanshuwindows8.1@…>, on 12/21/18 at 19:47:06

psxtmtests: Changed the copyright license to BSD-2-Clause (GCI 2018)

  • Property mode set to 100644
File size: 2.8 KB
Line 
1/*
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright (C) 2018, Himanshu Sekhar Nayak
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifdef HAVE_CONFIG_H
29#include "config.h"
30#endif
31
32#include <pthread.h>
33#include <timesys.h>
34#include <tmacros.h>
35#include <rtems/btimer.h>
36#include "test_support.h"
37
38const char rtems_test_name[] = "PSXTMCLEANUP01";
39
40/* forward declarations to avoid warnings */
41void *POSIX_Init(void *argument);
42
43int status = 1;
44
45static void routine(void *arg)
46{
47}
48
49static void benchmark_pthread_cleanup_push_pull(void)
50{
51  long end_time;
52  int execute = 1;
53  status = 0;
54
55  benchmark_timer_initialize();
56  pthread_cleanup_push(routine, NULL);
57  end_time = benchmark_timer_read();
58  rtems_test_assert( status == 0 );
59  put_time(
60    "pthread_cleanup_push : only case",
61    end_time,
62    1,        /* Only executed once */
63    0,
64    0
65  );
66
67  benchmark_timer_initialize();
68  pthread_cleanup_pop( execute );
69  end_time = benchmark_timer_read();
70  rtems_test_assert( status == 0 );
71  put_time(
72    "pthread_cleanup_pop : only case",
73    end_time,
74    1,        /* Only executed once */
75    0,
76    0
77  );
78
79}
80
81void *POSIX_Init(
82  void *argument
83)
84{
85
86  TEST_BEGIN();
87
88  benchmark_pthread_cleanup_push_pull();
89
90  TEST_END();
91  rtems_test_exit(0);
92}
93
94/* configuration information */
95
96#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
97#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
98
99#define CONFIGURE_MAXIMUM_POSIX_THREADS     1
100#define CONFIGURE_POSIX_INIT_THREAD_TABLE
101
102#define CONFIGURE_INIT
103
104#include <rtems/confdefs.h>
105/* end of file */
Note: See TracBrowser for help on using the repository browser.