Files
carbon-lang/testing/base/file_helpers.cpp
T
Jon Ross-PerkinsandRichard Smith 38d25cf622 Share ReadFile in tests (#4967)
Small cleanup for code sharing. Note, `*ReadFile` will trigger a
CHECK-failure on error; the relevant implementations would previously
have failed silently (empty string).

---------

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
2025-02-15 00:17:01 +00:00

26 lines
719 B
C++

// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#include "testing/base/file_helpers.h"
#include <fstream>
#include <sstream>
namespace Carbon::Testing {
auto ReadFile(std::filesystem::path path) -> ErrorOr<std::string> {
std::ifstream file_stream(path);
if (file_stream.fail()) {
return Error(llvm::formatv("Error opening file: {0}", path));
}
std::stringstream buffer;
buffer << file_stream.rdbuf();
if (file_stream.fail()) {
return Error(llvm::formatv("Error reading file: {0}", path));
}
return buffer.str();
}
} // namespace Carbon::Testing