#include "catch.hpp" #include #ifdef _WIN32 #include // https://msdn.microsoft.com/en-us/library/ksazx244.aspx // https://msdn.microsoft.com/en-us/library/a9yf33zb.aspx class DoNothingInvalidParameterHandler { static void invalid_parameter_handler( const wchar_t* expression, const wchar_t* function, const wchar_t* file, unsigned int line, uintptr_t pReserved ) { // do nothing } _invalid_parameter_handler old_handler; public: DoNothingInvalidParameterHandler() : old_handler(_set_invalid_parameter_handler(invalid_parameter_handler)) { _CrtSetReportMode(_CRT_ASSERT, 0); } ~DoNothingInvalidParameterHandler() { _set_invalid_parameter_handler(old_handler); } }; // class InvalidParameterHandler #endif TEST_CASE("file_size") { #ifdef _WIN32 DoNothingInvalidParameterHandler handler; #endif SECTION("illegal fd should throw") { REQUIRE_THROWS_AS(osmium::util::file_size(-1), std::system_error); } SECTION("unused fd should throw") { // its unlikely that fd 1000 is open... REQUIRE_THROWS_AS(osmium::util::file_size(1000), std::system_error); } } TEST_CASE("resize_file") { #ifdef _WIN32 DoNothingInvalidParameterHandler handler; #endif SECTION("illegal fd should throw") { REQUIRE_THROWS_AS(osmium::util::resize_file(-1, 10), std::system_error); } SECTION("unused fd should throw") { // its unlikely that fd 1000 is open... REQUIRE_THROWS_AS(osmium::util::resize_file(1000, 10), std::system_error); } }