Add huge response body test (#1437)
This commit is contained in:
+2
-1
@@ -536,7 +536,8 @@ run_all_tests() {
|
||||
$ROOT/test/tests/test_environments/test_tensorflow_serving_env.sh \
|
||||
$ROOT/test/tests/test_environments/test_go_env.sh \
|
||||
$ROOT/test/tests/mqtrigger/nats/test_mqtrigger.sh \
|
||||
$ROOT/test/tests/mqtrigger/nats/test_mqtrigger_error.sh
|
||||
$ROOT/test/tests/mqtrigger/nats/test_mqtrigger_error.sh \
|
||||
$ROOT/test/tests/test_huge_response/test_huge_response.sh
|
||||
FAILURES=$?
|
||||
|
||||
# FIXME: run tests with newdeploy one by one.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,16 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// Handler is the entry point for this fission function
|
||||
func Handler(w http.ResponseWriter, r *http.Request) {
|
||||
bytes, err := ioutil.ReadAll(r.Body)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
w.Write(bytes)
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
source $(dirname $0)/../../utils.sh
|
||||
|
||||
TEST_ID=$(generate_test_id)
|
||||
echo "TEST_ID = $TEST_ID"
|
||||
|
||||
ROOT=$(dirname $0)/../../..
|
||||
|
||||
pushd $ROOT/test/tests/test_huge_response
|
||||
|
||||
cleanup() {
|
||||
clean_resource_by_id $TEST_ID
|
||||
rm -rf response.json
|
||||
popd
|
||||
}
|
||||
|
||||
retryPost() {
|
||||
local fn=$1
|
||||
log "Send huge JSON request body"
|
||||
|
||||
set +e
|
||||
while true; do
|
||||
curl -X POST http://$FISSION_ROUTER/$fn \
|
||||
-H "Content-Type: application/json" \
|
||||
--data-binary "@generated.json" > response.json
|
||||
|
||||
difftext=$(diff generated.json response.json)
|
||||
if [ -z "$difftext" ]; then
|
||||
break
|
||||
else
|
||||
echo "Receive truncated body"
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
set -e
|
||||
}
|
||||
export -f retryPost
|
||||
|
||||
if [ -z "${TEST_NOCLEANUP:-}" ]; then
|
||||
trap cleanup EXIT
|
||||
else
|
||||
log "TEST_NOCLEANUP is set; not cleaning up test artifacts afterwards."
|
||||
fi
|
||||
|
||||
env=go-$TEST_ID
|
||||
fn_poolmgr=hello-go-poolmgr-$TEST_ID
|
||||
|
||||
log "Creating environment for Golang"
|
||||
fission env create --name $env --image $GO_RUNTIME_IMAGE --builder $GO_BUILDER_IMAGE --period 5
|
||||
|
||||
timeout 90 bash -c "wait_for_builder $env"
|
||||
|
||||
pkgName=$(generate_test_id)
|
||||
fission package create --name $pkgName --src hello.go --env $env
|
||||
|
||||
# wait for build to finish at most 90s
|
||||
timeout 90 bash -c "waitBuild $pkgName"
|
||||
|
||||
log "Creating function for Golang"
|
||||
fission fn create --name $fn_poolmgr --env $env --pkg $pkgName --entrypoint Handler
|
||||
|
||||
log "Creating route for function"
|
||||
fission route create --name $fn_poolmgr --function $fn_poolmgr --url /$fn_poolmgr --method POST
|
||||
|
||||
log "Waiting for router & pools to catch up"
|
||||
sleep 5
|
||||
|
||||
log "Testing function"
|
||||
timeout 20 bash -c "retryPost $fn_poolmgr"
|
||||
|
||||
log "Test PASSED"
|
||||
Reference in New Issue
Block a user