Skip to content

Commit eb16492

Browse files
committed
Refactor loseup test
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
1 parent c5fa029 commit eb16492

File tree

2 files changed

+45
-41
lines changed

2 files changed

+45
-41
lines changed

mount/losetup_linux.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ func setupLoopDev(backingFile, loopDev string, param LoopParams) error {
143143
//
144144
// Upon success, the file handle to the loop device is returned.
145145
func setupLoop(backingFile string, param LoopParams) (string, error) {
146-
for retry := 1; retry < 200; retry++ {
146+
for retry := 1; retry < 100; retry++ {
147147
num, err := getFreeLoopDev()
148148
if err != nil {
149149
return "", err

mount/losetup_linux_test.go

Lines changed: 44 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -26,85 +26,89 @@ import (
2626
"github.com/containerd/continuity/testutil"
2727
)
2828

29-
func TestSetupLoop(t *testing.T) {
30-
testutil.RequiresRoot(t)
31-
const randomdata = "randomdata"
29+
var randomData = []byte("randomdata")
3230

33-
/* Non-existing loop */
34-
backingFile := "setup-loop-test-no-such-file"
35-
_, err := setupLoop(backingFile, LoopParams{})
36-
if err == nil {
37-
t.Fatalf("setupLoop with non-existing file should fail")
38-
}
31+
func createTempFile(t *testing.T) string {
32+
t.Helper()
3933

4034
f, err := ioutil.TempFile("", "losetup")
4135
if err != nil {
4236
t.Fatal(err)
4337
}
38+
defer f.Close()
39+
4440
if err = f.Truncate(512); err != nil {
4541
t.Fatal(err)
4642
}
47-
backingFile = f.Name()
48-
f.Close()
43+
44+
return f.Name()
45+
}
46+
47+
func TestNonExistingLoop(t *testing.T) {
48+
testutil.RequiresRoot(t)
49+
50+
backingFile := "setup-loop-test-no-such-file"
51+
_, err := setupLoop(backingFile, LoopParams{})
52+
if err == nil {
53+
t.Fatalf("setupLoop with non-existing file should fail")
54+
}
55+
}
56+
57+
func TestRoLoop(t *testing.T) {
58+
testutil.RequiresRoot(t)
59+
60+
backingFile := createTempFile(t)
4961
defer func() {
5062
if err := os.Remove(backingFile); err != nil {
5163
t.Fatal(err)
5264
}
5365
}()
5466

55-
/* RO loop */
5667
path, err := setupLoop(backingFile, LoopParams{Readonly: true, Autoclear: true})
5768
if err != nil {
5869
t.Fatal(err)
5970
}
60-
ff, err := os.OpenFile(path, os.O_RDWR, 0)
61-
if err != nil {
62-
t.Fatal(err)
63-
}
64-
if _, err = ff.Write([]byte(randomdata)); err == nil {
71+
72+
if err := ioutil.WriteFile(path, randomData, os.ModePerm); err == nil {
6573
t.Fatalf("writing to readonly loop device should fail")
6674
}
67-
if err = ff.Close(); err != nil {
68-
t.Fatal(err)
69-
}
75+
}
7076

71-
/* RW loop */
72-
path, err = setupLoop(backingFile, LoopParams{Autoclear: true})
73-
if err != nil {
74-
t.Fatal(err)
75-
}
76-
ff, err = os.OpenFile(path, os.O_RDWR, 0)
77+
func TestRwLoop(t *testing.T) {
78+
testutil.RequiresRoot(t)
79+
80+
backingFile := createTempFile(t)
81+
defer func() {
82+
if err := os.Remove(backingFile); err != nil {
83+
t.Fatal(err)
84+
}
85+
}()
86+
87+
path, err := setupLoop(backingFile, LoopParams{Autoclear: true})
7788
if err != nil {
7889
t.Fatal(err)
7990
}
80-
if _, err = ff.Write([]byte(randomdata)); err != nil {
81-
t.Fatal(err)
82-
}
83-
if err = ff.Close(); err != nil {
91+
92+
if err := ioutil.WriteFile(path, randomData, os.ModePerm); err != nil {
8493
t.Fatal(err)
8594
}
8695
}
8796

8897
func TestAttachDetachLoopDevice(t *testing.T) {
8998
testutil.RequiresRoot(t)
90-
f, err := ioutil.TempFile("", "losetup")
91-
if err != nil {
92-
t.Fatal(err)
93-
}
94-
if err = f.Truncate(512); err != nil {
95-
t.Fatal(err)
96-
}
97-
f.Close()
99+
100+
path := createTempFile(t)
98101
defer func() {
99-
if err := os.Remove(f.Name()); err != nil {
102+
if err := os.Remove(path); err != nil {
100103
t.Fatal(err)
101104
}
102105
}()
103106

104-
dev, err := AttachLoopDevice(f.Name())
107+
dev, err := AttachLoopDevice(path)
105108
if err != nil {
106109
t.Fatal(err)
107110
}
111+
108112
if err = DetachLoopDevice(dev); err != nil {
109113
t.Fatal(err)
110114
}

0 commit comments

Comments
 (0)