basic/qa/basic_coverage/test_tdf132388_ReplacePerformance.bas |   28 ++++++++++
 1 file changed, 28 insertions(+)

New commits:
commit 81a3d9b4bf471158de00d2fbb63fca420da94a38
Author:     Mike Kaganski <mike.kagan...@collabora.com>
AuthorDate: Mon Jan 31 11:56:21 2022 +0300
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Mon Jan 31 11:24:00 2022 +0100

    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.kagan...@collabora.com>

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..e5837ea52b28
--- /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 20 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, 0, 20), "TestReplacePerformance", 
Format(t, """t = ""s"" s"""))
+    Exit Sub
+errorHandler:
+    TestUtil.ReportErrorHandler("TestReplacePerformance", Err, Error$, Erl)
+End Sub

Reply via email to