summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2013-03-21 19:43:53 +0100
committerEike Rathke <erack@redhat.com>2013-03-21 19:44:12 +0100
commitcafa2b948bd78905b5890f917403e6fabff3b6dd (patch)
tree72601ff277d643eba8e92c32ed65817b7e863cde /basic
parentcaecf6102f5042908c915afe89834ab7d3a4a4cb (diff)
added unit test for 10e308 math overflow
Change-Id: I492d991545239539d21fb59de3eccdd1ab56a9af
Diffstat (limited to 'basic')
-rw-r--r--basic/qa/cppunit/test_scanner.cxx11
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()