| *** Settings *** | 
 | Documentation      This suite is for testing Open BMC full test suite. | 
 | ...                Maintains log.html output.xml  for each iteration and | 
 | ...                generate combined report | 
 |  | 
 | Resource  ../lib/utils.robot | 
 | Resource  ../lib/connection_client.robot | 
 | Library  OperatingSystem | 
 | Library  DateTime | 
 |  | 
 | Suite Setup         Open Connection And Log In | 
 | Suite Teardown      Close All Connections | 
 |  | 
 | Force Tags  Full_Suite_Regression | 
 |  | 
 | *** Variables *** | 
 | ${ITERATION}          10 | 
 | ${RESULT_DIR_NAME}    logsdir | 
 | ${LOOP_TEST_COMMAND}  tests | 
 |  | 
 | *** Test Cases *** | 
 | Validate BMC Model | 
 |    [Documentation]  Check that OPENBMC_MODEL is correct. | 
 |    [Tags]  Validate_BMC_Model | 
 |    ${bmc_model}=  Get BMC System Model | 
 |    ${status}=  Verify BMC System Model  ${bmc_model} | 
 |    Run Keyword If  '${status}'=='False'  Fatal Error  Wrong System | 
 |  | 
 | Run Entire Test Suite Multiple Time | 
 |    [Documentation]  Multiple iterations of Full Suite | 
 |  | 
 |    Should Be True  0<${ITERATION} | 
 |  | 
 |    ${timestamp}=  Get Current Date  result_format=%Y%m%d%H%M%S | 
 |    ${tmp_result_dir_path}=  Catenate  ${RESULT_DIR_NAME}${timestamp} | 
 |    Set Suite Variable  ${RESULT_DIR_PATH}  ${tmp_result_dir_path} | 
 |    Log To Console  ${RESULT_DIR_PATH} | 
 |    Create Directory  ${RESULT_DIR_PATH} | 
 |  | 
 |    FOR    ${INDEX}    IN RANGE    0    ${ITERATION} | 
 |      Log To Console  \n Iteration:   no_newline=True | 
 |      Log To Console  ${INDEX} | 
 |      Run  OPENBMC_HOST=${OPENBMC_HOST} tox -e ${OPENBMC_SYSTEMMODEL} -- ${LOOP_TEST_COMMAND} | 
 |      Run  sed -i 's/'${OPENBMC_HOST}'/DUMMYIP/g' output.xml | 
 |      Copy File  output.xml   ${RESULT_DIR_PATH}/output${INDEX}.xml | 
 |      Copy File  log.html   ${RESULT_DIR_PATH}/log${INDEX}.html | 
 |    END | 
 |  | 
 |  | 
 | Create Combined Report | 
 |    [Documentation]  Using output[?].xml and create combined log.html | 
 |    [Tags]  Create_Combined_Report | 
 |  | 
 |    Run  rebot --name ${OPENBMC_SYSTEMMODEL}CombinedReport ${RESULT_DIR_PATH}/output*.xml | 
 |  | 
 |    ${current_time}=  Get Current Date  result_format=%Y%m%d%H%M%S | 
 |    ${combined_report_file}=  Catenate  SEPARATOR=  ${EXECDIR} | 
 |    ...  /logs/CombinedLogReport${current_time}.html | 
 |  | 
 |    Copy File  log.html  ${combined_report_file} | 
 |  | 
 |    Run Keyword And Ignore Error  Convert HTML To PDF  ${combined_report_file} | 
 |  | 
 | *** Keywords *** | 
 |  | 
 | Convert HTML To PDF | 
 |    [Documentation]  Convert HTML to PDF in order to support GitHub | 
 |    ...  attachment. | 
 |    [Arguments]  ${combined_report_html_file_path} | 
 |    # Description of arguments: | 
 |    # combined_report_html_file_path  Combined report file in HTML format. | 
 |  | 
 |    Log To Console  \n ${combined_report_html_file_path} | 
 |    ${combined_report_pdf_file_path}= | 
 |    ...  Fetch From Left  ${combined_report_html_file_path}  . | 
 |    # Compose combined_report_pdf_file_path. | 
 |    ${combined_report_pdf_file_path}=  Catenate  SEPARATOR= | 
 |    ...  ${combined_report_pdf_file_path}  .pdf | 
 |    # wkhtmltopdf tool is to convert HTML to PDF | 
 |    ${output}=  Run  which wkhtmltopdf | 
 |    Should Not Be Empty  ${output} | 
 |    ...  msg=wkhtmltopdf not installed, Install from http://wkhtmltopdf.org | 
 |    ${output}= | 
 |    ...  Run  wkhtmltopdf ./${combined_report_html_file_path} ./${combined_report_pdf_file_path} | 
 |    Should Not Be Empty  ${output} | 
 |    OperatingSystem.File Should Exist  ${combined_report_pdf_file_path} |