Drop unreleased features (record & replay) (#1406)
1. The records are stored in redis which is not migratable to another cluster for the testing purposes. 2. Some of the requests fields are not recorded. 3. People should consider using https://github.com/buger/goreplay which is an existing mature and well-tested solution for testing purposes.
This commit is contained in:
@@ -513,9 +513,6 @@ run_all_tests() {
|
||||
$ROOT/test/run_test.sh \
|
||||
$ROOT/test/tests/test_canary.sh \
|
||||
$ROOT/test/tests/mqtrigger/kafka/test_kafka.sh \
|
||||
$ROOT/test/tests/recordreplay/test_record_greetings.sh \
|
||||
$ROOT/test/tests/recordreplay/test_record_rv.sh \
|
||||
$ROOT/test/tests/recordreplay/test_recorder_update.sh \
|
||||
$ROOT/test/tests/test_annotations.sh \
|
||||
$ROOT/test/tests/test_archive_pruner.sh \
|
||||
$ROOT/test/tests/test_backend_poolmgr.sh \
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
from flask import request
|
||||
|
||||
def main():
|
||||
content = request.get_json(force=True)
|
||||
title = content['title']
|
||||
name = content['name']
|
||||
item = content['item']
|
||||
g = "Greetings, {} {}. May I take your {}?\n".format(title, name, item)
|
||||
return g
|
||||
@@ -1,7 +0,0 @@
|
||||
from flask import request
|
||||
|
||||
def main():
|
||||
time = request.args.get('time')
|
||||
date = request.args.get('date')
|
||||
r = "We'll meet at {} on {}.\n".format(time, date)
|
||||
return r
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/bin/bash
|
||||
#test:disabled
|
||||
|
||||
#
|
||||
# Simple end-to-end test of record with POST
|
||||
# Two recorders tested: by function, by trigger (TODO)
|
||||
#
|
||||
|
||||
set -euo pipefail
|
||||
set +x
|
||||
source $(dirname $0)/../../utils.sh
|
||||
|
||||
TEST_ID=$(generate_test_id)
|
||||
echo "TEST_ID = $TEST_ID"
|
||||
|
||||
cleanup() {
|
||||
log "Cleaning up..."
|
||||
clean_resource_by_id $TEST_ID
|
||||
}
|
||||
|
||||
if [ -z "${TEST_NOCLEANUP:-}" ]; then
|
||||
trap cleanup EXIT
|
||||
else
|
||||
log "TEST_NOCLEANUP is set; not cleaning up test artifacts afterwards."
|
||||
fi
|
||||
|
||||
ROOT=$(dirname $0)/../../..
|
||||
DIR=$(dirname $0)
|
||||
|
||||
env=python-$TEST_ID
|
||||
fn=greetings-$TEST_ID
|
||||
recName=rec-$TEST_ID
|
||||
|
||||
echo "Creating python env"
|
||||
fission env create --name $env --image $PYTHON_RUNTIME_IMAGE
|
||||
|
||||
echo "Creating function"
|
||||
fission fn create --name $fn --env $env --code $DIR/greetings.py --method GET
|
||||
|
||||
echo "Creating http trigger"
|
||||
generated=$(fission route create --function $fn --method POST --url /$fn | awk '{print $2}'| tr -d "'")
|
||||
|
||||
# Wait until trigger is created
|
||||
sleep 5
|
||||
|
||||
echo "Creating recorder"
|
||||
fission recorder create --name $recName --function $fn
|
||||
fission recorder get --name $recName
|
||||
|
||||
# Wait until recorder is created
|
||||
sleep 5
|
||||
|
||||
echo "Issuing cURL request:"
|
||||
resp=$(curl -X POST "http://$FISSION_ROUTER/$fn" -d "{\"title\":\"Madam\",\"name\":\"Thanh\",\"item\":\"coat\"}")
|
||||
expectedR="Greetings, Madam Thanh. May I take your coat?"
|
||||
|
||||
set +o pipefail
|
||||
recordedStatus="$(fission records view --from 15s --to 0s -v | grep $fn | awk '{print $4$5}')"
|
||||
set -o pipefail
|
||||
expectedS="200OK"
|
||||
|
||||
if [ "$resp" != "$expectedR" ] || [ "$recordedStatus" != "$expectedS" ]; then
|
||||
echo "Response is not equal to expected response."
|
||||
log "expected: status = '$expectedS' resp = '$expectedR'"
|
||||
log "result: status = '$recordedStatus' resp = '$resp'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Passed."
|
||||
exit 0
|
||||
@@ -1,118 +0,0 @@
|
||||
#!/bin/bash
|
||||
#test:disabled
|
||||
|
||||
#
|
||||
# Simple end-to-end test of record with GET
|
||||
# 0) Setup: Two triggers created for a function (different urls, urlA and urlB)
|
||||
# 1) One recorder created for that function, two cURL requests made to both urls, check both are recorded
|
||||
# 2) One recorder created for a particular trigger (urlB), both requests repeated, check only the one for urlB was recorded
|
||||
#
|
||||
|
||||
set -euo pipefail
|
||||
set +x
|
||||
source $(dirname $0)/../../utils.sh
|
||||
|
||||
TEST_ID=$(generate_test_id)
|
||||
echo "TEST_ID = $TEST_ID"
|
||||
|
||||
cleanup() {
|
||||
log "Cleaning up..."
|
||||
clean_resource_by_id $TEST_ID
|
||||
}
|
||||
|
||||
if [ -z "${TEST_NOCLEANUP:-}" ]; then
|
||||
trap cleanup EXIT
|
||||
else
|
||||
log "TEST_NOCLEANUP is set; not cleaning up test artifacts afterwards."
|
||||
fi
|
||||
|
||||
ROOT=$(dirname $0)/../../..
|
||||
DIR=$(dirname $0)
|
||||
expectedR="We'll meet at 9 on Tuesday."
|
||||
|
||||
env=python-$TEST_ID
|
||||
fn=rv-$TEST_ID
|
||||
recName1=rec1-$TEST_ID
|
||||
recName2=rec2-$TEST_ID
|
||||
|
||||
echo "Creating python env"
|
||||
fission env create --name $env --image $PYTHON_RUNTIME_IMAGE
|
||||
|
||||
echo "Creating function"
|
||||
fission fn create --name $fn --env $env --code $DIR/rendezvous.py --method GET
|
||||
|
||||
echo "Creating trigger A"
|
||||
triggerA=$(fission route create --function $fn --method GET --url /$fn-A | awk '{print $2}'| tr -d "'")
|
||||
log "triggerA = $triggerA"
|
||||
|
||||
echo "Creating trigger B"
|
||||
triggerB=$(fission route create --function $fn --method GET --url /$fn-B | awk '{print $2}'| tr -d "'")
|
||||
log "triggerB = $triggerB"
|
||||
|
||||
# Wait until triggers are created
|
||||
sleep 5
|
||||
|
||||
echo "Creating recorder by function"
|
||||
fission recorder create --name $recName1 --function $fn
|
||||
fission recorder get --name $recName1
|
||||
|
||||
# Wait until recorder is created
|
||||
sleep 5
|
||||
|
||||
echo "Issuing cURL request to urlA:"
|
||||
respA=$(curl -X GET "http://$FISSION_ROUTER/$fn-A?time=9&date=Tuesday")
|
||||
recordedStatusA="$(fission records view --from 5s --to 0s -v | grep $triggerA | awk '{print $4$5}')"
|
||||
expectedSA="200OK"
|
||||
|
||||
# Separate records
|
||||
sleep 5
|
||||
|
||||
echo "Issuing cURL request to urlB:"
|
||||
respB=$(curl -X GET "http://$FISSION_ROUTER/$fn-B?time=9&date=Tuesday")
|
||||
recordedStatusB="$(fission records view --from 5s --to 0s -v | grep $triggerB | awk '{print $4$5}')"
|
||||
expectedSB="200OK"
|
||||
|
||||
if [ "$respA" != "$expectedR" ] || [ "$recordedStatusA" != "$expectedSA" ] || [ "$recordedStatusB" != "$expectedSB" ]; then
|
||||
echo "Failed at test case 1."
|
||||
log "expected: statusA = '$expectedSA' statusB = '$statusB' respA = '$expectedR'"
|
||||
log "result: statusA = '$recordedStatusA' statusB = '$recordedStatusB' respA = '$respA'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test case 1) Passed."
|
||||
|
||||
# Delete first recorder
|
||||
fission recorder delete --name $recName1
|
||||
|
||||
sleep 5
|
||||
|
||||
echo "Creating recorder by trigger"
|
||||
fission recorder create --name $recName2 --trigger $triggerB
|
||||
fission recorder get --name $recName2
|
||||
|
||||
echo "Issuing cURL request to urlA:"
|
||||
respA=$(curl -X GET "http://$FISSION_ROUTER/$fn-A?time=9&date=Tuesday")
|
||||
# We except there is no records here -> grep will exit 1 -> this script exit 1 because 'pipefail' is set
|
||||
# Temporary disable 'pipefail' here
|
||||
set +o pipefail
|
||||
recordedStatusA="$(fission records view --from 5s --to 0s -v | grep $triggerA | awk '{print $4$5}')"
|
||||
set -o pipefail
|
||||
expectedSA=""
|
||||
|
||||
# Separate records
|
||||
sleep 5
|
||||
|
||||
echo "Issuing cURL request to urlB:"
|
||||
respB=$(curl -X GET "http://$FISSION_ROUTER/$fn-B?time=9&date=Tuesday")
|
||||
recordedStatusB="$(fission records view --from 5s --to 0s -v | grep $triggerB | awk '{print $4$5}')"
|
||||
expectedSB="200OK"
|
||||
|
||||
if [ "$respA" != "$expectedR" ] || [ "$recordedStatusA" != "$expectedSA" ] || [ "$recordedStatusB" != "$expectedSB" ]; then
|
||||
echo "Failed at test case 2."
|
||||
log "expected: statusA = '$expectedSA' statusB = '$expectedSB' respA = '$expectedR'"
|
||||
log "result: statusA = '$recordedStatusA' statusB = '$recordedStatusB' respA = '$respA'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "All passed."
|
||||
exit 0
|
||||
@@ -1,125 +0,0 @@
|
||||
#!/bin/bash
|
||||
#test:disabled
|
||||
|
||||
#
|
||||
# Simple test of recorder updates
|
||||
# 0) Setup: One recorder created for function with trigger
|
||||
# 1) Recorder disabled, cURL request made, check not saved.
|
||||
# 2) Recorder re-enabled, request repeated, check now saved.
|
||||
# 3) New trigger created for same function recorded w/ different url, recorder updated to observe requests for this trigger
|
||||
# Request repeated at new url, check saved.
|
||||
#
|
||||
|
||||
set -euo pipefail
|
||||
set +x
|
||||
source $(dirname $0)/../../utils.sh
|
||||
|
||||
TEST_ID=$(generate_test_id)
|
||||
echo "TEST_ID = $TEST_ID"
|
||||
|
||||
cleanup() {
|
||||
log "Cleaning up..."
|
||||
clean_resource_by_id $TEST_ID
|
||||
}
|
||||
|
||||
if [ -z "${TEST_NOCLEANUP:-}" ]; then
|
||||
trap cleanup EXIT
|
||||
else
|
||||
log "TEST_NOCLEANUP is set; not cleaning up test artifacts afterwards."
|
||||
fi
|
||||
|
||||
ROOT=$(dirname $0)/../../..
|
||||
DIR=$(dirname $0)
|
||||
|
||||
env=python-$TEST_ID
|
||||
fn=rv-$TEST_ID
|
||||
recName=rec-$TEST_ID
|
||||
|
||||
echo "Creating python env"
|
||||
fission env create --name $env --image $PYTHON_RUNTIME_IMAGE
|
||||
|
||||
echo "Creating function"
|
||||
fission fn create --name $fn --env $env --code $DIR/rendezvous.py --method GET
|
||||
|
||||
echo "Creating http trigger"
|
||||
generated=$(fission route create --function $fn --method GET --url /$fn | awk '{print $2}'| tr -d "'")
|
||||
|
||||
# Wait until trigger is created
|
||||
sleep 5
|
||||
|
||||
echo "Creating recorder"
|
||||
fission recorder create --name $recName --function $fn
|
||||
fission recorder get --name $recName
|
||||
|
||||
# Wait until recorder is created
|
||||
sleep 5
|
||||
|
||||
# Disable recorder
|
||||
fission recorder update --name $recName --disable
|
||||
sleep 5
|
||||
|
||||
echo "Issuing cURL request that should not be recorded:"
|
||||
resp=$(curl -X GET "http://$FISSION_ROUTER/$fn?time=9&date=Tuesday")
|
||||
set +o pipefail
|
||||
recordedStatus="$(fission records view --from 5s --to 0s -v | grep $fn | awk '{print $4$5}')"
|
||||
set -o pipefail
|
||||
expectedR="We'll meet at 9 on Tuesday."
|
||||
expectedS=""
|
||||
|
||||
if [ "$resp" != "$expectedR" ] || [ "$recordedStatus" != "$expectedS" ]; then
|
||||
echo "Response is not equal to expected response."
|
||||
log "expected: status = '$expectedS' resp = '$expectedR'"
|
||||
log "result: status = '$recordedStatus' resp = '$resp'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test case 1) Passed."
|
||||
|
||||
# Reenable recorder
|
||||
fission recorder update --name $recName --enable
|
||||
sleep 5
|
||||
|
||||
echo "Issuing cURL request that should be recorded:"
|
||||
resp=$(curl -X GET "http://$FISSION_ROUTER/$fn?time=9&date=Tuesday")
|
||||
expectedR="We'll meet at 9 on Tuesday."
|
||||
set +o pipefail
|
||||
recordedStatus="$(fission records view --from 5s --to 0s -v | grep $fn | awk '{print $4$5}')"
|
||||
set -o pipefail
|
||||
expectedS="200OK"
|
||||
|
||||
if [ "$resp" != "$expectedR" ] || [ "$recordedStatus" != "$expectedS" ]; then
|
||||
echo "Response is not equal to expected response."
|
||||
log "expected: status = '$expectedS' resp = '$expectedR'"
|
||||
log "result: status = '$recordedStatus' resp = '$resp'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test case 2) Passed."
|
||||
|
||||
# Create new trigger for same function recorded w/ different url
|
||||
generated2=$(fission route create --function $fn --method GET --url $fn-2 | awk '{print $2}'| tr -d "'")
|
||||
echo "New trigger: $generated2"
|
||||
|
||||
# Update recorder to observe new trigger
|
||||
fission recorder update --name $recName --trigger $generated2
|
||||
fission recorder list
|
||||
|
||||
echo "Issuing cURL request that should be recorded:"
|
||||
resp=$(curl -X GET "http://$FISSION_ROUTER/$fn-2?time=9&date=Tuesday")
|
||||
expectedR="We'll meet at 9 on Tuesday."
|
||||
set +o pipefail
|
||||
recordedStatus="$(fission records view --from 5s --to 0s -v | grep $generated2 | awk '{print $4$5}')"
|
||||
set -o pipefail
|
||||
expectedS="200OK"
|
||||
|
||||
if [ "$resp" != "$expectedR" ] || [ "$recordedStatus" != "$expectedS" ]; then
|
||||
echo "Response is not equal to expected response."
|
||||
log "expected: status = '$expectedS' resp = '$expectedR'"
|
||||
log "result: status = '$recordedStatus' resp = '$resp'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Test case 3) Passed."
|
||||
|
||||
echo "All passed."
|
||||
exit 0
|
||||
Reference in New Issue
Block a user