xref: /aosp_15_r20/external/pigweed/pw_trace/trace_backend_compile_test_c.c (revision 61c4878ac05f98d0ceed94b57d316916de578985)
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