From 69c16b0a5d21291adcdb54c5454d5a05bbd6761d Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Sat, 11 Dec 2021 10:14:07 -0500 Subject: [PATCH] add an upload test --- Makefile | 5 ++++- tests/.gitignore | 1 + tests/dune | 11 +++++++++++ tests/upload-out.expect | 2 ++ tests/upload_chunked.sh | 13 +++++++++++++ 5 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 tests/.gitignore create mode 100644 tests/upload-out.expect create mode 100755 tests/upload_chunked.sh diff --git a/Makefile b/Makefile index 39fceab8..c586a411 100644 --- a/Makefile +++ b/Makefile @@ -5,9 +5,12 @@ all: build test build: @dune build @install -test: +test: tests/foo_50 @dune runtest --no-buffer --force +tests/foo_50: + dd if=/dev/zero of=$@ bs=1M count=50 + clean: @dune clean diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 00000000..7552a656 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1 @@ +foo_50 diff --git a/tests/dune b/tests/dune index 3303531b..6c270bbd 100644 --- a/tests/dune +++ b/tests/dune @@ -18,3 +18,14 @@ (rule (alias runtest) (action (diff sse_count.expect sse_count.out))) + +(rule + (targets upload-out) + (deps (:bin ../src/bin/http_of_dir.exe) foo_50) + (locks /port) + (action (with-stdout-to %{targets} + (run ./upload_chunked.sh %{bin})))) + +(rule + (alias runtest) + (action (diff upload-out.expect upload-out))) diff --git a/tests/upload-out.expect b/tests/upload-out.expect new file mode 100644 index 00000000..0ef0335f --- /dev/null +++ b/tests/upload-out.expect @@ -0,0 +1,2 @@ +serve directory . on http://127.0.0.1:8083 +upload successful 0 0 52428800 data diff --git a/tests/upload_chunked.sh b/tests/upload_chunked.sh new file mode 100755 index 00000000..a3d42563 --- /dev/null +++ b/tests/upload_chunked.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh + +rm data + +SERVER=$1 +"$SERVER" . -p 8083 --upload --max-upload 100000000000 & + +sleep 0.1 + +cat foo_50 | curl -N -X PUT http://localhost:8083/data --data-binary @- -H 'Transfer-Encoding: chunked' + +kill %1 +wc data