From cb49c577aa7f1b88f2b65568ac2edd6cc672bd7c Mon Sep 17 00:00:00 2001 From: Daniel Langesten Date: Wed, 25 Mar 2015 13:06:40 +0100 Subject: fixed so that the test waits for it to be the start of an interval to better simulate the actual pmacct print --- flow-cleaner_test.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/flow-cleaner_test.go b/flow-cleaner_test.go index 0c01c1c..a8f9f55 100644 --- a/flow-cleaner_test.go +++ b/flow-cleaner_test.go @@ -3,6 +3,7 @@ package main import ( "bufio" "database/sql" + "fmt" _ "github.com/go-sql-driver/mysql" "io" "os" @@ -33,10 +34,24 @@ func testProcessFromStdin(t *testing.T, cfg *Config) { stdin := make(chan []byte) go func() { + min := time.Now().Minute() + binStart := ((min + 5) / 5) * 5 // Set it to the next interval + wait := (binStart - min) % 5 + dur, err := time.ParseDuration(fmt.Sprintf("%dm", wait)) + if err != nil { + t.Fatal(err) + } + fmt.Println("== Waiting for alignment of timebin before testing ==") + fmt.Println(fmt.Sprintf("== Will start in %d minute(s) ==", wait)) + time.Sleep(dur) + fmt.Println("== Now starting to test ==") + for i := 0; i < 3; i++ { fakeStdin(t, stdin) - if i < 2 { - time.Sleep(3 * time.Minute) + if i < 1 { + fmt.Println("== Now waiting for next time bin ==") + time.Sleep(5 * time.Minute) + fmt.Println("== Now continuing testing ==") } } close(stdin) @@ -48,6 +63,7 @@ func testProcessFromStdin(t *testing.T, cfg *Config) { t.Fatal(err) } } + func fakeStdin(t *testing.T, wr chan<- []byte) { file, err := os.Open("testdata/jsoninput") if err != nil { -- cgit v1.1