Browse Source

Merge pull request #28264 from dmcgowan/fix-overlay2-naivediff-unittest

Skip overlay2 diff tests when using naivediff
Vincent Demeester 8 năm trước cách đây
mục cha
commit
f3f9b3dac9

+ 1 - 1
daemon/graphdriver/overlay2/overlay.go

@@ -608,7 +608,7 @@ func (d *Driver) ApplyDiff(id string, parent string, diff io.Reader) (size int64
 		return 0, err
 		return 0, err
 	}
 	}
 
 
-	return d.DiffSize(id, parent)
+	return directory.Size(applyDir)
 }
 }
 
 
 func (d *Driver) getDiffPath(id string) string {
 func (d *Driver) getDiffPath(id string) string {

+ 15 - 0
daemon/graphdriver/overlay2/overlay_test.go

@@ -3,6 +3,7 @@
 package overlay2
 package overlay2
 
 
 import (
 import (
+	"io/ioutil"
 	"os"
 	"os"
 	"syscall"
 	"syscall"
 	"testing"
 	"testing"
@@ -33,6 +34,18 @@ func cdMountFrom(dir, device, target, mType, label string) error {
 	return syscall.Mount(device, target, mType, 0, label)
 	return syscall.Mount(device, target, mType, 0, label)
 }
 }
 
 
+func skipIfNaive(t *testing.T) {
+	td, err := ioutil.TempDir("", "naive-check-")
+	if err != nil {
+		t.Fatalf("Failed to create temp dir: %v", err)
+	}
+	defer os.RemoveAll(td)
+
+	if useNaiveDiff(td) {
+		t.Skipf("Cannot run test with naive diff")
+	}
+}
+
 // This avoids creating a new driver for each test if all tests are run
 // This avoids creating a new driver for each test if all tests are run
 // Make sure to put new tests between TestOverlaySetup and TestOverlayTeardown
 // Make sure to put new tests between TestOverlaySetup and TestOverlayTeardown
 func TestOverlaySetup(t *testing.T) {
 func TestOverlaySetup(t *testing.T) {
@@ -56,10 +69,12 @@ func TestOverlay128LayerRead(t *testing.T) {
 }
 }
 
 
 func TestOverlayDiffApply10Files(t *testing.T) {
 func TestOverlayDiffApply10Files(t *testing.T) {
+	skipIfNaive(t)
 	graphtest.DriverTestDiffApply(t, 10, driverName)
 	graphtest.DriverTestDiffApply(t, 10, driverName)
 }
 }
 
 
 func TestOverlayChanges(t *testing.T) {
 func TestOverlayChanges(t *testing.T) {
+	skipIfNaive(t)
 	graphtest.DriverTestChanges(t, driverName)
 	graphtest.DriverTestChanges(t, driverName)
 }
 }