Fixed wasm tests.

This commit is contained in:
Бранимир Караџић
2024-12-05 16:21:29 -08:00
parent 32e578b22f
commit b97e679fc8
3 changed files with 45 additions and 13 deletions

View File

@@ -10,8 +10,12 @@
TEST_CASE("getProcessMemoryUsed", "")
{
if (BX_ENABLED(BX_PLATFORM_EMSCRIPTEN) )
{
SKIP("Not supported by wasm.");
}
REQUIRE(0 != bx::getProcessMemoryUsed() );
// DBG("bx::getProcessMemoryUsed %d", bx::getProcessMemoryUsed() );
}
#if BX_CONFIG_SUPPORTS_THREADING

View File

@@ -26,7 +26,7 @@ bool testAssertHandler(const bx::Location& _location, const char* _format, va_li
return true;
}
int runAllTests(int _argc, const char* _argv[])
int runAllTests(int32_t _argc, const char* _argv[])
{
bx::setAssertHandler(testAssertHandler);
@@ -58,12 +58,25 @@ int runAllTests(int _argc, const char* _argv[])
"\n\n"
);
bx::printf("Args:\n");
for (int32_t ii = 0; ii < _argc; ++ii)
{
bx::printf("\t%2d: \"%s\"", ii, _argv[ii]);
}
bx::printf("\n\n");
using namespace Catch;
Session session;
ConfigData config;
config.defaultColourMode = BX_PLATFORM_EMSCRIPTEN ? ColourMode::None : ColourMode::PlatformDefault;
config.defaultColourMode = BX_PLATFORM_EMSCRIPTEN
? ColourMode::None
: ColourMode::PlatformDefault
;
config.showDurations = ShowDurations::Always;
session.useConfigData(config);

View File

@@ -12,9 +12,10 @@
TEST_CASE("No output buffer provided.", "[string][printf]")
{
REQUIRE(4 == bx::snprintf(NULL, 0, "test") );
REQUIRE(1 == bx::snprintf(NULL, 0, "%d", 1) );
REQUIRE(4 == bx::snprintf(NULL, 0, "test") );
REQUIRE(4 == bx::snprintf(NULL, 10, "test") );
REQUIRE(1 == bx::snprintf(NULL, 0, "%d", 1) );
REQUIRE(1 == bx::snprintf(NULL, 10, "%d", 1) );
}
TEST_CASE("Truncated output buffer.", "[string][printf]")
@@ -58,7 +59,8 @@ TEST_CASE("Truncated output buffer.", "[string][printf]")
template<bool StdCompliantT>
static bool test(const char* _expected, const char* _format, va_list _argList)
{
int32_t max = (int32_t)bx::strLen(_expected) + 1;
const int32_t expectedLen = bx::strLen(_expected);
int32_t max = expectedLen + 1024;
char* bxTemp = (char*)alloca(max);
va_list argList;
@@ -66,7 +68,7 @@ static bool test(const char* _expected, const char* _format, va_list _argList)
const int32_t bxLen = bx::vsnprintf(bxTemp, max, _format, argList);
bool result = true
&& bxLen == max-1
&& bxLen == expectedLen
&& 0 == bx::strCmp(_expected, bxTemp)
;
@@ -96,8 +98,8 @@ static bool test(const char* _expected, const char* _format, va_list _argList)
{
printf("---\n");
printf("printf format '%s'\n", _format);
printf(" result (%4d) '%s'\n", bxLen, bxTemp);
printf(" expected (%4d) '%s'\n", max-1, _expected);
printf(" bx result (%4d) '%s'\n", bxLen, bxTemp);
printf(" expected (%4d) '%s'\n", expectedLen, _expected);
printf("CRT vsnprintf (%4d) '%s'\n", crtLen, crtTemp);
}
@@ -133,6 +135,9 @@ TEST_CASE("Format %f", "[string][printf]")
REQUIRE(test(" 13.370", "%*.*f", 8, 3, 13.37) );
REQUIRE(test("13.370 ", "%-8.3f", 13.37) );
REQUIRE(test("13.370 ", "%*.*f", -8, 3, 13.37) );
REQUIRE(test(" -13.370", "% 8.3f", -13.37) );
REQUIRE(test(" 13.370", "% 16.3f", 13.37) );
REQUIRE(test(" -13.370", "% 16.3f", -13.37) );
REQUIRE(test("nan ", "%-8f", std::numeric_limits<double>::quiet_NaN() ) );
REQUIRE(test(" nan", "%8f", std::numeric_limits<double>::quiet_NaN() ) );
@@ -216,8 +221,10 @@ TEST_CASE("Format %f", "[string][printf]")
TEST_CASE("Format %d, %i, %o, %u, %x", "[string][printf]")
{
REQUIRE(test("1337", "%d", 1337) );
REQUIRE(test("-1337", "% d", -1337) );
REQUIRE(test("1337 ", "%-20d", 1337) );
REQUIRE(test("-1337 ", "%-20d", -1337) );
REQUIRE(test(" -1337", "% 20d", -1337) );
REQUIRE(test("1337", "%i", 1337) );
REQUIRE(test("1337 ", "%-20i", 1337) );
@@ -273,7 +280,7 @@ TEST_CASE("Format %d, %i, %o, %u, %x", "[string][printf]")
REQUIRE(test("-001", "%04i", -1) );
REQUIRE(test("+001", "%+04i", 1) );
if (BX_ENABLED(BX_ARCH_32BIT) )
if (sizeof(intmax_t) == 4)
{
REQUIRE(test("2147483647", "%jd", INTMAX_MAX) );
}
@@ -318,11 +325,18 @@ TEST_CASE("Format %s", "[string][printf]")
TEST_CASE("Format %td", "[string][printf]")
{
size_t size = size_t(-1);
ptrdiff_t size = ptrdiff_t(-1);
REQUIRE(test("-1", "%td", size) );
REQUIRE(test("3221225472", "%td", size_t(3221225472) ) );
if (4 == sizeof(ptrdiff_t) )
{
REQUIRE(test("-1073741824", "%td", ptrdiff_t(3221225472) ) );
}
else
{
REQUIRE(test("3221225472", "%td", ptrdiff_t(3221225472) ) );
}
}
TEST_CASE("Format %n", "[string][printf]")
@@ -353,6 +367,7 @@ TEST_CASE("Format %c, %s, %S", "[string][printf]")
REQUIRE(test("x ", "%-20c", 'x') );
REQUIRE(test("hello ", "%-20s", "hello") );
REQUIRE(test(" hello", "%10s", "hello") );
REQUIRE(test("hello, world!", "%s, %s!", "hello", "world") );
REQUIRE(testNotStdCompliant("h", "%1s", "hello") );