Blame test/sshiotest.sh

Packit 01d647
#!/bin/bash
Packit 01d647
# Test driver for SshIo
Packit 01d647
Packit 01d647
source ./functions.source
Packit 01d647
Packit 01d647
##
Packit 01d647
#function to test remote read access in basicio.cpp
Packit 01d647
SFTPReadTest()
Packit 01d647
{
Packit 01d647
    arg=$1
Packit 01d647
    scheme=${arg:0:4}
Packit 01d647
Packit 01d647
    src=$(basename "$arg")
Packit 01d647
    filename=${src%.*}
Packit 01d647
    test=${filename}.txt
Packit 01d647
    good=$datapath/${filename}.txt
Packit 01d647
    dot=.
Packit 01d647
    # run tests
Packit 01d647
    runTest exifprint $1 > $test
Packit 01d647
    #check results
Packit 01d647
    diffCheckAscii $test $good
Packit 01d647
Packit 01d647
    printf $dot
Packit 01d647
}
Packit 01d647
Packit 01d647
##
Packit 01d647
#function to test remote read access in basicio.cpp
Packit 01d647
SshIOTest()
Packit 01d647
{
Packit 01d647
    arg=$1
Packit 01d647
    scheme=${arg:0:4}
Packit 01d647
Packit 01d647
    src=$(basename "$arg")
Packit 01d647
    filename=${src%.*}
Packit 01d647
    test=${filename}.txt
Packit 01d647
    good=$datapath/remoteio.txt
Packit 01d647
    dot=.
Packit 01d647
Packit 01d647
    # print out the metadata
Packit 01d647
    runTest remotetest $1 > $test
Packit 01d647
Packit 01d647
    #check results
Packit 01d647
    diffCheckAscii $test $good
Packit 01d647
Packit 01d647
    printf $dot
Packit 01d647
}
Packit 01d647
Packit 01d647
(   cd "$testdir"
Packit 01d647
Packit 01d647
    # check environmental variable
Packit 01d647
    if [ -z $EXIV2_AWSUBUNTU_HOST ]; then
Packit 01d647
        echo "***" please set the environmental variable EXIV2_AWSUBUNTU_HOST "***"
Packit 01d647
        exit 1
Packit 01d647
    fi
Packit 01d647
    if [ -z $EXIV2_AWSUBUNTU_USERNAME ]; then
Packit 01d647
        echo "***" please set the environmental variable EXIV2_AWSUBUNTU_USERNAME "***"
Packit 01d647
        exit 1
Packit 01d647
    fi
Packit 01d647
    if [ -z $EXIV2_AWSUBUNTU_PASSWORD ]; then
Packit 01d647
        echo "***" please set the environmental variable EXIV2_AWSUBUNTU_PASSWORD "***"
Packit 01d647
        exit 1
Packit 01d647
    fi
Packit 01d647
Packit 01d647
    testfile="conntest.jpg"
Packit 01d647
    files+=(remoteImg{0..9}.jpg)
Packit 01d647
    iopngfiles+=(remoteio{1..5}.png)
Packit 01d647
    iojpgfiles+=(remoteio{6..10}.jpg)
Packit 01d647
    USE_SSH=$("$bin"/exiv2 -v -V | grep ^ssh= | sed s/ssh=//)
Packit 01d647
    if [ "$USE_SSH" == "0" ]; then
Packit 01d647
        #Skip remoteIo test cases
Packit 01d647
        echo 'Ssh is not used. Skip sshio test cases.'
Packit 01d647
    else
Packit 01d647
        # test connection
Packit 01d647
        printf 'sftp test connection '
Packit 01d647
        TEST_CON=$("$bin"/conntest sftp://"$EXIV2_AWSUBUNTU_USERNAME"_sftp:$EXIV2_AWSUBUNTU_PASSWORD@$EXIV2_AWSUBUNTU_HOST/var/www/$testfile)
Packit 01d647
        if [[ "$TEST_CON" == OK* ]]; then 
Packit 01d647
            # SFTP protocol
Packit 01d647
            errors=0
Packit 01d647
            printf 'OK\nSFTP READ '
Packit 01d647
            for name in ${files[@]}; do
Packit 01d647
                SFTPReadTest "sftp://"$EXIV2_AWSUBUNTU_USERNAME"_sftp:$EXIV2_AWSUBUNTU_PASSWORD@$EXIV2_AWSUBUNTU_HOST/var/www/$name"
Packit 01d647
            done
Packit 01d647
            if [ $errors -eq 0 ]; then
Packit 01d647
                printf '\nAll test cases passed\n'
Packit 01d647
            else
Packit 01d647
                echo $errors ' test cases failed!'
Packit 01d647
            fi
Packit 01d647
        else
Packit 01d647
            echo $TEST_CON
Packit 01d647
            printf "FAIL\nnot run SFTP read\n"
Packit 01d647
        fi
Packit 01d647
Packit 01d647
        # test connection
Packit 01d647
        printf 'ssh test connection '
Packit 01d647
        TEST_CON=$("$bin"/conntest ssh://$EXIV2_AWSUBUNTU_USERNAME:$EXIV2_AWSUBUNTU_PASSWORD@$EXIV2_AWSUBUNTU_HOST/sshtest/$testfile)
Packit 01d647
        if [[ "$TEST_CON" == OK* ]]; then 
Packit 01d647
            # SSH protocol
Packit 01d647
            errors=0
Packit 01d647
            printf 'OK\nSSH IO '
Packit 01d647
            for name in ${iopngfiles[@]}; do
Packit 01d647
                SshIOTest "ssh://$EXIV2_AWSUBUNTU_USERNAME:$EXIV2_AWSUBUNTU_PASSWORD@$EXIV2_AWSUBUNTU_HOST/sshtest/$name"
Packit 01d647
            done
Packit 01d647
            for name in ${iojpgfiles[@]}; do
Packit 01d647
                SshIOTest "ssh://$EXIV2_AWSUBUNTU_USERNAME:$EXIV2_AWSUBUNTU_PASSWORD@$EXIV2_AWSUBUNTU_HOST/sshtest/$name"
Packit 01d647
            done
Packit 01d647
            if [ $errors -eq 0 ]; then
Packit 01d647
                printf '\nAll test cases passed\n'
Packit 01d647
            else
Packit 01d647
                echo $errors ' test cases failed!'
Packit 01d647
            fi
Packit 01d647
        else
Packit 01d647
            echo $TEST_CON
Packit 01d647
            printf "FAIL\nnot run SSH read\n"
Packit 01d647
        fi
Packit 01d647
    fi
Packit 01d647
)
Packit 01d647
# That's all Folks!
Packit 01d647
##