#!/bin/bash #!/bin/ksh # # This file is part of rasdaman community. # # Rasdaman community is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Rasdaman community is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with rasdaman community. If not, see . # # Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann / # rasdaman GmbH. # # For more information please see # or contact Peter Baumann via . # # SYNOPSIS # test.sh # Description # Command-line utility for testing rasdaman. # 1)creating collection # 2)insert images into collection # 3)extract images # 4)compare # 5)cleanup # # PRECONDITIONS # 1)Postgres Server must be running # 2)Rasdaman Server must be running # 3)database RASBASE must exists # 4)rasql utility must be fully running # 5)images needed for testing shall be put in directory of images # Usage: ./test.sh # # CHANGE HISTORY # 2009-Sep-16 J.Yu created # # further tests will be done on dem, inv_dem, tor and inv_tor, after their implementations. # Variables PROGNAME=`basename $0` DIR_NAME=$(dirname $0) LOG_DIR=$DIR_NAME LOG=$LOG_DIR/log OLDLOG=$LOG.save USERNAME=rasadmin PASSWORD=rasadmin DATABASE=RASBASE IMAGEDIR=$DIR_NAME/testdata RASQL="rasql --quiet" RASDL="rasdl" CODE_OK=0 CODE_FAIL=255 # NUM_TOTAL: the number of manipulations # NUM_FAIL: the number of fail manipulations # NUM_SUC: the number of success manipulations NUM_TOTAL=0 NUM_FAIL=0 NUM_SUC=0 #--------------- check if old logfile exists ---------------------------------- if [ -f $LOG ] then echo Old logfile found, copying it to $OLDLOG mv $LOG $OLDLOG fi echo "Test by:"$PROGNAME" at "`date`|tee $LOG #---------------------------Precondition------------------------------------------ # check the Postgres ps -e | grep --quiet postmaster if [ $? -ne 0 ] then echo no postmaster available|tee -a $LOG exit $CODE_FAIL fi # check the Rasdaman ps -e | grep --quiet rasmgr if [ $? -ne 0 ] then echo no rasmgr available|tee -a $LOG exit $CODE_FAIL fi # check usr # # check data collection $RASQL -q "select r from RAS_COLLECTIONNAMES as r" if [ $? -ne 0 ] then echo no data collection available|tee -a $LOG exit $CODE_FAIL fi # check data type $RASDL --print|grep --quiet GreySet if [ $? -ne 0 ] then echo no GreSet type available|tee -a $LOG exit $CODE_FAIL fi # check data set #--------------------------initiation-------------------------------------------- # drop collection if they already exists if $RASQL -q "select r from RAS_COLLECTIONNAMES as r" --out string|grep test_tmp then echo dropping collection ... | tee -a $LOG $RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG fi ################## jpeg() and inv_jpeg() ####################### echo -----jpeg and inv_jpeg conversion------ | tee -a $LOG echo creating collection ... | tee -a $LOG $RASQL -q "create collection test_tmp GreySet" --user $USERNAME --passwd $PASSWORD || echo Error creating collection test_tmp| tee -a $LOG echo inserting collection ... | tee -a $LOG $RASQL -q 'insert into test_tmp values inv_jpeg($1)' -f $IMAGEDIR/mr_1.jpeg --user $USERNAME --passwd $PASSWORD || echo Error inserting jpeg image | tee -a $LOG echo extracting collection ... | tee -a $LOG $RASQL -q "select jpeg(a) from test_tmp as a" --out file --outfile mr_1.jpeg --user $USERNAME --passwd $PASSWORD || echo Error extracting jpeg image | tee -a $LOG echo comparing images | tee -a $LOG cmp $IMAGEDIR/mr_1.jpeg mr_1.jpeg.unknown if [ $? != "0" ] then echo input and output does not match | tee -a $LOG NUM_FAIL=$(($NUM_FAIL + 1)) else echo input and output match | tee -a $LOG NUM_SUC=$(($NUM_SUC + 1)) fi $RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG rm mr_1.jpeg.unknown ################## tiff() and inv_tiff() ####################### echo ------tiff and inv_tiff conversion------ | tee -a $LOG echo creating collection ... | tee -a $LOG $RASQL -q "create collection test_tmp GreySet" --user $USERNAME --passwd $PASSWORD || echo Error creating collection test_tmp | tee -a $LOG echo inserting collection ... | tee -a $LOG $RASQL -q 'insert into test_tmp values inv_tiff($1)' -f $IMAGEDIR/mr_1.tif --user $USERNAME --passwd $PASSWORD || echo Error inserting tiff image | tee -a $LOG echo extracting collection ... | tee -a $LOG $RASQL -q "select tiff(a) from test_tmp as a" --out file --outfile mr_1.tif --user $USERNAME --passwd $PASSWORD || echo Error extracting tiff image | tee -a $LOG echo comparing images | tee -a $LOG cmp $IMAGEDIR/mr_1.tif mr_1.tif.unknown if [ $? != "0" ] then echo input and output does not match | tee -a $LOG NUM_FAIL=$(($NUM_FAIL + 1)) else echo input and output match | tee -a $LOG NUM_SUC=$(($NUM_SUC + 1)) fi echo dropping collections ... | tee -a $LOG $RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG rm mr_1.tif.unknown ################## png() and inv_png() ####################### echo ------png and inv_png conversion------ | tee -a $LOG echo creating collection ... | tee -a $LOG $RASQL -q "create collection test_tmp GreySet" --user $USERNAME --passwd $PASSWORD || echo Error creating collection test_tmp | tee -a $LOG echo inserting collection ... | tee -a $LOG $RASQL -q 'insert into test_tmp values inv_png($1)' -f $IMAGEDIR/mr_1.png --user $USERNAME --passwd $PASSWORD || echo Error inserting png image | tee -a $LOG echo extracting collection ... | tee -a $LOG $RASQL -q "select png(a) from test_tmp as a" --out file --outfile mr_1.png --user $USERNAME --passwd $PASSWORD || echo Error extracting png image | tee -a $LOG echo comparing images | tee -a $LOG cmp $IMAGEDIR/mr_1.png mr_1.png.unknown if [ $? != "0" ] then echo input and output does not match | tee -a $LOG NUM_FAIL=$(($NUM_FAIL + 1)) else echo input and output match | tee -a $LOG NUM_SUC=$(($NUM_SUC + 1)) fi echo dropping collections ... | tee -a $LOG $RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG rm mr_1.png.unknown ################## bmp() and inv_bmp() ####################### echo ------bmp and inv_bmp conversion------ | tee -a $LOG echo creating collection ... | tee -a $LOG $RASQL -q "create collection test_tmp GreySet" --user $USERNAME --passwd $PASSWORD || echo Error creating collection test_tmp | tee -a $LOG echo inserting collection ... | tee -a $LOG $RASQL -q 'insert into test_tmp values inv_bmp($1)' -f $IMAGEDIR/mr_1.bmp --user $USERNAME --passwd $PASSWORD || echo Error inserting bmp image | tee -a $LOG echo extracting collection ... | tee -a $LOG $RASQL -q "select bmp(a) from test_tmp as a" --out file --outfile mr_1.bmp --user $USERNAME --passwd $PASSWORD || echo Error extracting bmp image | tee -a $LOG echo comparing images | tee -a $LOG cmp $IMAGEDIR/mr_1.bmp mr_1.bmp.unknown if [ $? != "0" ] then echo input and output does not match | tee -a $LOG NUM_FAIL=$(($NUM_FAIL + 1)) else echo input and output match | tee -a $LOG NUM_SUC=$(($NUM_SUC + 1)) fi echo dropping collections ... | tee -a $LOG $RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG rm mr_1.bmp.unknown ################## vff() and inv_vff() ####################### echo ------vff and inv_vff conversion------ | tee -a $LOG echo creating collection ... | tee -a $LOG $RASQL -q "create collection test_tmp GreySet" --user $USERNAME --passwd $PASSWORD || echo Error creating collection test_tmp | tee -a $LOG echo inserting collection ... | tee -a $LOG $RASQL -q 'insert into test_tmp values inv_vff($1)' -f $IMAGEDIR/mr_1.vff --user $USERNAME --passwd $PASSWORD || echo Error inserting vff image | tee -a $LOG echo extracting collection ... | tee -a $LOG $RASQL -q 'select vff(a) from test_tmp as a' --out file --outfile mr_1.vff --user $USERNAME --passwd $PASSWORD || echo Error extracting vff image | tee -a $LOG echo comparing images | tee -a $LOG cmp $IMAGEDIR/mr_1.vff mr_1.vff.unknown if [ $? != "0" ] then echo input and output does not match | tee -a $LOG NUM_FAIL=$(($NUM_FAIL + 1)) else echo input and output match | tee -a $LOG NUM_SUC=$(($NUM_SUC + 1)) fi echo dropping collections ... | tee -a $LOG $RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG rm mr_1.vff.unknown ################## hdf() and inv_hdf() ####################### echo ------hdf and inv_hdf conversion------ | tee -a $LOG echo creating collection ... | tee -a $LOG $RASQL -q "create collection test_tmp GreySet" --user $USERNAME --passwd $PASSWORD || echo Error creating collection test_tmp | tee -a $LOG echo inserting collection ... | tee -a $LOG $RASQL -q 'insert into test_tmp values inv_hdf($1)' -f $IMAGEDIR/mr_1.hdf --user $USERNAME --passwd $PASSWORD || echo Error inserting hdf4 image | tee -a $LOG echo extracting collection ... | tee -a $LOG $RASQL -q "select hdf(a) from test_tmp as a" --out file --outfile mr_1.hdf --user $USERNAME --passwd $PASSWORD || echo Error extracting hdf4 image | tee -a $LOG echo comparing images | tee -a $LOG cmp $IMAGEDIR/mr_1.hdf mr_1.hdf.unknown if [ $? != "0" ] then echo input and output does not match | tee -a $LOG NUM_FAIL=$(($NUM_FAIL + 1)) else echo input and output match | tee -a $LOG NUM_SUC=$(($NUM_SUC + 1)) fi echo dropping collections ... | tee -a $LOG $RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG rm mr_1.hdf.unknown ################## csv() and inv_csv() ####################### #echo ------csv and inv_csv conversion------ | tee -a $LOG #echo creating collection ... | tee -a $LOG #$RASQL -q "create collection test_tmp GreySet" --user $USERNAME --passwd $PASSWORD || echo Error creating collection test_tmp | tee -a $LOG #echo inserting collection ... | tee -a $LOG #$RASQL -q 'insert into test_tmp values inv_csv($1)' -f $IMAGEDIR/mr_1.csv --user $USERNAME --passwd $PASSWORD || echo Error inserting csv image | tee -a $LOG #echo extracting collection ... | tee -a $LOG #$RASQL -q "select csv(a) from test_tmp as a" --out file --outfile mr_1.csv --user $USERNAME --passwd $PASSWORD || echo Error extracting csv image | tee -a $LOG #echo comparing images | tee -a $LOG #cmp $IMAGEDIR/mr_1.csv mr_1.csv.unknown #if [ $? != "0" ] #then # echo input and output does not match | tee -a $LOG # NUM_FAIL=$(($NUM_FAIL + 1)) #else # echo input and output match | tee -a $LOG # NUM_SUC=$(($NUM_SUC + 1)) #fi #echo dropping collections ... | tee -a $LOG #$RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG #rm mr_1.csv.unknown ################## Dem() and inv_dem() ####################### # echo ------dem and inv_dem conversion------ | tee -a $LOG # echo creating collection ... | tee -a $LOG # $RASQL -q "create collection test_tmp GreySet" --user $USERNAME --passwd $PASSWORD || echo Error creating collection test_tmp | tee -a $LOG # echo inserting collection ... | tee -a $LOG # $RASQL -q 'insert into test_tmp values inv_dem($1)' -f $IMAGEDIR/mr_1.dem --user $USERNAME --passwd $PASSWORD || echo Error inserting dem image | tee -a $LOG # echo extracting collection ... | tee -a $LOG # $RASQL -q "select dem(a) from test_tmp as a" --out file --outfile mr_1.dem --user $USERNAME --passwd $PASSWORD || # echo Error extracting dem image | tee -a $LOG # echo comparing images | tee -a $LOG # cmp $IMAGEDIR/mr_1.dem mr_1.dem.unknown # if [ $? != "0" ] # then # echo input and output does not match | tee -a $LOG # NUM_FAIL=$(($NUM_FAIL + 1)) # else # echo input and output match | tee -a $LOG # NUM_SUC=$(($NUM_SUC + 1)) # fi # echo dropping collections ... | tee -a $LOG # $RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG # rm mr_1.dem.unknown ################## tor() and inv_tor() ####################### # echo ------tor and inv_tor conversion------ | tee -a $LOG # echo creating collection ... | tee -a $LOG # $RASQL -q "create collection test_tmp GreySet" --user $USERNAME --passwd $PASSWORD || echo Error creating collection test_tmp | tee -a $LOG # echo inserting collection ... | tee -a $LOG # $RASQL -q 'insert into test_tmp values inv_tor($1)' -f $IMAGEDIR/mr_1.tor --user $USERNAME --passwd $PASSWORD || echo Error inserting tor image | tee -a $LOG # echo extracting collection ... | tee -a $LOG # $RASQL -q 'select tor(a) from test_tmp as a' --out file --outfile mr_1.tor --user $USERNAME --passwd $PASSWORD || # echo Error extracting tor image | tee -a $LOG # echo comparing images | tee -a $LOG # cmp $IMAGEDIR/mr_1.tor mr_1.tor.unknown # if [ $? != "0" ] # then # echo input and output does not match | tee -a $LOG # NUM_FAIL=$(($NUM_FAIL + 1)) # else # echo input and output match | tee -a $LOG # NUM_SUC=$(($NUM_SUC + 1)) # fi # echo dropping collections ... | tee -a $LOG # $RASQL -q "drop collection test_tmp" --user $USERNAME --passwd $PASSWORD | tee -a $LOG # rm mr_1.tor.unknown ################# summary ####################### NUM_TOTAL=$(($NUM_SUC + $NUM_FAIL)) # Print the summary echo "test done at "`date`|tee -a $LOG echo "Total conversions: "$NUM_TOTAL|tee -a $LOG echo "Successful conversion number: "$NUM_SUC|tee -a $LOG echo "Failed conversion number: "$NUM_FAIL|tee -a $LOG echo "Detail test log is in "$LOG if [ $NUM_TOTAL = $NUM_SUC ] then exit $CODE_OK 0 else exit $CODE_FAIL 255 fi