|
@@ -1,21 +1,30 @@
|
|
|
package fs
|
|
package fs
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
|
+ "io/ioutil"
|
|
|
|
|
+ "os"
|
|
|
"os/exec"
|
|
"os/exec"
|
|
|
"strings"
|
|
"strings"
|
|
|
"testing"
|
|
"testing"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
func TestSetNOCOW(t *testing.T) {
|
|
func TestSetNOCOW(t *testing.T) {
|
|
|
- if IsBtrfs("/") {
|
|
|
|
|
- SetNOCOW("/")
|
|
|
|
|
- cmd := exec.Command("lsattr", "/")
|
|
|
|
|
|
|
+ f, err := ioutil.TempFile(".", "etcdtest")
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatal("Failed creating temp file")
|
|
|
|
|
+ }
|
|
|
|
|
+ f.Close()
|
|
|
|
|
+ defer os.Remove(f.Name())
|
|
|
|
|
+
|
|
|
|
|
+ if IsBtrfs(f.Name()) {
|
|
|
|
|
+ SetNOCOW(f.Name())
|
|
|
|
|
+ cmd := exec.Command("lsattr", f.Name())
|
|
|
out, err := cmd.Output()
|
|
out, err := cmd.Output()
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
t.Fatal("Failed executing lsattr")
|
|
t.Fatal("Failed executing lsattr")
|
|
|
}
|
|
}
|
|
|
- if strings.Contains(string(out), "---------------C") {
|
|
|
|
|
- t.Fatal("Failed setting NOCOW:\n", out)
|
|
|
|
|
|
|
+ if !strings.Contains(string(out), "---------------C") {
|
|
|
|
|
+ t.Fatal("Failed setting NOCOW:\n", string(out))
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|