I moved m_engine creation to the constructor. However, it is not complete until after calling m_engine->Create(). The UT segfault because the pointer is not null and destructor calls m_engine->Destroy() on an incomplete object. (Yes, UTs test incomplete SUT.) So I moved back the m_engine creation to CApp::Create() but before the SDL initialization as m_engine holds the flag for vsync.