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