From e7a897e187e90b33f87bd9e64872cf561de9ebca Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Mon, 22 Jun 2015 15:45:11 +0200 Subject: [PATCH] Fixed unit tests to compile under MSVC. 1. Including config.h in test. 2. Including windows.h before zippy-test.h. 3. Removed definition of WIN32_LEAN_AND_MEAN. This caused problems in build environments that define WIN32_LEAN_AND_MEAN as our definition didn't check for prior existence. This constant is old and no longer needed anyhow. 4. Disable MSVC warning 4722 since ~LogMessageCrash() never returns. A=cmumford R=jeff --- snappy-test.cc | 7 +++++-- snappy-test.h | 12 +++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/snappy-test.cc b/snappy-test.cc index 4619410..7f1d0a8 100644 --- a/snappy-test.cc +++ b/snappy-test.cc @@ -28,13 +28,16 @@ // // Various stubs for the unit tests for the open-source version of Snappy. -#include "snappy-test.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #ifdef HAVE_WINDOWS_H -#define WIN32_LEAN_AND_MEAN #include #endif +#include "snappy-test.h" + #include DEFINE_bool(run_microbenchmarks, true, diff --git a/snappy-test.h b/snappy-test.h index 732c51d..dbc55b9 100644 --- a/snappy-test.h +++ b/snappy-test.h @@ -52,7 +52,6 @@ #endif #ifdef HAVE_WINDOWS_H -#define WIN32_LEAN_AND_MEAN #include #endif @@ -548,6 +547,13 @@ class LogMessage { PREDICT_TRUE(condition) ? (void)0 : \ snappy::LogMessageVoidify() & snappy::LogMessageCrash() +#ifdef _MSC_VER +// ~LogMessageCrash calls abort() and therefore never exits. This is by design +// so temporarily disable warning C4722. +#pragma warning(push) +#pragma warning(disable:4722) +#endif + class LogMessageCrash : public LogMessage { public: LogMessageCrash() { } @@ -557,6 +563,10 @@ class LogMessageCrash : public LogMessage { } }; +#ifdef _MSC_VER +#pragma warning(pop) +#endif + // This class is used to explicitly ignore values in the conditional // logging macros. This avoids compiler warnings like "value computed // is not used" and "statement has no effect".