From fa9e6094ce47c78a24e73646e4f169e1272a068d Mon Sep 17 00:00:00 2001 From: andrlos <80903703+andrlos@users.noreply.github.com> Date: Mon, 5 Aug 2024 18:46:40 +0200 Subject: [PATCH] add howto contribution iteration 1 (#5471) * add howto contribution iteration 1 * adding image * Update first-contrib.markdown alignment of step 4 still not perfect * Apply suggestions from code review Co-authored-by: Shelley Lambert * Update first-contrib.markdown additional review-based changes that were not commited in a batch commit * Update first-contrib.markdown step 4 indentation fixed * Update docs/pages/howto/first-contrib.markdown Co-authored-by: Shelley Lambert --------- Co-authored-by: jandrlik Co-authored-by: Shelley Lambert --- docs/diagrams/BuildWithParameters.png | Bin 0 -> 33072 bytes docs/pages/aqa-howto.markdown | 1 + docs/pages/howto/first-contrib.markdown | 48 ++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 docs/diagrams/BuildWithParameters.png create mode 100644 docs/pages/howto/first-contrib.markdown diff --git a/docs/diagrams/BuildWithParameters.png b/docs/diagrams/BuildWithParameters.png new file mode 100644 index 0000000000000000000000000000000000000000..d1f4cd38bdf9cda1887afdff137403baa2bb5fb1 GIT binary patch literal 33072 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 literal 0 HcmV?d00001 diff --git a/docs/pages/aqa-howto.markdown b/docs/pages/aqa-howto.markdown index ff8d5ca3c2..7241a13445 100644 --- a/docs/pages/aqa-howto.markdown +++ b/docs/pages/aqa-howto.markdown @@ -1,3 +1,4 @@ ## How-to Guides - [Guidance for Creating OpenJDK Test Defects](Guidance-for-Creating-OpenJDK-Test-Defects.md) +- [First Test Suite Contribution Quick Guide](howto/first-contrib.markdown) diff --git a/docs/pages/howto/first-contrib.markdown b/docs/pages/howto/first-contrib.markdown new file mode 100644 index 0000000000..a060297e99 --- /dev/null +++ b/docs/pages/howto/first-contrib.markdown @@ -0,0 +1,48 @@ +--- +# Feel free to add content and custom Front Matter to this file. +# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults + +layout: default +--- + +# How-To Contribute your first test suite to the aqa-tests repository + +This is a quick guide of adding a testsuite to Adoptium AQAvit. This is guidance for contributions into the functional test group. Some of the other test groups might feature different prerequisites. + +## Requirements: + +An actual OpenJDK compatible testsuite that you want to contribute. + +## Actual steps: + +1. First you need to decide what kind of testsuite you are adding. Create an [issue](https://github.com/adoptium/aqa-tests/issues) about contribution to aqa-tests. Here you can discuss with AQAvit committers about where to situate your test suite. Make sure to explain briefly what is the purpose of your test suite and what specific part of an OpenJDK implementation it tests. Also describe special requirements that your test needs to work (containers, sudo access, graphical display, etc..). + +2. ***Fork the aqa-tests*** repository to your own personal fork. We will be executing the testsuite from this fork later. + +3. Once you determine in what test group your testsuite is going to be added to, there are at least two files you need to prepare. + + 1. First one is the ***build.xml*** file that sets up the environment for your test, clones the repository of your test material if from a separate repository, and builds the test material. A good approach is to look for build.xml files within other testsuite folders and get inspired there, a simple example is [functional/testHeadlessComponents/build.xml](https://github.com/adoptium/aqa-tests/blob/master/functional/testHeadlessComponents/build.xml). + + 2. The second file is the ***playlist.xml***. This one defines the execution of the testsuite itself as well as what platforms it will be scheduled for. Like with the build.xml files it is advisable to consult other playlists in already existing testsuites. Another useful resource is the [playlist.xsd](https://github.com/adoptium/TKG/blob/master/resources/playlist.xsd) file which can help guide what elements are required in a playlist.xm file. + + There is a `` element inside each `` target definition in the playlist.xml file to indicate what commands are to be run to execute the testsuite. One thing that is not immediately obvious but is ***mandatory*** is that the command needs to be followed by a ***$(TEST_STATUS)*** statement for the correct reporting of the test result and associated test status and result color to be made. + +4. Once you think you have both the build.xml and playlist.xml you can ***test your integration*** locally or with [Grinder Job](https://ci.adoptium.net/view/Test_grinder/job/Grinder/) on Jenkins if you have been given access. +Click the ***"Build with Parameters" button*** in the left panel (if there is no such option, make sure you are logged in, and have appropriate permissions set for your account). +Here you can configure your run. Main two parameters that are of interest to us are ADOPTOPENJDK_REPO, where you can put URL of your forked aqa-tests repository and ADOPTOPENJDK_BRANCH that specified the branch your integration is on. +The documentation in the Grinder configurator is pretty descriptive, so let's just mention a few other key paremeters you might find useful and their usage. + + | Parameter | Purpose | + | --- | --- | + | BUILD_LIST | is the relative path to the folder containing your build.xml and playlist.xml files | + | TARGET | refers to the name you specified in "testCaseName" section in your playlist.xml file | + | KEEP_WORKSPACE | after testrun the workspace is saved for a while for the developer to check it | + | ARCHIVE_TEST_RESULTS | after testrun the test results are by default discarded for passing tests, check for keeping them | + + It is advised to check KEEP_WORKSPACE and ARCHIVE_TEST_RESULTS checkboxes for debuggin purposes. Adoptium infrastructure by default does not keep workspaces at all and results in case the tests were successful. In some cases runs can report as successful when it is not even executed, therefore nothing had a chance of failing there. It is a good practice to not only check that the test finishes "green" but also that the tests that were supposed to run actually did. + + For a more detailed description of all of the parameters in the Grinder, please refer to the ["How to Run a Grinder Build on Jenkins" wiki](https://github.com/adoptium/aqa-tests/wiki/How-to-Run-a-Grinder-Build-on-Jenkins). + +5. Final step is creating a ***pull request*** for your hard work into main branch. Don't forget to ***link the original issue*** and a ***passing grinder run*** as well. + + ***Happy Hacking! :-)***