summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2019-06-12 14:39:22 +0000
committerArne Juul <arnej@yahoo-inc.com>2019-06-12 14:39:22 +0000
commit67e0571b901e63dde4514a24d881d169abe463b1 (patch)
tree3a68a7f53ba4faa31d867459c384da5d48805cab /vespalib
parent2367a16f34b79548965fab1bbac0ccc965aab2e4 (diff)
make allow-underflow common code
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/tests/stllike/asciistream_test.cpp17
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