diff --git a/metrics/monitors_test.go b/metrics/monitors_test.go new file mode 100644 index 0000000..1da9c26 --- /dev/null +++ b/metrics/monitors_test.go @@ -0,0 +1,30 @@ +package metrics + +import ( + tor2 "git.openprivacy.ca/cwtch.im/tapir/networks/tor" + "git.openprivacy.ca/openprivacy/log" + "os" + "path/filepath" + "testing" + "time" +) + +func TestMonitors(t *testing.T) { + log.SetLevel(log.LevelInfo) + os.RemoveAll("testLog") + os.Mkdir("testLog", 0700) + service := new(tor2.BaseOnionService) + mp := Monitors{} + mp.Start(service, "testLog", true) + log.Infof("sleeping for minute to give to for monitors to trigger...") + // wait a minute for it to trigger + time.Sleep(62 * time.Second) + + // it didn't segfault? that's good, did it create a log file? + if _, err := os.Stat(filepath.Join("testLog", "serverMonitorReport.txt")); err != nil { + t.Errorf("serverMonitorReport.txt not generated") + } + + mp.Stop() + os.RemoveAll("testLog") +}