# Copyright 2019 Google LLC # # 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. # Description: Example using dynamic length structures for Sandboxed API load("//sandboxed_api/bazel:build_defs.bzl", "sapi_platform_copts") load("//sandboxed_api/bazel:proto.bzl", "sapi_proto_library") load("//sandboxed_api/bazel:sapi.bzl", "sapi_library") package(default_visibility = ["//sandboxed_api:__subpackages__"]) licenses(["notice"]) sapi_proto_library( name = "stringop_params_proto", srcs = ["stringop_params.proto"], visibility = ["//visibility:public"], alwayslink = True, ) cc_library( name = "stringop", srcs = ["stringop.cc"], copts = sapi_platform_copts(), linkstatic = True, deps = [ ":stringop_params_cc_proto", "//sandboxed_api:lenval_core", "@com_google_absl//absl/base:core_headers", ], alwayslink = True, ) STRINGOP_FUNCTIONS = [ "duplicate_string", "reverse_string", "pb_duplicate_string", "pb_reverse_string", "nop", "violate", "get_raw_c_string", ] sapi_library( name = "stringop-sapi", hdrs = ["sandbox.h"], functions = STRINGOP_FUNCTIONS, generator_version = 1, input_files = ["stringop.cc"], lib = ":stringop", lib_name = "Stringop", namespace = "", deps = [":stringop_params_cc_proto"], ) cc_test( name = "main_stringop", srcs = ["main_stringop.cc"], copts = sapi_platform_copts(), tags = ["local"], deps = [ ":stringop-sapi", ":stringop_params_cc_proto", "//sandboxed_api:sapi", "//sandboxed_api:vars", "//sandboxed_api/util:status", "//sandboxed_api/util:status_matchers", "@com_google_absl//absl/log", "@com_google_absl//absl/status", "@com_google_absl//absl/time", "@com_google_googletest//:gtest_main", ], )