github.com/gondor/docker@v1.9.0-rc1/daemon/graphdriver/devmapper/devmapper_test.go (about) 1 // +build linux 2 3 package devmapper 4 5 import ( 6 "fmt" 7 "testing" 8 9 "github.com/docker/docker/daemon/graphdriver" 10 "github.com/docker/docker/daemon/graphdriver/graphtest" 11 ) 12 13 func init() { 14 // Reduce the size the the base fs and loopback for the tests 15 defaultDataLoopbackSize = 300 * 1024 * 1024 16 defaultMetaDataLoopbackSize = 200 * 1024 * 1024 17 defaultBaseFsSize = 300 * 1024 * 1024 18 defaultUdevSyncOverride = true 19 if err := graphtest.InitLoopbacks(); err != nil { 20 panic(err) 21 } 22 } 23 24 // This avoids creating a new driver for each test if all tests are run 25 // Make sure to put new tests between TestDevmapperSetup and TestDevmapperTeardown 26 func TestDevmapperSetup(t *testing.T) { 27 graphtest.GetDriver(t, "devicemapper") 28 } 29 30 func TestDevmapperCreateEmpty(t *testing.T) { 31 graphtest.DriverTestCreateEmpty(t, "devicemapper") 32 } 33 34 func TestDevmapperCreateBase(t *testing.T) { 35 graphtest.DriverTestCreateBase(t, "devicemapper") 36 } 37 38 func TestDevmapperCreateSnap(t *testing.T) { 39 graphtest.DriverTestCreateSnap(t, "devicemapper") 40 } 41 42 func TestDevmapperTeardown(t *testing.T) { 43 graphtest.PutDriver(t) 44 } 45 46 func TestDevmapperReduceLoopBackSize(t *testing.T) { 47 tenMB := int64(10 * 1024 * 1024) 48 testChangeLoopBackSize(t, -tenMB, defaultDataLoopbackSize, defaultMetaDataLoopbackSize) 49 } 50 51 func TestDevmapperIncreaseLoopBackSize(t *testing.T) { 52 tenMB := int64(10 * 1024 * 1024) 53 testChangeLoopBackSize(t, tenMB, defaultDataLoopbackSize+tenMB, defaultMetaDataLoopbackSize+tenMB) 54 } 55 56 func testChangeLoopBackSize(t *testing.T, delta, expectDataSize, expectMetaDataSize int64) { 57 driver := graphtest.GetDriver(t, "devicemapper").(*graphtest.Driver).Driver.(*graphdriver.NaiveDiffDriver).ProtoDriver.(*Driver) 58 defer graphtest.PutDriver(t) 59 // make sure data or metadata loopback size are the default size 60 if s := driver.DeviceSet.Status(); s.Data.Total != uint64(defaultDataLoopbackSize) || s.Metadata.Total != uint64(defaultMetaDataLoopbackSize) { 61 t.Fatalf("data or metadata loop back size is incorrect") 62 } 63 if err := driver.Cleanup(); err != nil { 64 t.Fatal(err) 65 } 66 //Reload 67 d, err := Init(driver.home, []string{ 68 fmt.Sprintf("dm.loopdatasize=%d", defaultDataLoopbackSize+delta), 69 fmt.Sprintf("dm.loopmetadatasize=%d", defaultMetaDataLoopbackSize+delta), 70 }, nil, nil) 71 if err != nil { 72 t.Fatalf("error creating devicemapper driver: %v", err) 73 } 74 driver = d.(*graphdriver.NaiveDiffDriver).ProtoDriver.(*Driver) 75 if s := driver.DeviceSet.Status(); s.Data.Total != uint64(expectDataSize) || s.Metadata.Total != uint64(expectMetaDataSize) { 76 t.Fatalf("data or metadata loop back size is incorrect") 77 } 78 if err := driver.Cleanup(); err != nil { 79 t.Fatal(err) 80 } 81 }