diff options
author | Eike Rathke <erack@redhat.com> | 2013-03-21 19:43:53 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2013-03-21 19:44:12 +0100 |
commit | cafa2b948bd78905b5890f917403e6fabff3b6dd (patch) | |
tree | 72601ff277d643eba8e92c32ed65817b7e863cde /basic/qa | |
parent | caecf6102f5042908c915afe89834ab7d3a4a4cb (diff) |
added unit test for 10e308 math overflow
Change-Id: I492d991545239539d21fb59de3eccdd1ab56a9af
Diffstat (limited to 'basic/qa')
-rw-r--r-- | basic/qa/cppunit/test_scanner.cxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/basic/qa/cppunit/test_scanner.cxx b/basic/qa/cppunit/test_scanner.cxx index 3396d0fa2a1d..9c8d38842916 100644 --- a/basic/qa/cppunit/test_scanner.cxx +++ b/basic/qa/cppunit/test_scanner.cxx @@ -15,6 +15,7 @@ #include "osl/file.hxx" #include "osl/process.h" +#include <rtl/math.hxx> #include "scanner.hxx" @@ -562,6 +563,7 @@ namespace const OUString source14("12e-3+"); const OUString source15("1,2,3"); const OUString source16("1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"); + const OUString source17("10e308"); std::vector<Symbol> symbols; sal_Int32 errors; @@ -691,6 +693,15 @@ namespace // This error is from a "buffer overflow" which is stupid because // the buffer is artificially constrained by the scanner. CPPUNIT_ASSERT(errors == 1); // HACK + + double fInf = 0.0; + rtl::math::setInf( &fInf, false); + symbols = getSymbols(source17, errors); + CPPUNIT_ASSERT(symbols.size() == 2); + CPPUNIT_ASSERT(symbols[0].number == fInf); + CPPUNIT_ASSERT(symbols[0].type == SbxDOUBLE); + CPPUNIT_ASSERT(symbols[1].text == cr); + CPPUNIT_ASSERT(errors == 1); // math error, overflow } void ScannerTest::testDataType() |