From 2833deee91a739479abf039bb80738492e2b2b08 Mon Sep 17 00:00:00 2001 From: Jiri Date: Mon, 26 Feb 2024 18:14:52 +0100 Subject: [PATCH 01/17] Added churn testsuite --- functional/churn/README.md | 14 ++++++++ functional/churn/build.xml | 64 +++++++++++++++++++++++++++++++++++ functional/churn/playlist.xml | 42 +++++++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 functional/churn/README.md create mode 100644 functional/churn/build.xml create mode 100644 functional/churn/playlist.xml diff --git a/functional/churn/README.md b/functional/churn/README.md new file mode 100644 index 0000000000..00eb6bf9ba --- /dev/null +++ b/functional/churn/README.md @@ -0,0 +1,14 @@ +# churn +Test targeting garbage collector(s) + +## Running churn locally +clone https://github.com/rh-openjdk/churn read https://github.com/rh-openjdk/churn/blob/master/README and run run.sh + +### Setting up the environment: +Java required. Maven recommended, churn can be compiled via direct javac if needed. +Java is used from JAVA_HOME or guessed from PATH +run.sh can use OTOOL_garbageCollector and OTOOL_JDK_VERSION instead of gc argument. See https://github.com/rh-openjdk/churn/blob/master/README for details + +### Executing the testsuite +Now it is as simple as running bash script run.sh. + diff --git a/functional/churn/build.xml b/functional/churn/build.xml new file mode 100644 index 0000000000..4dc719fb32 --- /dev/null +++ b/functional/churn/build.xml @@ -0,0 +1,64 @@ + + + + + + + + Test of correct behavior of swing components in both headful and headless jre environment. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml new file mode 100644 index 0000000000..3dcc209a11 --- /dev/null +++ b/functional/churn/playlist.xml @@ -0,0 +1,42 @@ + + + + + churn + + + export OTOOL_JDK_VERSION=$(JDK_VERSION) ; \ + export JREJDK="jdk" ; \ + export OTOOL_garbageCollector=ALL ; \ + export DURATION=24 ; \ + export TMPRESULTS=$(Q)$(REPORTDIR)$(D)report$(Q); \ + pushd $TMPRESULTS ; \ + bash $(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh; \ + popd; \ + $(TEST_STATUS) + + + dev + + + os.linux + os.win + os.osx + + + functional + + + From f6fa4df54b04dcd306a14b9149793453378749a5 Mon Sep 17 00:00:00 2001 From: Jiri Date: Mon, 26 Feb 2024 18:46:40 +0100 Subject: [PATCH 02/17] instead of pushd, moved to results dir pernamently --- functional/churn/playlist.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index 3dcc209a11..84cebecdd1 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -22,9 +22,8 @@ export OTOOL_garbageCollector=ALL ; \ export DURATION=24 ; \ export TMPRESULTS=$(Q)$(REPORTDIR)$(D)report$(Q); \ - pushd $TMPRESULTS ; \ + cd $TMPRESULTS ; \ bash $(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh; \ - popd; \ $(TEST_STATUS) From 517b9881d3834528a72b0b7510747650c3836001 Mon Sep 17 00:00:00 2001 From: Jiri Date: Mon, 26 Feb 2024 19:04:40 +0100 Subject: [PATCH 03/17] Added second set of tests - without compressed oops --- functional/churn/playlist.xml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index 84cebecdd1..bb3d979c23 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -38,4 +38,30 @@ functional + + churn-nocoops + + + export NOCOMP=-nocoops ; \ + export OTOOL_JDK_VERSION=$(JDK_VERSION) ; \ + export JREJDK="jdk" ; \ + export OTOOL_garbageCollector=ALL ; \ + export DURATION=24 ; \ + export TMPRESULTS=$(Q)$(REPORTDIR)$(D)report$(Q); \ + cd $TMPRESULTS ; \ + bash $(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh; \ + $(TEST_STATUS) + + + dev + + + os.linux + os.win + os.osx + + + functional + + From e7c6f7c52b5311d3890228861dd993616cecc2ea Mon Sep 17 00:00:00 2001 From: Jiri Date: Mon, 26 Feb 2024 19:46:51 +0100 Subject: [PATCH 04/17] Moved to system group --- functional/churn/playlist.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index bb3d979c23..16d0ac1211 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -35,7 +35,7 @@ os.osx - functional + system @@ -61,7 +61,7 @@ os.osx - functional + system From 3dc815d5a5b15a2f666bf5ae85fc84d9b19f173a Mon Sep 17 00:00:00 2001 From: Jiri Date: Mon, 26 Feb 2024 19:47:59 +0100 Subject: [PATCH 05/17] Adjusted description --- functional/churn/build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functional/churn/build.xml b/functional/churn/build.xml index 4dc719fb32..6f598abdcf 100644 --- a/functional/churn/build.xml +++ b/functional/churn/build.xml @@ -17,7 +17,7 @@ - Test of correct behavior of swing components in both headful and headless jre environment. + Test targeting garbage collector(s) From 4db1633a648310a5c61b5a2bc38a46dad0184a36 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Tue, 27 Feb 2024 14:44:15 +0100 Subject: [PATCH 06/17] Removed NOCOMP=-nocoops variant in favour of global setting --- functional/churn/playlist.xml | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index 16d0ac1211..d79f8d6aed 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -38,30 +38,4 @@ system - - churn-nocoops - - - export NOCOMP=-nocoops ; \ - export OTOOL_JDK_VERSION=$(JDK_VERSION) ; \ - export JREJDK="jdk" ; \ - export OTOOL_garbageCollector=ALL ; \ - export DURATION=24 ; \ - export TMPRESULTS=$(Q)$(REPORTDIR)$(D)report$(Q); \ - cd $TMPRESULTS ; \ - bash $(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh; \ - $(TEST_STATUS) - - - dev - - - os.linux - os.win - os.osx - - - system - - From 550593a8794e8274eb77cd6a89f94928e6c546bd Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Tue, 27 Feb 2024 15:02:17 +0100 Subject: [PATCH 07/17] split churn testsuit to churn_1m_all and churn_5h_all --- functional/churn/playlist.xml | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index d79f8d6aed..52f5ab4558 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -14,13 +14,36 @@ --> - churn - + churn_1m_all export OTOOL_JDK_VERSION=$(JDK_VERSION) ; \ export JREJDK="jdk" ; \ export OTOOL_garbageCollector=ALL ; \ - export DURATION=24 ; \ + export DURATION=60 ; \ + export TMPRESULTS=$(Q)$(REPORTDIR)$(D)report$(Q); \ + cd $TMPRESULTS ; \ + bash $(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh; \ + $(TEST_STATUS) + + + dev + + + os.linux + os.win + os.osx + + + system + + + + churn_5h_all + + export OTOOL_JDK_VERSION=$(JDK_VERSION) ; \ + export JREJDK="jdk" ; \ + export OTOOL_garbageCollector=ALL ; \ + export DURATION=18000 ; \ export TMPRESULTS=$(Q)$(REPORTDIR)$(D)report$(Q); \ cd $TMPRESULTS ; \ bash $(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh; \ From 655e49996c551c4b035dfaedf3964bcc7899f501 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Tue, 27 Feb 2024 15:03:24 +0100 Subject: [PATCH 08/17] added proper quoting --- functional/churn/playlist.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index 52f5ab4558..17279cc8ac 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -16,13 +16,13 @@ churn_1m_all - export OTOOL_JDK_VERSION=$(JDK_VERSION) ; \ + export OTOOL_JDK_VERSION="$(JDK_VERSION)" ; \ export JREJDK="jdk" ; \ - export OTOOL_garbageCollector=ALL ; \ - export DURATION=60 ; \ - export TMPRESULTS=$(Q)$(REPORTDIR)$(D)report$(Q); \ + export OTOOL_garbageCollector="ALL" ; \ + export DURATION="60" ; \ + export TMPRESULTS="$(Q)$(REPORTDIR)$(D)report$(Q)"; \ cd $TMPRESULTS ; \ - bash $(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh; \ + bash "$(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh"; \ $(TEST_STATUS) @@ -40,13 +40,13 @@ churn_5h_all - export OTOOL_JDK_VERSION=$(JDK_VERSION) ; \ + export OTOOL_JDK_VERSION="$(JDK_VERSION)" ; \ export JREJDK="jdk" ; \ - export OTOOL_garbageCollector=ALL ; \ - export DURATION=18000 ; \ - export TMPRESULTS=$(Q)$(REPORTDIR)$(D)report$(Q); \ + export OTOOL_garbageCollector="ALL" ; \ + export DURATION="18000" ; \ + export TMPRESULTS="$(Q)$(REPORTDIR)$(D)report$(Q)"; \ cd $TMPRESULTS ; \ - bash $(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh; \ + bash "$(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh"; \ $(TEST_STATUS) From 1cc8542e08b26c55cee88e362839aca9f519ca66 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Tue, 27 Feb 2024 15:23:54 +0100 Subject: [PATCH 09/17] Onem ore rename of targets to churn_5h_allGCs and churn_1m_allGCs --- functional/churn/playlist.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index 17279cc8ac..c9b7d711e4 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -14,7 +14,7 @@ --> - churn_1m_all + churn_1m_allGCs export OTOOL_JDK_VERSION="$(JDK_VERSION)" ; \ export JREJDK="jdk" ; \ @@ -38,7 +38,7 @@ - churn_5h_all + churn_5h_allGCs export OTOOL_JDK_VERSION="$(JDK_VERSION)" ; \ export JREJDK="jdk" ; \ From 2249bc0ddbadfd0c2040597a78fa285ef048717d Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Tue, 27 Feb 2024 15:32:20 +0100 Subject: [PATCH 10/17] added custom churn testcase --- functional/churn/playlist.xml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index c9b7d711e4..9d3a040990 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -61,4 +61,28 @@ system + + churn_custom + + export OTOOL_JDK_VERSION="$(JDK_VERSION)" ; \ + export JREJDK="jdk" ; \ + export OTOOL_garbageCollector="${CHURN_GCS}" ; \ + export DURATION="${CHURN_DURATION}" ; \ + export TMPRESULTS="$(Q)$(REPORTDIR)$(D)report$(Q)"; \ + cd $TMPRESULTS ; \ + bash "$(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh"; \ + $(TEST_STATUS) + + + dev + + + os.linux + os.win + os.osx + + + system + + From ec66f1a6c75bf2999dd0816d84a9c6e21c095dc0 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Wed, 28 Feb 2024 19:36:01 +0100 Subject: [PATCH 11/17] Updated README to proeprly describe churn_custom and extend it as needed --- functional/churn/README.md | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/functional/churn/README.md b/functional/churn/README.md index 00eb6bf9ba..63f5f397f3 100644 --- a/functional/churn/README.md +++ b/functional/churn/README.md @@ -1,14 +1,36 @@ # churn -Test targeting garbage collector(s) +Test targeting garbage collector(s). +The suite is able to operate with all GCs in OpenJDK. If your implementation is missing some, the calls to them will fall. If you have some additional one, an enabling wrapper must be created first. ## Running churn locally clone https://github.com/rh-openjdk/churn read https://github.com/rh-openjdk/churn/blob/master/README and run run.sh ### Setting up the environment: -Java required. Maven recommended, churn can be compiled via direct javac if needed. -Java is used from JAVA_HOME or guessed from PATH -run.sh can use OTOOL_garbageCollector and OTOOL_JDK_VERSION instead of gc argument. See https://github.com/rh-openjdk/churn/blob/master/README for details +Java required. Maven recommended, churn can be compiled via direct javac if needed +Java is used from JAVA_HOME or guessed from PATH. +run.sh can use OTOOL_garbageCollector and OTOOL_JDK_VERSION instead of GC argument. See https://github.com/rh-openjdk/churn/blob/master/README for details. +See https://github.com/rh-openjdk/churn/tree/master/bin for list of supported GCs. The compressed ops in upstream run can be controlled by runner or NOCOMP=-nocoops variable (for run.sh) + +## Running via aqavit + +The support for compressed ops is handled by aqavit itself. It is currently not sure if churn will be able to honor it. If not, churn will be fixed. +Similarly the java version and JAVA_HOME are handled by aqavit. ### Executing the testsuite -Now it is as simple as running bash script run.sh. +The `BUILD_LIST of functional/churn` contains three targets: + * _churn_1m_allGCs + * _churn_5h_allGCs + * _churn_custom + +There are major differences in them: + * churn_1m_allGCs - is testing ground, which runs each GC only for aprox 10 seconds, to simply see if the setup works + * churn_5h_allGCs - Is running each GC a bit over, which runs each GC for aprox hour and half. A minimum, which can find some real GC issue. + * churn_custom - this one needs you to set and export CHURN_GCS and CHURN_DURATION to select GC(or GCs) and duration. So it allows you to test your custom GC - if churn supports that, despite of anybody else (eg `default` or `ALL` thinks) + +churn_1m_allGCs and churn_5h_allGCs are using pony `ALL` keyword, which is interpreted (based on hardcoded list) as all GC in tested JVM. The set time is divided among them. +Note, that if you use `churn_custom` and enumeration, eg `CHURN_GCS="zgc g1"` then the time will not be divided. The `CHURN_DURATION` is in seconds +The `CHURN_GCS="defaultgc"`will set the tested GC to defautl GC as run.sh think is right. So be aware. Although it is maintained, if your custom JDK have custom GC, it is unlikely to be known + +### reading results: +tap file and compressed xmlfile is genrated. Use eg https://github.com/jenkinsci/report-jtreg-plugin or https://plugins.jenkins.io/tap/ to read them. From 59ebac85bf762ada476e3c5ffbe7b1cc9357729c Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Thu, 29 Feb 2024 13:03:30 +0100 Subject: [PATCH 12/17] churn_1m_allGCs churn_5h_allGCsare now eclipse and redhat vendor only note: generic openjdk should be supported to --- functional/churn/playlist.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index 9d3a040990..17791285e7 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -36,6 +36,10 @@ system + + eclipse + redhat + churn_5h_allGCs @@ -60,6 +64,10 @@ system + + eclipse + redhat + churn_custom From a7457b651608643ca887604b9aec6f78340df028 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Thu, 29 Feb 2024 13:07:52 +0100 Subject: [PATCH 13/17] churn_custom is now disabled from automated testing --- functional/churn/playlist.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index 17791285e7..6a126172e5 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -71,6 +71,11 @@ churn_custom + + + Can run disabled.churn_custom in Grinder, meant for dev use not regular automated tests. + + export OTOOL_JDK_VERSION="$(JDK_VERSION)" ; \ export JREJDK="jdk" ; \ From b69d9633513c2a039238a1f905852eae6b32d4e8 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Thu, 29 Feb 2024 13:31:00 +0100 Subject: [PATCH 14/17] Adapted readme --- functional/churn/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/functional/churn/README.md b/functional/churn/README.md index 63f5f397f3..ed048108ed 100644 --- a/functional/churn/README.md +++ b/functional/churn/README.md @@ -11,10 +11,10 @@ Java is used from JAVA_HOME or guessed from PATH. run.sh can use OTOOL_garbageCollector and OTOOL_JDK_VERSION instead of GC argument. See https://github.com/rh-openjdk/churn/blob/master/README for details. See https://github.com/rh-openjdk/churn/tree/master/bin for list of supported GCs. The compressed ops in upstream run can be controlled by runner or NOCOMP=-nocoops variable (for run.sh) -## Running via aqavit +## Running via AQAvit -The support for compressed ops is handled by aqavit itself. It is currently not sure if churn will be able to honor it. If not, churn will be fixed. -Similarly the java version and JAVA_HOME are handled by aqavit. +The support for compressed ops is handled by AQAvit itself. It is currently not sure if churn will be able to honor it. If not, churn will be fixed. +Similarly the java version and JAVA_HOME are handled by AQAvit. ### Executing the testsuite The `BUILD_LIST of functional/churn` contains three targets: @@ -25,12 +25,12 @@ The `BUILD_LIST of functional/churn` contains three targets: There are major differences in them: * churn_1m_allGCs - is testing ground, which runs each GC only for aprox 10 seconds, to simply see if the setup works * churn_5h_allGCs - Is running each GC a bit over, which runs each GC for aprox hour and half. A minimum, which can find some real GC issue. - * churn_custom - this one needs you to set and export CHURN_GCS and CHURN_DURATION to select GC(or GCs) and duration. So it allows you to test your custom GC - if churn supports that, despite of anybody else (eg `default` or `ALL` thinks) + * churn_custom - this one is to support development, when run on the commandline you need to export at least DURATION and/or OTOOL_garbageCollector (+ many more optional, see [upstream readme](https://github.com/rh-openjdk/churn/blob/master/README) to select DURATION in seconds and GC(or GCs). So it allows you to test your custom GC - if churn supports that, despite what other churn options suggest (eg `default` or `ALL` thinks). When running in a Jenkins Grinder job, those are wrapped in TODO_CHURN_GCS and TODO_CHURN_DURATION churn_1m_allGCs and churn_5h_allGCs are using pony `ALL` keyword, which is interpreted (based on hardcoded list) as all GC in tested JVM. The set time is divided among them. Note, that if you use `churn_custom` and enumeration, eg `CHURN_GCS="zgc g1"` then the time will not be divided. The `CHURN_DURATION` is in seconds -The `CHURN_GCS="defaultgc"`will set the tested GC to defautl GC as run.sh think is right. So be aware. Although it is maintained, if your custom JDK have custom GC, it is unlikely to be known +The `CHURN_GCS="defaultgc"`will set the tested GC to default GC as run.sh think is right. So be aware. Although it is maintained, if your custom JDK have custom GC, it is unlikely to be known -### reading results: -tap file and compressed xmlfile is genrated. Use eg https://github.com/jenkinsci/report-jtreg-plugin or https://plugins.jenkins.io/tap/ to read them. +### Reading results +tap file and compressed junit xmlfile are generated. Use eg https://github.com/jenkinsci/report-jtreg-plugin or https://plugins.jenkins.io/tap/ to read them. From 968476358ef0d4eb1859de8bfec93bcae7d50899 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Thu, 29 Feb 2024 14:19:41 +0100 Subject: [PATCH 15/17] No longer generate tap files on automated runs --- functional/churn/playlist.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/functional/churn/playlist.xml b/functional/churn/playlist.xml index 6a126172e5..e7a973412e 100644 --- a/functional/churn/playlist.xml +++ b/functional/churn/playlist.xml @@ -20,6 +20,7 @@ export JREJDK="jdk" ; \ export OTOOL_garbageCollector="ALL" ; \ export DURATION="60" ; \ + export CHURN_TAP=false ; \ export TMPRESULTS="$(Q)$(REPORTDIR)$(D)report$(Q)"; \ cd $TMPRESULTS ; \ bash "$(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh"; \ @@ -48,6 +49,7 @@ export JREJDK="jdk" ; \ export OTOOL_garbageCollector="ALL" ; \ export DURATION="18000" ; \ + export CHURN_TAP=false ; \ export TMPRESULTS="$(Q)$(REPORTDIR)$(D)report$(Q)"; \ cd $TMPRESULTS ; \ bash "$(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh"; \ From 8826b5dec1eec877e040391ff4bce1f16483c017 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Fri, 1 Mar 2024 10:25:41 +0100 Subject: [PATCH 16/17] moved churn to system hopefully all s/functional/system/g done properly --- {functional => system}/churn/README.md | 2 +- {functional => system}/churn/build.xml | 2 +- {functional => system}/churn/playlist.xml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) rename {functional => system}/churn/README.md (97%) rename {functional => system}/churn/build.xml (96%) rename {functional => system}/churn/playlist.xml (93%) diff --git a/functional/churn/README.md b/system/churn/README.md similarity index 97% rename from functional/churn/README.md rename to system/churn/README.md index ed048108ed..4be6300e9f 100644 --- a/functional/churn/README.md +++ b/system/churn/README.md @@ -17,7 +17,7 @@ The support for compressed ops is handled by AQAvit itself. It is currently not Similarly the java version and JAVA_HOME are handled by AQAvit. ### Executing the testsuite -The `BUILD_LIST of functional/churn` contains three targets: +The `BUILD_LIST of system/churn` contains three targets: * _churn_1m_allGCs * _churn_5h_allGCs * _churn_custom diff --git a/functional/churn/build.xml b/system/churn/build.xml similarity index 96% rename from functional/churn/build.xml rename to system/churn/build.xml index 6f598abdcf..bc52dfa56e 100644 --- a/functional/churn/build.xml +++ b/system/churn/build.xml @@ -22,7 +22,7 @@ - + diff --git a/functional/churn/playlist.xml b/system/churn/playlist.xml similarity index 93% rename from functional/churn/playlist.xml rename to system/churn/playlist.xml index e7a973412e..5d95c41baa 100644 --- a/functional/churn/playlist.xml +++ b/system/churn/playlist.xml @@ -23,7 +23,7 @@ export CHURN_TAP=false ; \ export TMPRESULTS="$(Q)$(REPORTDIR)$(D)report$(Q)"; \ cd $TMPRESULTS ; \ - bash "$(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh"; \ + bash "$(TEST_ROOT)$(D)system$(D)churn$(D)churn$(D)run.sh"; \ $(TEST_STATUS) @@ -52,7 +52,7 @@ export CHURN_TAP=false ; \ export TMPRESULTS="$(Q)$(REPORTDIR)$(D)report$(Q)"; \ cd $TMPRESULTS ; \ - bash "$(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh"; \ + bash "$(TEST_ROOT)$(D)system$(D)churn$(D)churn$(D)run.sh"; \ $(TEST_STATUS) @@ -85,7 +85,7 @@ export DURATION="${CHURN_DURATION}" ; \ export TMPRESULTS="$(Q)$(REPORTDIR)$(D)report$(Q)"; \ cd $TMPRESULTS ; \ - bash "$(TEST_ROOT)$(D)functional$(D)churn$(D)churn$(D)run.sh"; \ + bash "$(TEST_ROOT)$(D)system$(D)churn$(D)churn$(D)run.sh"; \ $(TEST_STATUS) From 90ec5e7c4f0b54daf0a14bca971d971cb92e9904 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Fri, 1 Mar 2024 10:32:09 +0100 Subject: [PATCH 17/17] Limited custom churn to 24h to not overwhel grinder --- system/churn/README.md | 6 +++--- system/churn/playlist.xml | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/system/churn/README.md b/system/churn/README.md index 4be6300e9f..e74eb57545 100644 --- a/system/churn/README.md +++ b/system/churn/README.md @@ -25,11 +25,11 @@ The `BUILD_LIST of system/churn` contains three targets: There are major differences in them: * churn_1m_allGCs - is testing ground, which runs each GC only for aprox 10 seconds, to simply see if the setup works * churn_5h_allGCs - Is running each GC a bit over, which runs each GC for aprox hour and half. A minimum, which can find some real GC issue. - * churn_custom - this one is to support development, when run on the commandline you need to export at least DURATION and/or OTOOL_garbageCollector (+ many more optional, see [upstream readme](https://github.com/rh-openjdk/churn/blob/master/README) to select DURATION in seconds and GC(or GCs). So it allows you to test your custom GC - if churn supports that, despite what other churn options suggest (eg `default` or `ALL` thinks). When running in a Jenkins Grinder job, those are wrapped in TODO_CHURN_GCS and TODO_CHURN_DURATION + * churn_custom - this one is to support development, when run on the commandline you need to export at least DURATION and/or OTOOL_garbageCollector (+ many more optional, see [upstream readme](https://github.com/rh-openjdk/churn/blob/master/README) to select DURATION in seconds and GC(or GCs). So it allows you to test your custom GC - if churn supports that, despite what other churn options suggest (eg `default` or `ALL` thinks). When running in a Jenkins Grinder job, those are wrapped in CHURN_GCS and CHURN_DURATION churn_1m_allGCs and churn_5h_allGCs are using pony `ALL` keyword, which is interpreted (based on hardcoded list) as all GC in tested JVM. The set time is divided among them. -Note, that if you use `churn_custom` and enumeration, eg `CHURN_GCS="zgc g1"` then the time will not be divided. The `CHURN_DURATION` is in seconds -The `CHURN_GCS="defaultgc"`will set the tested GC to default GC as run.sh think is right. So be aware. Although it is maintained, if your custom JDK have custom GC, it is unlikely to be known +Note, that if you use `churn_custom` and enumeration, set `CHURN_GCS="ALL"` anyway, then the time will not be divided. The `CHURN_DURATION` is in seconds. If you use set, off GCs, eg `CHURN_GCS="zgc shenandoah"`, each willt ake the full CHURN_DURATION. +The `CHURN_GCS="defaultgc"`will set the tested GC to default GC as run.sh think is right. So be aware. Although it is maintained, if your custom JDK have custom GC, it is unlikely to be known. If it have different default gc, it will correctly fail. ### Reading results tap file and compressed junit xmlfile are generated. Use eg https://github.com/jenkinsci/report-jtreg-plugin or https://plugins.jenkins.io/tap/ to read them. diff --git a/system/churn/playlist.xml b/system/churn/playlist.xml index 5d95c41baa..2265bd8232 100644 --- a/system/churn/playlist.xml +++ b/system/churn/playlist.xml @@ -82,6 +82,7 @@ export OTOOL_JDK_VERSION="$(JDK_VERSION)" ; \ export JREJDK="jdk" ; \ export OTOOL_garbageCollector="${CHURN_GCS}" ; \ + if [ "0${CHURN_DURATION}" -gt 86400 ] ; then CHURN_DURATION=86400 ; fi ; \ export DURATION="${CHURN_DURATION}" ; \ export TMPRESULTS="$(Q)$(REPORTDIR)$(D)report$(Q)"; \ cd $TMPRESULTS ; \