github.com/cloudfoundry-attic/garden-linux@v0.333.2-candidate/metrics/debug_test.go (about) 1 package metrics_test 2 3 import ( 4 "expvar" 5 "net/http" 6 "os" 7 8 "github.com/cloudfoundry-incubator/garden-linux/metrics" 9 "github.com/cloudfoundry-incubator/garden-linux/metrics/fakes" 10 "github.com/pivotal-golang/lager" 11 "github.com/tedsuo/ifrit" 12 13 . "github.com/onsi/ginkgo" 14 . "github.com/onsi/gomega" 15 ) 16 17 var _ = Describe("Debug", func() { 18 var ( 19 serverProc ifrit.Process 20 fakeMetrics *fakes.FakeMetrics 21 ) 22 23 BeforeEach(func() { 24 var err error 25 26 fakeMetrics = new(fakes.FakeMetrics) 27 fakeMetrics.NumCPUReturns(11) 28 fakeMetrics.NumGoroutineReturns(888) 29 fakeMetrics.LoopDevicesReturns(33) 30 fakeMetrics.BackingStoresReturns(12) 31 fakeMetrics.DepotDirsReturns(3) 32 33 sink := lager.NewReconfigurableSink(lager.NewWriterSink(GinkgoWriter, lager.DEBUG), lager.DEBUG) 34 serverProc, err = metrics.StartDebugServer("127.0.0.1:5123", sink, fakeMetrics) 35 Expect(err).ToNot(HaveOccurred()) 36 }) 37 38 AfterEach(func() { 39 serverProc.Signal(os.Kill) 40 }) 41 42 It("should report the number of loop devices, backing store files and depotDirs", func() { 43 resp, err := http.Get("http://127.0.0.1:5123/debug/vars") 44 Expect(err).ToNot(HaveOccurred()) 45 46 defer resp.Body.Close() 47 Expect(resp.StatusCode).To(Equal(http.StatusOK)) 48 49 Expect(expvar.Get("loopDevices").String()).To(Equal("33")) 50 Expect(expvar.Get("backingStores").String()).To(Equal("12")) 51 Expect(expvar.Get("depotDirs").String()).To(Equal("3")) 52 Expect(expvar.Get("numCPUS").String()).To(Equal("11")) 53 Expect(expvar.Get("numGoRoutines").String()).To(Equal("888")) 54 }) 55 })