Files
cpp17-threaded-app-non-thre…/tests/helpers/scoped_file.hpp
T

32 lines
600 B
C++
Raw Normal View History

#pragma once
#include <filesystem>
#include <stdexcept>
#include <string>
2026-07-19 16:45:42 +04:00
namespace helpers {
class ScopedFile {
public:
explicit ScopedFile(std::string fileName) : fileName_(std::move(fileName)) {}
void throwIfExists() const {
if (std::filesystem::exists(fileName_)) {
throw std::runtime_error("Test file already exists: " + fileName_);
}
}
const std::string &getFileName() const { return fileName_; }
~ScopedFile() noexcept(false) {
std::error_code ec;
std::filesystem::remove(fileName_, ec);
}
private:
std::string fileName_;
};
2026-07-19 16:45:42 +04:00
} // namespace helpers