diff --git a/Makefile b/Makefile index dd20b00..bc665ea 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,12 @@ build-docker: clean build-arch echo "# tagged container `cat .image_id` as $(IMAGE):$(TAG)" rm -vf .image_id .cacert.pem +build-testclient: + go build -o bin/testclient -i github.com/foomo/contentserver/testing/client + +build-testserver: + go build -o bin/testserver -i github.com/foomo/contentserver/testing/server + package: build pkg/build.sh @@ -46,6 +52,15 @@ test: bench: go test -run=none -bench=. ./... +run-testserver: + bin/testserver -json-file var/cse-globus-stage-b-with-main-section.json + +run-contentserver: + contentserver -var-dir var -webserver-address :9191 -address :9999 -log-level debug http://127.0.0.1:1234 + +clean-var: + rm var/contentserver-repo-2019* + # Profiling test-cpu-profile: diff --git a/contentserver.graffle b/contentserver.graffle new file mode 100644 index 0000000..75addb6 Binary files /dev/null and b/contentserver.graffle differ diff --git a/testing/client/client.go b/testing/client/client.go new file mode 100644 index 0000000..b6884a7 --- /dev/null +++ b/testing/client/client.go @@ -0,0 +1,32 @@ +package main + +import ( + "log" + "time" + + "github.com/davecgh/go-spew/spew" + "github.com/foomo/contentserver/client" +) + +func main() { + serverAdr := "http://127.0.0.1:9191/contentserver" + c, errClient := client.NewHTTPClient(serverAdr) + if errClient != nil { + log.Fatal(errClient) + } + + for i := 1; i <= 50; i++ { + go func() { + log.Println("start update") + resp, errUpdate := c.Update() + if errUpdate != nil { + spew.Dump(resp) + log.Fatal(errUpdate) + } + log.Println(i, "update done", resp) + }() + time.Sleep(5 * time.Second) + } + + log.Println("done") +} diff --git a/testing/server/server.go b/testing/server/server.go new file mode 100644 index 0000000..588c158 --- /dev/null +++ b/testing/server/server.go @@ -0,0 +1,35 @@ +package main + +import ( + "flag" + "log" + "net/http" +) + +type testServer struct { + file string +} + +func main() { + + var ( + flagJSONFile = flag.String("json-file", "", "provide a json source file") + flagAddress = flag.String("addr", ":1234", "set the webserver address") + ) + flag.Parse() + + if *flagJSONFile == "" { + log.Fatal("js source file must be provided") + } + + ts := &testServer{ + file: *flagJSONFile, + } + + log.Println("start test server at", *flagAddress, "serving file:", ts.file) + log.Fatal(http.ListenAndServe(*flagAddress, ts)) +} + +func (ts *testServer) ServeHTTP(w http.ResponseWriter, r *http.Request) { + http.ServeFile(w, r, ts.file) +}