Move filewrapper to tools directory

This decouples it from the underlying build system

PiperOrigin-RevId: 313764652
Change-Id: I64de2f8533d307567de297942a3d02d26b0839f4
This commit is contained in:
Christian Blichmann 2020-05-29 05:40:31 -07:00 committed by Copybara-Service
parent e76e73dfe8
commit 5aff251a92
9 changed files with 65 additions and 48 deletions

View File

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
add_subdirectory(bazel) # For filewrapper
add_subdirectory(tools/filewrapper)
add_subdirectory(sandbox2)
add_subdirectory(util)
if(SAPI_ENABLE_GENERATOR)

View File

@ -19,42 +19,3 @@ exports_files([
"embed_data.bzl",
"sapi.bzl",
])
load("//sandboxed_api/bazel:build_defs.bzl", "sapi_platform_copts")
load("//sandboxed_api/bazel:embed_data.bzl", "sapi_cc_embed_data")
# An implicit dependency of all "sapi_cc_embed_data" rules that builds
# embedded data into .cc files.
cc_binary(
name = "filewrapper",
srcs = ["filewrapper.cc"],
copts = sapi_platform_copts(),
visibility = ["//visibility:public"],
deps = [
"@com_google_absl//absl/strings",
"@com_google_absl//absl/strings:str_format",
"//sandboxed_api/sandbox2/util:fileops",
"//sandboxed_api/sandbox2/util:strerror",
"//sandboxed_api/util:raw_logging",
],
)
sapi_cc_embed_data(
name = "filewrapper_embedded",
srcs = ["testdata/filewrapper_embedded.bin"],
)
cc_test(
name = "filewrapper_test",
srcs = ["filewrapper_test.cc"],
copts = sapi_platform_copts(),
data = ["testdata/filewrapper_embedded.bin"],
deps = [
":filewrapper_embedded",
"@com_google_googletest//:gtest_main",
"@com_google_absl//absl/strings",
"//sandboxed_api/sandbox2:testing",
"//sandboxed_api/sandbox2/util:file_helpers",
"//sandboxed_api/util:status_matchers",
],
)

View File

@ -14,7 +14,7 @@
"""Embeds binary data in cc_*() rules."""
_FILEWRAPPER = "//sandboxed_api/bazel:filewrapper"
_FILEWRAPPER = "//sandboxed_api/tools/filewrapper"
# TODO(cblichmann): Convert this is to use a "_cc_toolchain" once Bazel #4370
# is fixed.

View File

@ -24,13 +24,15 @@ std::string GetTestTempPath(absl::string_view name) {
// set.
// See https://docs.bazel.build/versions/master/test-encyclopedia.html for
// details.
return file::JoinPath(getenv("TEST_TMPDIR"), name);
const char* test_tmpdir = getenv("TEST_TMPDIR");
return file::JoinPath(test_tmpdir ? test_tmpdir : ".", name);
}
std::string GetTestSourcePath(absl::string_view name) {
// Like in GetTestTempPath(), when using Bazel, the environment variable
// TEST_SRCDIR is guaranteed to be set.
return file::JoinPath(getenv("TEST_SRCDIR"),
const char* test_srcdir = getenv("TEST_SRCDIR");
return file::JoinPath(test_srcdir ? test_srcdir : ".",
"com_google_sandboxed_api/sandboxed_api", name);
}

View File

@ -0,0 +1,54 @@
# 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
#
# http://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.
licenses(["notice"])
load("//sandboxed_api/bazel:build_defs.bzl", "sapi_platform_copts")
load("//sandboxed_api/bazel:embed_data.bzl", "sapi_cc_embed_data")
# An implicit dependency of all "sapi_cc_embed_data" rules that builds
# embedded data into .cc files.
cc_binary(
name = "filewrapper",
srcs = ["filewrapper.cc"],
copts = sapi_platform_copts(),
visibility = ["//visibility:public"],
deps = [
"@com_google_absl//absl/strings",
"@com_google_absl//absl/strings:str_format",
"//sandboxed_api/sandbox2/util:fileops",
"//sandboxed_api/sandbox2/util:strerror",
"//sandboxed_api/util:raw_logging",
],
)
sapi_cc_embed_data(
name = "filewrapper_embedded",
srcs = ["testdata/filewrapper_embedded.bin"],
)
cc_test(
name = "filewrapper_test",
srcs = ["filewrapper_test.cc"],
copts = sapi_platform_copts(),
data = ["testdata/filewrapper_embedded.bin"],
deps = [
":filewrapper_embedded",
"@com_google_googletest//:gtest_main",
"@com_google_absl//absl/strings",
"//sandboxed_api/sandbox2:testing",
"//sandboxed_api/sandbox2/util:file_helpers",
"//sandboxed_api/util:status_matchers",
],
)

View File

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# sandboxed_api/bazel:filewrapper
# sandboxed_api/tools/filewrapper:filewrapper
add_executable(filewrapper
filewrapper.cc
)
@ -30,7 +30,7 @@ sapi_cc_embed_data(NAME filewrapper_embedded
)
if(SAPI_ENABLE_TESTS)
# sandboxed_api/bazel:filewrapper_test
# sandboxed_api/tools/filewrapper:filewrapper_test
add_executable(filewrapper_test
filewrapper_test.cc
)

View File

@ -16,11 +16,10 @@
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "absl/strings/string_view.h"
#include "sandboxed_api/bazel/filewrapper_embedded.h"
#include "sandboxed_api/sandbox2/testing.h"
#include "sandboxed_api/sandbox2/util/file_helpers.h"
#include "sandboxed_api/tools/filewrapper/filewrapper_embedded.h"
#include "sandboxed_api/util/status_matchers.h"
using ::sandbox2::GetTestSourcePath;
@ -40,7 +39,8 @@ TEST(FilewrapperTest, BasicFunctionality) {
std::string contents;
ASSERT_THAT(sandbox2::file::GetContents(
GetTestSourcePath("bazel/testdata/filewrapper_embedded.bin"),
GetTestSourcePath(
"tools/filewrapper/testdata/filewrapper_embedded.bin"),
&contents, sandbox2::file::Defaults()),
IsOk());
EXPECT_THAT(std::string(toc->data, toc->size), StrEq(contents));