mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-23 03:18:59 +00:00
Merge remote-tracking branch 'syncthing/pr/1373' into fix-1373
* syncthing/pr/1373: Alter files into directories and the other way around
This commit is contained in:
commit
af5c36d2a8
@ -91,10 +91,22 @@ func testFileTypeChange(t *testing.T) {
|
||||
|
||||
// A directory that we will replace with a file later
|
||||
|
||||
err = os.Mkdir("s1/emptyDirToReplace", 0755)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// A directory with files that we will replace with a file later
|
||||
|
||||
err = os.Mkdir("s1/dirToReplace", 0755)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fd, err = os.Create("s1/dirToReplace/emptyFile")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fd.Close()
|
||||
|
||||
// Verify that the files and directories sync to the other side
|
||||
|
||||
@ -165,15 +177,33 @@ func testFileTypeChange(t *testing.T) {
|
||||
|
||||
// Replace file with directory
|
||||
|
||||
os.RemoveAll("s1/fileToReplace")
|
||||
err = os.RemoveAll("s1/fileToReplace")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = os.Mkdir("s1/fileToReplace", 0755)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Replace directory with file
|
||||
// Replace empty directory with file
|
||||
|
||||
os.RemoveAll("s1/dirToReplace")
|
||||
err = os.RemoveAll("s1/emptyDirToReplace")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fd, err = os.Create("s1/emptyDirToReplace")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fd.Close()
|
||||
|
||||
// Clear directory and replace with file
|
||||
|
||||
err = os.RemoveAll("s1/dirToReplace")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fd, err = os.Create("s1/dirToReplace")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
27
test/util.go
27
test/util.go
@ -23,6 +23,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"math/rand"
|
||||
"os"
|
||||
@ -113,8 +114,10 @@ func alterFiles(dir string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
info, err = os.Stat(path);
|
||||
if err != nil {
|
||||
return err
|
||||
// Something we deleted while walking. Ignore.
|
||||
return nil
|
||||
}
|
||||
|
||||
if strings.HasPrefix(filepath.Base(path), "test-") {
|
||||
@ -166,6 +169,28 @@ func alterFiles(dir string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
case r < 0.3 && comps > 2 && rand.Float64() < 0.2:
|
||||
if !info.Mode().IsRegular() {
|
||||
err = removeAll(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
d1 := []byte("I used to be a dir: "+path)
|
||||
err := ioutil.WriteFile(path, d1, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
err := os.Remove(path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = os.MkdirAll(path, 0755)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
generateFiles(path, 100, 20, "../LICENSE")
|
||||
}
|
||||
case r < 0.3 && comps > 1 && (info.Mode().IsRegular() || rand.Float64() < 0.2):
|
||||
rpath := filepath.Dir(path)
|
||||
if rand.Float64() < 0.2 {
|
||||
|
Loading…
Reference in New Issue
Block a user