diff options
Diffstat (limited to 'snappy-test.cc')
-rw-r--r-- | snappy-test.cc | 58 |
1 files changed, 38 insertions, 20 deletions
diff --git a/snappy-test.cc b/snappy-test.cc index c9c7f55..cc39229 100644 --- a/snappy-test.cc +++ b/snappy-test.cc @@ -28,20 +28,14 @@ // // Various stubs for the unit tests for the open-source version of Snappy. -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#ifdef HAVE_WINDOWS_H -// Needed to be able to use std::max without workarounds in the source code. -// https://support.microsoft.com/en-us/help/143208/prb-using-stl-in-windows-program-can-cause-min-max-conflicts -#define NOMINMAX -#include <windows.h> -#endif - #include "snappy-test.h" #include <algorithm> +#include <cstdarg> +#include <cstdio> +#include <cstdlib> +#include <iostream> +#include <string> DEFINE_bool(run_microbenchmarks, true, "Run microbenchmarks before doing anything else."); @@ -65,7 +59,7 @@ bool StatusStub::ok() { return true; } StatusStub GetContents(const std::string &filename, std::string *output, const OptionsStub & /* options */) { - FILE *fp = std::fopen(filename.c_str(), "rb"); + std::FILE *fp = std::fopen(filename.c_str(), "rb"); if (fp == nullptr) { std::perror(filename.c_str()); std::exit(1); @@ -88,7 +82,7 @@ StatusStub GetContents(const std::string &filename, std::string *output, StatusStub SetContents(const std::string &file_name, const std::string &content, const OptionsStub & /* options */) { - FILE *fp = std::fopen(file_name.c_str(), "wb"); + std::FILE *fp = std::fopen(file_name.c_str(), "wb"); if (fp == nullptr) { std::perror(file_name.c_str()); std::exit(1); @@ -123,19 +117,43 @@ std::string ReadTestDataFile(const std::string& base, size_t size_limit) { return contents; } -std::string ReadTestDataFile(const std::string& base) { - return ReadTestDataFile(base, 0); -} - std::string StrFormat(const char* format, ...) { - char buf[4096]; + char buffer[4096]; std::va_list ap; va_start(ap, format); - std::vsnprintf(buf, sizeof(buf), format, ap); + std::vsnprintf(buffer, sizeof(buffer), format, ap); va_end(ap); - return buf; + return buffer; +} + +LogMessage::~LogMessage() { std::cerr << std::endl; } + +LogMessage &LogMessage::operator<<(const std::string &message) { + std::cerr << message; + return *this; } +LogMessage &LogMessage::operator<<(int number) { + std::cerr << number; + return *this; +} + +#ifdef _MSC_VER +// ~LogMessageCrash calls std::abort() and therefore never exits. This is by +// design, so temporarily disable warning C4722. +#pragma warning(push) +#pragma warning(disable : 4722) +#endif + +LogMessageCrash::~LogMessageCrash() { + std::cerr << std::endl; + std::abort(); +} + +#ifdef _MSC_VER +#pragma warning(pop) +#endif + #ifdef HAVE_LIBZ ZLib::ZLib() |