diff --git a/Jenkinsfile b/Jenkinsfile index 7072405296b..ac6b74b38ba 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -309,6 +309,9 @@ pipeline { string(name: 'FUNCTIONAL_HARDWARE_MEDIUM_VERBS_PROVIDER_LABEL', defaultValue: 'ci_nvme5', description: 'Label to use for 5 node Functional Hardware Medium Verbs Provider (MD on SSD) stages') + string(name: 'FUNCTIONAL_HARDWARE_MEDIUM_VMD_LABEL', + defaultValue: 'ci_vmd5', + description: 'Label to use for the Functional Hardware Medium VMD stage') string(name: 'FUNCTIONAL_HARDWARE_MEDIUM_UCX_PROVIDER_LABEL', defaultValue: 'ci_ofed5', description: 'Label to use for 5 node Functional Hardware Medium UCX Provider stage') @@ -1182,6 +1185,19 @@ pipeline { run_if_landing: false, job_status: job_status_internal ), + 'Functional Hardware Medium VMD': getFunctionalTestStage( + name: 'Functional Hardware Medium VMD', + pragma_suffix: '-hw-medium-vmd', + label: params.FUNCTIONAL_HARDWARE_MEDIUM_VMD_LABEL, + next_version: next_version, + stage_tags: 'hw_vmd,medium', + /* groovylint-disable-next-line UnnecessaryGetter */ + default_tags: startedByTimer() ? 'pr daily_regression' : 'pr', + nvme: 'auto', + run_if_pr: false, + run_if_landing: false, + job_status: job_status_internal + ), 'Functional Hardware Medium Verbs Provider': getFunctionalTestStage( name: 'Functional Hardware Medium Verbs Provider', pragma_suffix: '-hw-medium-verbs-provider', diff --git a/src/tests/ftest/tags.py b/src/tests/ftest/tags.py index 70dbfca4695..ee35d91f295 100755 --- a/src/tests/ftest/tags.py +++ b/src/tests/ftest/tags.py @@ -17,6 +17,10 @@ THIS_FILE = os.path.realpath(__file__) FTEST_DIR = os.path.dirname(THIS_FILE) +MANUAL_TAG = ('manual',) +STAGE_TYPE_TAGS = ('vm', 'hw', 'hw_vmd') +STAGE_SIZE_TAGS = ('medium', 'large') +STAGE_FREQUENCY_TAGS = ('all', 'pr', 'daily_regression', 'full_regression') class LintFailure(Exception): @@ -254,7 +258,7 @@ def sorted_tags(tags): """ tags_tmp = set(tags) new_tags = [] - for tag in ('all', 'vm', 'hw', 'medium', 'large', 'pr', 'daily_regression', 'full_regression'): + for tag in STAGE_TYPE_TAGS + STAGE_SIZE_TAGS + STAGE_FREQUENCY_TAGS: if tag in tags_tmp: new_tags.append(tag) tags_tmp.remove(tag) @@ -283,8 +287,7 @@ def run_linter(paths=None, verbose=False): tests_wo_hw_vm_manual = [] tests_w_empty_tag = [] tests_wo_a_feature_tag = [] - non_feature_tags = set([ - 'all', 'vm', 'hw', 'medium', 'large', 'pr', 'daily_regression', 'full_regression']) + non_feature_tags = set(STAGE_TYPE_TAGS + STAGE_SIZE_TAGS + STAGE_FREQUENCY_TAGS) ftest_tag_map = FtestTagMap(paths) for file_path, classes in iter(ftest_tag_map): all_files.append(file_path) @@ -302,7 +305,7 @@ def run_linter(paths=None, verbose=False): if _tag.startswith('test_') and _tag != method_name: test_w_invalid_test_tag.append(method_name) break - if not set(tags).intersection(set(['vm', 'hw', 'manual'])): + if not set(tags).intersection(set(MANUAL_TAG + STAGE_TYPE_TAGS)): tests_wo_hw_vm_manual.append(method_name) if '' in tags: tests_w_empty_tag.append(method_name) diff --git a/src/tests/ftest/vmd/fault_reintegration.py b/src/tests/ftest/vmd/fault_reintegration.py index 5a10aed7679..f74a8bda549 100644 --- a/src/tests/ftest/vmd/fault_reintegration.py +++ b/src/tests/ftest/vmd/fault_reintegration.py @@ -91,8 +91,8 @@ def test_nvme_fault_reintegration(self): 9. Replace the same drive back. 10. Drive status LED should be off indicating good device is plugged-in. - :avocado: tags=all,manual - :avocado: tags=hw,medium + :avocado: tags=all,full_regression + :avocado: tags=hw_vmd,medium :avocado: tags=vmd,vmd_led :avocado: tags=NvmeFaultReintegrate,test_nvme_fault_reintegration diff --git a/src/tests/ftest/vmd/led.py b/src/tests/ftest/vmd/led.py index b736d0c4abe..eb49e8289c0 100644 --- a/src/tests/ftest/vmd/led.py +++ b/src/tests/ftest/vmd/led.py @@ -76,8 +76,8 @@ def get_led_status_value(self, device_id=None): def test_vmd_led_status(self): """Jira ID: DAOS-11290 - :avocado: tags=all,manual - :avocado: tags=hw,medium + :avocado: tags=all,full_regression + :avocado: tags=hw_vmd,medium :avocado: tags=vmd,vmd_led :avocado: tags=VmdLedStatus,test_vmd_led_status """ @@ -97,8 +97,8 @@ def test_vmd_led_status(self): def test_vmd_led_faulty(self): """Jira ID: DAOS-11290 - :avocado: tags=all,manual - :avocado: tags=hw,medium + :avocado: tags=all,full_regression + :avocado: tags=hw_vmd,medium :avocado: tags=vmd,vmd_led :avocado: tags=VmdLedStatus,test_vmd_led_faulty """