X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Fsuites%2Fyangtools%2Fyang-model-validator%2Fyang-model-validator.robot;h=4fcb54e0b73cae404e33aac56f1409be60d78c82;hb=94651ca9711d8eb316721775561e815830bc6c7e;hp=e15165988fabf344cfdb6d7ffa5985c0dc020a5f;hpb=28662568a7b982218f14604b977f83271238d05d;p=integration%2Ftest.git diff --git a/csit/suites/yangtools/yang-model-validator/yang-model-validator.robot b/csit/suites/yangtools/yang-model-validator/yang-model-validator.robot index e15165988f..4fcb54e0b7 100644 --- a/csit/suites/yangtools/yang-model-validator/yang-model-validator.robot +++ b/csit/suites/yangtools/yang-model-validator/yang-model-validator.robot @@ -20,6 +20,7 @@ Default Tags 1node yang-model-validator critical Library RequestsLibrary Library SSHLibrary Library String +Resource ${CURDIR}/../../../libraries/CompareStream.robot Resource ${CURDIR}/../../../libraries/NexusKeywords.robot Resource ${CURDIR}/../../../libraries/RemoteBash.robot Resource ${CURDIR}/../../../libraries/SetupUtils.robot @@ -28,7 +29,10 @@ Resource ${CURDIR}/../../../libraries/TemplatedRequests.robot Resource ${CURDIR}/../../../libraries/YangCollection.robot *** Variables *** +${TEST_TOOL_NAME} yang-model-validator ${EXPLICIT_YANG_SYSTEM_TEST_URL} ${EMPTY} +${NITROGEN_YANG_SYSTEM_TEST_URL} ${NEXUS_RELEASE_BASE_URL}/org/opendaylight/yangtools/${TEST_TOOL_NAME}/2.0.0/${TEST_TOOL_NAME}-2.0.0-jar-with-dependencies.jar +${OXYGEN_YANG_SYSTEM_TEST_URL} ${NEXUS_RELEASE_BASE_URL}/org/opendaylight/yangtools/${TEST_TOOL_NAME}/2.0.1/${TEST_TOOL_NAME}-2.0.1-jar-with-dependencies.jar *** Test Cases *** Kill_Odl @@ -45,18 +49,17 @@ Prepare_Yang_Files_To_Test BuiltIn.Set_Suite_Variable \${p_option_value} Deploy_And_Start_Odl_Yang_Validator_Utility - [Documentation] Download appropriate version of yang-model-validator artifact + [Documentation] Download appropriate version of ${TEST_TOOL_NAME} artifact ... and run it for each single yang file in the prepared set. ... The version is either given by ${EXPLICIT_YANG_SYSTEM_TEST_URL}, ... or constructed from Jenkins-shaped ${BUNDLE_URL}, or downloaded from Nexus based on ODL version. - ${status} ${multipatch_url} = BuiltIn.Run_Keyword_And_Ignore_Error Construct_Multipatch_Url - ${url} = Builtin.Set_Variable_If "${status}" == "PASS" ${multipatch_url} ${EXPLICIT_YANG_SYSTEM_TEST_URL} - : FOR ${yang_file} IN @{yang_files_to_validate} - \ ${logfile} = NexusKeywords.Install_And_Start_Java_Artifact component=yangtools artifact=yang-model-validator suffix=jar-with-dependencies tool_options=-p ${p_option_value} ${yang_file} - \ ... explicit_url=${url} - \ BuiltIn.Set_Suite_Variable \${logfile} - \ Wait_Until_Utility_Finishes - \ Check_Return_Code + FOR ${yang_file} IN @{yang_files_to_validate} + ${logfile} = NexusKeywords.Install_And_Start_Java_Artifact component=yangtools artifact=${TEST_TOOL_NAME} suffix=jar-with-dependencies tool_options=-p ${p_option_value} ${yang_file} + ... explicit_url=${EXPLICIT_YANG_SYSTEM_TEST_URL} + BuiltIn.Set_Suite_Variable \${logfile} + Wait_Until_Utility_Finishes + Check_Return_Code + END Collect_Files_To_Archive [Documentation] Download created files so Releng scripts would archive it. @@ -67,6 +70,11 @@ Collect_Files_To_Archive Setup_Suite [Documentation] Activate dependency Resources, create SSH connection. SetupUtils.Setup_Utils_For_Setup_And_Teardown + ${TEST_TOOL_NAME}= CompareStream.Set_Variable_If_At_Most_Carbon yang-system-test ${TEST_TOOL_NAME} + ${EXPLICIT_YANG_SYSTEM_TEST_URL}= CompareStream.Set_Variable_If_At_Least_Nitrogen ${NITROGEN_YANG_SYSTEM_TEST_URL} ${EMPTY} + ${EXPLICIT_YANG_SYSTEM_TEST_URL}= CompareStream.Set_Variable_If_At_Least_Oxygen ${OXYGEN_YANG_SYSTEM_TEST_URL} ${EXPLICIT_YANG_SYSTEM_TEST_URL} + Set Suite Variable ${TEST_TOOL_NAME} + Set Suite Variable ${EXPLICIT_YANG_SYSTEM_TEST_URL} NexusKeywords.Initialize_Artifact_Deployment_And_Usage tools_system_connect=False SSHKeywords.Open_Connection_To_ODL_System @@ -82,10 +90,11 @@ Get_Recursive_Dirs ... This implementation returns absolute paths as that is easier. ${depth_1} = SSHLibrary.List_Directories_In_Directory path=${root} absolute=True ${subtrees} = BuiltIn.Create_List - : FOR ${subdir} IN @{depth_1} - \ ${tree} = Get_Recursive_Dirs root=${subdir} - \ # Relative paths would require prepending ${subdir}${/} to each @{tree} element. - \ Collections.Append_To_List ${subtrees} ${tree} + FOR ${subdir} IN @{depth_1} + ${tree} = Get_Recursive_Dirs root=${subdir} + # Relative paths would require prepending ${subdir}${/} to each @{tree} element. + Collections.Append_To_List ${subtrees} ${tree} + END ${flat_list} = Collections.Combine_Lists ${depth_1} @{subtrees} [Return] ${flat_list} @@ -93,30 +102,12 @@ Get_Yang_Files_From_Dirs [Arguments] ${dirs_to_process} [Documentation] Return list of yang files from provided directories ${collected_yang_files} = BuiltIn.Create_List - : FOR ${dir} IN @{dirs_to_process} - \ ${yang_files_in_dir} = SSHLibrary.List_Files_In_Directory path=${dir} pattern=*.yang absolute=True - \ ${collected_yang_files} = Collections.Combine_Lists ${collected_yang_files} ${yang_files_in_dir} + FOR ${dir} IN @{dirs_to_process} + ${yang_files_in_dir} = SSHLibrary.List_Files_In_Directory path=${dir} pattern=*.yang absolute=True + ${collected_yang_files} = Collections.Combine_Lists ${collected_yang_files} ${yang_files_in_dir} + END [Return] ${collected_yang_files} -Construct_Multipatch_Url - [Documentation] If ${EXPLICIT_YANG_SYSTEM_TEST_URL} is non-empty, return it. Otherwise: - ... Check whether ${BUNDLE_URL} is from multipatch build (or similar maven style job), - ... Check whether yang-model-validator was built there as well, - ... and return URL with proper version, or fail. - BuiltIn.Return_From_Keyword_If """${EXPLICIT_YANG_SYSTEM_TEST_URL}""" != "" ${EXPLICIT_YANG_SYSTEM_TEST_URL} - ${marker} = BuiltIn.Set_Variable /org.opendaylight.integration$distribution-karaf - ${is_multipatch} = BuiltIn.Run_Keyword_And_Return_Status BuiltIn.Should_Contain ${BUNDLE_URL} ${marker} - BuiltIn.Should_Be_True ${is_multipatch} - ${yst_base_url} = String.Fetch_From_Left ${BUNDLE_URL} ${marker} - RequestsLibrary.Create_Session alias=cmu url=${yst_base_url} - ${yst_general_uri} = BuiltIn.Set_Variable org.opendaylight.yangtools$yang-model-validator/artifact/org.opendaylight.yangtools/yang-model-validator - ${yst_html} = TemplatedRequests.Get_From_Uri ${yst_general_uri} session=cmu - # The following two lines are very specific to a particular Jenkins html layout. - ${yst_almost_version} = String.Fetch_From_Right ${yst_html} - ${url} = BuiltIn.Set_Variable ${yst_base_url}/${yst_general_uri}/${yst_version}/yang-model-validator-${yst_version}-jar-with-dependencies.jar - BuiltIn.Return_From_Keyword ${url} - Wait_Until_Utility_Finishes [Documentation] Repeatedly send endline to keep session alive; pass on prompt, fail on timeout. RemoteBash.Wait_Without_Idle 60m