From 83e50552e12a74acb312c196d80bcde0a3351e6a Mon Sep 17 00:00:00 2001 From: ToineSiebelink Date: Fri, 23 Dec 2022 10:11:38 +0000 Subject: Organize performance test - Separated CpsPathUtil performance tests in dedicated file - Used smaller sample to speed up CpsPathUtil test - Increased margin on CpsModuleReferenceRepository performance test to rpevent accidental failures - Added profiles to cps path parser module - Use Regex to include any (future) perforamcne test using same naming Issue-ID: CPS-1421 Signed-off-by: ToineSiebelink Change-Id: I9da1614b6f067e946a4f088c6417479fa6c71988 --- .../onap/cps/cpspath/parser/CpsPathUtilSpec.groovy | 15 -------- .../parser/performance/CpsPathUtilPerfTest.groovy | 43 ++++++++++++++++++++++ 2 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/performance/CpsPathUtilPerfTest.groovy (limited to 'cps-path-parser/src') diff --git a/cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/CpsPathUtilSpec.groovy b/cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/CpsPathUtilSpec.groovy index 36e89127c..d62f337b7 100644 --- a/cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/CpsPathUtilSpec.groovy +++ b/cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/CpsPathUtilSpec.groovy @@ -20,7 +20,6 @@ package org.onap.cps.cpspath.parser -import org.springframework.util.StopWatch import spock.lang.Specification class CpsPathUtilSpec extends Specification { @@ -88,18 +87,4 @@ class CpsPathUtilSpec extends Specification { thrown(PathParsingException) } - def 'CPS Path Processing Performance Test.'() { - when: '200,000 paths are processed' - def stopWatch = new StopWatch() - stopWatch.start() - (1..100000).each { - CpsPathUtil.getNormalizedXpath('/long/path/to/see/if/it/adds/paring/time/significantly/parent/child[@common-leaf-name="123"]') - CpsPathUtil.getNormalizedXpath('//child[@other-leaf=1]/leaf-name[text()="search"]/ancestor::parent') - } - stopWatch.stop() - then: 'it takes less then 10,000 milliseconds' - // In CI this actually takes about 3-5 sec which is approx. 50+ parser executions per millisecond! - assert stopWatch.getTotalTimeMillis() < 10000 - } - } diff --git a/cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/performance/CpsPathUtilPerfTest.groovy b/cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/performance/CpsPathUtilPerfTest.groovy new file mode 100644 index 000000000..2ba20c1c5 --- /dev/null +++ b/cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/performance/CpsPathUtilPerfTest.groovy @@ -0,0 +1,43 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.cps.cpspath.parser.performance + +import org.onap.cps.cpspath.parser.CpsPathUtil +import org.springframework.util.StopWatch +import spock.lang.Specification + +class CpsPathUtilPerfTest extends Specification { + + def 'CPS Path Processing Performance Test.'() { + when: '20,000 paths are processed' + def stopWatch = new StopWatch() + stopWatch.start() + (1..10000).each { + CpsPathUtil.getNormalizedXpath('/long/path/to/see/if/it/adds/paring/time/significantly/parent/child[@common-leaf-name="123"]') + CpsPathUtil.getNormalizedXpath('//child[@other-leaf=1]/leaf-name[text()="search"]/ancestor::parent') + } + stopWatch.stop() + then: 'it takes less then 1,000 milliseconds' + // In CI this actually takes about 0.3-0.5 sec which is approx. 50+ parser executions per millisecond! + assert stopWatch.getTotalTimeMillis() < 1000 + } + +} -- cgit 1.2.3-korg