From e3e9e0ae125cef1cdce149ce632c21c481be8654 Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Fri, 15 Apr 2016 19:14:32 +0200 Subject: add test for tdf#88849 Change-Id: Id72d94799e20f0b290d5d5b05fb2b351d0750178 --- sc/qa/perf/scperfobj.cxx | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'sc/qa') diff --git a/sc/qa/perf/scperfobj.cxx b/sc/qa/perf/scperfobj.cxx index decce7fb291f..12202f6e3471 100644 --- a/sc/qa/perf/scperfobj.cxx +++ b/sc/qa/perf/scperfobj.cxx @@ -74,6 +74,7 @@ public: CPPUNIT_TEST(testLoadingFileWithSingleBigSheet); CPPUNIT_TEST(testFixedSum); CPPUNIT_TEST(testVariableSum); + CPPUNIT_TEST(testMatConcat); CPPUNIT_TEST_SUITE_END(); private: @@ -98,6 +99,7 @@ private: void testLoadingFileWithSingleBigSheet(); void testFixedSum(); void testVariableSum(); + void testMatConcat(); }; sal_Int32 ScPerfObj::nTest = 0; @@ -628,6 +630,34 @@ void ScPerfObj::testVariableSum() callgrindDump("sc:sum_with_variable_array_formula"); } +void ScPerfObj::testMatConcat() +{ + uno::Reference< sheet::XSpreadsheetDocument > xDoc(init("empty.ods"), UNO_QUERY_THROW); + + CPPUNIT_ASSERT(xDoc.is()); + uno::Reference< sheet::XCalculatable > xCalculatable(xDoc, UNO_QUERY_THROW); + + // get getSheets + uno::Reference< sheet::XSpreadsheets > xSheets (xDoc->getSheets(), UNO_QUERY_THROW); + + uno::Any rSheet = xSheets->getByName("Sheet1"); + + // query for the XSpreadsheet interface + uno::Reference< sheet::XSpreadsheet > xSheet (rSheet, UNO_QUERY); + + // query for the XCellRange interface + uno::Reference< table::XCellRange > rCellRange(rSheet, UNO_QUERY); + // query the cell range + uno::Reference< table::XCellRange > xCellRange = rCellRange->getCellRangeByName("C1"); + + uno::Reference< sheet::XArrayFormulaRange > xArrayFormulaRange(xCellRange, UNO_QUERY_THROW); + + callgrindStart(); + xArrayFormulaRange->setArrayFormula("=A:A&B:B"); + xCalculatable->calculate(); + callgrindDump("sc:mat_concat"); +} + CPPUNIT_TEST_SUITE_REGISTRATION(ScPerfObj); } -- cgit