uatomic/x86: Remove redundant memory barriers
[urcu.git] / tests / unit / test_urcu_multiflavor_single_unit.c
1 // SPDX-FileCopyrightText: 2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 //
3 // SPDX-License-Identifier: GPL-2.0-or-later
4
5 /*
6 * Userspace RCU library - test multiple RCU flavors into one program
7 */
8
9 #ifndef DYNAMIC_LINK_TEST
10 #define _LGPL_SOURCE
11 #endif
12
13 #include <urcu/urcu-mb.h>
14 #include <urcu/urcu-bp.h>
15 #include <urcu/urcu-memb.h>
16 #include <urcu/urcu-qsbr.h>
17
18 #include <stdlib.h>
19 #include "tap.h"
20
21 static int test_mf_mb(void)
22 {
23 urcu_mb_register_thread();
24 urcu_mb_read_lock();
25 urcu_mb_read_unlock();
26 urcu_mb_synchronize_rcu();
27 urcu_mb_unregister_thread();
28 return 0;
29 }
30
31 static int test_mf_bp(void)
32 {
33 urcu_bp_register_thread();
34 urcu_bp_read_lock();
35 urcu_bp_read_unlock();
36 urcu_bp_synchronize_rcu();
37 urcu_bp_unregister_thread();
38 return 0;
39 }
40
41 static int test_mf_memb(void)
42 {
43 urcu_memb_register_thread();
44 urcu_memb_read_lock();
45 urcu_memb_read_unlock();
46 urcu_memb_synchronize_rcu();
47 urcu_memb_unregister_thread();
48 return 0;
49 }
50
51 static int test_mf_qsbr(void)
52 {
53 urcu_qsbr_register_thread();
54 urcu_qsbr_read_lock();
55 urcu_qsbr_read_unlock();
56 urcu_qsbr_synchronize_rcu();
57 urcu_qsbr_unregister_thread();
58 return 0;
59 }
60
61 int main(void)
62 {
63 plan_tests(4);
64
65 ok1(!test_mf_mb());
66 ok1(!test_mf_bp());
67 ok1(!test_mf_memb());
68 ok1(!test_mf_qsbr());
69
70 return exit_status();
71 }
This page took 0.031109 seconds and 5 git commands to generate.