diff options
Diffstat (limited to 'docker_files/dgltest/regress.sh')
-rwxr-xr-x | docker_files/dgltest/regress.sh | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/docker_files/dgltest/regress.sh b/docker_files/dgltest/regress.sh new file mode 100755 index 0000000..758dd7c --- /dev/null +++ b/docker_files/dgltest/regress.sh @@ -0,0 +1,113 @@ +#!/bin/ksh +# +# depends on jq - https://stedolan.github.io/jq/ + +PROTOCOL=http +FQDN=127.0.0.1 +#vm1-message-router +#FQDN=10.208.128.229 +PORT=3904 +URL=$PROTOCOL://$FQDN:$PORT + +rm -f out/* +mkdir -p out + +results() { +# echo "[debug] compare $1 to $2" + if [ $1 == $2 ] + then + echo -n "SUCCESS " + else + echo -n "FAIL ($1) " + fi + echo " :TEST $3 ($4)" +} +SUITE=0 +SUITE=$((SUITE + 1)) +echo "SUITE $SUITE: List topics" +TN=0 +TN=$((TN + 1)) +TC=$SUITE.$TN +expect=200 +rc=`curl -s -w "%{http_code}" -o out/$TC.out $URL/topics` +results $rc $expect $TC "list" +StartTopicCount=`cat out/$TC.out | wc -l` + + +SUITE=$((SUITE + 1)) +echo +echo "SUITE $SUITE: APIKEY authenticated topic" +TOPIC=Topic-$$-$SUITE +TN=0 +TN=$((TN + 1)) +TC=$SUITE.$TN +OUT=out/$TC.out +echo '{ "email": "no.email", "description": "request for direct response KEY" }' > key.req +rc=`curl -s -w "%{http_code}" -o out/$TC.out -X POST -H "Content-Type: application/json" -d @key.req $URL/apiKeys/create` +results $rc $expect $SUITE.$TN "gen apikey " +TN=$((TN + 1)) +TC=$SUITE.$TN +SECRET=$(jq ".secret" $OUT | cut -f 2 -d \") +KEY=$(jq ".key" $OUT | cut -f 2 -d \") +TIME=`date --iso-8601=seconds` +SIG=$(echo -n "$TIME" | openssl sha1 -hmac $SECRET -binary | openssl base64) +xAUTH=$KEY:$SIG +#echo "[debug] $SECRET $KEY $TIME $SIG $xAUTH" +DATA=data.$TC.json +echo "{ \"topicName\": \"$TOPIC\", \"topicDescription\": \"topic for test $TC\", \"partitionCount\": \"1\", \"replicationCount\": \"1\", \"transactionEnabled\": \"true\" }" > $DATA +rc=`curl -s -w "%{http_code}" -o out/$TC.out -X POST -H "Content-Type: application/json" -H "X-CambriaAuth: $xAUTH" -H "X-CambriaDate: $TIME" -d @$DATA $URL/topics/create` +results $rc $expect $SUITE.$TN "create topic" +TN=$((TN + 1)) +TC=$SUITE.$TN +expect=200 +rc=`curl -s -w "%{http_code}" -o out/$TC.out $URL/topics` +results $rc $expect $TC "list " +TopicCnt=`cat out/$TC.out | wc -l` +results $TopicCnt $((StartTopicCount + 1)) $TC "topic count" +TN=$((TN + 1)) +TC=$SUITE.$TN +expect=200 +rc=`curl -s -w "%{http_code}" -o out/$TC.out $URL/topics/$TOPIC` +results $rc $expect $TC "list $TOPIC" +TN=$((TN + 1)) +TC=$SUITE.$TN +DATA=data.$TC.json +echo "{ \"datestamp\": \"`date`\", \"appkey\": \"x100\", \"appval\": \"some value\" }" > $DATA +rc=`curl -s -w "%{http_code}" -o out/$TC.out -X POST -H "Content-Type: application/json" -H "X-CambriaAuth: $xAUTH" -H "X-CambriaDate: $TIME" -d @$DATA $URL/events/$TOPIC` +results $rc $expect $SUITE.$TN "pub APIKEY topic" +TN=$((TN + 1)) +TC=$SUITE.$TN +rc=`curl -s -w "%{http_code}" -o out/$TC.out -X GET -H "Content-Type: application/json" -H "X-CambriaAuth: $xAUTH" -H "X-CambriaDate: $TIME" $URL/events/$TOPIC/g0/u1` +results $rc $expect $SUITE.$TN "sub APIKEY topic" + + +SUITE=$((SUITE + 1)) +echo +echo "SUITE $SUITE: anonymous topic" +TOPIC=$$.$SUITE +TN=0 +TN=$((TN + 1)) +TC=$SUITE.$TN +DATA=data.$TC.txt +echo "datestamp: `date`, key: $TC, value: this is a test " > $DATA +expect=200 +rc=`curl -s -w "%{http_code}" -o out/$TC.out -X POST -H "Content-Type: text/plain" -d @$DATA $URL/events/$TOPIC` +results $rc $expect $SUITE.$TN "pub text/plain" +TN=$((TN + 1)) +TC=$SUITE.$TN +expect=200 +rc=`curl -s -w "%{http_code}" -o out/$TC.out $URL/events/$TOPIC/group1/u$$?timeout=1000` +results $rc $expect $SUITE.$TN "sub text/plain" +TN=$((TN + 1)) +TC=$SUITE.$TN +DATA=data.$TC.json +echo "{ \"datestamp\": \"`date`\", \"key\": \"$TC\", \"value\": \"this is a test\" }" > $DATA +expect=200 +rc=`curl -s -w "%{http_code}" -o out/$TC.out -X POST -H "Content-Type: application/json" -d @$DATA $URL/events/$TOPIC` +results $rc $expect $SUITE.$TN "pub json" +TN=$((TN + 1)) +TC=$SUITE.$TN +expect=200 +rc=`curl -s -w "%{http_code}" -o out/$TC.out $URL/events/$TOPIC/group1/u$$?timeout=1000` +results $rc $expect $SUITE.$TN "sub json" + |