blob: a2ae6b4f9155794156f183bdbe04f197d425bbb7 [file]
//===-- Implementation of the file path generator for bazel ---------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#include "LibcTest.h"
#include "src/__support/CPP/string.h"
#include "src/__support/c_string.h"
#include "src/__support/macros/config.h"
#ifdef LIBC_FULL_BUILD
#include "src/stdlib/getenv.h"
#define LIBC_IMPL LIBC_NAMESPACE
#else // Overlay mode
#include <stdlib.h>
#define LIBC_IMPL
#endif
namespace LIBC_NAMESPACE_DECL {
namespace testing {
CString libc_make_test_file_path_func(const char *file_name) {
// This is the path to the folder bazel wants the test outputs written to.
const char *UNDECLARED_OUTPUTS_PATH =
LIBC_IMPL::getenv("TEST_UNDECLARED_OUTPUTS_DIR");
// Do something sensible if not run under bazel, otherwise this may segfault
// when constructing the string.
if (UNDECLARED_OUTPUTS_PATH == nullptr)
return cpp::string(file_name);
return cpp::string(UNDECLARED_OUTPUTS_PATH) + "/" + file_name;
}
} // namespace testing
} // namespace LIBC_NAMESPACE_DECL