Files
clice/tests/Test.h
2024-10-07 21:19:30 +08:00

34 lines
870 B
C++

#pragma once
#include <gtest/gtest.h>
#include <Support/FileSystem.h>
#include <spdlog/fmt/bundled/color.h>
namespace clice {
std::string test_dir();
template <typename Callback>
inline void foreachFile(std::string name, const Callback& callback) {
llvm::SmallString<128> path;
path += test_dir();
path::append(path, name);
std::error_code error;
fs::directory_iterator iter(path, error);
fs::directory_iterator end;
while(!error && iter != end) {
auto file = iter->path();
auto buffer = llvm::MemoryBuffer::getFile(file);
if(!buffer) {
llvm::outs() << "failed to open file: " << buffer.getError().message() << file << "\n";
// TODO:
}
auto content = buffer.get()->getBuffer();
callback(file, content);
iter.increment(error);
}
}
} // namespace clice