1// +build linux
2
3package fuseoverlayfs // import "github.com/docker/docker/daemon/graphdriver/fuse-overlayfs"
4
5import (
6	"testing"
7
8	"github.com/docker/docker/daemon/graphdriver"
9	"github.com/docker/docker/daemon/graphdriver/graphtest"
10	"github.com/docker/docker/pkg/archive"
11	"github.com/docker/docker/pkg/reexec"
12)
13
14func init() {
15	// Do not sure chroot to speed run time and allow archive
16	// errors or hangs to be debugged directly from the test process.
17	untar = archive.UntarUncompressed
18	graphdriver.ApplyUncompressedLayer = archive.ApplyUncompressedLayer
19
20	reexec.Init()
21}
22
23// This avoids creating a new driver for each test if all tests are run
24// Make sure to put new tests between TestFUSEOverlayFSSetup and TestFUSEOverlayFSTeardown
25func TestFUSEOverlayFSSetup(t *testing.T) {
26	graphtest.GetDriver(t, driverName)
27}
28
29func TestFUSEOverlayFSCreateEmpty(t *testing.T) {
30	graphtest.DriverTestCreateEmpty(t, driverName)
31}
32
33func TestFUSEOverlayFSCreateBase(t *testing.T) {
34	graphtest.DriverTestCreateBase(t, driverName)
35}
36
37func TestFUSEOverlayFSCreateSnap(t *testing.T) {
38	graphtest.DriverTestCreateSnap(t, driverName)
39}
40
41func TestFUSEOverlayFS128LayerRead(t *testing.T) {
42	graphtest.DriverTestDeepLayerRead(t, 128, driverName)
43}
44
45func TestFUSEOverlayFSTeardown(t *testing.T) {
46	graphtest.PutDriver(t)
47}
48
49// Benchmarks should always setup new driver
50
51func BenchmarkExists(b *testing.B) {
52	graphtest.DriverBenchExists(b, driverName)
53}
54
55func BenchmarkGetEmpty(b *testing.B) {
56	graphtest.DriverBenchGetEmpty(b, driverName)
57}
58
59func BenchmarkDiffBase(b *testing.B) {
60	graphtest.DriverBenchDiffBase(b, driverName)
61}
62
63func BenchmarkDiffSmallUpper(b *testing.B) {
64	graphtest.DriverBenchDiffN(b, 10, 10, driverName)
65}
66
67func BenchmarkDiff10KFileUpper(b *testing.B) {
68	graphtest.DriverBenchDiffN(b, 10, 10000, driverName)
69}
70
71func BenchmarkDiff10KFilesBottom(b *testing.B) {
72	graphtest.DriverBenchDiffN(b, 10000, 10, driverName)
73}
74
75func BenchmarkDiffApply100(b *testing.B) {
76	graphtest.DriverBenchDiffApplyN(b, 100, driverName)
77}
78
79func BenchmarkDiff20Layers(b *testing.B) {
80	graphtest.DriverBenchDeepLayerDiff(b, 20, driverName)
81}
82
83func BenchmarkRead20Layers(b *testing.B) {
84	graphtest.DriverBenchDeepLayerRead(b, 20, driverName)
85}
86