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