157 lines
3.8 KiB
Python
157 lines
3.8 KiB
Python
|
|
# 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.
|
||
|
|
|
||
|
|
load("@rules_python//python:defs.bzl", "py_binary")
|
||
|
|
|
||
|
|
package(default_visibility = ["//visibility:public"])
|
||
|
|
|
||
|
|
py_library(
|
||
|
|
name = "pw_tokenizer",
|
||
|
|
srcs = [
|
||
|
|
"pw_tokenizer/__init__.py",
|
||
|
|
"pw_tokenizer/database.py",
|
||
|
|
"pw_tokenizer/decode.py",
|
||
|
|
"pw_tokenizer/detokenize.py",
|
||
|
|
"pw_tokenizer/elf_reader.py",
|
||
|
|
"pw_tokenizer/encode.py",
|
||
|
|
"pw_tokenizer/parse_message.py",
|
||
|
|
"pw_tokenizer/proto/__init__.py",
|
||
|
|
"pw_tokenizer/serial_detokenizer.py",
|
||
|
|
"pw_tokenizer/tokens.py",
|
||
|
|
],
|
||
|
|
deps = [
|
||
|
|
"//pw_cli/py:pw_cli",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
py_binary(
|
||
|
|
name = "detokenize",
|
||
|
|
srcs = [
|
||
|
|
"pw_tokenizer/__main__.py",
|
||
|
|
],
|
||
|
|
main = "pw_tokenizer/__main__.py",
|
||
|
|
deps = [":pw_tokenizer"],
|
||
|
|
)
|
||
|
|
|
||
|
|
# This test attempts to directly access files in the source tree, which is
|
||
|
|
# incompatible with sandboxing.
|
||
|
|
# TODO(b/241307309): Fix this test.
|
||
|
|
filegroup(
|
||
|
|
name = "database_test",
|
||
|
|
srcs = ["database_test.py"],
|
||
|
|
# deps = [":pw_tokenizer"],
|
||
|
|
)
|
||
|
|
|
||
|
|
py_test(
|
||
|
|
name = "decode_test",
|
||
|
|
srcs = [
|
||
|
|
"decode_test.py",
|
||
|
|
"tokenized_string_decoding_test_data.py",
|
||
|
|
"varint_test_data.py",
|
||
|
|
],
|
||
|
|
deps = [":pw_tokenizer"],
|
||
|
|
)
|
||
|
|
|
||
|
|
# This test can't be built in bazel because it depends on detokenize_proto_test_pb2.
|
||
|
|
filegroup(
|
||
|
|
name = "detokenize_proto_test",
|
||
|
|
srcs = [
|
||
|
|
"detokenize_proto_test.py",
|
||
|
|
],
|
||
|
|
# deps = [
|
||
|
|
# ":pw_tokenizer",
|
||
|
|
# ":detokenize_proto_test_pb2",
|
||
|
|
# ],
|
||
|
|
)
|
||
|
|
|
||
|
|
proto_library(
|
||
|
|
name = "detokenize_proto_test_proto",
|
||
|
|
srcs = ["detokenize_proto_test.proto"],
|
||
|
|
deps = [
|
||
|
|
"//pw_tokenizer:tokenizer_proto",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
# TODO(b/241456982): This target can't be built due to limitations of
|
||
|
|
# py_proto_library.
|
||
|
|
# py_proto_library(
|
||
|
|
# name = "detokenize_proto_test_pb2",
|
||
|
|
# srcs = ["detokenize_proto_test.proto"],
|
||
|
|
# deps = [
|
||
|
|
# "//pw_tokenizer:tokenizer_pb2",
|
||
|
|
# ],
|
||
|
|
#)
|
||
|
|
|
||
|
|
py_test(
|
||
|
|
name = "detokenize_test",
|
||
|
|
srcs = ["detokenize_test.py"],
|
||
|
|
data = [
|
||
|
|
"example_binary_with_tokenized_strings.elf",
|
||
|
|
],
|
||
|
|
deps = [
|
||
|
|
":pw_tokenizer",
|
||
|
|
"@rules_python//python/runfiles",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
py_test(
|
||
|
|
name = "elf_reader_test",
|
||
|
|
srcs = ["elf_reader_test.py"],
|
||
|
|
data = [
|
||
|
|
"elf_reader_test_binary.elf",
|
||
|
|
],
|
||
|
|
deps = [
|
||
|
|
":pw_tokenizer",
|
||
|
|
"@rules_python//python/runfiles",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
# Executable for generating a test ELF file for elf_reader_test.py. A host
|
||
|
|
# version of this binary is checked in for use in elf_reader_test.py.
|
||
|
|
# Commented out because it fails to compile with bazel, with the error
|
||
|
|
# ld.lld: error: symbol 'main' has no type. Instead use a filegroup to
|
||
|
|
# keep pw_presubmit happy.
|
||
|
|
# cc_binary(
|
||
|
|
# name = "elf_reader_test_binary",
|
||
|
|
# srcs = [
|
||
|
|
# "py/elf_reader_test_binary.c",
|
||
|
|
# ],
|
||
|
|
# linkopts = ["-Wl,--unresolved-symbols=ignore-all"], # main is not defined
|
||
|
|
# deps = [
|
||
|
|
# ":pw_tokenizer",
|
||
|
|
# "//pw_varint",
|
||
|
|
# ],
|
||
|
|
# )
|
||
|
|
filegroup(
|
||
|
|
name = "elf_reader_test_binary",
|
||
|
|
srcs = [
|
||
|
|
"elf_reader_test_binary.c",
|
||
|
|
],
|
||
|
|
)
|
||
|
|
|
||
|
|
py_test(
|
||
|
|
name = "encode_test",
|
||
|
|
srcs = [
|
||
|
|
"encode_test.py",
|
||
|
|
"varint_test_data.py",
|
||
|
|
],
|
||
|
|
deps = [":pw_tokenizer"],
|
||
|
|
)
|
||
|
|
|
||
|
|
py_test(
|
||
|
|
name = "tokens_test",
|
||
|
|
srcs = ["tokens_test.py"],
|
||
|
|
deps = [":pw_tokenizer"],
|
||
|
|
)
|