summaryrefslogtreecommitdiff
path: root/basic
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2022-01-31 11:56:21 +0300
committerXisco Fauli <xiscofauli@libreoffice.org>2022-02-01 17:36:45 +0100
commit79c7f4378ec38c0e153032cccb437a665b318045 (patch)
treebb216390ecb4d3ee90ef90d215978859bf80a1eb /basic
parent1f0699415a7fc531a3ef4d1c80649606b6d06ece (diff)
tdf#132388: add unit test
I hope that this performance test is OK. I chose 20 s threshold, as it works much faster on my system (under 4 s); it shouldn't be much slower elsewhere; and both the original bug, and the regression that followed the initial fix, made it execute orders of magnitute slower (I expect hours on fast systems). Change-Id: I75ee4c60e562473fe70a203faa94b48c5fbfb4fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129203 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Fix format string Change-Id: I18952bf6641175d25128b512ddfb56fd51767038 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129083 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Adapt test to slow builds ...like my local ASan+UBSan build, which kept failing with > Failed: TestReplacePerformance (t = 35 s) > Tests passed: 0 > Tests failed: 1 when the machine was under load during a parallelizing `make check` Change-Id: I59c81a61a29df7165f6fad33e3fe3da975f05ed2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129237 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129284
Diffstat (limited to 'basic')
-rw-r--r--basic/qa/basic_coverage/test_tdf132388_ReplacePerformance.bas28
1 files changed, 28 insertions, 0 deletions
diff --git a/basic/qa/basic_coverage/test_tdf132388_ReplacePerformance.bas b/basic/qa/basic_coverage/test_tdf132388_ReplacePerformance.bas
new file mode 100644
index 000000000000..531cdec5c622
--- /dev/null
+++ b/basic/qa/basic_coverage/test_tdf132388_ReplacePerformance.bas
@@ -0,0 +1,28 @@
+'
+' This file is part of the LibreOffice project.
+'
+' This Source Code Form is subject to the terms of the Mozilla Public
+' License, v. 2.0. If a copy of the MPL was not distributed with this
+' file, You can obtain one at http://mozilla.org/MPL/2.0/.
+'
+
+Function doUnitTest as String
+ TestUtil.TestInit
+ TestReplacePerformance()
+ doUnitTest = TestUtil.GetResult()
+End Function
+
+Sub TestReplacePerformance()
+ On Error GoTo errorHandler
+ ' Assume the normal case to be much faster than 60 s even on slow boxes, and the test string
+ ' is long enough to cause serious performance regressions make it perform much longer
+ n = 10000000
+ s = Space(n)
+ t = Now
+ s = Replace(s, " ", "*", 1, -1, 1)
+ t = Now - t
+ TestUtil.Assert(t <= TimeSerial(0, 1, 0), "TestReplacePerformance", Format(t, """t = ""[s]"" s"""))
+ Exit Sub
+errorHandler:
+ TestUtil.ReportErrorHandler("TestReplacePerformance", Err, Error$, Erl)
+End Sub