mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
.upptst
git-svn-id: svn://ultimatepp.org/upp/trunk@6463 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
c7671fcfda
commit
4ded1b0cd2
1 changed files with 38 additions and 0 deletions
|
|
@ -2,6 +2,21 @@
|
|||
|
||||
using namespace Upp;
|
||||
|
||||
#define CHECK_OVERFLOW(s, method, overflow) \
|
||||
{ \
|
||||
DLOG(s << ' ' << #method); \
|
||||
bool isoverflow = false; \
|
||||
try { \
|
||||
CParser p(s); \
|
||||
DDUMP(p.method); \
|
||||
} \
|
||||
catch(CParser::Error) { \
|
||||
DLOG("Overflow"); \
|
||||
isoverflow = true; \
|
||||
} \
|
||||
ASSERT(isoverflow == overflow); \
|
||||
}
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
CParser p("i if while 12345 alfa");
|
||||
|
|
@ -12,4 +27,27 @@ CONSOLE_APP_MAIN
|
|||
ASSERT(p.ReadInt() == 12345);
|
||||
ASSERT(p.IsId());
|
||||
ASSERT(p.ReadId() == "alfa");
|
||||
|
||||
CHECK_OVERFLOW("2147483647", ReadInt(), false);
|
||||
CHECK_OVERFLOW("2147483648", ReadInt(), true);
|
||||
|
||||
CHECK_OVERFLOW("-2147483648", ReadInt(), false);
|
||||
CHECK_OVERFLOW("-2147483649", ReadInt(), true);
|
||||
|
||||
CHECK_OVERFLOW("ffffffff", ReadNumber(16), false);
|
||||
CHECK_OVERFLOW("100000000", ReadNumber(16), true);
|
||||
|
||||
CHECK_OVERFLOW("9223372036854775807", ReadInt64(), false);
|
||||
CHECK_OVERFLOW("9223372036854775808", ReadInt64(), true);
|
||||
|
||||
CHECK_OVERFLOW("-9223372036854775808", ReadInt64(), false);
|
||||
CHECK_OVERFLOW("-9223372036854775809", ReadInt64(), true);
|
||||
|
||||
CHECK_OVERFLOW("ffffffffffffffff", ReadNumber64(16), false);
|
||||
CHECK_OVERFLOW("10000000000000000", ReadNumber64(16), true);
|
||||
|
||||
// CHECK_OVERFLOW("1e300", ReadDouble(), false);
|
||||
// CHECK_OVERFLOW("1e500", ReadDouble(), true);
|
||||
// CHECK_OVERFLOW("-1e300", ReadDouble(), false);
|
||||
// CHECK_OVERFLOW("-1e500", ReadDouble(), true);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue