Skip to content

Commit e10d519

Browse files
committed
testutil/loopback: print more debug info
Signed-off-by: Akihiro Suda <[email protected]>
1 parent bce1c3f commit e10d519

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

testutil/loopback/loopback_linux.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package loopback
2020

2121
import (
22+
"bytes"
2223
"io/ioutil"
2324
"os"
2425
"os/exec"
@@ -46,22 +47,25 @@ func New(size int64) (*Loopback, error) {
4647

4748
// create device
4849
losetup := exec.Command("losetup", "--find", "--show", file.Name())
49-
p, err := losetup.Output()
50-
if err != nil {
50+
var stdout, stderr bytes.Buffer
51+
losetup.Stdout = &stdout
52+
losetup.Stderr = &stderr
53+
if err := losetup.Run(); err != nil {
5154
os.Remove(file.Name())
52-
return nil, errors.Wrap(err, "loopback setup failed")
55+
return nil, errors.Wrapf(err, "loopback setup failed (%v): stdout=%q, stderr=%q",
56+
losetup.Args, stdout.String(), stderr.String())
5357
}
5458

55-
deviceName := strings.TrimSpace(string(p))
59+
deviceName := strings.TrimSpace(stdout.String())
5660
logrus.Debugf("Created loop device %s (using %s)", deviceName, file.Name())
5761

5862
cleanup := func() error {
5963
// detach device
6064
logrus.Debugf("Removing loop device %s", deviceName)
6165
losetup := exec.Command("losetup", "--detach", deviceName)
62-
err := losetup.Run()
63-
if err != nil {
64-
return errors.Wrapf(err, "Could not remove loop device %s", deviceName)
66+
if out, err := losetup.CombinedOutput(); err != nil {
67+
return errors.Wrapf(err, "Could not remove loop device %s (%v): %q",
68+
deviceName, losetup.Args, string(out))
6569
}
6670

6771
// remove file

0 commit comments

Comments
 (0)