diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2019-06-12 14:39:22 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2019-06-12 14:39:22 +0000 |
commit | 67e0571b901e63dde4514a24d881d169abe463b1 (patch) | |
tree | 3a68a7f53ba4faa31d867459c384da5d48805cab /vespalib | |
parent | 2367a16f34b79548965fab1bbac0ccc965aab2e4 (diff) |
make allow-underflow common code
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/tests/stllike/asciistream_test.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/vespalib/src/tests/stllike/asciistream_test.cpp b/vespalib/src/tests/stllike/asciistream_test.cpp index 03ecb878476..b1ba70e6ae2 100644 --- a/vespalib/src/tests/stllike/asciistream_test.cpp +++ b/vespalib/src/tests/stllike/asciistream_test.cpp @@ -529,6 +529,23 @@ AsciistreamTest::testFloat() { f = 42.0; EXPECT_EXCEPTION(as >> f, IllegalArgumentException, "float value '123.4E50' is outside of range."); EXPECT_EQUAL(f, 42.0); + + errno = 0; + char *ep; + f = locale::c::strtof_au("-5.490412E-39", &ep); + EXPECT_EQUAL(f, -5.490412E-39f); + EXPECT_EQUAL(errno, 0); + EXPECT_EQUAL(*ep, 0); + + f = locale::c::strtof_au("0.0001E-50", &ep); + EXPECT_EQUAL(f, 0.0); + EXPECT_EQUAL(errno, 0); + EXPECT_EQUAL(*ep, 0); + + f = locale::c::strtof_au("123.4E50", &ep); + EXPECT_EQUAL(f, HUGE_VALF); + EXPECT_EQUAL(errno, ERANGE); + EXPECT_EQUAL(*ep, 0); } void |