ultimatepp/autotest/fast_memcmp/fast_memcmp.cpp
cxl 025a5e2f7a .autotest
git-svn-id: svn://ultimatepp.org/upp/trunk@14537 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2020-06-02 08:31:53 +00:00

33 lines
756 B
C++

#include <Core/Core.h>
using namespace Upp;
#ifdef CPU_ARM
#define N 1000000
#else
#define N 10000000
#endif
CONSOLE_APP_MAIN
{
StdLogSetup(LOG_COUT|LOG_FILE);
for(int i = 0; i < N; i++) {
if(i % 1000000 == 0)
LOG(i);
String a('x', Random(10));
String b('x', Random(10));
a << FormatIntBase(Random(), 2) << FormatIntBase(Random(), 2) << FormatIntBase(Random(), 2);
b << FormatIntBase(Random(), 2) << FormatIntBase(Random(), 2) << FormatIntBase(Random(), 2);
int n = min(a.GetLength(), b.GetLength());
ASSERT(sgn(inline_memcmp_aligned(~a, ~b, n)) == sgn(memcmp(~a, ~b, n)));
ASSERT(sgn(a.Compare(b)) == sgn(strcmp(~a, ~b)));
ASSERT(sgn(a.Compare(a)) == 0);
}
LOG("------------ OK");
}