summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorToineSiebelink <toine.siebelink@est.tech>2022-12-23 10:11:38 +0000
committerToineSiebelink <toine.siebelink@est.tech>2022-12-23 10:38:03 +0000
commit83e50552e12a74acb312c196d80bcde0a3351e6a (patch)
tree286f6af9a07f57a6b827efc99023dcbb11535d3c
parent30d76ed37b777e642854d5ab4e94a6fc5f6af84a (diff)
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 <toine.siebelink@est.tech> Change-Id: I9da1614b6f067e946a4f088c6417479fa6c71988
-rw-r--r--cps-path-parser/pom.xml25
-rw-r--r--cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/CpsPathUtilSpec.groovy15
-rw-r--r--cps-path-parser/src/test/groovy/org/onap/cps/cpspath/parser/performance/CpsPathUtilPerfTest.groovy43
-rw-r--r--cps-ri/pom.xml2
-rw-r--r--cps-ri/src/test/groovy/org/onap/cps/spi/performance/CpsModuleReferenceRepositoryPerfTest.groovy4
5 files changed, 71 insertions, 18 deletions
diff --git a/cps-path-parser/pom.xml b/cps-path-parser/pom.xml
index d9c150881d..d0da105aae 100644
--- a/cps-path-parser/pom.xml
+++ b/cps-path-parser/pom.xml
@@ -89,4 +89,29 @@
</dependency>
</dependencies>
+ <profiles>
+ <profile>
+ <id>default</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>%regex[.*PerfTest.*]</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>include-performance</id>
+ </profile>
+ </profiles>
+
</project>
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 36e89127c1..d62f337b75 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 0000000000..2ba20c1c5f
--- /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
+ }
+
+}
diff --git a/cps-ri/pom.xml b/cps-ri/pom.xml
index b6fe284c2e..6cca8b4a5e 100644
--- a/cps-ri/pom.xml
+++ b/cps-ri/pom.xml
@@ -146,7 +146,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
- <exclude>org.onap.cps.spi.performance.CpsToDataNodePerfTest</exclude>
+ <exclude>%regex[.*PerfTest.*]</exclude>
</excludes>
</configuration>
</plugin>
diff --git a/cps-ri/src/test/groovy/org/onap/cps/spi/performance/CpsModuleReferenceRepositoryPerfTest.groovy b/cps-ri/src/test/groovy/org/onap/cps/spi/performance/CpsModuleReferenceRepositoryPerfTest.groovy
index 8da6c3a0ba..9b722cddae 100644
--- a/cps-ri/src/test/groovy/org/onap/cps/spi/performance/CpsModuleReferenceRepositoryPerfTest.groovy
+++ b/cps-ri/src/test/groovy/org/onap/cps/spi/performance/CpsModuleReferenceRepositoryPerfTest.groovy
@@ -77,7 +77,7 @@ class CpsModuleReferenceRepositoryPerfTest extends CpsPersistenceSpecBase {
def dataspaceEntity = dataspaceRepository.getByName('PERF-DATASPACE')
SchemaSetEntity result = schemaSetRepository.getByDataspaceAndName(dataspaceEntity, 'perfSchemaSet')
result.yangResources.size() == 200
- and: 'identification of new module resources is fast enough (1,000 executions less then 5,000 milliseconds)'
+ and: 'identification of new module resources is fast enough (1,000 executions less then 6,000 milliseconds)'
def stopWatch = new StopWatch()
1000.times() {
def moduleReferencesToCheck = createModuleReferencesWithRandomMatchingExistingModuleReferences()
@@ -86,7 +86,7 @@ class CpsModuleReferenceRepositoryPerfTest extends CpsPersistenceSpecBase {
stopWatch.stop()
assert newModuleReferences.size() > 0 && newModuleReferences.size() < 300
}
- assert stopWatch.getTotalTimeMillis() < 5000
+ assert stopWatch.getTotalTimeMillis() < 6000
}
def createModuleReferencesWithRandomMatchingExistingModuleReferences() {