xref: /aosp_15_r20/external/sandboxed-api/sandboxed_api/util/BUILD.bazel (revision ec63e07ab9515d95e79c211197c445ef84cefa6a)
1*ec63e07aSXin Li# Copyright 2019 Google LLC
2*ec63e07aSXin Li#
3*ec63e07aSXin Li# Licensed under the Apache License, Version 2.0 (the "License");
4*ec63e07aSXin Li# you may not use this file except in compliance with the License.
5*ec63e07aSXin Li# You may obtain a copy of the License at
6*ec63e07aSXin Li#
7*ec63e07aSXin Li#     https://www.apache.org/licenses/LICENSE-2.0
8*ec63e07aSXin Li#
9*ec63e07aSXin Li# Unless required by applicable law or agreed to in writing, software
10*ec63e07aSXin Li# distributed under the License is distributed on an "AS IS" BASIS,
11*ec63e07aSXin Li# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*ec63e07aSXin Li# See the License for the specific language governing permissions and
13*ec63e07aSXin Li# limitations under the License.
14*ec63e07aSXin Li
15*ec63e07aSXin Liload("//sandboxed_api/bazel:build_defs.bzl", "sapi_platform_copts")
16*ec63e07aSXin Liload("//sandboxed_api/bazel:proto.bzl", "sapi_proto_library")
17*ec63e07aSXin Li
18*ec63e07aSXin Lipackage(
19*ec63e07aSXin Li    default_visibility = [
20*ec63e07aSXin Li        "//sandboxed_api:__subpackages__",
21*ec63e07aSXin Li        "//security/bedebox:__subpackages__",
22*ec63e07aSXin Li    ],
23*ec63e07aSXin Li)
24*ec63e07aSXin Li
25*ec63e07aSXin Lilicenses(["notice"])
26*ec63e07aSXin Li
27*ec63e07aSXin Li# Another helper library with filesystem and path utility functions.
28*ec63e07aSXin Licc_library(
29*ec63e07aSXin Li    name = "file_base",
30*ec63e07aSXin Li    srcs = ["path.cc"],
31*ec63e07aSXin Li    hdrs = ["path.h"],
32*ec63e07aSXin Li    copts = sapi_platform_copts(),
33*ec63e07aSXin Li    deps = ["@com_google_absl//absl/strings"],
34*ec63e07aSXin Li)
35*ec63e07aSXin Li
36*ec63e07aSXin Licc_test(
37*ec63e07aSXin Li    name = "file_base_test",
38*ec63e07aSXin Li    size = "small",
39*ec63e07aSXin Li    srcs = ["path_test.cc"],
40*ec63e07aSXin Li    copts = sapi_platform_copts(),
41*ec63e07aSXin Li    deps = [
42*ec63e07aSXin Li        ":file_base",
43*ec63e07aSXin Li        "@com_google_absl//absl/strings",
44*ec63e07aSXin Li        "@com_google_googletest//:gtest_main",
45*ec63e07aSXin Li    ],
46*ec63e07aSXin Li)
47*ec63e07aSXin Li
48*ec63e07aSXin Li# String file routines
49*ec63e07aSXin Licc_library(
50*ec63e07aSXin Li    name = "file_helpers",
51*ec63e07aSXin Li    srcs = ["file_helpers.cc"],
52*ec63e07aSXin Li    hdrs = ["file_helpers.h"],
53*ec63e07aSXin Li    copts = sapi_platform_copts(),
54*ec63e07aSXin Li    deps = [
55*ec63e07aSXin Li        "@com_google_absl//absl/status",
56*ec63e07aSXin Li        "@com_google_absl//absl/strings",
57*ec63e07aSXin Li    ],
58*ec63e07aSXin Li)
59*ec63e07aSXin Li
60*ec63e07aSXin Licc_test(
61*ec63e07aSXin Li    name = "file_helpers_test",
62*ec63e07aSXin Li    size = "small",
63*ec63e07aSXin Li    srcs = ["file_helpers_test.cc"],
64*ec63e07aSXin Li    copts = sapi_platform_copts(),
65*ec63e07aSXin Li    deps = [
66*ec63e07aSXin Li        ":file_helpers",
67*ec63e07aSXin Li        ":status_matchers",
68*ec63e07aSXin Li        "@com_google_googletest//:gtest_main",
69*ec63e07aSXin Li    ],
70*ec63e07aSXin Li)
71*ec63e07aSXin Li
72*ec63e07aSXin Li# Portable filesystem and path utility functions
73*ec63e07aSXin Licc_library(
74*ec63e07aSXin Li    name = "fileops",
75*ec63e07aSXin Li    srcs = ["fileops.cc"],
76*ec63e07aSXin Li    hdrs = ["fileops.h"],
77*ec63e07aSXin Li    copts = sapi_platform_copts(),
78*ec63e07aSXin Li    deps = [
79*ec63e07aSXin Li        ":strerror",
80*ec63e07aSXin Li        "@com_google_absl//absl/strings",
81*ec63e07aSXin Li    ],
82*ec63e07aSXin Li)
83*ec63e07aSXin Li
84*ec63e07aSXin Licc_test(
85*ec63e07aSXin Li    name = "fileops_test",
86*ec63e07aSXin Li    size = "small",
87*ec63e07aSXin Li    srcs = ["fileops_test.cc"],
88*ec63e07aSXin Li    copts = sapi_platform_copts(),
89*ec63e07aSXin Li    deps = [
90*ec63e07aSXin Li        ":file_helpers",
91*ec63e07aSXin Li        ":fileops",
92*ec63e07aSXin Li        ":status_matchers",
93*ec63e07aSXin Li        "//sandboxed_api:testing",
94*ec63e07aSXin Li        "@com_google_absl//absl/strings",
95*ec63e07aSXin Li        "@com_google_googletest//:gtest_main",
96*ec63e07aSXin Li    ],
97*ec63e07aSXin Li)
98*ec63e07aSXin Li
99*ec63e07aSXin Li# Small support library emulating verbose logging using Abseil's raw logging
100*ec63e07aSXin Li# facility.
101*ec63e07aSXin Licc_library(
102*ec63e07aSXin Li    name = "raw_logging",
103*ec63e07aSXin Li    srcs = ["raw_logging.cc"],
104*ec63e07aSXin Li    hdrs = ["raw_logging.h"],
105*ec63e07aSXin Li    copts = sapi_platform_copts(),
106*ec63e07aSXin Li    deps = [
107*ec63e07aSXin Li        ":strerror",
108*ec63e07aSXin Li        "@com_google_absl//absl/base:config",
109*ec63e07aSXin Li        "@com_google_absl//absl/base:core_headers",
110*ec63e07aSXin Li        "@com_google_absl//absl/base:log_severity",
111*ec63e07aSXin Li        "@com_google_absl//absl/strings",
112*ec63e07aSXin Li        "@com_google_absl//absl/strings:str_format",
113*ec63e07aSXin Li    ],
114*ec63e07aSXin Li)
115*ec63e07aSXin Li
116*ec63e07aSXin Licc_library(
117*ec63e07aSXin Li    name = "runfiles",
118*ec63e07aSXin Li    srcs = ["runfiles_bazel.cc"],
119*ec63e07aSXin Li    hdrs = ["runfiles.h"],
120*ec63e07aSXin Li    copts = sapi_platform_copts(),
121*ec63e07aSXin Li    visibility = ["//visibility:public"],
122*ec63e07aSXin Li    deps = [
123*ec63e07aSXin Li        ":file_base",
124*ec63e07aSXin Li        ":raw_logging",
125*ec63e07aSXin Li        "@bazel_tools//tools/cpp/runfiles",
126*ec63e07aSXin Li        "@com_google_absl//absl/strings",
127*ec63e07aSXin Li        "@com_google_absl//absl/strings:str_format",
128*ec63e07aSXin Li    ],
129*ec63e07aSXin Li)
130*ec63e07aSXin Li
131*ec63e07aSXin Lisapi_proto_library(
132*ec63e07aSXin Li    name = "status_proto",
133*ec63e07aSXin Li    srcs = ["status.proto"],
134*ec63e07aSXin Li)
135*ec63e07aSXin Li
136*ec63e07aSXin Li# Implementations of utility functions not released with absl::Status.
137*ec63e07aSXin Licc_library(
138*ec63e07aSXin Li    name = "status",
139*ec63e07aSXin Li    srcs = ["status.cc"],
140*ec63e07aSXin Li    hdrs = [
141*ec63e07aSXin Li        "status.h",
142*ec63e07aSXin Li        "status_macros.h",
143*ec63e07aSXin Li    ],
144*ec63e07aSXin Li    copts = sapi_platform_copts(),
145*ec63e07aSXin Li    visibility = ["//visibility:public"],
146*ec63e07aSXin Li    deps = [
147*ec63e07aSXin Li        ":status_cc_proto",
148*ec63e07aSXin Li        "@com_google_absl//absl/base:core_headers",
149*ec63e07aSXin Li        "@com_google_absl//absl/status",
150*ec63e07aSXin Li        "@com_google_absl//absl/strings",
151*ec63e07aSXin Li        "@com_google_absl//absl/strings:cord",
152*ec63e07aSXin Li    ],
153*ec63e07aSXin Li)
154*ec63e07aSXin Li
155*ec63e07aSXin Li# gMock matchers for absl::Status and absl::StatusOr<T> and a gUnit printer
156*ec63e07aSXin Li# extension. Adapted from the version in Asylo.
157*ec63e07aSXin Licc_library(
158*ec63e07aSXin Li    name = "status_matchers",
159*ec63e07aSXin Li    testonly = 1,
160*ec63e07aSXin Li    hdrs = ["status_matchers.h"],
161*ec63e07aSXin Li    copts = sapi_platform_copts(),
162*ec63e07aSXin Li    visibility = ["//visibility:public"],
163*ec63e07aSXin Li    deps = [
164*ec63e07aSXin Li        ":status",
165*ec63e07aSXin Li        "@com_google_absl//absl/status",
166*ec63e07aSXin Li        "@com_google_absl//absl/status:statusor",
167*ec63e07aSXin Li        "@com_google_absl//absl/strings:string_view",
168*ec63e07aSXin Li        "@com_google_absl//absl/types:optional",
169*ec63e07aSXin Li        "@com_google_googletest//:gtest",
170*ec63e07aSXin Li    ],
171*ec63e07aSXin Li)
172*ec63e07aSXin Li
173*ec63e07aSXin Li# Tests for the Status utility.
174*ec63e07aSXin Licc_test(
175*ec63e07aSXin Li    name = "status_test",
176*ec63e07aSXin Li    srcs = ["status_test.cc"],
177*ec63e07aSXin Li    copts = sapi_platform_copts(),
178*ec63e07aSXin Li    deps = [
179*ec63e07aSXin Li        ":status",
180*ec63e07aSXin Li        "@com_google_absl//absl/status",
181*ec63e07aSXin Li        "@com_google_absl//absl/strings:string_view",
182*ec63e07aSXin Li        "@com_google_googletest//:gtest_main",
183*ec63e07aSXin Li    ],
184*ec63e07aSXin Li)
185*ec63e07aSXin Li
186*ec63e07aSXin Li# Tests for the Status macros.
187*ec63e07aSXin Licc_test(
188*ec63e07aSXin Li    name = "status_macros_test",
189*ec63e07aSXin Li    srcs = ["status_macros_test.cc"],
190*ec63e07aSXin Li    copts = sapi_platform_copts(),
191*ec63e07aSXin Li    deps = [
192*ec63e07aSXin Li        ":status",
193*ec63e07aSXin Li        ":status_matchers",
194*ec63e07aSXin Li        "@com_google_absl//absl/status",
195*ec63e07aSXin Li        "@com_google_absl//absl/status:statusor",
196*ec63e07aSXin Li        "@com_google_absl//absl/strings",
197*ec63e07aSXin Li        "@com_google_googletest//:gtest_main",
198*ec63e07aSXin Li    ],
199*ec63e07aSXin Li)
200*ec63e07aSXin Li
201*ec63e07aSXin Li# Internal thread-safe helper to format system error messages. Mostly
202*ec63e07aSXin Li# equivalent to base/strerror.h.
203*ec63e07aSXin Licc_library(
204*ec63e07aSXin Li    name = "strerror",
205*ec63e07aSXin Li    srcs = ["strerror.cc"],
206*ec63e07aSXin Li    hdrs = ["strerror.h"],
207*ec63e07aSXin Li    copts = sapi_platform_copts(),
208*ec63e07aSXin Li    deps = [
209*ec63e07aSXin Li        "@com_google_absl//absl/base:core_headers",
210*ec63e07aSXin Li        "@com_google_absl//absl/strings:str_format",
211*ec63e07aSXin Li    ],
212*ec63e07aSXin Li)
213*ec63e07aSXin Li
214*ec63e07aSXin Licc_test(
215*ec63e07aSXin Li    name = "strerror_test",
216*ec63e07aSXin Li    srcs = ["strerror_test.cc"],
217*ec63e07aSXin Li    copts = sapi_platform_copts(),
218*ec63e07aSXin Li    deps = [
219*ec63e07aSXin Li        ":strerror",
220*ec63e07aSXin Li        "@com_google_absl//absl/strings",
221*ec63e07aSXin Li        "@com_google_googletest//:gtest_main",
222*ec63e07aSXin Li    ],
223*ec63e07aSXin Li)
224*ec63e07aSXin Li
225*ec63e07aSXin Licc_library(
226*ec63e07aSXin Li    name = "temp_file",
227*ec63e07aSXin Li    srcs = ["temp_file.cc"],
228*ec63e07aSXin Li    hdrs = ["temp_file.h"],
229*ec63e07aSXin Li    copts = sapi_platform_copts(),
230*ec63e07aSXin Li    deps = [
231*ec63e07aSXin Li        ":status",
232*ec63e07aSXin Li        "@com_google_absl//absl/status",
233*ec63e07aSXin Li        "@com_google_absl//absl/status:statusor",
234*ec63e07aSXin Li        "@com_google_absl//absl/strings",
235*ec63e07aSXin Li    ],
236*ec63e07aSXin Li)
237*ec63e07aSXin Li
238*ec63e07aSXin Licc_test(
239*ec63e07aSXin Li    name = "temp_file_test",
240*ec63e07aSXin Li    srcs = ["temp_file_test.cc"],
241*ec63e07aSXin Li    copts = sapi_platform_copts(),
242*ec63e07aSXin Li    deps = [
243*ec63e07aSXin Li        ":file_base",
244*ec63e07aSXin Li        ":fileops",
245*ec63e07aSXin Li        ":status_matchers",
246*ec63e07aSXin Li        ":temp_file",
247*ec63e07aSXin Li        "//sandboxed_api:testing",
248*ec63e07aSXin Li        "@com_google_absl//absl/status",
249*ec63e07aSXin Li        "@com_google_absl//absl/status:statusor",
250*ec63e07aSXin Li        "@com_google_googletest//:gtest_main",
251*ec63e07aSXin Li    ],
252*ec63e07aSXin Li)
253