third_party.pigweed.src/pw_assert_basic/BUILD
Nathaniel Brough be3fba1ec8 pw_assert_basic: Fix build and minor bugfix
This commit fixes the bazel build files. This fix also addresses a bug
where an interaction between @io_bazel//src/main/tools:process-wrapper
and pw_assert_basic caused the output from `bazel test
//some_test_target` to be completely empty on assertion. This occured
because pw_assert_basic was 'aborting' causing the core to dump without
calling the destructors. Under normal circumstances this is fine as
stdout is synchronised. However as bazel's process wrapper binds
stdout, it results in stdout buffering, meaning that when
pw_assert_basic 'aborts' the buffered stdout is lost. The replacement
of 'abort' to 'exit' allows destructors for the stdout handles to be
called thus flushing the buffer out to bazels process-wrapper.
This is not a critical bug and is more of a nuisance as the message that
prints the line number that caused the assertion is lost when the
program aborts.

Change-Id: Ia1599db78c5caa878f3d7496e2b3009e3c44dcea
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/34621
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Keir Mierle <keir@google.com>
2021-03-09 18:59:11 +00:00

76 lines
1.7 KiB
Python

# Copyright 2020 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
load(
"//pw_build:pigweed.bzl",
"pw_cc_library",
)
package(default_visibility = ["//visibility:public"])
licenses(["notice"]) # Apache License 2.0
pw_cc_library(
name = "headers",
hdrs = [
"public/pw_assert_basic/assert_basic.h",
"public_overrides/pw_assert_backend/assert_backend.h",
],
includes = [
"public",
"public_overrides",
],
deps = [
"//pw_preprocessor",
],
)
pw_cc_library(
name = "pw_assert_basic",
srcs = [
"assert_basic.cc",
],
deps = [
":headers",
":pw_assert_basic_handler",
"//pw_assert:facade",
"//pw_preprocessor",
],
)
pw_cc_library(
name = "handler_facade",
hdrs = [
"public/pw_assert_basic/handler.h",
],
deps = [
"//pw_preprocessor",
],
)
pw_cc_library(
name = "pw_assert_basic_handler",
srcs = [
"basic_handler.cc",
],
deps = [
":handler_facade",
":headers",
"//pw_assert:facade",
"//pw_preprocessor",
"//pw_string",
"//pw_sys_io",
],
)