#!/bin/bash

# This program will generate test documentation from the robot test cases.

# Description of argument(s):
# test_dir_path            Test directory where robot test cases are available.
# test_case_doc_file_path  The test case document file path to be stored.


function get_parms() {

    # Get program parms.

    test_dir_path="${1}" ; shift
    test_case_doc_file_path="${1}" ; shift

    return 0

}


function validate_parms() {

    # Validate program parameters.

    num_parms="${1}" ; shift

    (( ${num_parms} == 0 )) && return 0

    if [ -z "${test_dir_path}" ] ; then
        echo "**ERROR** You must provide test directory as the first positional" \
            "parameter." >&2
        return 1
    fi

    if [ -z "${test_case_doc_file_path}" ] ; then
        echo "**ERROR** You must provide file path as the second positional" \
            "parameter." >&2
        return 1
    fi

    return 0

}


function generate_all_test_document() {

    # Generate all test case documents

    local ret_code=0
    python3 -m robot.testdoc tests testsdirectoryTCdocs.html || ret_code=1
    python3 -m robot.testdoc extended extendeddirectoryTCdocs.html || ret_code=1
    python3 -m robot.testdoc gui guidirectoryTCdocs.html || ret_code=1
    python3 -m robot.testdoc systest systestdirectoryTCdocs.html || ret_code=1
    python3 -m robot.testdoc xcat xcatdirectoryTCdocs.html || ret_code=1
    python3 -m robot.testdoc mnfg mnfgdirectoryTCdocs.html || ret_code=1
    python3 -m robot.testdoc tools toolsdirectoryTCdocs.html || ret_code=1
    python3 -m robot.testdoc ./openpower/ras rasdirectoryTCdocs.html || ret_code=1
    python3 -m robot.testdoc ./openpower/secureboot securebootdirectoryTCdocs.html\
        || ret_code=1
    python3 -m robot.testdoc network networkdirectoryTCdocs.html ||\
        ret_code=1

    return ${ret_code}
}


function main_function() {

    get_parms "$@" || return 1

    validate_parms $# || return 1

    if (( ${num_parms} == 0 )) ; then
        generate_all_test_document || return 1
        return 0
    fi

    echo ${test_dir_path} ${test_case_doc_file_path}
    python3 -m robot.testdoc ${test_dir_path} ${test_case_doc_file_path}\
        || return 1

    return 0

}


# Main

main_function "${@}"
rc="${?}"
exit "${rc}"

