eranpeer / FakeIt

C++ mocking made easy. A simple yet very expressive, headers only library for c++ mocking.
MIT License
1.24k stars 170 forks source link

gcc 7 faked method was not called in release #126

Closed myrgy closed 6 years ago

myrgy commented 6 years ago

FakeIt: 2.0.4 gcc 7 OS: Fedora 27 catch 2.0.1 everything works fine in debug, but not in release

struct Handler {
  virtual void onMessage(const Msg1 &) {}
  template <typename T> void onMessage(const T &msg) {
    REQUIRE_FALSE("Unexpected method was called");
  }
};

TEST{
using namespace fakeit;
    Mock<Handler> h;
    auto method =
        OverloadedMethod(h, onMessage, void(const Msg1 &));
    Fake(method);
   REQUIRE(dispatch(buf, size, h.get()) == size);
    Verify(method).Once();
}