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  })