1
/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
3
This program is free software; you can redistribute it and/or modify
4
it under the terms of the GNU General Public License as published by
5
the Free Software Foundation; version 2 of the License.
7
This program is distributed in the hope that it will be useful,
8
but WITHOUT ANY WARRANTY; without even the implied warranty of
9
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
GNU General Public License for more details.
12
You should have received a copy of the GNU General Public License
13
along with this program; if not, write to the Free Software Foundation,
14
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
16
#include <my_global.h>
17
#include <my_pthread.h>
18
#include <pfs_instr.h>
20
#include <pfs_global.h>
23
#include "stub_pfs_global.h"
24
#include "stub_server_misc.h"
29
PFS_global_param param;
31
stub_alloc_always_fails= true;
33
param.m_enabled= true;
34
param.m_mutex_class_sizing= 10;
35
param.m_rwlock_class_sizing= 0;
36
param.m_cond_class_sizing= 0;
37
param.m_thread_class_sizing= 0;
38
param.m_table_share_sizing= 0;
39
param.m_file_class_sizing= 0;
40
param.m_mutex_sizing= 1000;
41
param.m_rwlock_sizing= 0;
42
param.m_cond_sizing= 0;
43
param.m_thread_sizing= 0;
44
param.m_table_sizing= 0;
45
param.m_file_sizing= 0;
46
param.m_file_handle_sizing= 0;
47
param.m_events_waits_history_sizing= 0;
48
param.m_events_waits_history_long_sizing= 0;
50
rc= init_instruments(& param);
51
ok(rc == 1, "oom (mutex)");
53
param.m_enabled= true;
54
param.m_mutex_class_sizing= 0;
55
param.m_rwlock_class_sizing= 10;
56
param.m_cond_class_sizing= 0;
57
param.m_thread_class_sizing= 0;
58
param.m_table_share_sizing= 0;
59
param.m_file_class_sizing= 0;
60
param.m_mutex_sizing= 0;
61
param.m_rwlock_sizing= 1000;
62
param.m_cond_sizing= 0;
63
param.m_thread_sizing= 0;
64
param.m_table_sizing= 0;
65
param.m_file_sizing= 0;
66
param.m_file_handle_sizing= 0;
67
param.m_events_waits_history_sizing= 0;
68
param.m_events_waits_history_long_sizing= 0;
70
rc= init_instruments(& param);
71
ok(rc == 1, "oom (rwlock)");
73
param.m_enabled= true;
74
param.m_mutex_class_sizing= 0;
75
param.m_rwlock_class_sizing= 0;
76
param.m_cond_class_sizing= 10;
77
param.m_thread_class_sizing= 0;
78
param.m_table_share_sizing= 0;
79
param.m_file_class_sizing= 0;
80
param.m_mutex_sizing= 0;
81
param.m_rwlock_sizing= 0;
82
param.m_cond_sizing= 1000;
83
param.m_thread_sizing= 0;
84
param.m_table_sizing= 0;
85
param.m_file_sizing= 0;
86
param.m_file_handle_sizing= 0;
87
param.m_events_waits_history_sizing= 0;
88
param.m_events_waits_history_long_sizing= 0;
90
rc= init_instruments(& param);
91
ok(rc == 1, "oom (cond)");
93
param.m_enabled= true;
94
param.m_mutex_class_sizing= 0;
95
param.m_rwlock_class_sizing= 0;
96
param.m_cond_class_sizing= 0;
97
param.m_thread_class_sizing= 0;
98
param.m_table_share_sizing= 0;
99
param.m_file_class_sizing= 10;
100
param.m_mutex_sizing= 0;
101
param.m_rwlock_sizing= 0;
102
param.m_cond_sizing= 0;
103
param.m_thread_sizing= 0;
104
param.m_table_sizing= 0;
105
param.m_file_sizing= 1000;
106
param.m_file_handle_sizing= 1000;
107
param.m_events_waits_history_sizing= 0;
108
param.m_events_waits_history_long_sizing= 0;
110
rc= init_instruments(& param);
111
ok(rc == 1, "oom (file)");
113
param.m_enabled= true;
114
param.m_mutex_class_sizing= 0;
115
param.m_rwlock_class_sizing= 0;
116
param.m_cond_class_sizing= 0;
117
param.m_thread_class_sizing= 0;
118
param.m_table_share_sizing= 10;
119
param.m_file_class_sizing= 0;
120
param.m_mutex_sizing= 0;
121
param.m_rwlock_sizing= 0;
122
param.m_cond_sizing= 0;
123
param.m_thread_sizing= 0;
124
param.m_table_sizing= 1000;
125
param.m_file_sizing= 0;
126
param.m_file_handle_sizing= 0;
127
param.m_events_waits_history_sizing= 0;
128
param.m_events_waits_history_long_sizing= 0;
130
rc= init_instruments(& param);
131
ok(rc == 1, "oom (table)");
133
param.m_enabled= true;
134
param.m_mutex_class_sizing= 0;
135
param.m_rwlock_class_sizing= 0;
136
param.m_cond_class_sizing= 0;
137
param.m_thread_class_sizing= 10;
138
param.m_table_share_sizing= 0;
139
param.m_file_class_sizing= 0;
140
param.m_mutex_sizing= 0;
141
param.m_rwlock_sizing= 0;
142
param.m_cond_sizing= 0;
143
param.m_thread_sizing= 1000;
144
param.m_table_sizing= 0;
145
param.m_file_sizing= 0;
146
param.m_file_handle_sizing= 0;
147
param.m_events_waits_history_sizing= 0;
148
param.m_events_waits_history_long_sizing= 0;
150
rc= init_instruments(& param);
151
ok(rc == 1, "oom (thread)");
153
stub_alloc_always_fails= false;
155
param.m_enabled= true;
156
param.m_mutex_class_sizing= 0;
157
param.m_rwlock_class_sizing= 0;
158
param.m_cond_class_sizing= 0;
159
param.m_thread_class_sizing= 10;
160
param.m_table_share_sizing= 0;
161
param.m_file_class_sizing= 0;
162
param.m_mutex_sizing= 0;
163
param.m_rwlock_sizing= 0;
164
param.m_cond_sizing= 0;
165
param.m_thread_sizing= 1000;
166
param.m_table_sizing= 0;
167
param.m_file_sizing= 0;
168
param.m_file_handle_sizing= 0;
169
param.m_events_waits_history_sizing= 10;
170
param.m_events_waits_history_long_sizing= 0;
172
stub_alloc_fails_after_count= 2;
173
rc= init_instruments(& param);
174
ok(rc == 1, "oom (thread history sizing)");
176
param.m_enabled= true;
177
param.m_mutex_class_sizing= 50;
178
param.m_rwlock_class_sizing= 50;
179
param.m_cond_class_sizing= 50;
180
param.m_thread_class_sizing= 10;
181
param.m_table_share_sizing= 0;
182
param.m_file_class_sizing= 50;
183
param.m_mutex_sizing= 0;
184
param.m_rwlock_sizing= 0;
185
param.m_cond_sizing= 0;
186
param.m_thread_sizing= 1000;
187
param.m_table_sizing= 0;
188
param.m_file_sizing= 0;
189
param.m_file_handle_sizing= 0;
190
param.m_events_waits_history_sizing= 0;
191
param.m_events_waits_history_long_sizing= 0;
193
stub_alloc_fails_after_count= 2;
194
rc= init_instruments(& param);
195
ok(rc == 1, "oom (per thread wait)");
197
cleanup_instruments();
206
PFS_atomic::cleanup();
209
int main(int argc, char **argv)