1*61c4878aSAndroid Build Coastguard Worker# Copyright 2020 The Pigweed Authors 2*61c4878aSAndroid Build Coastguard Worker# 3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of 5*61c4878aSAndroid Build Coastguard Worker# the License at 6*61c4878aSAndroid Build Coastguard Worker# 7*61c4878aSAndroid Build Coastguard Worker# https://www.apache.org/licenses/LICENSE-2.0 8*61c4878aSAndroid Build Coastguard Worker# 9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under 13*61c4878aSAndroid Build Coastguard Worker# the License. 14*61c4878aSAndroid Build Coastguard Worker 15*61c4878aSAndroid Build Coastguard Workerload("@rules_python//python:proto.bzl", "py_proto_library") 16*61c4878aSAndroid Build Coastguard Workerload("//pw_build:compatibility.bzl", "host_backend_alias") 17*61c4878aSAndroid Build Coastguard Workerload("//pw_build:pw_facade.bzl", "pw_facade") 18*61c4878aSAndroid Build Coastguard Workerload( 19*61c4878aSAndroid Build Coastguard Worker "//pw_protobuf_compiler:pw_proto_library.bzl", 20*61c4878aSAndroid Build Coastguard Worker "pwpb_proto_library", 21*61c4878aSAndroid Build Coastguard Worker "raw_rpc_proto_library", 22*61c4878aSAndroid Build Coastguard Worker) 23*61c4878aSAndroid Build Coastguard Workerload("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test") 24*61c4878aSAndroid Build Coastguard Worker 25*61c4878aSAndroid Build Coastguard Workerpackage(default_visibility = ["//visibility:public"]) 26*61c4878aSAndroid Build Coastguard Worker 27*61c4878aSAndroid Build Coastguard Workerlicenses(["notice"]) 28*61c4878aSAndroid Build Coastguard Worker 29*61c4878aSAndroid Build Coastguard Workerpw_facade( 30*61c4878aSAndroid Build Coastguard Worker name = "id", 31*61c4878aSAndroid Build Coastguard Worker hdrs = [ 32*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/id.h", 33*61c4878aSAndroid Build Coastguard Worker ], 34*61c4878aSAndroid Build Coastguard Worker backend = ":id_backend", 35*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 36*61c4878aSAndroid Build Coastguard Worker) 37*61c4878aSAndroid Build Coastguard Worker 38*61c4878aSAndroid Build Coastguard Workerlabel_flag( 39*61c4878aSAndroid Build Coastguard Worker name = "id_backend", 40*61c4878aSAndroid Build Coastguard Worker build_setting_default = ":id_unspecified_backend", 41*61c4878aSAndroid Build Coastguard Worker) 42*61c4878aSAndroid Build Coastguard Worker 43*61c4878aSAndroid Build Coastguard Workerhost_backend_alias( 44*61c4878aSAndroid Build Coastguard Worker name = "id_unspecified_backend", 45*61c4878aSAndroid Build Coastguard Worker backend = "//pw_thread_stl:id", 46*61c4878aSAndroid Build Coastguard Worker) 47*61c4878aSAndroid Build Coastguard Worker 48*61c4878aSAndroid Build Coastguard Workercc_library( 49*61c4878aSAndroid Build Coastguard Worker name = "config", 50*61c4878aSAndroid Build Coastguard Worker hdrs = ["public/pw_thread/config.h"], 51*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 52*61c4878aSAndroid Build Coastguard Worker deps = [":config_override"], 53*61c4878aSAndroid Build Coastguard Worker) 54*61c4878aSAndroid Build Coastguard Worker 55*61c4878aSAndroid Build Coastguard Workerlabel_flag( 56*61c4878aSAndroid Build Coastguard Worker name = "config_override", 57*61c4878aSAndroid Build Coastguard Worker build_setting_default = "//pw_build:default_module_config", 58*61c4878aSAndroid Build Coastguard Worker) 59*61c4878aSAndroid Build Coastguard Worker 60*61c4878aSAndroid Build Coastguard Workercc_library( 61*61c4878aSAndroid Build Coastguard Worker name = "thread_info", 62*61c4878aSAndroid Build Coastguard Worker hdrs = ["public/pw_thread/thread_info.h"], 63*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 64*61c4878aSAndroid Build Coastguard Worker deps = ["//pw_span"], 65*61c4878aSAndroid Build Coastguard Worker) 66*61c4878aSAndroid Build Coastguard Worker 67*61c4878aSAndroid Build Coastguard Workerpw_facade( 68*61c4878aSAndroid Build Coastguard Worker name = "thread_iteration", 69*61c4878aSAndroid Build Coastguard Worker hdrs = [ 70*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/thread_iteration.h", 71*61c4878aSAndroid Build Coastguard Worker ], 72*61c4878aSAndroid Build Coastguard Worker backend = ":iteration_backend", 73*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 74*61c4878aSAndroid Build Coastguard Worker deps = [ 75*61c4878aSAndroid Build Coastguard Worker ":thread_info", 76*61c4878aSAndroid Build Coastguard Worker "//pw_function", 77*61c4878aSAndroid Build Coastguard Worker "//pw_status", 78*61c4878aSAndroid Build Coastguard Worker ], 79*61c4878aSAndroid Build Coastguard Worker) 80*61c4878aSAndroid Build Coastguard Worker 81*61c4878aSAndroid Build Coastguard Workerlabel_flag( 82*61c4878aSAndroid Build Coastguard Worker name = "iteration_backend", 83*61c4878aSAndroid Build Coastguard Worker build_setting_default = ":iteration_unspecified_backend", 84*61c4878aSAndroid Build Coastguard Worker) 85*61c4878aSAndroid Build Coastguard Worker 86*61c4878aSAndroid Build Coastguard Workerhost_backend_alias( 87*61c4878aSAndroid Build Coastguard Worker name = "iteration_unspecified_backend", 88*61c4878aSAndroid Build Coastguard Worker backend = "//pw_thread_stl:thread_iteration", 89*61c4878aSAndroid Build Coastguard Worker) 90*61c4878aSAndroid Build Coastguard Worker 91*61c4878aSAndroid Build Coastguard Workerpw_facade( 92*61c4878aSAndroid Build Coastguard Worker name = "sleep", 93*61c4878aSAndroid Build Coastguard Worker srcs = [ 94*61c4878aSAndroid Build Coastguard Worker "sleep.cc", 95*61c4878aSAndroid Build Coastguard Worker ], 96*61c4878aSAndroid Build Coastguard Worker hdrs = [ 97*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/sleep.h", 98*61c4878aSAndroid Build Coastguard Worker ], 99*61c4878aSAndroid Build Coastguard Worker backend = ":sleep_backend", 100*61c4878aSAndroid Build Coastguard Worker implementation_deps = [ 101*61c4878aSAndroid Build Coastguard Worker ":thread", 102*61c4878aSAndroid Build Coastguard Worker ], 103*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 104*61c4878aSAndroid Build Coastguard Worker deps = [ 105*61c4878aSAndroid Build Coastguard Worker "//pw_chrono:system_clock", 106*61c4878aSAndroid Build Coastguard Worker "//pw_preprocessor", 107*61c4878aSAndroid Build Coastguard Worker ], 108*61c4878aSAndroid Build Coastguard Worker) 109*61c4878aSAndroid Build Coastguard Worker 110*61c4878aSAndroid Build Coastguard Workerlabel_flag( 111*61c4878aSAndroid Build Coastguard Worker name = "sleep_backend", 112*61c4878aSAndroid Build Coastguard Worker build_setting_default = ":sleep_unspecified_backend", 113*61c4878aSAndroid Build Coastguard Worker) 114*61c4878aSAndroid Build Coastguard Worker 115*61c4878aSAndroid Build Coastguard Workerhost_backend_alias( 116*61c4878aSAndroid Build Coastguard Worker name = "sleep_unspecified_backend", 117*61c4878aSAndroid Build Coastguard Worker backend = "//pw_thread_stl:sleep", 118*61c4878aSAndroid Build Coastguard Worker) 119*61c4878aSAndroid Build Coastguard Worker 120*61c4878aSAndroid Build Coastguard Workerpw_facade( 121*61c4878aSAndroid Build Coastguard Worker name = "thread", 122*61c4878aSAndroid Build Coastguard Worker srcs = [ 123*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/config.h", 124*61c4878aSAndroid Build Coastguard Worker "thread.cc", 125*61c4878aSAndroid Build Coastguard Worker ], 126*61c4878aSAndroid Build Coastguard Worker hdrs = [ 127*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/detached_thread.h", 128*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/thread.h", 129*61c4878aSAndroid Build Coastguard Worker ], 130*61c4878aSAndroid Build Coastguard Worker backend = ":thread_backend", 131*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 132*61c4878aSAndroid Build Coastguard Worker deps = [ 133*61c4878aSAndroid Build Coastguard Worker ":id", 134*61c4878aSAndroid Build Coastguard Worker ":options", 135*61c4878aSAndroid Build Coastguard Worker ":thread_core", 136*61c4878aSAndroid Build Coastguard Worker "//pw_function", 137*61c4878aSAndroid Build Coastguard Worker ], 138*61c4878aSAndroid Build Coastguard Worker) 139*61c4878aSAndroid Build Coastguard Worker 140*61c4878aSAndroid Build Coastguard Workercc_library( 141*61c4878aSAndroid Build Coastguard Worker name = "options", 142*61c4878aSAndroid Build Coastguard Worker hdrs = ["public/pw_thread/options.h"], 143*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 144*61c4878aSAndroid Build Coastguard Worker) 145*61c4878aSAndroid Build Coastguard Worker 146*61c4878aSAndroid Build Coastguard Workerlabel_flag( 147*61c4878aSAndroid Build Coastguard Worker name = "thread_backend", 148*61c4878aSAndroid Build Coastguard Worker build_setting_default = ":thread_unspecified_backend", 149*61c4878aSAndroid Build Coastguard Worker) 150*61c4878aSAndroid Build Coastguard Worker 151*61c4878aSAndroid Build Coastguard Workerhost_backend_alias( 152*61c4878aSAndroid Build Coastguard Worker name = "thread_unspecified_backend", 153*61c4878aSAndroid Build Coastguard Worker backend = "//pw_thread_stl:thread", 154*61c4878aSAndroid Build Coastguard Worker) 155*61c4878aSAndroid Build Coastguard Worker 156*61c4878aSAndroid Build Coastguard Workercc_library( 157*61c4878aSAndroid Build Coastguard Worker name = "thread_core", 158*61c4878aSAndroid Build Coastguard Worker hdrs = [ 159*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/thread_core.h", 160*61c4878aSAndroid Build Coastguard Worker ], 161*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 162*61c4878aSAndroid Build Coastguard Worker deps = [ 163*61c4878aSAndroid Build Coastguard Worker "//pw_log", 164*61c4878aSAndroid Build Coastguard Worker "//pw_status", 165*61c4878aSAndroid Build Coastguard Worker ], 166*61c4878aSAndroid Build Coastguard Worker) 167*61c4878aSAndroid Build Coastguard Worker 168*61c4878aSAndroid Build Coastguard Workercc_library( 169*61c4878aSAndroid Build Coastguard Worker name = "thread_snapshot_service", 170*61c4878aSAndroid Build Coastguard Worker srcs = [ 171*61c4878aSAndroid Build Coastguard Worker "pw_thread_private/thread_snapshot_service.h", 172*61c4878aSAndroid Build Coastguard Worker "thread_snapshot_service.cc", 173*61c4878aSAndroid Build Coastguard Worker ], 174*61c4878aSAndroid Build Coastguard Worker hdrs = ["public/pw_thread/thread_snapshot_service.h"], 175*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 176*61c4878aSAndroid Build Coastguard Worker deps = [ 177*61c4878aSAndroid Build Coastguard Worker "//pw_protobuf", 178*61c4878aSAndroid Build Coastguard Worker "//pw_rpc/raw:server_api", 179*61c4878aSAndroid Build Coastguard Worker "//pw_span", 180*61c4878aSAndroid Build Coastguard Worker "//pw_status", 181*61c4878aSAndroid Build Coastguard Worker ":config", 182*61c4878aSAndroid Build Coastguard Worker ":thread_pwpb", 183*61c4878aSAndroid Build Coastguard Worker ":thread_info", 184*61c4878aSAndroid Build Coastguard Worker ":thread_iteration", 185*61c4878aSAndroid Build Coastguard Worker ":thread_snapshot_service_pwpb", 186*61c4878aSAndroid Build Coastguard Worker ":thread_snapshot_service_raw_rpc", 187*61c4878aSAndroid Build Coastguard Worker # TODO(amontanez): This should depend on FreeRTOS but our third parties 188*61c4878aSAndroid Build Coastguard Worker # currently do not have Bazel support. 189*61c4878aSAndroid Build Coastguard Worker ], 190*61c4878aSAndroid Build Coastguard Worker) 191*61c4878aSAndroid Build Coastguard Worker 192*61c4878aSAndroid Build Coastguard Workerpw_facade( 193*61c4878aSAndroid Build Coastguard Worker name = "test_thread_context", 194*61c4878aSAndroid Build Coastguard Worker hdrs = [ 195*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/test_thread_context.h", 196*61c4878aSAndroid Build Coastguard Worker ], 197*61c4878aSAndroid Build Coastguard Worker backend = ":test_thread_context_backend", 198*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 199*61c4878aSAndroid Build Coastguard Worker) 200*61c4878aSAndroid Build Coastguard Worker 201*61c4878aSAndroid Build Coastguard Workerlabel_flag( 202*61c4878aSAndroid Build Coastguard Worker name = "test_thread_context_backend", 203*61c4878aSAndroid Build Coastguard Worker build_setting_default = ":test_thread_context_unspecified_backend", 204*61c4878aSAndroid Build Coastguard Worker) 205*61c4878aSAndroid Build Coastguard Worker 206*61c4878aSAndroid Build Coastguard Workerhost_backend_alias( 207*61c4878aSAndroid Build Coastguard Worker name = "test_thread_context_unspecified_backend", 208*61c4878aSAndroid Build Coastguard Worker backend = "//pw_thread_stl:test_thread_context", 209*61c4878aSAndroid Build Coastguard Worker) 210*61c4878aSAndroid Build Coastguard Worker 211*61c4878aSAndroid Build Coastguard Workerpw_facade( 212*61c4878aSAndroid Build Coastguard Worker name = "yield", 213*61c4878aSAndroid Build Coastguard Worker srcs = [ 214*61c4878aSAndroid Build Coastguard Worker "yield.cc", 215*61c4878aSAndroid Build Coastguard Worker ], 216*61c4878aSAndroid Build Coastguard Worker hdrs = [ 217*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/yield.h", 218*61c4878aSAndroid Build Coastguard Worker ], 219*61c4878aSAndroid Build Coastguard Worker backend = ":yield_backend", 220*61c4878aSAndroid Build Coastguard Worker implementation_deps = [ 221*61c4878aSAndroid Build Coastguard Worker ":thread", 222*61c4878aSAndroid Build Coastguard Worker ], 223*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 224*61c4878aSAndroid Build Coastguard Worker deps = [ 225*61c4878aSAndroid Build Coastguard Worker "//pw_preprocessor", 226*61c4878aSAndroid Build Coastguard Worker ], 227*61c4878aSAndroid Build Coastguard Worker) 228*61c4878aSAndroid Build Coastguard Worker 229*61c4878aSAndroid Build Coastguard Workerlabel_flag( 230*61c4878aSAndroid Build Coastguard Worker name = "yield_backend", 231*61c4878aSAndroid Build Coastguard Worker build_setting_default = ":yield_unspecified_backend", 232*61c4878aSAndroid Build Coastguard Worker) 233*61c4878aSAndroid Build Coastguard Worker 234*61c4878aSAndroid Build Coastguard Workerhost_backend_alias( 235*61c4878aSAndroid Build Coastguard Worker name = "yield_unspecified_backend", 236*61c4878aSAndroid Build Coastguard Worker backend = "//pw_thread_stl:yield", 237*61c4878aSAndroid Build Coastguard Worker) 238*61c4878aSAndroid Build Coastguard Worker 239*61c4878aSAndroid Build Coastguard Workercc_library( 240*61c4878aSAndroid Build Coastguard Worker name = "snapshot", 241*61c4878aSAndroid Build Coastguard Worker srcs = [ 242*61c4878aSAndroid Build Coastguard Worker "snapshot.cc", 243*61c4878aSAndroid Build Coastguard Worker ], 244*61c4878aSAndroid Build Coastguard Worker hdrs = [ 245*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/snapshot.h", 246*61c4878aSAndroid Build Coastguard Worker ], 247*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 248*61c4878aSAndroid Build Coastguard Worker deps = [ 249*61c4878aSAndroid Build Coastguard Worker ":config", 250*61c4878aSAndroid Build Coastguard Worker ":thread", 251*61c4878aSAndroid Build Coastguard Worker ":thread_pwpb", 252*61c4878aSAndroid Build Coastguard Worker "//pw_bytes", 253*61c4878aSAndroid Build Coastguard Worker "//pw_function", 254*61c4878aSAndroid Build Coastguard Worker "//pw_log", 255*61c4878aSAndroid Build Coastguard Worker "//pw_protobuf", 256*61c4878aSAndroid Build Coastguard Worker "//pw_status", 257*61c4878aSAndroid Build Coastguard Worker ], 258*61c4878aSAndroid Build Coastguard Worker) 259*61c4878aSAndroid Build Coastguard Worker 260*61c4878aSAndroid Build Coastguard Workercc_library( 261*61c4878aSAndroid Build Coastguard Worker name = "non_portable_test_thread_options", 262*61c4878aSAndroid Build Coastguard Worker hdrs = [ 263*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/non_portable_test_thread_options.h", 264*61c4878aSAndroid Build Coastguard Worker ], 265*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 266*61c4878aSAndroid Build Coastguard Worker deps = [ 267*61c4878aSAndroid Build Coastguard Worker ":thread", 268*61c4878aSAndroid Build Coastguard Worker ], 269*61c4878aSAndroid Build Coastguard Worker) 270*61c4878aSAndroid Build Coastguard Worker 271*61c4878aSAndroid Build Coastguard Worker# To instantiate this as a pw_cc_test, depend on this pw_cc_library and the 272*61c4878aSAndroid Build Coastguard Worker# pw_cc_library which implements the backend for non_portable_test_thread_options. See 273*61c4878aSAndroid Build Coastguard Worker# //pw_thread_stl:thread_backend_test as an example. 274*61c4878aSAndroid Build Coastguard Workercc_library( 275*61c4878aSAndroid Build Coastguard Worker name = "thread_facade_test", 276*61c4878aSAndroid Build Coastguard Worker testonly = True, 277*61c4878aSAndroid Build Coastguard Worker srcs = [ 278*61c4878aSAndroid Build Coastguard Worker "thread_facade_test.cc", 279*61c4878aSAndroid Build Coastguard Worker ], 280*61c4878aSAndroid Build Coastguard Worker deps = [ 281*61c4878aSAndroid Build Coastguard Worker ":non_portable_test_thread_options", 282*61c4878aSAndroid Build Coastguard Worker ":thread", 283*61c4878aSAndroid Build Coastguard Worker "//pw_chrono:system_clock", 284*61c4878aSAndroid Build Coastguard Worker "//pw_sync:binary_semaphore", 285*61c4878aSAndroid Build Coastguard Worker "//pw_unit_test", 286*61c4878aSAndroid Build Coastguard Worker ], 287*61c4878aSAndroid Build Coastguard Worker alwayslink = True, 288*61c4878aSAndroid Build Coastguard Worker) 289*61c4878aSAndroid Build Coastguard Worker 290*61c4878aSAndroid Build Coastguard Workerpw_cc_test( 291*61c4878aSAndroid Build Coastguard Worker name = "test_thread_context_facade_test", 292*61c4878aSAndroid Build Coastguard Worker srcs = [ 293*61c4878aSAndroid Build Coastguard Worker "test_thread_context_facade_test.cc", 294*61c4878aSAndroid Build Coastguard Worker ], 295*61c4878aSAndroid Build Coastguard Worker # TODO: b/317922402 - On Windows, this test can easily hang indefinitely. 296*61c4878aSAndroid Build Coastguard Worker # Disable on Windows until we can test with the native Windows SDK libraries 297*61c4878aSAndroid Build Coastguard Worker # for threading. 298*61c4878aSAndroid Build Coastguard Worker # TODO: b/361369192 - This test behaves unusually on rp2. 299*61c4878aSAndroid Build Coastguard Worker target_compatible_with = select({ 300*61c4878aSAndroid Build Coastguard Worker "@pico-sdk//bazel/constraint:rp2040": ["@platforms//:incompatible"], 301*61c4878aSAndroid Build Coastguard Worker "@pico-sdk//bazel/constraint:rp2350": ["@platforms//:incompatible"], 302*61c4878aSAndroid Build Coastguard Worker "@platforms//os:windows": ["@platforms//:incompatible"], 303*61c4878aSAndroid Build Coastguard Worker "//conditions:default": [], 304*61c4878aSAndroid Build Coastguard Worker }), 305*61c4878aSAndroid Build Coastguard Worker deps = [ 306*61c4878aSAndroid Build Coastguard Worker ":test_thread_context", 307*61c4878aSAndroid Build Coastguard Worker ":thread", 308*61c4878aSAndroid Build Coastguard Worker "//pw_sync:binary_semaphore", 309*61c4878aSAndroid Build Coastguard Worker "//pw_unit_test", 310*61c4878aSAndroid Build Coastguard Worker ], 311*61c4878aSAndroid Build Coastguard Worker) 312*61c4878aSAndroid Build Coastguard Worker 313*61c4878aSAndroid Build Coastguard Workerpw_cc_test( 314*61c4878aSAndroid Build Coastguard Worker name = "id_facade_test", 315*61c4878aSAndroid Build Coastguard Worker srcs = [ 316*61c4878aSAndroid Build Coastguard Worker "id_facade_test.cc", 317*61c4878aSAndroid Build Coastguard Worker ], 318*61c4878aSAndroid Build Coastguard Worker deps = [ 319*61c4878aSAndroid Build Coastguard Worker ":thread", 320*61c4878aSAndroid Build Coastguard Worker "//pw_unit_test", 321*61c4878aSAndroid Build Coastguard Worker ], 322*61c4878aSAndroid Build Coastguard Worker) 323*61c4878aSAndroid Build Coastguard Worker 324*61c4878aSAndroid Build Coastguard Workerpw_cc_test( 325*61c4878aSAndroid Build Coastguard Worker name = "options_test", 326*61c4878aSAndroid Build Coastguard Worker srcs = ["options_test.cc"], 327*61c4878aSAndroid Build Coastguard Worker deps = [ 328*61c4878aSAndroid Build Coastguard Worker ":options", 329*61c4878aSAndroid Build Coastguard Worker "//pw_compilation_testing:negative_compilation_testing", 330*61c4878aSAndroid Build Coastguard Worker ], 331*61c4878aSAndroid Build Coastguard Worker) 332*61c4878aSAndroid Build Coastguard Worker 333*61c4878aSAndroid Build Coastguard Workerpw_cc_test( 334*61c4878aSAndroid Build Coastguard Worker name = "sleep_facade_test", 335*61c4878aSAndroid Build Coastguard Worker srcs = [ 336*61c4878aSAndroid Build Coastguard Worker "sleep_facade_test.cc", 337*61c4878aSAndroid Build Coastguard Worker "sleep_facade_test_c.c", 338*61c4878aSAndroid Build Coastguard Worker ], 339*61c4878aSAndroid Build Coastguard Worker deps = [ 340*61c4878aSAndroid Build Coastguard Worker ":sleep", 341*61c4878aSAndroid Build Coastguard Worker ":thread", 342*61c4878aSAndroid Build Coastguard Worker "//pw_chrono:system_clock", 343*61c4878aSAndroid Build Coastguard Worker "//pw_preprocessor", 344*61c4878aSAndroid Build Coastguard Worker "//pw_unit_test", 345*61c4878aSAndroid Build Coastguard Worker ], 346*61c4878aSAndroid Build Coastguard Worker) 347*61c4878aSAndroid Build Coastguard Worker 348*61c4878aSAndroid Build Coastguard Workerpw_cc_test( 349*61c4878aSAndroid Build Coastguard Worker name = "thread_info_test", 350*61c4878aSAndroid Build Coastguard Worker srcs = [ 351*61c4878aSAndroid Build Coastguard Worker "thread_info_test.cc", 352*61c4878aSAndroid Build Coastguard Worker ], 353*61c4878aSAndroid Build Coastguard Worker deps = [ 354*61c4878aSAndroid Build Coastguard Worker ":thread_info", 355*61c4878aSAndroid Build Coastguard Worker "//pw_span", 356*61c4878aSAndroid Build Coastguard Worker ], 357*61c4878aSAndroid Build Coastguard Worker) 358*61c4878aSAndroid Build Coastguard Worker 359*61c4878aSAndroid Build Coastguard Workerpw_cc_test( 360*61c4878aSAndroid Build Coastguard Worker name = "thread_snapshot_service_test", 361*61c4878aSAndroid Build Coastguard Worker srcs = [ 362*61c4878aSAndroid Build Coastguard Worker "pw_thread_private/thread_snapshot_service.h", 363*61c4878aSAndroid Build Coastguard Worker "thread_snapshot_service_test.cc", 364*61c4878aSAndroid Build Coastguard Worker ], 365*61c4878aSAndroid Build Coastguard Worker # TODO: https://pwbug.dev/342662853 - This test fails under ASAN. 366*61c4878aSAndroid Build Coastguard Worker tags = ["noasan"], 367*61c4878aSAndroid Build Coastguard Worker deps = [ 368*61c4878aSAndroid Build Coastguard Worker ":thread_info", 369*61c4878aSAndroid Build Coastguard Worker ":thread_iteration", 370*61c4878aSAndroid Build Coastguard Worker ":thread_pwpb", 371*61c4878aSAndroid Build Coastguard Worker ":thread_snapshot_service", 372*61c4878aSAndroid Build Coastguard Worker ":thread_snapshot_service_pwpb", 373*61c4878aSAndroid Build Coastguard Worker "//pw_protobuf", 374*61c4878aSAndroid Build Coastguard Worker "//pw_span", 375*61c4878aSAndroid Build Coastguard Worker "//pw_sync:thread_notification", 376*61c4878aSAndroid Build Coastguard Worker ], 377*61c4878aSAndroid Build Coastguard Worker) 378*61c4878aSAndroid Build Coastguard Worker 379*61c4878aSAndroid Build Coastguard Workerpw_cc_test( 380*61c4878aSAndroid Build Coastguard Worker name = "yield_facade_test", 381*61c4878aSAndroid Build Coastguard Worker srcs = [ 382*61c4878aSAndroid Build Coastguard Worker "yield_facade_test.cc", 383*61c4878aSAndroid Build Coastguard Worker "yield_facade_test_c.c", 384*61c4878aSAndroid Build Coastguard Worker ], 385*61c4878aSAndroid Build Coastguard Worker deps = [ 386*61c4878aSAndroid Build Coastguard Worker ":thread", 387*61c4878aSAndroid Build Coastguard Worker ":yield", 388*61c4878aSAndroid Build Coastguard Worker "//pw_preprocessor", 389*61c4878aSAndroid Build Coastguard Worker "//pw_unit_test", 390*61c4878aSAndroid Build Coastguard Worker ], 391*61c4878aSAndroid Build Coastguard Worker) 392*61c4878aSAndroid Build Coastguard Worker 393*61c4878aSAndroid Build Coastguard Workerproto_library( 394*61c4878aSAndroid Build Coastguard Worker name = "thread_proto", 395*61c4878aSAndroid Build Coastguard Worker srcs = ["pw_thread_protos/thread.proto"], 396*61c4878aSAndroid Build Coastguard Worker strip_import_prefix = "/pw_thread", 397*61c4878aSAndroid Build Coastguard Worker deps = [ 398*61c4878aSAndroid Build Coastguard Worker "//pw_tokenizer:tokenizer_proto", 399*61c4878aSAndroid Build Coastguard Worker ], 400*61c4878aSAndroid Build Coastguard Worker) 401*61c4878aSAndroid Build Coastguard Worker 402*61c4878aSAndroid Build Coastguard Workerpy_proto_library( 403*61c4878aSAndroid Build Coastguard Worker name = "thread_proto_py_pb2", 404*61c4878aSAndroid Build Coastguard Worker deps = [":thread_proto"], 405*61c4878aSAndroid Build Coastguard Worker) 406*61c4878aSAndroid Build Coastguard Worker 407*61c4878aSAndroid Build Coastguard Workerproto_library( 408*61c4878aSAndroid Build Coastguard Worker name = "thread_snapshot_service_proto", 409*61c4878aSAndroid Build Coastguard Worker srcs = ["pw_thread_protos/thread_snapshot_service.proto"], 410*61c4878aSAndroid Build Coastguard Worker strip_import_prefix = "/pw_thread", 411*61c4878aSAndroid Build Coastguard Worker deps = [ 412*61c4878aSAndroid Build Coastguard Worker ":thread_proto", 413*61c4878aSAndroid Build Coastguard Worker ], 414*61c4878aSAndroid Build Coastguard Worker) 415*61c4878aSAndroid Build Coastguard Worker 416*61c4878aSAndroid Build Coastguard Workerpwpb_proto_library( 417*61c4878aSAndroid Build Coastguard Worker name = "thread_snapshot_service_pwpb", 418*61c4878aSAndroid Build Coastguard Worker deps = [":thread_snapshot_service_proto"], 419*61c4878aSAndroid Build Coastguard Worker) 420*61c4878aSAndroid Build Coastguard Worker 421*61c4878aSAndroid Build Coastguard Workerraw_rpc_proto_library( 422*61c4878aSAndroid Build Coastguard Worker name = "thread_snapshot_service_raw_rpc", 423*61c4878aSAndroid Build Coastguard Worker deps = [":thread_snapshot_service_proto"], 424*61c4878aSAndroid Build Coastguard Worker) 425*61c4878aSAndroid Build Coastguard Worker 426*61c4878aSAndroid Build Coastguard Workerpy_proto_library( 427*61c4878aSAndroid Build Coastguard Worker name = "thread_snapshot_service_py_pb2", 428*61c4878aSAndroid Build Coastguard Worker deps = [":thread_snapshot_service_proto"], 429*61c4878aSAndroid Build Coastguard Worker) 430*61c4878aSAndroid Build Coastguard Worker 431*61c4878aSAndroid Build Coastguard Workerpwpb_proto_library( 432*61c4878aSAndroid Build Coastguard Worker name = "thread_pwpb", 433*61c4878aSAndroid Build Coastguard Worker deps = [":thread_proto"], 434*61c4878aSAndroid Build Coastguard Worker) 435*61c4878aSAndroid Build Coastguard Worker 436*61c4878aSAndroid Build Coastguard Workerfilegroup( 437*61c4878aSAndroid Build Coastguard Worker name = "doxygen", 438*61c4878aSAndroid Build Coastguard Worker srcs = [ 439*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/options.h", 440*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/test_thread_context.h", 441*61c4878aSAndroid Build Coastguard Worker "public/pw_thread/thread.h", 442*61c4878aSAndroid Build Coastguard Worker ], 443*61c4878aSAndroid Build Coastguard Worker) 444