fix-flaky-bridgetest
authorDebian LibreOffice Maintainers <debian-openoffice@lists.debian.org>
Fri, 6 Sep 2019 14:06:05 +0000 (15:06 +0100)
committerRene Engelhard <rene@debian.org>
Fri, 6 Sep 2019 14:06:05 +0000 (15:06 +0100)
Gbp-Pq: Name fix-flaky-bridgetest.diff

testtools/source/bridgetest/bridgetest.cxx

index ae59820d1be1e6962f9fae9056c861ac82279a36..aaee0149e9c0fd1aa649ef69d8620ddf2ef466bc 100644 (file)
@@ -53,6 +53,7 @@
 #include "currentcontextchecker.hxx"
 #include "multi.hxx"
 #include <memory>
+#include <cmath>
 
 using namespace osl;
 using namespace cppu;
@@ -124,6 +125,9 @@ public:
 
 static bool equals( const TestElement & rData1, const TestElement & rData2 )
 {
+    const float epsilon_f = 0.00001f;
+    const double epsilon_d = 0.000000000001;
+
     check( rData1.Bool == rData2.Bool, "### bool does not match!" );
     check( rData1.Char == rData2.Char, "### char does not match!" );
     check( rData1.Byte == rData2.Byte, "### byte does not match!" );
@@ -133,8 +137,8 @@ static bool equals( const TestElement & rData1, const TestElement & rData2 )
     check( rData1.ULong == rData2.ULong, "### unsigned long does not match!" );
     check( rData1.Hyper == rData2.Hyper, "### hyper does not match!" );
     check( rData1.UHyper == rData2.UHyper, "### unsigned hyper does not match!" );
-    check( rData1.Float == rData2.Float, "### float does not match!" );
-    check( rData1.Double == rData2.Double, "### double does not match!" );
+    check( fabs( rData1.Float - rData2.Float ) < epsilon_f, "### float does not match!" );
+    check( fabs( rData1.Double - rData2.Double ) < epsilon_d, "### double does not match!" );
     check( rData1.Enum == rData2.Enum, "### enum does not match!" );
     check( rData1.String == rData2.String, "### string does not match!" );
     check( rData1.Interface == rData2.Interface, "### interface does not match!" );
@@ -149,8 +153,8 @@ static bool equals( const TestElement & rData1, const TestElement & rData2 )
             rData1.ULong == rData2.ULong &&
             rData1.Hyper == rData2.Hyper &&
             rData1.UHyper == rData2.UHyper &&
-            rData1.Float == rData2.Float &&
-            rData1.Double == rData2.Double &&
+            fabs( rData1.Float - rData2.Float ) < epsilon_f &&
+            fabs( rData1.Double - rData2.Double ) < epsilon_d &&
             rData1.Enum == rData2.Enum &&
             rData1.String == rData2.String &&
             rData1.Interface == rData2.Interface &&