1 // Copyright 2020 The Pigweed Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 // use this file except in compliance with the License. You may obtain a copy of
5 // the License at
6 //
7 // https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 // License for the specific language governing permissions and limitations under
13 // the License.
14 //
15 // This is a simple test that ensures a provided trace backend compiles.
16
17 #define PW_TRACE_MODULE_NAME "TST"
18
19 #include "pw_trace/trace.h"
20
21 #ifdef __cplusplus
22 #error "This file must be compiled as plain C to verify C compilation works."
23 #endif // __cplusplus
24
BasicTraceTestPlainC(void)25 void BasicTraceTestPlainC(void) {
26 const uint32_t trace_id = 1;
27 const char kSomeData[] = "SOME DATA";
28
29 PW_TRACE_INSTANT("Test");
30 PW_TRACE_INSTANT("Test", "Group");
31 PW_TRACE_INSTANT("Test", "Group", trace_id);
32
33 PW_TRACE_INSTANT_FLAG(PW_TRACE_FLAGS, "Test");
34 PW_TRACE_INSTANT_FLAG(PW_TRACE_FLAGS, "Test", "Group");
35 PW_TRACE_INSTANT_FLAG(PW_TRACE_FLAGS, "Test", "Group", trace_id);
36
37 PW_TRACE_INSTANT_DATA("Test", "s", kSomeData, sizeof(kSomeData));
38 PW_TRACE_INSTANT_DATA("Test", "Group", "s", kSomeData, sizeof(kSomeData));
39 PW_TRACE_INSTANT_DATA(
40 "Test", "Group", trace_id, "s", kSomeData, sizeof(kSomeData));
41
42 PW_TRACE_INSTANT_DATA_FLAG(
43 PW_TRACE_FLAGS, "Test", "s", kSomeData, sizeof(kSomeData));
44 PW_TRACE_INSTANT_DATA_FLAG(
45 PW_TRACE_FLAGS, "Test", "Group", "s", kSomeData, sizeof(kSomeData));
46 PW_TRACE_INSTANT_DATA_FLAG(PW_TRACE_FLAGS,
47 "Test",
48 "Group",
49 trace_id,
50 "s",
51 kSomeData,
52 sizeof(kSomeData));
53 PW_TRACE_START("Test");
54 PW_TRACE_START("Test", "Group");
55 PW_TRACE_START("Test", "Group", trace_id);
56
57 PW_TRACE_START_FLAG(PW_TRACE_FLAGS, "Test");
58 PW_TRACE_START_FLAG(PW_TRACE_FLAGS, "Test", "Group");
59 PW_TRACE_START_FLAG(PW_TRACE_FLAGS, "Test", "Group", trace_id);
60
61 PW_TRACE_START_DATA("Test", "s", kSomeData, sizeof(kSomeData));
62 PW_TRACE_START_DATA("Test", "Group", "s", kSomeData, sizeof(kSomeData));
63 PW_TRACE_START_DATA(
64 "Test", "Group", trace_id, "s", kSomeData, sizeof(kSomeData));
65
66 PW_TRACE_START_DATA_FLAG(
67 PW_TRACE_FLAGS, "Test", "s", kSomeData, sizeof(kSomeData));
68 PW_TRACE_START_DATA_FLAG(
69 PW_TRACE_FLAGS, "Test", "Group", "s", kSomeData, sizeof(kSomeData));
70 PW_TRACE_START_DATA_FLAG(PW_TRACE_FLAGS,
71 "Test",
72 "Group",
73 trace_id,
74 "s",
75 kSomeData,
76 sizeof(kSomeData));
77
78 PW_TRACE_END("Test");
79 PW_TRACE_END("Test", "Group");
80 PW_TRACE_END("Test", "Group", trace_id);
81
82 PW_TRACE_END_FLAG(PW_TRACE_FLAGS, "Test");
83 PW_TRACE_END_FLAG(PW_TRACE_FLAGS, "Test", "Group");
84 PW_TRACE_END_FLAG(PW_TRACE_FLAGS, "Test", "Group", trace_id);
85
86 PW_TRACE_END_DATA("Test", "s", kSomeData, sizeof(kSomeData));
87 PW_TRACE_END_DATA("Test", "Group", "s", kSomeData, sizeof(kSomeData));
88 PW_TRACE_END_DATA(
89 "Test", "Group", trace_id, "s", kSomeData, sizeof(kSomeData));
90
91 PW_TRACE_END_DATA_FLAG(
92 PW_TRACE_FLAGS, "Test", "s", kSomeData, sizeof(kSomeData));
93 PW_TRACE_END_DATA_FLAG(
94 PW_TRACE_FLAGS, "Test", "Group", "s", kSomeData, sizeof(kSomeData));
95 PW_TRACE_END_DATA_FLAG(PW_TRACE_FLAGS,
96 "Test",
97 "Group",
98 trace_id,
99 "s",
100 kSomeData,
101 sizeof(kSomeData));
102 }
103