github.com/cloudfoundry-attic/garden-linux@v0.333.2-candidate/metrics/metrics_test.go (about) 1 package metrics_test 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "runtime" 8 9 "github.com/cloudfoundry-incubator/garden-linux/metrics" 10 "github.com/pivotal-golang/lager/lagertest" 11 12 . "github.com/onsi/ginkgo" 13 . "github.com/onsi/gomega" 14 ) 15 16 var _ = Describe("Metrics", func() { 17 var ( 18 backingStorePath string 19 depotPath string 20 21 m metrics.Metrics 22 ) 23 24 BeforeEach(func() { 25 var err error 26 27 backingStorePath, err = ioutil.TempDir("", "backing_stores") 28 Expect(err).NotTo(HaveOccurred()) 29 Expect(ioutil.WriteFile( 30 filepath.Join(backingStorePath, "bs-1"), []byte("test"), 0660, 31 )).To(Succeed()) 32 Expect(ioutil.WriteFile( 33 filepath.Join(backingStorePath, "bs-2"), []byte("test"), 0660, 34 )).To(Succeed()) 35 36 depotPath, err = ioutil.TempDir("", "depotDirs") 37 Expect(err).NotTo(HaveOccurred()) 38 Expect(os.Mkdir(filepath.Join(depotPath, "depot-1"), 0660)).To(Succeed()) 39 Expect(os.Mkdir(filepath.Join(depotPath, "depot-2"), 0660)).To(Succeed()) 40 Expect(os.Mkdir(filepath.Join(depotPath, "depot-3"), 0660)).To(Succeed()) 41 42 Expect(err).ToNot(HaveOccurred()) 43 logger := lagertest.NewTestLogger("test") 44 m = metrics.NewMetrics(logger, backingStorePath, depotPath) 45 }) 46 47 AfterEach(func() { 48 Expect(os.RemoveAll(depotPath)).To(Succeed()) 49 Expect(os.RemoveAll(backingStorePath)).To(Succeed()) 50 }) 51 52 It("should report the number of loop devices, backing store files and depotDirs", func() { 53 Expect(m.NumCPU()).To(Equal(runtime.NumCPU())) 54 Expect(m.NumGoroutine()).To(BeNumerically("~", runtime.NumGoroutine(), 2)) 55 Expect(m.LoopDevices()).NotTo(BeNil()) 56 Expect(m.BackingStores()).To(Equal(2)) 57 Expect(m.DepotDirs()).To(Equal(3)) 58 }) 59 })