From 0db5ac13dec993d9f8a7cf9765f39b398fdbbc53 Mon Sep 17 00:00:00 2001 From: Yong Sun Date: Wed, 15 Nov 2023 15:14:57 +0800 Subject: [PATCH] Add xfstests parameter document into variables.md Summary all xfstests related parameters into variables.md. --- variables.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/variables.md b/variables.md index bbb7d911e799..340b85ce2f09 100644 --- a/variables.md +++ b/variables.md @@ -9,6 +9,8 @@ NOTE: This list is not complete and may contain outdated info. If you face such For a better overview some domain-specific values have been moved to their own section: * [Publiccloud](#publiccloud-specific-variables) +* [Wicked](#wicked-testsuite-specifc-variables) +* [xfstests](#xfstests-specific-variables) Variable | Type | Default value | Details --- | --- | --- | --- @@ -270,6 +272,7 @@ QESAP_INSTALL_GITHUB_NO_VERIFY | string | | Configure http.sslVerify false. Igno QESAP_ROLES_INSTALL_GITHUB_REPO | string | github.com/sap-linuxlab/community.sles-for-sap | Git repository where to clone from. Ignored if QESAP_ROLES_INSTALL_VERSION is configured. QESAP_ROLES_INSTALL_GITHUB_BRANCH | string | | Git branch. Ignored if QESAP_ROLES_INSTALL_VERSION is configured. + ### Publiccloud specific variables The following variables are relevant for publiccloud related jobs. Keep in mind that variables that start with `_SECRET` are secret variables, accessible only to the job but hidden in the webui. They will be not present in cloned jobs outside the original instance. @@ -377,3 +380,61 @@ WICKED_SKIP_VERSION_CHECK | bool | false | Some test-modules require a specific WICKED_TCPDUMP | bool | false | If enabled, on each test-module the network interfaces are set into promiscuous mode and a `*.pcap` file will be captured and uploaded. WICKED_VALGRIND | string | | Enable valgind for specified wicked binaries. Multiple values should be separated by `,`. If set to `all` or `1`, valgrind is enabled for all binaries(wickedd-auto4, wickedd-dhcp6, wickedd-dhcp4, wickedd-nanny, wickedd and wicked). WICKED_VALGRIND | string | /usr/bin/valgrind --tool=memcheck --leak-check=yes | The valgrind command used with `WICKED_VALGRIND` for each binary. + + +### xfstests specific variables + +Following variables are relevant for filesystem tests xfstests. Contact: kernel-qa@suse.de + +Regular setting: some mandatory setting + +Variable | Type | Default value | Details +--- | --- | --- | --- +XFSTESTS_RANGES | string | | sub-tests ranges. This setting is mandatory. Support using "-" to define a range, or use "," to list separate subtests(e.g. xfs/001-999,generic/001). But the final test range will also count subtests defined in XFSTESTS_GROUPLIST, a skill to set subtests only by XFSTESTS_GROUPLIST is to set a minimal XFSTESTS_RANGES with XFSTESTS_GROUPLIST +NO_SHUFFLE | boolean | 0 | the default sequence to run all subtests is a random sequence, it's designed to reduce the influence between each subtest. Set NO_SHUFFLE=1 to run in order +XFSTESTS_BLACKLIST | string | | set the sub-tests will not run. Mostly use in the feature not supported, and exclude some critical issues to make whole tests stable. The final skip test list will also count those defined in XFSTESTS_GROUPLIST. It's also support "-" and "," to set skip range +XFSTESTS_GROUPLIST | string | | it's an efficient way to set XFSTESTS_RANGES. Most likely use in test whole range in a single test, such as test special mount option. The range is supported in xfstests upstream, to know the whole range of group names could take a look at xfstests upstream README file. This parameter in openqa supports not only "include" tests, but also "exclude" tests. To add a "!" before a group name to exclude all subtests in that group. Here is an example: e.g. XFSTESTS_GROUPLIST=quick,!fuzz,!fuzzers,!realtime (Add all subtests in quick group, and exclude all dangerous subtests in fuzz, fuzzers, realtime groups) + + +Run-time related: timeout control to avoid random fails when low performance + +Variable | Type | Default value | Details +--- | --- | --- | --- +XFSTESTS_HEARTBEAT_INTERVAL | integer | 30 | The interval (seconds) of each heartbeat signal +XFSTESTS_HEARTBEAT_TIMEOUT | integer | 200 | The timeout (seconds) of not receiving a heartbeat signal +XFSTESTS_SUBTEST_MAXTIME | integer | 2400 | Define the max test time (seconds) for a single subtest. The test logic will take the time out as a hang, to reset SUT and continue the rest of the tests. Considering xfstests contain some fuzzing tests which take quite a long time to finish, I suggest this max time don't set too small +XFSTESTS_NO_HEARTBEAT | boolean | 0 | set XFSTESTS_NO_HEARTBEAT=1 to enable non-heartbeat mode. The heartbeat mode is default, you could also unset this parameter +XFSTESTS_TIMEOUT | integer | 2000 | set de timeout (seconds) for each subtest. It is only used in non-heartbeat mode. And it's the only time control strategy in that mode + + +Installation related: some optional setting to solve testsuite installation dependency issue + +Variable | Type | Default value | Details +--- | --- | --- | --- +XFSTESTS_REPO | string | | repo to install xfstests package +DEPENDENCY_REPO | string | | ibs/obs repo to install related test package to solve dependency issues. e.g. fio +XFSTESTS_DEVICE | string | | manually set a test disk for both TEST_DEV and SCRATCH_DEV + + +Filesystem specific setting: + +Variable | Type | Default value | Details +--- | --- | --- | --- +XFSTEST_MKFS_OPTION | string | | BTRFS only, value=. Set the options in mkfs.btrfs. And also set it in xfstests runtime option BTRFS_MKFS_OPTIONS. +XFSTESTS_LOGDEV | boolean | 0 | XFS only, value=0/1. enable log device in testing xfs +XFSTESTS_XFS_REPAIR | boolean | 0 | XFS only, value=0/1. enable TEST_XFS_REPAIR_REBUILD=1 in xfstests log file local.config +XFSTESTS_NFS_VERSION | string | 4.1 | NFS only, version of test target NFS +XFSTESTS_NFS_SERVER | boolean | | NFS multimation test only, mandatory. To tag this test job for NFS server in a NFS multimachine test. NFS test in a multimachine test either a client or a server. +NFS_GRACE_TIME | integer | 15 | NFS only, set the nlm_grace_period in /etc/modprobe.d/lockd.conf used in NFS test. +PARALLEL_WITH | string | | NFS multimation test only, value=. To set the NFS server job name in NFS client job in a NFS multimachine test. e.g. xfstests_nfs4.1-server + + +Debug setting: advance setting to debugging issues, may cause test fail + +Variable | Type | Default value | Details +--- | --- | --- | --- +XFSTESTS_DEBUG | string | | set it to enable debug tools under /proc/sys/kernel/. The value of XFSTESTS_DEBUG could be one or more parameters in the following: [hardlockup_panic hung_task_panic panic_on_io_nmi panic_on_oops panic_on_rcu_stall...] Collect more than 1 value at a time could use to split it. e.g. XFSTESTS_DEBUG='hardlockup_panic panic_on_oops'. BTW, the softlockup_all_cpu_backtrace and softlockup_panic are default enabled +BTRFS_DUMP | boolean | 0 | set BTRFS_DUMP=1 to collect btrfs dump image. It uses btrfs-image create/restore an image of the filesystem +RAW_DUMP | boolean | 0 | set RAW_DUMP=1 to collect raw dump. It uses dd to collect start 512k info to dump the superblock of SCRATCH_DEV or SCRATCH_DEV_POOL +INJECT_INFO | string | | Add 1 or several lines of code into xfstests level test script(not in openqa script). To add some debug or log collect info. This code will be used by the test wrapper, it will influence all subtests in this test, so better to only use it in debug and set XFSTESTS_RANGES to the subtest you want to. It contains 2 parameters split by space, the format: ''. Beware the output may not match after injection, and better not to add space in the part to avoid mistakes. e.g. INJECT_INFO='49 free' (to check memory in test code line 49) +INJECT_INFO=' xtrace | string | | A special inject code is to set xtrace to debug shell script. Set INJECT_INFO=' xtrace' to openqa configure to enable it and start to record command start after injecting line , and redirect debug info to /opt/log/xxx_xtrace.log