kythe.io@v0.0.68-0.20240422202219-7225dbc01741/kythe/cxx/common/testutil.cc (about) 1 /* 2 * Copyright 2018 The Kythe Authors. All rights reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 #include "kythe/cxx/common/testutil.h" 17 18 #include <cstdlib> 19 #include <string> 20 21 #include "absl/log/die_if_null.h" 22 #include "absl/strings/str_cat.h" 23 #include "absl/strings/string_view.h" 24 #include "absl/strings/strip.h" 25 26 namespace kythe { 27 namespace { 28 29 // This must match the name from the workspace(name={name}) 30 // rule in the root WORKSPACE file. 31 constexpr char kDefaultWorkspace[] = "io_kythe"; 32 33 } // namespace 34 35 std::string TestSourceRoot() { 36 const auto* workspace = std::getenv("TEST_WORKSPACE"); 37 if (workspace == nullptr) { 38 workspace = kDefaultWorkspace; 39 } 40 return absl::StrCat( 41 absl::StripSuffix(ABSL_DIE_IF_NULL(std::getenv("TEST_SRCDIR")), "/"), "/", 42 absl::StripSuffix(workspace, "/"), "/"); 43 } 44 45 } // namespace kythe