diff options
Diffstat (limited to 'tests/utils.cpp')
-rw-r--r-- | tests/utils.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/utils.cpp b/tests/utils.cpp index 5ae8ea8f..ef6018b6 100644 --- a/tests/utils.cpp +++ b/tests/utils.cpp @@ -9,3 +9,37 @@ void prepare_logdir() auto rv = system("rm -f logs/*"); #endif } + + +std::string file_contents(const std::string& filename) +{ + std::ifstream ifs(filename); + if (!ifs) + throw std::runtime_error("Failed open file "); + return std::string((std::istreambuf_iterator<char>(ifs)), + (std::istreambuf_iterator<char>())); + +} + +std::size_t count_lines(const std::string& filename) +{ + std::ifstream ifs(filename); + if (!ifs) + throw std::runtime_error("Failed open file "); + + std::string line; + size_t counter = 0; + while(std::getline(ifs, line)) + counter++; + return counter; +} + +std::ifstream::pos_type filesize(const std::string& filename) +{ + std::ifstream ifs(filename, std::ifstream::ate | std::ifstream::binary); + if (!ifs) + throw std::runtime_error("Failed open file "); + + return ifs.tellg(); +} + |