#pragma once #include #include #include namespace clice { std::string test_dir(); template 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