11
11
#include < vector>
12
12
13
13
static int func_callback_update = 0 ;
14
+ static bool TPCB2Called = false ;
14
15
15
- TEST (xptiApiTest, xptiInitializeBadInput) {
16
+ class xptiApiTest : public ::testing::Test {
17
+ protected:
18
+ void SetUp () override {
19
+ TPCB2Called = false ;
20
+ func_callback_update = 0 ;
21
+ }
22
+
23
+ void TearDown () override { xptiReset (); }
24
+ };
25
+
26
+ TEST_F (xptiApiTest, xptiInitializeBadInput) {
16
27
auto Result = xptiInitialize (nullptr , 0 , 0 , nullptr );
17
28
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_INVALIDARG);
18
29
}
19
30
20
- TEST (xptiApiTest, xptiRegisterStringBadInput) {
31
+ TEST_F (xptiApiTest, xptiRegisterStringBadInput) {
21
32
char *TStr;
22
33
23
34
auto ID = xptiRegisterString (nullptr , nullptr );
@@ -28,7 +39,7 @@ TEST(xptiApiTest, xptiRegisterStringBadInput) {
28
39
EXPECT_EQ (ID, xpti::invalid_id);
29
40
}
30
41
31
- TEST (xptiApiTest, xptiRegisterStringGoodInput) {
42
+ TEST_F (xptiApiTest, xptiRegisterStringGoodInput) {
32
43
char *TStr = nullptr ;
33
44
34
45
auto ID = xptiRegisterString (" foo" , &TStr);
@@ -37,14 +48,14 @@ TEST(xptiApiTest, xptiRegisterStringGoodInput) {
37
48
EXPECT_STREQ (" foo" , TStr);
38
49
}
39
50
40
- TEST (xptiApiTest, xptiLookupStringBadInput) {
51
+ TEST_F (xptiApiTest, xptiLookupStringBadInput) {
41
52
const char *TStr;
42
53
xptiReset ();
43
54
TStr = xptiLookupString (-1 );
44
55
EXPECT_EQ (TStr, nullptr );
45
56
}
46
57
47
- TEST (xptiApiTest, xptiLookupStringGoodInput) {
58
+ TEST_F (xptiApiTest, xptiLookupStringGoodInput) {
48
59
char *TStr = nullptr ;
49
60
50
61
auto ID = xptiRegisterString (" foo" , &TStr);
@@ -58,7 +69,7 @@ TEST(xptiApiTest, xptiLookupStringGoodInput) {
58
69
EXPECT_STREQ (" foo" , LookUpString);
59
70
}
60
71
61
- TEST (xptiApiTest, xptiRegisterPayloadGoodInput) {
72
+ TEST_F (xptiApiTest, xptiRegisterPayloadGoodInput) {
62
73
xpti::payload_t p (" foo" , " foo.cpp" , 10 , 0 , (void *)(0xdeadbeefull ));
63
74
64
75
auto ID = xptiRegisterPayload (&p);
@@ -67,14 +78,14 @@ TEST(xptiApiTest, xptiRegisterPayloadGoodInput) {
67
78
EXPECT_EQ (p.uid .hash (), ID);
68
79
}
69
80
70
- TEST (xptiApiTest, xptiRegisterPayloadBadInput) {
81
+ TEST_F (xptiApiTest, xptiRegisterPayloadBadInput) {
71
82
xpti::payload_t p;
72
83
73
84
auto ID = xptiRegisterPayload (&p);
74
85
EXPECT_EQ (ID, xpti::invalid_uid);
75
86
}
76
87
77
- TEST (xptiApiTest, xptiGetUniqueId) {
88
+ TEST_F (xptiApiTest, xptiGetUniqueId) {
78
89
std::set<uint64_t > IDs;
79
90
for (int i = 0 ; i < 10 ; ++i) {
80
91
auto ID = xptiGetUniqueId ();
@@ -84,24 +95,24 @@ TEST(xptiApiTest, xptiGetUniqueId) {
84
95
}
85
96
}
86
97
87
- TEST (xptiApiTest, xptiRegisterStreamBadInput) {
98
+ TEST_F (xptiApiTest, xptiRegisterStreamBadInput) {
88
99
auto ID = xptiRegisterStream (nullptr );
89
100
EXPECT_EQ (ID, (uint8_t )xpti::invalid_id);
90
101
}
91
102
92
- TEST (xptiApiTest, xptiRegisterStreamGoodInput) {
103
+ TEST_F (xptiApiTest, xptiRegisterStreamGoodInput) {
93
104
auto ID = xptiRegisterStream (" foo" );
94
105
EXPECT_NE (ID, xpti::invalid_id);
95
106
auto NewID = xptiRegisterStream (" foo" );
96
107
EXPECT_EQ (ID, NewID);
97
108
}
98
109
99
- TEST (xptiApiTest, xptiUnregisterStreamBadInput) {
110
+ TEST_F (xptiApiTest, xptiUnregisterStreamBadInput) {
100
111
auto Result = xptiUnregisterStream (nullptr );
101
112
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_INVALIDARG);
102
113
}
103
114
104
- TEST (xptiApiTest, xptiUnregisterStreamGoodInput) {
115
+ TEST_F (xptiApiTest, xptiUnregisterStreamGoodInput) {
105
116
auto ID = xptiRegisterStream (" foo" );
106
117
EXPECT_NE (ID, xpti::invalid_id);
107
118
auto Result = xptiUnregisterStream (" NoSuchStream" );
@@ -111,7 +122,7 @@ TEST(xptiApiTest, xptiUnregisterStreamGoodInput) {
111
122
EXPECT_EQ (NewResult, xpti::result_t ::XPTI_RESULT_NOTFOUND);
112
123
}
113
124
114
- TEST (xptiApiTest, xptiMakeEventBadInput) {
125
+ TEST_F (xptiApiTest, xptiMakeEventBadInput) {
115
126
xpti::payload_t P;
116
127
auto Result =
117
128
xptiMakeEvent (nullptr , &P, 0 , (xpti::trace_activity_type_t )1 , nullptr );
@@ -125,7 +136,7 @@ TEST(xptiApiTest, xptiMakeEventBadInput) {
125
136
EXPECT_EQ (Result, nullptr );
126
137
}
127
138
128
- TEST (xptiApiTest, xptiMakeEventGoodInput) {
139
+ TEST_F (xptiApiTest, xptiMakeEventGoodInput) {
129
140
uint64_t instance;
130
141
xpti::payload_t Payload (" foo" , " foo.cpp" , 1 , 0 , (void *)13 );
131
142
auto Result = xptiMakeEvent (" foo" , &Payload, 0 ,
@@ -139,37 +150,37 @@ TEST(xptiApiTest, xptiMakeEventGoodInput) {
139
150
EXPECT_EQ (instance, 2 );
140
151
}
141
152
142
- TEST (xptiApiTest, xptiFindEventBadInput) {
153
+ TEST_F (xptiApiTest, xptiFindEventBadInput) {
143
154
auto Result = xptiFindEvent (0 );
144
155
EXPECT_EQ (Result, nullptr );
145
156
Result = xptiFindEvent (1000000 );
146
157
EXPECT_EQ (Result, nullptr );
147
158
}
148
159
149
- TEST (xptiApiTest, xptiFindEventGoodInput) {
150
- uint64_t Instance;
160
+ TEST_F (xptiApiTest, xptiFindEventGoodInput) {
161
+ uint64_t Instance = 0 ;
151
162
xpti::payload_t Payload (" foo" , " foo.cpp" , 1 , 0 , (void *)13 );
152
163
153
164
auto Result = xptiMakeEvent (" foo" , &Payload, 0 ,
154
165
(xpti::trace_activity_type_t )1 , &Instance);
155
166
EXPECT_NE (Result, nullptr );
156
- EXPECT_GT (Instance, 1 );
167
+ EXPECT_EQ (Instance, 1 );
157
168
auto NewResult = xptiFindEvent (Result->unique_id );
158
169
EXPECT_EQ (Result, NewResult);
159
170
}
160
171
161
- TEST (xptiApiTest, xptiQueryPayloadBadInput) {
172
+ TEST_F (xptiApiTest, xptiQueryPayloadBadInput) {
162
173
auto Result = xptiQueryPayload (nullptr );
163
174
EXPECT_EQ (Result, nullptr );
164
175
}
165
176
166
- TEST (xptiApiTest, xptiQueryPayloadGoodInput) {
177
+ TEST_F (xptiApiTest, xptiQueryPayloadGoodInput) {
167
178
uint64_t instance;
168
179
xpti::payload_t Payload (" foo" , " foo.cpp" , 1 , 0 , (void *)13 );
169
180
auto Result = xptiMakeEvent (" foo" , &Payload, 0 ,
170
181
(xpti::trace_activity_type_t )1 , &instance);
171
182
EXPECT_NE (Result, nullptr );
172
- EXPECT_GT (instance, 1 );
183
+ EXPECT_EQ (instance, 1 );
173
184
auto NewResult = xptiQueryPayload (Result);
174
185
EXPECT_STREQ (Payload.name , NewResult->name );
175
186
EXPECT_STREQ (Payload.source_file , NewResult->source_file );
@@ -179,7 +190,7 @@ TEST(xptiApiTest, xptiQueryPayloadGoodInput) {
179
190
EXPECT_EQ (Payload.line_no , NewResult->line_no );
180
191
}
181
192
182
- TEST (xptiApiTest, xptiQueryPayloadByUIDGoodInput) {
193
+ TEST_F (xptiApiTest, xptiQueryPayloadByUIDGoodInput) {
183
194
xpti::payload_t p (" foo" , " foo.cpp" , 10 , 0 , (void *)(0xdeadbeefull ));
184
195
185
196
auto ID = xptiRegisterPayload (&p);
@@ -192,7 +203,7 @@ TEST(xptiApiTest, xptiQueryPayloadByUIDGoodInput) {
192
203
EXPECT_EQ (p.uid .hash (), pp->uid .hash ());
193
204
}
194
205
195
- TEST (xptiApiTest, xptiTraceEnabled) {
206
+ TEST_F (xptiApiTest, xptiTraceEnabled) {
196
207
// If no env is set, this should be false
197
208
// The state is determined at app startup
198
209
// XPTI_TRACE_ENABLE=1 or 0 and XPTI_FRAMEWORK_DISPATCHER=
@@ -201,35 +212,31 @@ TEST(xptiApiTest, xptiTraceEnabled) {
201
212
EXPECT_EQ (Result, false );
202
213
}
203
214
204
- void trace_point_callback (uint16_t trace_type, xpti::trace_event_data_t *parent,
205
- xpti::trace_event_data_t *event, uint64_t instance,
206
- const void *user_data) {
207
-
208
- if (user_data)
209
- (*static_cast <int *>(const_cast <void *>(user_data))) = 1 ;
210
- }
215
+ void trace_point_callback (uint16_t /* trace_type*/ ,
216
+ xpti::trace_event_data_t * /* parent*/ ,
217
+ xpti::trace_event_data_t * /* event*/ ,
218
+ uint64_t /* instance*/ , const void * /* user_data*/ ) {}
211
219
212
- void trace_point_callback2 (uint16_t trace_type,
213
- xpti::trace_event_data_t *parent,
214
- xpti::trace_event_data_t *event, uint64_t instance,
215
- const void *user_data) {
216
- if (user_data)
217
- (*static_cast <int *>(const_cast <void *>(user_data))) = 1 ;
220
+ void trace_point_callback2 (uint16_t /* trace_type*/ ,
221
+ xpti::trace_event_data_t * /* parent*/ ,
222
+ xpti::trace_event_data_t * /* event*/ ,
223
+ uint64_t /* instance*/ , const void * /* user_data*/ ) {
224
+ TPCB2Called = true ;
218
225
}
219
226
220
- void fn_callback (uint16_t trace_type, xpti::trace_event_data_t *parent,
221
- xpti::trace_event_data_t *event, uint64_t instance,
222
- const void *user_data) {
227
+ void fn_callback (uint16_t /* trace_type*/ , xpti::trace_event_data_t * /* parent*/ ,
228
+ xpti::trace_event_data_t * /* event*/ , uint64_t /* instance*/ ,
229
+ const void * /* user_data*/ ) {
223
230
func_callback_update++;
224
231
}
225
232
226
- TEST (xptiApiTest, xptiRegisterCallbackBadInput) {
233
+ TEST_F (xptiApiTest, xptiRegisterCallbackBadInput) {
227
234
uint8_t StreamID = xptiRegisterStream (" foo" );
228
235
auto Result = xptiRegisterCallback (StreamID, 1 , nullptr );
229
236
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_INVALIDARG);
230
237
}
231
238
232
- TEST (xptiApiTest, xptiRegisterCallbackGoodInput) {
239
+ TEST_F (xptiApiTest, xptiRegisterCallbackGoodInput) {
233
240
uint64_t instance;
234
241
xpti::payload_t Payload (" foo" , " foo.cpp" , 1 , 0 , (void *)13 );
235
242
@@ -249,15 +256,13 @@ TEST(xptiApiTest, xptiRegisterCallbackGoodInput) {
249
256
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_SUCCESS);
250
257
}
251
258
252
- TEST (xptiApiTest, xptiUnregisterCallbackBadInput) {
259
+ TEST_F (xptiApiTest, xptiUnregisterCallbackBadInput) {
253
260
uint8_t StreamID = xptiRegisterStream (" foo" );
254
261
auto Result = xptiUnregisterCallback (StreamID, 1 , nullptr );
255
262
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_INVALIDARG);
256
263
}
257
264
258
- // TODO this test passes on Linux and fails on Windows.
259
- // Re-enable once it's sorted out.
260
- TEST (xptiApiTest, DISABLED_xptiUnregisterCallbackGoodInput) {
265
+ TEST_F (xptiApiTest, xptiUnregisterCallbackGoodInput) {
261
266
uint64_t instance;
262
267
xpti::payload_t Payload (" foo" , " foo.cpp" , 1 , 0 , (void *)13 );
263
268
@@ -278,7 +283,7 @@ TEST(xptiApiTest, DISABLED_xptiUnregisterCallbackGoodInput) {
278
283
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_UNDELETE);
279
284
}
280
285
281
- TEST (xptiApiTest, xptiNotifySubscribersBadInput) {
286
+ TEST_F (xptiApiTest, xptiNotifySubscribersBadInput) {
282
287
uint8_t StreamID = xptiRegisterStream (" foo" );
283
288
auto Result =
284
289
xptiNotifySubscribers (StreamID, 1 , nullptr , nullptr , 0 , nullptr );
@@ -292,7 +297,7 @@ TEST(xptiApiTest, xptiNotifySubscribersBadInput) {
292
297
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_INVALIDARG);
293
298
}
294
299
295
- TEST (xptiApiTest, xptiNotifySubscribersGoodInput) {
300
+ TEST_F (xptiApiTest, xptiNotifySubscribersGoodInput) {
296
301
uint64_t instance;
297
302
xpti::payload_t Payload (" foo" , " foo.cpp" , 1 , 0 , (void *)13 );
298
303
@@ -304,11 +309,16 @@ TEST(xptiApiTest, xptiNotifySubscribersGoodInput) {
304
309
xptiForceSetTraceEnabled (true );
305
310
int foo_return = 0 ;
306
311
auto Result = xptiRegisterCallback (StreamID, 1 , trace_point_callback2);
312
+ EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_SUCCESS);
307
313
Result = xptiNotifySubscribers (StreamID, 1 , nullptr , Event, 0 ,
308
314
(void *)(&foo_return));
309
315
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_SUCCESS);
310
- EXPECT_EQ (foo_return, 1 );
316
+ EXPECT_TRUE (TPCB2Called );
311
317
int tmp = func_callback_update;
318
+ Result = xptiRegisterCallback (
319
+ StreamID, static_cast <uint16_t >(xpti::trace_point_type_t ::function_begin),
320
+ fn_callback);
321
+ EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_SUCCESS);
312
322
// We allow notification with parent and event being null, only for trace
313
323
// point type of function_begin/end; This test update checks for that
314
324
Result = xptiNotifySubscribers (
@@ -324,7 +334,7 @@ TEST(xptiApiTest, xptiNotifySubscribersGoodInput) {
324
334
EXPECT_NE (tmp, func_callback_update);
325
335
}
326
336
327
- TEST (xptiApiTest, xptiAddMetadataBadInput) {
337
+ TEST_F (xptiApiTest, xptiAddMetadataBadInput) {
328
338
uint64_t instance;
329
339
xpti::payload_t Payload (" foo" , " foo.cpp" , 1 , 0 , (void *)13 );
330
340
@@ -342,7 +352,7 @@ TEST(xptiApiTest, xptiAddMetadataBadInput) {
342
352
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_INVALIDARG);
343
353
}
344
354
345
- TEST (xptiApiTest, xptiAddMetadataGoodInput) {
355
+ TEST_F (xptiApiTest, xptiAddMetadataGoodInput) {
346
356
uint64_t instance;
347
357
xpti::payload_t Payload (" foo" , " foo.cpp" , 1 , 0 , (void *)13 );
348
358
@@ -356,7 +366,7 @@ TEST(xptiApiTest, xptiAddMetadataGoodInput) {
356
366
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_DUPLICATE);
357
367
}
358
368
359
- TEST (xptiApiTest, xptiQueryMetadata) {
369
+ TEST_F (xptiApiTest, xptiQueryMetadata) {
360
370
uint64_t instance;
361
371
xpti::payload_t Payload (" foo" , " foo.cpp" , 1 , 0 , (void *)13 );
362
372
@@ -371,7 +381,7 @@ TEST(xptiApiTest, xptiQueryMetadata) {
371
381
EXPECT_EQ (Result, xpti::result_t ::XPTI_RESULT_SUCCESS);
372
382
373
383
char *ts;
374
- EXPECT_TRUE (md->size () > 1 );
384
+ EXPECT_EQ (md->size (), 1 );
375
385
auto ID = (*md)[xptiRegisterString (" foo1" , &ts)];
376
386
auto str = xptiLookupString (ID);
377
387
EXPECT_STREQ (str, " bar1" );
0 commit comments