tdf#152943: Add configure option to disable NaN payload related tests
Because some architecture(such as riscv64) does not support NaN payload (NaN propagation), skipping the related tests might be a good choice for builders who has already known the risk of lacking NaN payload support. Currently the tests that could be skipped via --disable-nan-tests are: - rtl_math: test_payloadNaN - sc_ucalc_formula2: testExternalRefFunctions - sc_ucalc_formula2: testFuncGCD - sc_ucalc_formula2: testFuncLCM - sc_ucalc_nanpayload: testNanPayload Change-Id: Ia8834595a8b469d8c542809b3e580a3f6316ef20 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174801 Reviewed-by: René Engelhard <rene@debian.org> Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: René Engelhard <rene@debian.org>
This commit is contained in:
parent
8d7272141f
commit
d17a495c5c
8 changed files with 52 additions and 0 deletions
|
@ -134,6 +134,7 @@ export DCONF_LIBS=@DCONF_LIBS@
|
||||||
export DEFAULT_BRAND_IMAGES=@DEFAULT_BRAND_IMAGES@
|
export DEFAULT_BRAND_IMAGES=@DEFAULT_BRAND_IMAGES@
|
||||||
export DICT_SYSTEM_DIR=@DICT_SYSTEM_DIR@
|
export DICT_SYSTEM_DIR=@DICT_SYSTEM_DIR@
|
||||||
export DISABLE_CVE_TESTS=@DISABLE_CVE_TESTS@
|
export DISABLE_CVE_TESTS=@DISABLE_CVE_TESTS@
|
||||||
|
DISABLE_NAN_TESTS=@DISABLE_NAN_TESTS@
|
||||||
export DISABLE_DYNLOADING=@DISABLE_DYNLOADING@
|
export DISABLE_DYNLOADING=@DISABLE_DYNLOADING@
|
||||||
export DISABLE_PYTHON=@DISABLE_PYTHON@
|
export DISABLE_PYTHON=@DISABLE_PYTHON@
|
||||||
export DOCDIR=@DOCDIR@
|
export DOCDIR=@DOCDIR@
|
||||||
|
|
17
configure.ac
17
configure.ac
|
@ -1895,6 +1895,11 @@ libo_FUZZ_ARG_ENABLE(cve-tests,
|
||||||
[Prevent CVE tests to be executed]),
|
[Prevent CVE tests to be executed]),
|
||||||
,)
|
,)
|
||||||
|
|
||||||
|
libo_FUZZ_ARG_ENABLE(nan-tests,
|
||||||
|
AS_HELP_STRING([--disable-nan-tests],
|
||||||
|
[Prevent NaN payload tests to be executed]),
|
||||||
|
,)
|
||||||
|
|
||||||
AC_ARG_ENABLE(build-opensymbol,
|
AC_ARG_ENABLE(build-opensymbol,
|
||||||
AS_HELP_STRING([--enable-build-opensymbol],
|
AS_HELP_STRING([--enable-build-opensymbol],
|
||||||
[Do not use the prebuilt opens___.ttf. Build it instead. This needs
|
[Do not use the prebuilt opens___.ttf. Build it instead. This needs
|
||||||
|
@ -11538,6 +11543,18 @@ else
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl ===================================================================
|
||||||
|
dnl Check for disabling nan_tests
|
||||||
|
dnl ===================================================================
|
||||||
|
AC_MSG_CHECKING([whether to execute NaN payload tests])
|
||||||
|
if test "$enable_nan_tests" = "no"; then
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
DISABLE_NAN_TESTS=TRUE
|
||||||
|
AC_SUBST(DISABLE_NAN_TESTS)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
fi
|
||||||
|
|
||||||
dnl ===================================================================
|
dnl ===================================================================
|
||||||
dnl Check for system openssl
|
dnl Check for system openssl
|
||||||
dnl ===================================================================
|
dnl ===================================================================
|
||||||
|
|
|
@ -71,4 +71,12 @@ ifeq ($(ENABLE_CIPHER_OPENSSL_BACKEND),TRUE)
|
||||||
$(eval $(call gb_CppunitTest_add_defs,sal_rtl,-DLIBO_CIPHER_OPENSSL_BACKEND))
|
$(eval $(call gb_CppunitTest_add_defs,sal_rtl,-DLIBO_CIPHER_OPENSSL_BACKEND))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# test_payloadNaN may fail on some arch(e.g. riscv64) that does not
|
||||||
|
# support part of IEEE 754 voluntary standards
|
||||||
|
ifeq ($(DISABLE_NAN_TESTS),TRUE)
|
||||||
|
$(eval $(call gb_CppunitTest_add_defs,sal_rtl,\
|
||||||
|
-DDISABLE_NAN_TESTS \
|
||||||
|
))
|
||||||
|
endif
|
||||||
|
|
||||||
# vim: set noet sw=4 ts=4:
|
# vim: set noet sw=4 ts=4:
|
||||||
|
|
|
@ -686,7 +686,9 @@ public:
|
||||||
CPPUNIT_TEST(test_acosh);
|
CPPUNIT_TEST(test_acosh);
|
||||||
CPPUNIT_TEST(test_asinh);
|
CPPUNIT_TEST(test_asinh);
|
||||||
CPPUNIT_TEST(test_atanh);
|
CPPUNIT_TEST(test_atanh);
|
||||||
|
#ifndef DISABLE_NAN_TESTS
|
||||||
CPPUNIT_TEST(test_payloadNaN);
|
CPPUNIT_TEST(test_payloadNaN);
|
||||||
|
#endif
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -11,4 +11,12 @@
|
||||||
|
|
||||||
$(eval $(call sc_ucalc_test,_formula2))
|
$(eval $(call sc_ucalc_test,_formula2))
|
||||||
|
|
||||||
|
# some testes related to NaN payload may fail on some arch(e.g. riscv64)
|
||||||
|
# that does not support part of IEEE 754 voluntary standards
|
||||||
|
ifeq ($(DISABLE_NAN_TESTS),TRUE)
|
||||||
|
$(eval $(call gb_CppunitTest_add_defs,sc_ucalc_formula2,\
|
||||||
|
-DDISABLE_NAN_TESTS \
|
||||||
|
))
|
||||||
|
endif
|
||||||
|
|
||||||
# vim: set noet sw=4 ts=4:
|
# vim: set noet sw=4 ts=4:
|
||||||
|
|
|
@ -11,4 +11,12 @@
|
||||||
|
|
||||||
$(eval $(call sc_ucalc_test,_nanpayload))
|
$(eval $(call sc_ucalc_test,_nanpayload))
|
||||||
|
|
||||||
|
# some testes related to NaN payload may fail on some arch(e.g. riscv64)
|
||||||
|
# that does not support part of IEEE 754 voluntary standards
|
||||||
|
ifeq ($(DISABLE_NAN_TESTS),TRUE)
|
||||||
|
$(eval $(call gb_CppunitTest_add_defs,sc_ucalc_nanpayload,\
|
||||||
|
-DDISABLE_NAN_TESTS \
|
||||||
|
))
|
||||||
|
endif
|
||||||
|
|
||||||
# vim: set noet sw=4 ts=4:
|
# vim: set noet sw=4 ts=4:
|
||||||
|
|
|
@ -1827,6 +1827,7 @@ void TestFormula2::testExtRefConcat(ScDocument* pDoc, ScDocument& rExtDoc)
|
||||||
|
|
||||||
CPPUNIT_TEST_FIXTURE(TestFormula2, testExternalRefFunctions)
|
CPPUNIT_TEST_FIXTURE(TestFormula2, testExternalRefFunctions)
|
||||||
{
|
{
|
||||||
|
#ifndef DISABLE_NAN_TESTS
|
||||||
ScDocShellRef xExtDocSh = new ScDocShell;
|
ScDocShellRef xExtDocSh = new ScDocShell;
|
||||||
OUString aExtDocName(u"file:///extdata.fake"_ustr);
|
OUString aExtDocName(u"file:///extdata.fake"_ustr);
|
||||||
SfxMedium* pMed = new SfxMedium(aExtDocName, StreamMode::STD_READWRITE);
|
SfxMedium* pMed = new SfxMedium(aExtDocName, StreamMode::STD_READWRITE);
|
||||||
|
@ -1925,6 +1926,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testExternalRefFunctions)
|
||||||
!findLoadedDocShellByName(aExtDocName));
|
!findLoadedDocShellByName(aExtDocName));
|
||||||
|
|
||||||
m_pDoc->DeleteTab(0);
|
m_pDoc->DeleteTab(0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
CPPUNIT_TEST_FIXTURE(TestFormula2, testExternalRefUnresolved)
|
CPPUNIT_TEST_FIXTURE(TestFormula2, testExternalRefUnresolved)
|
||||||
|
@ -3173,6 +3175,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncSUMX2MY2)
|
||||||
|
|
||||||
CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncGCD)
|
CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncGCD)
|
||||||
{
|
{
|
||||||
|
#ifndef DISABLE_NAN_TESTS
|
||||||
sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn auto calc on.
|
sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn auto calc on.
|
||||||
|
|
||||||
m_pDoc->InsertTab(0, u"GCDTest"_ustr);
|
m_pDoc->InsertTab(0, u"GCDTest"_ustr);
|
||||||
|
@ -3267,10 +3270,12 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncGCD)
|
||||||
u"#VALUE!"_ustr, aVal);
|
u"#VALUE!"_ustr, aVal);
|
||||||
|
|
||||||
m_pDoc->DeleteTab(0);
|
m_pDoc->DeleteTab(0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncLCM)
|
CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncLCM)
|
||||||
{
|
{
|
||||||
|
#ifndef DISABLE_NAN_TESTS
|
||||||
sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn auto calc on.
|
sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn auto calc on.
|
||||||
|
|
||||||
m_pDoc->InsertTab(0, u"LCMTest"_ustr);
|
m_pDoc->InsertTab(0, u"LCMTest"_ustr);
|
||||||
|
@ -3365,6 +3370,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncLCM)
|
||||||
u"#VALUE!"_ustr, aVal);
|
u"#VALUE!"_ustr, aVal);
|
||||||
|
|
||||||
m_pDoc->DeleteTab(0);
|
m_pDoc->DeleteTab(0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncSUMSQ)
|
CPPUNIT_TEST_FIXTURE(TestFormula2, testFuncSUMSQ)
|
||||||
|
|
|
@ -16,10 +16,12 @@ class TestNanPayload : public ScUcalcTestBase
|
||||||
|
|
||||||
CPPUNIT_TEST_FIXTURE(TestNanPayload, testNanPayload)
|
CPPUNIT_TEST_FIXTURE(TestNanPayload, testNanPayload)
|
||||||
{
|
{
|
||||||
|
#ifndef DISABLE_NAN_TESTS
|
||||||
// Some tests, such as testExternalRefFunctions, testFuncGCD, and testFuncGCD, evaluates
|
// Some tests, such as testExternalRefFunctions, testFuncGCD, and testFuncGCD, evaluates
|
||||||
// spreadsheet functions' error code, which need NaN payload feature of the hardware
|
// spreadsheet functions' error code, which need NaN payload feature of the hardware
|
||||||
NanPayloadTest nanTest;
|
NanPayloadTest nanTest;
|
||||||
CPPUNIT_ASSERT_MESSAGE(nanTest.getMessage(), nanTest.getIfSupported());
|
CPPUNIT_ASSERT_MESSAGE(nanTest.getMessage(), nanTest.getIfSupported());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
CPPUNIT_PLUGIN_IMPLEMENT();
|
CPPUNIT_PLUGIN_IMPLEMENT();
|
||||||
|
|
Loading…
Reference in a new issue