#ifndef TEST_ASSERT_H
#define TEST_ASSERT_H
#include "flatbuffers/base.h"
#include "flatbuffers/util.h"
#ifdef __ANDROID__
#include <android/log.h>
#define TEST_OUTPUT_LINE …
#define FLATBUFFERS_NO_FILE_TESTS
#else
#define TEST_OUTPUT_LINE(...) …
#endif
#define TEST_EQ(exp, val) …
#define TEST_NE(exp, val) …
#define TEST_ASSERT(val) …
#define TEST_NULL(val) …
#define TEST_NOTNULL(val) …
#define TEST_EQ_STR(exp, val) …
#ifdef _WIN32
#define TEST_ASSERT_FUNC …
#define TEST_EQ_FUNC …
#else
#define TEST_ASSERT_FUNC(val) …
#define TEST_EQ_FUNC(exp, val) …
#endif
extern int testing_fails;
TestFailEventListener;
void InitTestEngine(TestFailEventListener listener = nullptr);
int CloseTestEngine(bool force_report = false);
void TestFail(const char *expval, const char *val, const char *exp,
const char *file, int line, const char *func = nullptr);
void TestEqStr(const char *expval, const char *val, const char *exp,
const char *file, int line, const char *func = nullptr);
template<typename T, bool is_enum_type = flatbuffers::is_enum<T>::value>
struct underlying_of_scalar { … };
underlying_of_scalar<T, true>;
template<typename T>
typename underlying_of_scalar<T>::type scalar_as_underlying(T v) { … }
template<typename T, typename U>
void TestEq(T expval, U val, const char *exp, const char *file, int line,
const char *func) { … }
template<>
inline void TestEq<std::string, std::string>(std::string expval,
std::string val, const char *exp,
const char *file, int line,
const char *func) { … }
template<typename T, typename U>
void TestNe(T expval, U val, const char *exp, const char *file, int line,
const char *func) { … }
template<>
inline void TestNe<std::string, std::string>(std::string expval,
std::string val, const char *exp,
const char *file, int line,
const char *func) { … }
#endif