Skip to content

Commit

Permalink
Fixed unit tests to compile under MSVC.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
sesse committed Jun 22, 2015
1 parent 86eb8b1 commit e7a897e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
7 changes: 5 additions & 2 deletions snappy-test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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 <windows.h>
#endif

#include "snappy-test.h"

#include <algorithm>

DEFINE_bool(run_microbenchmarks, true,
Expand Down
12 changes: 11 additions & 1 deletion snappy-test.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
#endif

#ifdef HAVE_WINDOWS_H
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#endif

Expand Down Expand Up @@ -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() { }
Expand All @@ -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".
Expand Down

0 comments on commit e7a897e

Please sign in to comment.