basic/qa/cppunit/test_scanner.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+)
New commits: commit cafa2b948bd78905b5890f917403e6fabff3b6dd Author: Eike Rathke <[email protected]> Date: Thu Mar 21 19:43:53 2013 +0100 added unit test for 10e308 math overflow Change-Id: I492d991545239539d21fb59de3eccdd1ab56a9af diff --git a/basic/qa/cppunit/test_scanner.cxx b/basic/qa/cppunit/test_scanner.cxx index 3396d0f..9c8d388 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() _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
