From 5aff251a92d27df83520bf210113530fa3c30085 Mon Sep 17 00:00:00 2001 From: Christian Blichmann Date: Fri, 29 May 2020 05:40:31 -0700 Subject: [PATCH] Move filewrapper to `tools` directory This decouples it from the underlying build system PiperOrigin-RevId: 313764652 Change-Id: I64de2f8533d307567de297942a3d02d26b0839f4 --- sandboxed_api/CMakeLists.txt | 2 +- sandboxed_api/bazel/BUILD | 39 ------------- sandboxed_api/bazel/embed_data.bzl | 2 +- sandboxed_api/sandbox2/testing.cc | 6 +- sandboxed_api/tools/filewrapper/BUILD | 54 ++++++++++++++++++ .../filewrapper}/CMakeLists.txt | 4 +- .../filewrapper}/filewrapper.cc | 0 .../filewrapper}/filewrapper_test.cc | 6 +- .../testdata/filewrapper_embedded.bin | Bin 9 files changed, 65 insertions(+), 48 deletions(-) create mode 100644 sandboxed_api/tools/filewrapper/BUILD rename sandboxed_api/{bazel => tools/filewrapper}/CMakeLists.txt (93%) rename sandboxed_api/{bazel => tools/filewrapper}/filewrapper.cc (100%) rename sandboxed_api/{bazel => tools/filewrapper}/filewrapper_test.cc (89%) rename sandboxed_api/{bazel => tools/filewrapper}/testdata/filewrapper_embedded.bin (100%) diff --git a/sandboxed_api/CMakeLists.txt b/sandboxed_api/CMakeLists.txt index 3fe283d..0f4ca85 100644 --- a/sandboxed_api/CMakeLists.txt +++ b/sandboxed_api/CMakeLists.txt @@ -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) diff --git a/sandboxed_api/bazel/BUILD b/sandboxed_api/bazel/BUILD index 1c4f6cb..78acfea 100644 --- a/sandboxed_api/bazel/BUILD +++ b/sandboxed_api/bazel/BUILD @@ -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", - ], -) diff --git a/sandboxed_api/bazel/embed_data.bzl b/sandboxed_api/bazel/embed_data.bzl index f0daa5d..85ce1ba 100644 --- a/sandboxed_api/bazel/embed_data.bzl +++ b/sandboxed_api/bazel/embed_data.bzl @@ -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. diff --git a/sandboxed_api/sandbox2/testing.cc b/sandboxed_api/sandbox2/testing.cc index 17151bf..d2b16da 100644 --- a/sandboxed_api/sandbox2/testing.cc +++ b/sandboxed_api/sandbox2/testing.cc @@ -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); } diff --git a/sandboxed_api/tools/filewrapper/BUILD b/sandboxed_api/tools/filewrapper/BUILD new file mode 100644 index 0000000..2dd26a1 --- /dev/null +++ b/sandboxed_api/tools/filewrapper/BUILD @@ -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", + ], +) diff --git a/sandboxed_api/bazel/CMakeLists.txt b/sandboxed_api/tools/filewrapper/CMakeLists.txt similarity index 93% rename from sandboxed_api/bazel/CMakeLists.txt rename to sandboxed_api/tools/filewrapper/CMakeLists.txt index 58a565d..f769379 100644 --- a/sandboxed_api/bazel/CMakeLists.txt +++ b/sandboxed_api/tools/filewrapper/CMakeLists.txt @@ -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 ) diff --git a/sandboxed_api/bazel/filewrapper.cc b/sandboxed_api/tools/filewrapper/filewrapper.cc similarity index 100% rename from sandboxed_api/bazel/filewrapper.cc rename to sandboxed_api/tools/filewrapper/filewrapper.cc diff --git a/sandboxed_api/bazel/filewrapper_test.cc b/sandboxed_api/tools/filewrapper/filewrapper_test.cc similarity index 89% rename from sandboxed_api/bazel/filewrapper_test.cc rename to sandboxed_api/tools/filewrapper/filewrapper_test.cc index 7d33017..b354947 100644 --- a/sandboxed_api/bazel/filewrapper_test.cc +++ b/sandboxed_api/tools/filewrapper/filewrapper_test.cc @@ -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)); diff --git a/sandboxed_api/bazel/testdata/filewrapper_embedded.bin b/sandboxed_api/tools/filewrapper/testdata/filewrapper_embedded.bin similarity index 100% rename from sandboxed_api/bazel/testdata/filewrapper_embedded.bin rename to sandboxed_api/tools/filewrapper/testdata/filewrapper_embedded.bin