Replaced assert() with new macro TEST() in all tests, to check conditions also in Release configuration.

# Conflicts:
#	src/SparseBindingTest.cpp
#	src/Tests.cpp
#	src/VulkanSample.cpp
This commit is contained in:
Adam Sawicki 2018-10-03 17:41:20 +02:00
parent 1f7f8afdd7
commit b8d34d5e6a
3 changed files with 208 additions and 186 deletions

View File

@ -16,6 +16,7 @@
#include <utility>
#include <chrono>
#include <string>
#include <exception>
#include <cassert>
#include <cstdlib>
@ -25,7 +26,21 @@
typedef std::chrono::high_resolution_clock::time_point time_point;
typedef std::chrono::high_resolution_clock::duration duration;
#define ERR_GUARD_VULKAN(Expr) do { VkResult res__ = (Expr); if (res__ < 0) assert(0); } while(0)
#ifdef _DEBUG
#define TEST(expr) do { \
if(!(expr)) { \
assert(0 && #expr); \
} \
} while(0)
#else
#define TEST(expr) do { \
if(!(expr)) { \
throw std::runtime_error("TEST FAILED: " #expr); \
} \
} while(0)
#endif
#define ERR_GUARD_VULKAN(expr) TEST((expr) >= 0)
extern VkPhysicalDevice g_hPhysicalDevice;
extern VkDevice g_hDevice;

File diff suppressed because it is too large Load Diff

View File

@ -1714,7 +1714,14 @@ static LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
PostMessage(hWnd, WM_CLOSE, 0, 0);
break;
case 'T':
Test();
try
{
Test();
}
catch(const std::exception& ex)
{
printf("ERROR: %s\n", ex.what());
}
break;
}
return 0;