From 3bce3ccd2a7544ecc4c0bb7aee3840ce29a5f016 Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Sat, 14 Feb 2015 21:46:52 -0800 Subject: [PATCH] add test harness web server * plus "make autotest" runs "make test" once first * add .hgignore --- .hgignore | 2 ++ Makefile | 2 +- src/docrawler/docrawler_test.go | 39 +++++++++++++++++++++++++++++++ src/docrawler/testsite/index.html | 0 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 .hgignore create mode 100644 src/docrawler/docrawler_test.go create mode 100644 src/docrawler/testsite/index.html diff --git a/.hgignore b/.hgignore new file mode 100644 index 0000000..a180199 --- /dev/null +++ b/.hgignore @@ -0,0 +1,2 @@ +syntax: glob +.vendor/bin \ No newline at end of file diff --git a/Makefile b/Makefile index 2dc1afd..68dd5ec 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ vet: test: go test ./src/... -autotest: +autotest: test fswatch -or ./src | xargs -n1 -I{} go test ./src/... run: build diff --git a/src/docrawler/docrawler_test.go b/src/docrawler/docrawler_test.go new file mode 100644 index 0000000..d7177c4 --- /dev/null +++ b/src/docrawler/docrawler_test.go @@ -0,0 +1,39 @@ +package main + +import ( + "net" + "net/http" + "os" + "testing" +) + +func TestMain(m *testing.M) { + // start our simple web server + l, err := net.Listen("tcp", ":8765") + if err != nil { + panic("unable to listen on port 8765") // TODO remove panic? + } + http.Handle("/", http.FileServer(http.Dir("./testsite"))) + go func() { + err = http.Serve(l, nil) + if err != nil { + panic("unable to start http server") // TODO remove panic? + } + }() + + // run tests + exitcode := m.Run() + + // tear down web server + l.Close() + + // tell OS our result + os.Exit(exitcode) +} + +func TestServerRunning(t *testing.T) { + resp, err := http.Get("http://localhost:8765/") + if resp.StatusCode != 200 || err != nil { + t.Error(err) + } +} diff --git a/src/docrawler/testsite/index.html b/src/docrawler/testsite/index.html new file mode 100644 index 0000000..e69de29