Performance test suite for MDSAL northbound
[integration/test.git] / csit / libraries / Utils.robot
index a18f2bec19ffec846ab62cb82c41a3364906b1d9..9acdba054c7fa4c17f034a111d81192df7e7e1c8 100644 (file)
@@ -93,7 +93,7 @@ Report_Failure_And_Point_To_Linked_Bugs
     ${reference}=    String.Replace_String_Using_Regexp    ${SUITE_NAME}_${TEST_NAME}    [ /\.-]    _
     ${reference}=    String.Convert_To_Lowercase    ${reference}
     ${msg}=    BuiltIn.Set_Variable    ... click for list of related bugs or create a new one if needed (with the${newline}"${reference}"${newline}reference somewhere inside)
-    ${bugs}=    BuiltIn.Set_Variable    "https://bugs.opendaylight.org/buglist.cgi?f1=longdesc&o1=substring&v1=${reference}&order=bug_status"
+    ${bugs}=    BuiltIn.Set_Variable    "https://bugs.opendaylight.org/buglist.cgi?f1=cf_external_ref&o1=substring&v1=${reference}&order=bug_status"
     BuiltIn.Set Test Message    ${msg}${newline}${bugs}${newline}${newline}${TEST_MESSAGE}
     BuiltIn.Log    ${msg}${newline}${bugs}
 
@@ -411,3 +411,35 @@ Post Log Check
     Log    ${resp.content}
     Should Be Equal As Strings    ${resp.status_code}    ${status_code}
     [Return]    ${resp}
+
+Get Log File Name
+    [Arguments]    ${testtool}    ${testcase}=${EMPTY}
+    [Documentation]    Get the name of the suite sanitized to be usable as a part of filename.
+    ...    These names are used to constructs names of the log files produced
+    ...    by the testing tools so two suites using a tool wont overwrite the
+    ...    log files if they happen to run in one job.
+    ${name}=    BuiltIn.Evaluate    """${SUITE_NAME}""".replace(" ","-").replace("/","-").replace(".","-")
+    ${suffix}=    BuiltIn.Set_Variable_If    '${testcase}' != ''    --${testcase}    ${EMPTY}
+    [Return]    ${testtool}--${name}${suffix}.log
+
+Set_User_Configurable_Variable_Default
+    [Arguments]    ${name}    ${value}
+    [Documentation]    Set a default value for an user configurable variable.
+    ...    This keyword is needed if your default value is calculated using
+    ...    a complex expression which needs BuiltIn.Evaluate or even more
+    ...    complex keywords. It sets the variable ${name} to ${value} but
+    ...    only if the variable ${name} was not set previously. This keyword
+    ...    is intended for user configurable variables which are supposed to
+    ...    be set only with pybot -v; calling this keyword on a variable
+    ...    that was already set by another keyword is a bug in the suite or
+    ...    resource trying to call this keyword.
+    # TODO: Figure out how to make the ${value} evaluation "lazy" (meaning
+    #    evaluating it only when the user did not set anything and thus the
+    #    default is needed). This might be needed to avoid potentially costly
+    #    keyword invocations when they are not needed. Currently no need for
+    #    this was identified, thus leaving it here as a TODO. Based on
+    #    comments the best approach would be to create another keyword that
+    #    expects a ScalarClosure in the place of ${value} and calls the
+    #    closure to get the value but only if the value is needed).
+    ${value}=    BuiltIn.Get_Variable_Value    \${${name}}    ${value}
+    BuiltIn.Set_Suite_Variable    \${${name}}    ${value}