[Libreoffice-commits] core.git: basic/qa

Eike Rathke erack at redhat.com
Thu Mar 21 11:44:39 PDT 2013


 basic/qa/cppunit/test_scanner.cxx |   11 +++++++++++
 1 file changed, 11 insertions(+)

New commits:
commit cafa2b948bd78905b5890f917403e6fabff3b6dd
Author: Eike Rathke <erack at redhat.com>
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()


More information about the Libreoffice-commits mailing list