blob: 32192523dd7e00263bebd72d73c732131c45e31e [file] [log] [blame]
#!/usr/bin/env python3
# Copyright 2022 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.
"""Tests for bazel_parser."""
import difflib
from pathlib import Path
import tempfile
import unittest
from pw_presubmit import bazel_parser
# This is a real Bazel failure, trimmed slightly.
_REAL_TEST_INPUT = """
Starting local Bazel server and connecting to it...
WARNING: --verbose_explanations has no effect when --explain=<file> is not enabled
Loading:
Loading: 0 packages loaded
Analyzing: 1362 targets (197 packages loaded)
Analyzing: 1362 targets (197 packages loaded, 0 targets configured)
INFO: Analyzed 1362 targets (304 packages loaded, 15546 targets configured).
INFO: Found 1362 targets...
[6 / 124] [Prepa] BazelWorkspaceStatusAction stable-status.txt
[747 / 1,548] Compiling pw_kvs/entry.cc; 0s linux-sandbox ... (3 actions, ...
ERROR: /usr/local/google/home/mohrr/pigweed/pigweed/pw_kvs/BUILD.bazel:25:14: Compiling pw_kvs/entry.cc failed: (Exit 1): gcc failed: error executing command
(cd /usr/local/google/home/mohrr/.cache/bazel/_bazel_mohrr/7e133e1f95b61... \
exec env - \
CPP_TOOL_PATH=external/clang_llvm_12_00_x86_64_linux_gnu_ubuntu_16_04/... \
GCC_TOOL_PATH=external/clang_llvm_12_00_x86_64_linux_gnu_ubuntu_16_04/... \
LD_TOOL_PATH=external/clang_llvm_12_00_x86_64_linux_gnu_ubuntu_16_04/... \
NM_TOOL_PATH=external/clang_llvm_12_00_x86_64_linux_gnu_ubuntu_16_04/... \
OBJDUMP_TOOL_PATH=external/clang_llvm_12_00_x86_64_linux_gnu_ubuntu_16_... \
PATH=/usr/local/google/home/mohrr/pigweed/pigweed/out/host/host_tools:... \
PWD=/proc/self/cwd \
external/rules_cc_toolchain/cc_toolchain/wrappers/posix/gcc -MD -MF bazel-out/k8-fastbuild/bin/pw_kvs/_objs/pw_kvs/entry.pic.d '-frandom-seed=bazel-out/k8-fastbuild/bin/pw_kvs/_objs/pw_kvs/entry.pic.o' -fPIC -iquote . -iquote bazel-out/k8-fastbuild/bin -isystem pw_kvs/public -isystem bazel-out/k8-fastbuild/bin/pw_kvs/public -isystem pw_assert/assert_compatibility_public_overrides -isystem bazel-out/k8-fastbuild/bin/pw_assert/assert_compatibility_public_overrides -isystem pw_assert/public -isystem bazel-out/k8-fastbuild/bin/pw_assert/public -isystem pw_preprocessor/public -isystem bazel-out/k8-fastbuild/bin/pw_preprocessor/public -isystem pw_assert_basic/public -isystem bazel-out/k8-fastbuild/bin/pw_assert_basic/public -isystem pw_assert_basic/public_overrides -isystem bazel-out/k8-fastbuild/bin/pw_assert_basic/public_overrides -isystem pw_string/public -isystem bazel-out/k8-fastbuild/bin/pw_string/public -isystem pw_span/public -isystem bazel-out/k8-fastbuild/bin/pw_span/public -isystem pw_polyfill/public -isystem bazel-out/k8-fastbuild/bin/pw_polyfill/public -isystem pw_status/public -isystem bazel-out/k8-fastbuild/bin/pw_status/public -isystem pw_result/public -isystem bazel-out/k8-fastbuild/bin/pw_result/public -isystem pw_sys_io/public -isystem bazel-out/k8-fastbuild/bin/pw_sys_io/public -isystem pw_bytes/public -isystem bazel-out/k8-fastbuild/bin/pw_bytes/public -isystem pw_containers/public -isystem bazel-out/k8-fastbuild/bin/pw_containers/public -isystem pw_checksum/public -isystem bazel-out/k8-fastbuild/bin/pw_checksum/public -isystem pw_compilation_testing/public -isystem bazel-out/k8-fastbuild/bin/pw_compilation_testing/public -isystem pw_log/public -isystem bazel-out/k8-fastbuild/bin/pw_log/public -isystem pw_log_basic/public -isystem bazel-out/k8-fastbuild/bin/pw_log_basic/public -isystem pw_log_basic/public_overrides -isystem bazel-out/k8-fastbuild/bin/pw_log_basic/public_overrides -isystem pw_stream/public -isystem bazel-out/k8-fastbuild/bin/pw_stream/public -nostdinc++ -nostdinc -isystemexternal/clang_llvm_12_00_x86_64_linux_gnu_ubuntu_16_04/include/c++/v1 -isystemexternal/debian_stretch_amd64_sysroot/usr/local/include -isystemexternal/debian_stretch_amd64_sysroot/usr/include/x86_64-linux-gnu -isystemexternal/debian_stretch_amd64_sysroot/usr/include -isystemexternal/clang_llvm_12_00_x86_64_linux_gnu_ubuntu_16_04/lib/clang/12.0.0 -isystemexternal/clang_llvm_12_00_x86_64_linux_gnu_ubuntu_16_04/lib/clang/12.0.0/include -fdata-sections -ffunction-sections -no-canonical-prefixes -Wno-builtin-macro-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -xc++ --sysroot external/debian_stretch_amd64_sysroot -O0 -fPIC -g -fno-common -fno-exceptions -ffunction-sections -fdata-sections -Wall -Wextra -Werror '-Wno-error=cpp' '-Wno-error=deprecated-declarations' -Wno-private-header '-std=c++17' -fno-rtti -Wnon-virtual-dtor -Wno-register -c pw_kvs/entry.cc -o bazel-out/k8-fastbuild/bin/pw_kvs/_objs/pw_kvs/entry.pic.o)
# Configuration: 752863e407a197a5b9da05cfc572e7013efd6958e856cee61d2fa474ed...
# Execution platform: @local_config_platform//:host
Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
pw_kvs/entry.cc:49:20: error: no member named 'Dat' in 'pw::Status'
return Status::Dat aLoss();
~~~~~~~~^
pw_kvs/entry.cc:49:23: error: expected ';' after return statement
return Status::Dat aLoss();
^
;
2 errors generated.
INFO: Elapsed time: 5.662s, Critical Path: 1.01s
INFO: 12 processes: 12 internal.
FAILED: Build did NOT complete successfully
FAILED: Build did NOT complete successfully
"""
_REAL_TEST_SUMMARY = """
ERROR: /usr/local/google/home/mohrr/pigweed/pigweed/pw_kvs/BUILD.bazel:25:14: Compiling pw_kvs/entry.cc failed: (Exit 1): gcc failed: error executing command
# Execution platform: @local_config_platform//:host
pw_kvs/entry.cc:49:20: error: no member named 'Dat' in 'pw::Status'
return Status::Dat aLoss();
~~~~~~~~^
pw_kvs/entry.cc:49:23: error: expected ';' after return statement
return Status::Dat aLoss();
^
;
2 errors generated.
INFO: Elapsed time: 5.662s, Critical Path: 1.01s
INFO: 12 processes: 12 internal.
FAILED: Build did NOT complete successfully
FAILED: Build did NOT complete successfully
"""
_REAL_TEST_INPUT_2 = """
[4,421 / 4,540] 302 / 343 tests; Compiling pw_transfer/client_test.cc; 7s linux-sandbox ... (15 actions running)
[4,425 / 4,540] 302 / 343 tests; Compiling pw_transfer/client_test.cc; 9s linux-sandbox ... (16 actions, 15 running)
[4,426 / 4,540] 302 / 343 tests; Compiling pw_transfer/client_test.cc; 10s linux-sandbox ... (16 actions running)
[4,430 / 4,540] 302 / 343 tests; Compiling pw_rpc/raw/service_nc_test.cc; 7s linux-sandbox ... (14 actions, 13 running)
[4,439 / 4,542] 304 / 343 tests; Compiling pw_rpc/nanopb/client_server_context_test.cc; 7s linux-sandbox ... (15 actions running)
[4,443 / 4,542] 304 / 343 tests; Compiling pw_rpc/pwpb/synchronous_call_test.cc; 7s linux-sandbox ... (15 actions running)
[4,449 / 4,544] 306 / 343 tests; Compiling pw_transfer/transfer.cc; 6s linux-sandbox ... (16 actions, 15 running)
[4,458 / 4,546] 308 / 343 tests; Compiling pw_rpc/test_helpers_test.cc; 4s linux-sandbox ... (16 actions running)
[4,460 / 4,547] 309 / 343 tests; Compiling pw_rpc/test_helpers_test.cc; 5s linux-sandbox ... (16 actions running)
[4,466 / 4,548] 310 / 343 tests; Compiling pw_rpc/test_helpers_test.cc; 6s linux-sandbox ... (16 actions, 15 running)
[4,469 / 4,549] 311 / 343 tests; Compiling pw_rpc/test_helpers_test.cc; 7s linux-sandbox ... (16 actions running)
[4,478 / 4,550] 312 / 343 tests; Compiling pw_transfer/client_test.cc; 8s linux-sandbox ... (14 actions, 13 running)
[4,481 / 4,550] 312 / 343 tests; Compiling pw_transfer/client_test.cc; 9s linux-sandbox ... (16 actions, 15 running)
[4,486 / 4,551] 313 / 343 tests; Compiling pw_transfer/client_test.cc; 10s linux-sandbox ... (16 actions, 15 running)
[4,492 / 4,552] 314 / 343 tests; Compiling pw_transfer/integration_test/server.cc; 7s linux-sandbox ... (16 actions, 15 running)
[4,501 / 4,556] 318 / 343 tests; Compiling pw_transfer/atomic_file_transfer_handler_test.cc; 5s linux-sandbox ... (15 actions running)
[4,506 / 4,556] 318 / 343 tests; Compiling pw_rpc/pwpb/client_server_context_threaded_test.cc; 5s linux-sandbox ... (16 actions, 15 running)
[4,513 / 4,557] 319 / 343 tests; Compiling pw_transfer/client.cc; 6s linux-sandbox ... (15 actions, 14 running)
[4,519 / 4,557] 319 / 343 tests; Compiling pw_rpc/pwpb/client_server_context_threaded_test.cc; 5s linux-sandbox ... (16 actions, 15 running)
[4,524 / 4,558] 320 / 343 tests; Compiling pw_transfer/integration_test/client.cc; 6s linux-sandbox ... (16 actions running)
[4,533 / 4,560] 322 / 343 tests; Compiling pw_rpc/pwpb/fake_channel_output_test.cc; 4s linux-sandbox ... (16 actions running)
[4,537 / 4,560] 322 / 343 tests; Compiling pw_rpc/pwpb/fake_channel_output_test.cc; 5s linux-sandbox ... (14 actions running)
[4,544 / 4,569] 325 / 343 tests; Compiling pw_rpc/pwpb/fake_channel_output_test.cc; 6s linux-sandbox ... (15 actions running)
[4,550 / 4,569] 325 / 343 tests; Compiling pw_rpc/pwpb/method_lookup_test.cc; 5s linux-sandbox ... (14 actions, 13 running)
[4,560 / 4,571] 327 / 343 tests; Compiling pw_rpc/pwpb/server_reader_writer_test.cc; 4s linux-sandbox ... (9 actions, 8 running)
[4,566 / 4,573] 329 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 4s linux-sandbox ... (7 actions, 6 running)
[4,567 / 4,573] 329 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 5s linux-sandbox ... (6 actions running)
[4,567 / 4,573] 329 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 14s linux-sandbox ... (6 actions running)
[4,567 / 4,573] 330 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 15s linux-sandbox ... (6 actions running)
[4,568 / 4,573] 330 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 16s linux-sandbox ... (5 actions running)
[4,568 / 4,573] 330 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 26s linux-sandbox ... (5 actions running)
[4,568 / 4,573] 330 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 52s linux-sandbox ... (5 actions running)
[4,569 / 4,573] 331 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 53s linux-sandbox ... (4 actions running)
[4,570 / 4,573] 332 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 54s linux-sandbox ... (3 actions running)
[4,570 / 4,573] 332 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 65s linux-sandbox ... (3 actions running)
[4,570 / 4,573] 332 / 343 tests; Testing //pw_transfer/integration_test:cross_language_medium_read_test; 83s linux-sandbox ... (3 actions running)
FAIL: //pw_transfer/integration_test:cross_language_medium_read_test (see <truncated>/pw_transfer/integration_test/cross_language_medium_read_test/test.log)
INFO: From Testing //pw_transfer/integration_test:cross_language_medium_read_test:
stdout (<truncated>/_tmp/actions/stdout-2115) 1131999 exceeds maximum size of --experimental_ui_max_stdouterr_bytes=1048576 bytes; skipping
[4,572 / 4,573] 334 / 343 tests, 1 failed; Testing //pw_transfer/integration_test:expected_errors_test; 84s linux-sandbox
[4,572 / 4,573] 334 / 343 tests, 1 failed; Testing //pw_transfer/integration_test:expected_errors_test; 94s linux-sandbox
[4,572 / 4,573] 334 / 343 tests, 1 failed; Testing //pw_transfer/integration_test:expected_errors_test; 124s linux-sandbox
[4,572 / 4,573] 334 / 343 tests, 1 failed; Testing //pw_transfer/integration_test:expected_errors_test; 168s linux-sandbox
INFO: Elapsed time: 507.459s, Critical Path: 181.66s
INFO: 1206 processes: 1235 linux-sandbox, 4 worker.
INFO: Build completed, 1 test FAILED, 1206 total actions
//pw_allocator:block_test (cached) PASSED in 0.1s
//pw_allocator:freelist_heap_test (cached) PASSED in 0.1s
//pw_allocator:freelist_test (cached) PASSED in 0.0s
//pw_analog:analog_input_test (cached) PASSED in 0.1s
//pw_analog:microvolt_input_test (cached) PASSED in 0.0s
//pw_arduino_build/py:builder_test (cached) PASSED in 0.7s
//pw_arduino_build/py:file_operations_test (cached) PASSED in 1.0s
//pw_assert:assert_backend_compile_test (cached) PASSED in 0.2s
//pw_assert:assert_facade_test (cached) PASSED in 0.1s
//pw_async:fake_dispatcher_test (cached) PASSED in 0.1s
//pw_async_basic:dispatcher_test (cached) PASSED in 0.1s
//pw_async_basic:fake_dispatcher_fixture_test (cached) PASSED in 0.1s
//pw_async_basic:heap_dispatcher_test (cached) PASSED in 0.1s
//pw_base64:base64_test (cached) PASSED in 0.2s
//pw_blob_store:blob_store_chunk_write_test (cached) PASSED in 0.8s
//pw_blob_store:blob_store_deferred_write_test (cached) PASSED in 0.5s
//pw_blob_store:blob_store_test (cached) PASSED in 1.0s
//pw_blob_store:flat_file_system_entry_test (cached) PASSED in 0.1s
//pw_bluetooth:address_test (cached) PASSED in 0.3s
//pw_bluetooth:api_test (cached) PASSED in 0.4s
//pw_bluetooth:result_test (cached) PASSED in 0.2s
//pw_bluetooth:uuid_test (cached) PASSED in 0.1s
//pw_bluetooth_hci:packet_test (cached) PASSED in 0.1s
//pw_bluetooth_hci:uart_transport_fuzzer (cached) PASSED in 0.2s
//pw_bluetooth_hci:uart_transport_test (cached) PASSED in 0.1s
//pw_bluetooth_profiles:device_info_service_test (cached) PASSED in 0.0s
//pw_build:file_prefix_map_test (cached) PASSED in 0.1s
//pw_build_info:build_id_test (cached) PASSED in 0.1s
//pw_bytes:array_test (cached) PASSED in 0.1s
//pw_bytes:bit_test (cached) PASSED in 0.1s
//pw_bytes:byte_builder_test (cached) PASSED in 0.0s
//pw_bytes:endian_test (cached) PASSED in 0.1s
//pw_bytes:units_test (cached) PASSED in 0.1s
//pw_checksum:crc16_ccitt_test (cached) PASSED in 0.1s
//pw_checksum:crc32_test (cached) PASSED in 0.1s
//pw_chrono:simulated_system_clock_test (cached) PASSED in 0.1s
//pw_chrono:system_clock_facade_test (cached) PASSED in 0.1s
//pw_chrono:system_timer_facade_test (cached) PASSED in 0.7s
//pw_cli/py:envparse_test (cached) PASSED in 0.8s
//pw_cli/py:plugins_test (cached) PASSED in 0.7s
//pw_containers:algorithm_test (cached) PASSED in 0.1s
//pw_containers:filtered_view_test (cached) PASSED in 0.1s
//pw_containers:flat_map_test (cached) PASSED in 0.1s
//pw_containers:inline_deque_test (cached) PASSED in 0.3s
//pw_containers:inline_queue_test (cached) PASSED in 0.1s
//pw_containers:intrusive_list_test (cached) PASSED in 0.1s
//pw_containers:raw_storage_test (cached) PASSED in 0.1s
//pw_containers:to_array_test (cached) PASSED in 0.1s
//pw_containers:vector_test (cached) PASSED in 0.1s
//pw_containers:wrapped_iterator_test (cached) PASSED in 0.2s
//pw_cpu_exception_cortex_m/py:exception_analyzer_test (cached) PASSED in 1.0s
//pw_crypto:ecdsa_test (cached) PASSED in 0.1s
//pw_crypto:sha256_mock_test (cached) PASSED in 0.1s
//pw_crypto:sha256_test (cached) PASSED in 0.0s
//pw_digital_io:digital_io_test (cached) PASSED in 0.2s
//pw_file:flat_file_system_test (cached) PASSED in 0.2s
//pw_function:function_test (cached) PASSED in 0.1s
//pw_function:pointer_test (cached) PASSED in 0.3s
//pw_function:scope_guard_test (cached) PASSED in 0.1s
//pw_fuzzer/examples/fuzztest:metrics_fuzztest (cached) PASSED in 0.1s
//pw_fuzzer/examples/fuzztest:metrics_unittest (cached) PASSED in 0.2s
//pw_fuzzer/examples/libfuzzer:toy_fuzzer (cached) PASSED in 0.2s
//pw_hdlc:decoder_test (cached) PASSED in 0.3s
//pw_hdlc:encoded_size_test (cached) PASSED in 0.2s
//pw_hdlc:encoder_test (cached) PASSED in 0.1s
//pw_hdlc:rpc_channel_test (cached) PASSED in 0.1s
//pw_hdlc:wire_packet_parser_test (cached) PASSED in 0.2s
//pw_hdlc/java/test/dev/pigweed/pw_hdlc:DecoderTest (cached) PASSED in 0.5s
//pw_hdlc/java/test/dev/pigweed/pw_hdlc:EncoderTest (cached) PASSED in 0.6s
//pw_hdlc/java/test/dev/pigweed/pw_hdlc:FrameTest (cached) PASSED in 0.9s
//pw_hex_dump:hex_dump_test (cached) PASSED in 0.1s
//pw_i2c:address_test (cached) PASSED in 0.1s
//pw_i2c:device_test (cached) PASSED in 0.1s
//pw_i2c:i2c_service_test (cached) PASSED in 0.0s
//pw_i2c:initiator_mock_test (cached) PASSED in 0.1s
//pw_i2c:register_device_test (cached) PASSED in 0.1s
//pw_i2c_linux:initiator_test (cached) PASSED in 0.1s
//pw_intrusive_ptr:intrusive_ptr_test (cached) PASSED in 0.0s
//pw_intrusive_ptr:recyclable_test (cached) PASSED in 0.1s
//pw_kvs:alignment_test (cached) PASSED in 0.1s
//pw_kvs:checksum_test (cached) PASSED in 0.2s
//pw_kvs:converts_to_span_test (cached) PASSED in 0.1s
//pw_kvs:entry_cache_test (cached) PASSED in 0.1s
//pw_kvs:entry_test (cached) PASSED in 0.2s
//pw_kvs:fake_flash_test_key_value_store_test (cached) PASSED in 0.1s
//pw_kvs:flash_partition_16_alignment_test (cached) PASSED in 2.4s
//pw_kvs:flash_partition_1_alignment_test (cached) PASSED in 32.1s
//pw_kvs:flash_partition_256_alignment_test (cached) PASSED in 0.5s
//pw_kvs:flash_partition_256_write_size_test (cached) PASSED in 0.4s
//pw_kvs:flash_partition_64_alignment_test (cached) PASSED in 1.0s
//pw_kvs:flash_partition_stream_test (cached) PASSED in 0.3s
//pw_kvs:key_test (cached) PASSED in 0.1s
//pw_kvs:key_value_store_16_alignment_flash_test (cached) PASSED in 0.1s
//pw_kvs:key_value_store_1_alignment_flash_test (cached) PASSED in 0.3s
//pw_kvs:key_value_store_256_alignment_flash_test (cached) PASSED in 0.1s
//pw_kvs:key_value_store_64_alignment_flash_test (cached) PASSED in 0.2s
//pw_kvs:key_value_store_binary_format_test (cached) PASSED in 0.1s
//pw_kvs:key_value_store_map_test (cached) PASSED in 6.4s
//pw_kvs:key_value_store_put_test (cached) PASSED in 0.2s
//pw_kvs:key_value_store_test (cached) PASSED in 0.3s
//pw_kvs:key_value_store_wear_test (cached) PASSED in 0.5s
//pw_kvs:sectors_test (cached) PASSED in 0.1s
//pw_libc:memset_test (cached) PASSED in 0.1s
//pw_log:glog_adapter_test (cached) PASSED in 0.1s
//pw_log:proto_utils_test (cached) PASSED in 0.0s
//pw_log:test (cached) PASSED in 0.2s
//pw_log_null:test (cached) PASSED in 0.0s
//pw_log_rpc:log_filter_service_test (cached) PASSED in 0.1s
//pw_log_rpc:log_filter_test (cached) PASSED in 0.0s
//pw_log_rpc:log_service_test (cached) PASSED in 0.0s
//pw_log_rpc:rpc_log_drain_test (cached) PASSED in 0.2s
//pw_log_tokenized:log_tokenized_test (cached) PASSED in 0.1s
//pw_log_tokenized:metadata_test (cached) PASSED in 0.2s
//pw_log_tokenized/py:format_string_test (cached) PASSED in 0.9s
//pw_log_tokenized/py:metadata_test (cached) PASSED in 0.6s
//pw_metric:global_test (cached) PASSED in 0.6s
//pw_metric:metric_service_pwpb_test (cached) PASSED in 0.1s
//pw_metric:metric_test (cached) PASSED in 0.2s
//pw_multisink:multisink_test (cached) PASSED in 0.2s
//pw_multisink:stl_multisink_threaded_test (cached) PASSED in 0.1s
//pw_perf_test:chrono_timer_test (cached) PASSED in 0.1s
//pw_perf_test:perf_test_test (cached) PASSED in 0.1s
//pw_perf_test:state_test (cached) PASSED in 0.2s
//pw_perf_test:timer_test (cached) PASSED in 0.1s
//pw_persistent_ram:flat_file_system_entry_test (cached) PASSED in 0.1s
//pw_persistent_ram:persistent_buffer_test (cached) PASSED in 0.3s
//pw_persistent_ram:persistent_test (cached) PASSED in 0.1s
//pw_polyfill:test (cached) PASSED in 0.1s
//pw_preprocessor:arguments_test (cached) PASSED in 0.2s
//pw_preprocessor:boolean_test (cached) PASSED in 0.2s
//pw_preprocessor:compiler_test (cached) PASSED in 0.2s
//pw_preprocessor:concat_test (cached) PASSED in 0.1s
//pw_preprocessor:util_test (cached) PASSED in 0.1s
//pw_protobuf:codegen_decoder_test (cached) PASSED in 0.1s
//pw_protobuf:codegen_encoder_test (cached) PASSED in 0.2s
//pw_protobuf:decoder_fuzz_test (cached) PASSED in 0.2s
//pw_protobuf:decoder_test (cached) PASSED in 0.1s
//pw_protobuf:encoder_fuzz_test (cached) PASSED in 0.3s
//pw_protobuf:encoder_test (cached) PASSED in 0.1s
//pw_protobuf:find_test (cached) PASSED in 0.1s
//pw_protobuf:map_utils_test (cached) PASSED in 0.1s
//pw_protobuf:message_test (cached) PASSED in 0.1s
//pw_protobuf:serialized_size_test (cached) PASSED in 0.2s
//pw_protobuf:stream_decoder_test (cached) PASSED in 0.2s
//pw_protobuf_compiler:nested_packages_test (cached) PASSED in 0.1s
//pw_protobuf_compiler/py:compiled_protos_test (cached) PASSED in 0.4s
//pw_random:xor_shift_test (cached) PASSED in 0.2s
//pw_result:expected_test (cached) PASSED in 0.1s
//pw_result:result_test (cached) PASSED in 0.1s
//pw_result:statusor_test (cached) PASSED in 0.2s
//pw_ring_buffer:prefixed_entry_ring_buffer_test (cached) PASSED in 0.2s
//pw_router:static_router_test (cached) PASSED in 0.2s
//pw_rpc:call_test (cached) PASSED in 0.1s
//pw_rpc:callback_test (cached) PASSED in 0.3s
//pw_rpc:channel_test (cached) PASSED in 0.2s
//pw_rpc:client_server_test (cached) PASSED in 0.1s
//pw_rpc:fake_channel_output_test (cached) PASSED in 0.1s
//pw_rpc:method_test (cached) PASSED in 0.1s
//pw_rpc:packet_meta_test (cached) PASSED in 0.1s
//pw_rpc:packet_test (cached) PASSED in 0.0s
//pw_rpc:server_test (cached) PASSED in 0.1s
//pw_rpc:service_test (cached) PASSED in 0.1s
//pw_rpc:test_helpers_test (cached) PASSED in 0.2s
//pw_rpc/java/test/dev/pigweed/pw_rpc:ClientTest (cached) PASSED in 1.5s
//pw_rpc/java/test/dev/pigweed/pw_rpc:EndpointTest (cached) PASSED in 1.5s
//pw_rpc/java/test/dev/pigweed/pw_rpc:FutureCallTest (cached) PASSED in 1.5s
//pw_rpc/java/test/dev/pigweed/pw_rpc:IdsTest (cached) PASSED in 0.7s
//pw_rpc/java/test/dev/pigweed/pw_rpc:PacketsTest (cached) PASSED in 0.6s
//pw_rpc/java/test/dev/pigweed/pw_rpc:ServiceTest (cached) PASSED in 0.6s
//pw_rpc/java/test/dev/pigweed/pw_rpc:StreamObserverCallTest (cached) PASSED in 1.5s
//pw_rpc/java/test/dev/pigweed/pw_rpc:StreamObserverMethodClientTest (cached) PASSED in 1.6s
//pw_rpc/nanopb:callback_test (cached) PASSED in 0.3s
//pw_rpc/nanopb:client_call_test (cached) PASSED in 0.1s
//pw_rpc/nanopb:client_reader_writer_test (cached) PASSED in 0.1s
//pw_rpc/nanopb:client_server_context_test (cached) PASSED in 0.1s
//pw_rpc/nanopb:client_server_context_threaded_test (cached) PASSED in 0.1s
//pw_rpc/nanopb:codegen_test (cached) PASSED in 0.1s
//pw_rpc/nanopb:fake_channel_output_test (cached) PASSED in 0.2s
//pw_rpc/nanopb:method_info_test (cached) PASSED in 0.2s
//pw_rpc/nanopb:method_lookup_test (cached) PASSED in 0.2s
//pw_rpc/nanopb:method_test (cached) PASSED in 0.1s
//pw_rpc/nanopb:method_union_test (cached) PASSED in 0.2s
//pw_rpc/nanopb:serde_test (cached) PASSED in 0.2s
//pw_rpc/nanopb:server_callback_test (cached) PASSED in 0.2s
//pw_rpc/nanopb:server_reader_writer_test (cached) PASSED in 0.0s
//pw_rpc/nanopb:stub_generation_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:client_call_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:client_reader_writer_test (cached) PASSED in 0.2s
//pw_rpc/pwpb:client_server_context_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:client_server_context_threaded_test (cached) PASSED in 0.0s
//pw_rpc/pwpb:codegen_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:echo_service_test (cached) PASSED in 0.0s
//pw_rpc/pwpb:fake_channel_output_test (cached) PASSED in 0.2s
//pw_rpc/pwpb:method_info_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:method_lookup_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:method_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:method_union_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:serde_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:server_callback_test (cached) PASSED in 0.2s
//pw_rpc/pwpb:server_reader_writer_test (cached) PASSED in 0.1s
//pw_rpc/pwpb:stub_generation_test (cached) PASSED in 0.2s
//pw_rpc/raw:client_reader_writer_test (cached) PASSED in 0.2s
//pw_rpc/raw:client_test (cached) PASSED in 0.1s
//pw_rpc/raw:codegen_test (cached) PASSED in 0.2s
//pw_rpc/raw:method_info_test (cached) PASSED in 0.1s
//pw_rpc/raw:method_test (cached) PASSED in 0.1s
//pw_rpc/raw:method_union_test (cached) PASSED in 0.1s
//pw_rpc/raw:server_reader_writer_test (cached) PASSED in 0.2s
//pw_rpc/raw:service_nc_test (cached) PASSED in 0.1s
//pw_rpc/raw:stub_generation_test (cached) PASSED in 0.1s
//pw_rpc_transport:egress_ingress_test (cached) PASSED in 0.1s
//pw_rpc_transport:hdlc_framing_test (cached) PASSED in 0.1s
//pw_rpc_transport:local_rpc_egress_test (cached) PASSED in 0.1s
//pw_rpc_transport:packet_buffer_queue_test (cached) PASSED in 0.1s
//pw_rpc_transport:rpc_integration_test (cached) PASSED in 0.2s
//pw_rpc_transport:simple_framing_test (cached) PASSED in 0.1s
//pw_rpc_transport:socket_rpc_transport_test (cached) PASSED in 0.2s
//pw_rpc_transport:stream_rpc_dispatcher_test (cached) PASSED in 0.1s
//pw_snapshot:cpp_compile_test (cached) PASSED in 0.1s
//pw_snapshot:uuid_test (cached) PASSED in 0.2s
//pw_span:compatibility_test (cached) PASSED in 0.1s
//pw_span:pw_span_test (cached) PASSED in 0.1s
//pw_spi:initiator_mock_test (cached) PASSED in 0.2s
//pw_spi:spi_test (cached) PASSED in 0.0s
//pw_status:status_test (cached) PASSED in 0.2s
//pw_status:status_with_size_test (cached) PASSED in 0.2s
//pw_status:try_test (cached) PASSED in 0.2s
//pw_status/rust:pw_status_doc_test (cached) PASSED in 1.0s
//pw_status/rust:pw_status_test (cached) PASSED in 0.0s
//pw_stream:interval_reader_test (cached) PASSED in 0.2s
//pw_stream:memory_stream_test (cached) PASSED in 0.1s
//pw_stream:mpsc_stream_test (cached) PASSED in 0.1s
//pw_stream:null_stream_test (cached) PASSED in 0.2s
//pw_stream:seek_test (cached) PASSED in 0.1s
//pw_stream:socket_stream_test (cached) PASSED in 0.1s
//pw_stream:std_file_stream_test (cached) PASSED in 0.2s
//pw_stream:stream_test (cached) PASSED in 0.2s
//pw_stream/rust:pw_stream_doc_test (cached) PASSED in 0.8s
//pw_stream/rust:pw_stream_test (cached) PASSED in 0.0s
//pw_stream_uart_linux:stream_test (cached) PASSED in 0.1s
//pw_string:format_test (cached) PASSED in 0.1s
//pw_string:string_builder_test (cached) PASSED in 0.1s
//pw_string:string_test (cached) PASSED in 0.1s
//pw_string:to_string_test (cached) PASSED in 0.1s
//pw_string:type_to_string_test (cached) PASSED in 0.1s
//pw_string:util_test (cached) PASSED in 0.1s
//pw_symbolizer/py:symbolizer_test (cached) PASSED in 0.6s
//pw_sync:binary_semaphore_facade_test (cached) PASSED in 0.3s
//pw_sync:borrow_test (cached) PASSED in 0.2s
//pw_sync:counting_semaphore_facade_test (cached) PASSED in 0.2s
//pw_sync:inline_borrowable_test (cached) PASSED in 0.3s
//pw_sync:interrupt_spin_lock_facade_test (cached) PASSED in 0.2s
//pw_sync:lock_traits_test (cached) PASSED in 0.2s
//pw_sync:mutex_facade_test (cached) PASSED in 0.1s
//pw_sync:recursive_mutex_facade_test (cached) PASSED in 0.4s
//pw_sync:thread_notification_facade_test (cached) PASSED in 0.1s
//pw_sync:timed_mutex_facade_test (cached) PASSED in 0.1s
//pw_sync:timed_thread_notification_facade_test (cached) PASSED in 0.2s
//pw_thread:id_facade_test (cached) PASSED in 0.2s
//pw_thread:sleep_facade_test (cached) PASSED in 0.3s
//pw_thread:test_thread_context_facade_test (cached) PASSED in 0.2s
//pw_thread:thread_info_test (cached) PASSED in 0.1s
//pw_thread:thread_snapshot_service_test (cached) PASSED in 0.1s
//pw_thread:yield_facade_test (cached) PASSED in 0.3s
//pw_thread_stl:thread_backend_test (cached) PASSED in 0.2s
//pw_tokenizer:argument_types_test (cached) PASSED in 0.1s
//pw_tokenizer:base64_test (cached) PASSED in 0.1s
//pw_tokenizer:decode_test (cached) PASSED in 0.2s
//pw_tokenizer:detokenize_fuzzer (cached) PASSED in 0.3s
//pw_tokenizer:detokenize_test (cached) PASSED in 0.2s
//pw_tokenizer:encode_args_test (cached) PASSED in 0.1s
//pw_tokenizer:hash_test (cached) PASSED in 0.1s
//pw_tokenizer:simple_tokenize_test (cached) PASSED in 0.1s
//pw_tokenizer:token_database_test (cached) PASSED in 0.1s
//pw_tokenizer:tokenize_test (cached) PASSED in 0.1s
//pw_tokenizer/rust:pw_tokenizer_core_doc_test (cached) PASSED in 1.0s
//pw_tokenizer/rust:pw_tokenizer_core_test (cached) PASSED in 0.2s
//pw_tokenizer/rust:pw_tokenizer_doc_test (cached) PASSED in 0.6s
//pw_tokenizer/rust:pw_tokenizer_macro_test (cached) PASSED in 0.1s
//pw_tokenizer/rust:pw_tokenizer_printf_doc_test (cached) PASSED in 1.0s
//pw_tokenizer/rust:pw_tokenizer_printf_test (cached) PASSED in 0.4s
//pw_tokenizer/rust:pw_tokenizer_test (cached) PASSED in 0.1s
//pw_toolchain:no_destructor_test (cached) PASSED in 0.1s
//pw_trace:trace_backend_compile_test (cached) PASSED in 0.1s
//pw_trace:trace_facade_test (cached) PASSED in 0.1s
//pw_trace:trace_zero_facade_test (cached) PASSED in 0.2s
//pw_transfer:atomic_file_transfer_handler_test (cached) PASSED in 0.1s
//pw_transfer:chunk_test (cached) PASSED in 0.1s
//pw_transfer:client_test (cached) PASSED in 0.6s
//pw_transfer:handler_test (cached) PASSED in 0.2s
//pw_transfer:transfer_test (cached) PASSED in 0.2s
//pw_transfer:transfer_thread_test (cached) PASSED in 0.0s
//pw_transfer/java/test/dev/pigweed/pw_transfer:TransferClientTest (cached) PASSED in 5.4s
//pw_unit_test:framework_test (cached) PASSED in 0.1s
//pw_unit_test:static_library_support_test (cached) PASSED in 0.1s
//pw_varint:stream_test (cached) PASSED in 0.2s
//pw_varint:varint_test (cached) PASSED in 0.2s
//pw_varint/rust:pw_varint_doc_test (cached) PASSED in 1.1s
//pw_varint/rust:pw_varint_test (cached) PASSED in 0.1s
//pw_work_queue:stl_work_queue_test (cached) PASSED in 0.2s
//pw_cpu_exception_cortex_m:cpu_exception_entry_test SKIPPED
//pw_cpu_exception_cortex_m:util_test SKIPPED
//pw_digital_io_mcuxpresso:mimxrt595_test SKIPPED
//pw_i2c_mcuxpresso:initiator_test SKIPPED
//pw_spi_mcuxpresso:flexspi_test SKIPPED
//pw_spi_mcuxpresso:spi_test SKIPPED
//pw_stream_shmem_mcuxpresso:stream_test SKIPPED
//pw_stream_uart_mcuxpresso:stream_test SKIPPED
//pw_console/py:command_runner_test PASSED in 5.3s
//pw_console/py:console_app_test PASSED in 5.0s
//pw_console/py:console_prefs_test PASSED in 4.5s
//pw_console/py:help_window_test PASSED in 2.8s
//pw_console/py:log_filter_test PASSED in 4.2s
//pw_console/py:log_store_test PASSED in 4.1s
//pw_console/py:log_view_test PASSED in 4.4s
//pw_console/py:repl_pane_test PASSED in 5.2s
//pw_console/py:table_test PASSED in 3.0s
//pw_console/py:text_formatting_test PASSED in 3.5s
//pw_console/py:window_manager_test PASSED in 5.9s
//pw_hdlc/py:decode_test PASSED in 0.6s
//pw_hdlc/py:encode_test PASSED in 0.5s
//pw_hdlc/py:rpc_test PASSED in 1.5s
//pw_rpc/nanopb:synchronous_call_test PASSED in 0.1s
//pw_rpc/pwpb:synchronous_call_test PASSED in 0.1s
//pw_rpc/py:callback_client_test PASSED in 3.2s
//pw_rpc/py:client_test PASSED in 2.1s
//pw_rpc/py:descriptors_test PASSED in 1.1s
//pw_rpc/py:ids_test PASSED in 1.1s
//pw_rpc/py:packets_test PASSED in 1.2s
//pw_rpc/raw:synchronous_call_test PASSED in 0.2s
//pw_tokenizer/py:decode_test PASSED in 0.9s
//pw_tokenizer/py:detokenize_test PASSED in 0.8s
//pw_tokenizer/py:elf_reader_test PASSED in 1.1s
//pw_tokenizer/py:encode_test PASSED in 0.9s
//pw_tokenizer/py:tokens_test PASSED in 0.9s
//pw_transfer/integration_test:cross_language_medium_write_test PASSED in 82.6s
//pw_transfer/integration_test:cross_language_small_test PASSED in 51.0s
//pw_transfer/integration_test:expected_errors_test PASSED in 167.6s
//pw_transfer/integration_test:legacy_binaries_test PASSED in 53.2s
//pw_transfer/integration_test:multi_transfer_test PASSED in 13.1s
//pw_transfer/integration_test:proxy_test PASSED in 2.4s
//pw_transfer/py:transfer_test PASSED in 1.4s
//pw_transfer/integration_test:cross_language_medium_read_test FAILED in 82.1s
<truncated>/pw_transfer/integration_test/cross_language_medium_read_test/test.log
Executed 35 out of 343 tests: 334 tests pass, 1 fails locally and 8 were skipped.
There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
"""
_REAL_TEST_SUMMARY_2 = """
FAIL: //pw_transfer/integration_test:cross_language_medium_read_test (see <truncated>/pw_transfer/integration_test/cross_language_medium_read_test/test.log)
INFO: From Testing //pw_transfer/integration_test:cross_language_medium_read_test:
stdout (<truncated>/_tmp/actions/stdout-2115) 1131999 exceeds maximum size of --experimental_ui_max_stdouterr_bytes=1048576 bytes; skipping
INFO: Elapsed time: 507.459s, Critical Path: 181.66s
INFO: 1206 processes: 1235 linux-sandbox, 4 worker.
INFO: Build completed, 1 test FAILED, 1206 total actions
//pw_transfer/integration_test:cross_language_medium_read_test FAILED in 82.1s
<truncated>/pw_transfer/integration_test/cross_language_medium_read_test/test.log
Executed 35 out of 343 tests: 334 tests pass, 1 fails locally and 8 were skipped.
"""
# pylint: disable=attribute-defined-outside-init
class TestBazelParser(unittest.TestCase):
"""Test bazel_parser."""
def _run(self, contents: str) -> None:
with tempfile.TemporaryDirectory() as tempdir:
path = Path(tempdir) / 'foo'
with path.open('w') as outs:
outs.write(contents)
self.output = bazel_parser.parse_bazel_stdout(path)
def _assert_equal(self, left, right):
if (
not isinstance(left, str)
or not isinstance(right, str)
or '\n' not in left
or '\n' not in right
):
return self.assertEqual(left, right)
diff = ''.join(
difflib.unified_diff(left.splitlines(True), right.splitlines(True))
)
return self.assertSequenceEqual(left, right, f'\n{diff}\n')
def test_simple(self) -> None:
error = 'ERROR: abc\nerror 1\nerror2\n'
self._run('[0/10] foo\n[1/10] bar\n' + error)
self._assert_equal(error.strip(), self.output.strip())
def test_path(self) -> None:
error_in = 'ERROR: abc\n PATH=... \\\nerror 1\nerror2\n'
error_out = 'ERROR: abc\nerror 1\nerror2\n'
self._run('[0/10] foo\n[1/10] bar\n' + error_in)
self._assert_equal(error_out.strip(), self.output.strip())
def test_failure(self) -> None:
self._run(_REAL_TEST_INPUT)
self._assert_equal(_REAL_TEST_SUMMARY.strip(), self.output.strip())
def test_failure_2(self) -> None:
self._run(_REAL_TEST_INPUT_2)
self._assert_equal(_REAL_TEST_SUMMARY_2.strip(), self.output.strip())
if __name__ == '__main__':
unittest.main()