Browse code

Devmapper: wrap calls to os/exec for easier mocking

Solomon Hykes authored on 2013/11/21 11:16:26
Showing 2 changed files
... ...
@@ -6,7 +6,6 @@ import (
6 6
 	"github.com/dotcloud/docker/utils"
7 7
 	"io"
8 8
 	"io/ioutil"
9
-	"os/exec"
10 9
 	"path"
11 10
 	"path/filepath"
12 11
 	"strconv"
... ...
@@ -223,9 +222,9 @@ func (devices *DeviceSet) activateDeviceIfNeeded(hash string) error {
223 223
 func (devices *DeviceSet) createFilesystem(info *DevInfo) error {
224 224
 	devname := info.DevName()
225 225
 
226
-	err := exec.Command("mkfs.ext4", "-E", "discard,lazy_itable_init=0,lazy_journal_init=0", devname).Run()
226
+	err := execRun("mkfs.ext4", "-E", "discard,lazy_itable_init=0,lazy_journal_init=0", devname)
227 227
 	if err != nil {
228
-		err = exec.Command("mkfs.ext4", "-E", "discard,lazy_itable_init=0", devname).Run()
228
+		err = execRun("mkfs.ext4", "-E", "discard,lazy_itable_init=0", devname)
229 229
 	}
230 230
 	if err != nil {
231 231
 		utils.Debugf("\n--->Err: %s\n", err)
... ...
@@ -2,6 +2,7 @@ package devmapper
2 2
 
3 3
 import (
4 4
 	"os"
5
+	"os/exec"
5 6
 	"syscall"
6 7
 )
7 8
 
... ...
@@ -28,6 +29,10 @@ var (
28 28
 	osRemoveAll  = os.RemoveAll
29 29
 	osRename     = os.Rename
30 30
 	osReadlink   = os.Readlink
31
+
32
+	execRun = func(name string, args ...string) error {
33
+		return exec.Command(name, args...).Run()
34
+	}
31 35
 )
32 36
 
33 37
 const (