Test.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef CORE_TEST_H
  2. #define CORE_TEST_H
  3. #include "core/Types.h"
  4. void finalizeTests(void);
  5. #define TEST_ARGS const char *file, int line
  6. #define TEST_FUNCTION(name, type) \
  7. bool test##name(TEST_ARGS, type wanted, type actual)
  8. TEST_FUNCTION(Int, int);
  9. TEST_FUNCTION(I64, i64);
  10. TEST_FUNCTION(U64, u64);
  11. TEST_FUNCTION(Size, size_t);
  12. TEST_FUNCTION(Bool, bool);
  13. TEST_FUNCTION(String, const char*);
  14. bool testFloat(TEST_ARGS, float wanted, float actual, float error);
  15. bool testNull(TEST_ARGS, const void* p);
  16. bool testNotNull(TEST_ARGS, const void* p);
  17. #define TEST(wanted, actual, name) \
  18. test##name(__FILE__, __LINE__, wanted, actual)
  19. #define TEST_FLOAT(wanted, actual, error) \
  20. testFloat(__FILE__, __LINE__, wanted, actual, error)
  21. #define TEST_BOOL(wanted, actual) TEST(wanted, actual, Bool)
  22. #define TEST_INT(wanted, actual) TEST(wanted, actual, Int)
  23. #define TEST_I64(wanted, actual) TEST(wanted, actual, I64)
  24. #define TEST_U64(wanted, actual) TEST(wanted, actual, U64)
  25. #define TEST_SIZE(wanted, actual) TEST(wanted, actual, Size)
  26. #define TEST_STRING(wanted, actual) TEST(wanted, actual, String)
  27. #define TEST_FALSE(actual) TEST(false, actual, Bool)
  28. #define TEST_TRUE(actual) TEST(true, actual, Bool)
  29. #define TEST_NULL(actual) testNull(__FILE__, __LINE__, actual)
  30. #define TEST_NOT_NULL(actual) testNotNull(__FILE__, __LINE__, actual)
  31. bool testVectorN(TEST_ARGS, const float* wanted, const float* actual, size_t n);
  32. #define TEST_VN(wanted, actual, n) \
  33. testVectorN(__FILE__, __LINE__, (wanted)->data, (actual)->data, n)
  34. #define TEST_V2(wanted, actual) \
  35. TEST_VN((Vector2*)(wanted), (Vector2*)(actual), 2)
  36. #define TEST_V3(wanted, actual) \
  37. TEST_VN((Vector3*)(wanted), (Vector3*)(actual), 3)
  38. #define TEST_V4(wanted, actual) \
  39. TEST_VN((Vector4*)(wanted), (Vector4*)(actual), 4)
  40. bool testIntVectorN(TEST_ARGS, const int* wanted, const int* actual, size_t n);
  41. #define TEST_IVN(wanted, actual, n) \
  42. testIntVectorN(__FILE__, __LINE__, (wanted)->data, (actual)->data, n)
  43. #define TEST_IV2(wanted, actual) \
  44. TEST_IVN((IntVector2*)(wanted), (IntVector2*)(actual), 2)
  45. #define TEST_IV3(wanted, actual) \
  46. TEST_IVN((IntVector3*)(wanted), (IntVector3*)(actual), 3)
  47. #define TEST_IV4(wanted, actual) \
  48. TEST_IVN((IntVector4*)(wanted), (IntVector4*)(actual), 4)
  49. #endif