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