all: Grand test refactor (fixes #8779, fixes #8799)

This fixes various test issues with Go 1.20.

- Most tests rewritten to use fakefs where possible
- Some tests that were already skipped, or dubious (invasive,
  unmaintainable, unclear what they even tested) have been removed
- Some actual code rewritten to better support testing in fakefs

Co-authored-by: Eric P <eric@kastelo.net>
This commit is contained in:
Jakob Borg
2023-05-09 10:01:57 +00:00
co-authored by Eric P
parent ddce692f72
commit 1103a27337
54 changed files with 1133 additions and 1594 deletions
+22 -22
View File
@@ -35,11 +35,11 @@ func TestRecvOnlyRevertDeletes(t *testing.T) {
// Create some test data
for _, dir := range []string{".stfolder", "ignDir", "unknownDir"} {
must(t, ffs.MkdirAll(dir, 0755))
must(t, ffs.MkdirAll(dir, 0o755))
}
writeFilePerm(t, ffs, "ignDir/ignFile", []byte("hello\n"), 0644)
writeFilePerm(t, ffs, "unknownDir/unknownFile", []byte("hello\n"), 0644)
writeFilePerm(t, ffs, ".stignore", []byte("ignDir\n"), 0644)
writeFilePerm(t, ffs, "ignDir/ignFile", []byte("hello\n"), 0o644)
writeFilePerm(t, ffs, "unknownDir/unknownFile", []byte("hello\n"), 0o644)
writeFilePerm(t, ffs, ".stignore", []byte("ignDir\n"), 0o644)
knownFiles := setupKnownFiles(t, ffs, []byte("hello\n"))
@@ -116,7 +116,7 @@ func TestRecvOnlyRevertNeeds(t *testing.T) {
// Create some test data
must(t, ffs.MkdirAll(".stfolder", 0755))
must(t, ffs.MkdirAll(".stfolder", 0o755))
oldData := []byte("hello\n")
knownFiles := setupKnownFiles(t, ffs, oldData)
@@ -151,7 +151,7 @@ func TestRecvOnlyRevertNeeds(t *testing.T) {
// Update the file.
newData := []byte("totally different data\n")
writeFilePerm(t, ffs, "knownDir/knownFile", newData, 0644)
writeFilePerm(t, ffs, "knownDir/knownFile", newData, 0o644)
// Rescan.
@@ -206,7 +206,7 @@ func TestRecvOnlyUndoChanges(t *testing.T) {
// Create some test data
must(t, ffs.MkdirAll(".stfolder", 0755))
must(t, ffs.MkdirAll(".stfolder", 0o755))
oldData := []byte("hello\n")
knownFiles := setupKnownFiles(t, ffs, oldData)
@@ -241,8 +241,8 @@ func TestRecvOnlyUndoChanges(t *testing.T) {
// Create a file and modify another
const file = "foo"
writeFilePerm(t, ffs, file, []byte("hello\n"), 0644)
writeFilePerm(t, ffs, "knownDir/knownFile", []byte("bye\n"), 0644)
writeFilePerm(t, ffs, file, []byte("hello\n"), 0o644)
writeFilePerm(t, ffs, "knownDir/knownFile", []byte("bye\n"), 0o644)
must(t, m.ScanFolder("ro"))
@@ -254,7 +254,7 @@ func TestRecvOnlyUndoChanges(t *testing.T) {
// Remove the file again and undo the modification
must(t, ffs.Remove(file))
writeFilePerm(t, ffs, "knownDir/knownFile", oldData, 0644)
writeFilePerm(t, ffs, "knownDir/knownFile", oldData, 0o644)
must(t, ffs.Chtimes("knownDir/knownFile", knownFiles[1].ModTime(), knownFiles[1].ModTime()))
must(t, m.ScanFolder("ro"))
@@ -276,7 +276,7 @@ func TestRecvOnlyDeletedRemoteDrop(t *testing.T) {
// Create some test data
must(t, ffs.MkdirAll(".stfolder", 0755))
must(t, ffs.MkdirAll(".stfolder", 0o755))
oldData := []byte("hello\n")
knownFiles := setupKnownFiles(t, ffs, oldData)
@@ -341,7 +341,7 @@ func TestRecvOnlyRemoteUndoChanges(t *testing.T) {
// Create some test data
must(t, ffs.MkdirAll(".stfolder", 0755))
must(t, ffs.MkdirAll(".stfolder", 0o755))
oldData := []byte("hello\n")
knownFiles := setupKnownFiles(t, ffs, oldData)
@@ -377,8 +377,8 @@ func TestRecvOnlyRemoteUndoChanges(t *testing.T) {
const file = "foo"
knownFile := filepath.Join("knownDir", "knownFile")
writeFilePerm(t, ffs, file, []byte("hello\n"), 0644)
writeFilePerm(t, ffs, knownFile, []byte("bye\n"), 0644)
writeFilePerm(t, ffs, file, []byte("hello\n"), 0o644)
writeFilePerm(t, ffs, knownFile, []byte("bye\n"), 0o644)
must(t, m.ScanFolder("ro"))
@@ -431,10 +431,10 @@ func TestRecvOnlyRevertOwnID(t *testing.T) {
// Create some test data
must(t, ffs.MkdirAll(".stfolder", 0755))
must(t, ffs.MkdirAll(".stfolder", 0o755))
data := []byte("hello\n")
name := "foo"
writeFilePerm(t, ffs, name, data, 0644)
writeFilePerm(t, ffs, name, data, 0o644)
// Make sure the file is scanned and locally changed
must(t, m.ScanFolder("ro"))
@@ -483,8 +483,8 @@ func TestRecvOnlyRevertOwnID(t *testing.T) {
func setupKnownFiles(t *testing.T, ffs fs.Filesystem, data []byte) []protocol.FileInfo {
t.Helper()
must(t, ffs.MkdirAll("knownDir", 0755))
writeFilePerm(t, ffs, "knownDir/knownFile", data, 0644)
must(t, ffs.MkdirAll("knownDir", 0o755))
writeFilePerm(t, ffs, "knownDir/knownFile", data, 0o644)
t0 := time.Now().Add(-1 * time.Minute)
must(t, ffs.Chtimes("knownDir/knownFile", t0, t0))
@@ -498,14 +498,14 @@ func setupKnownFiles(t *testing.T, ffs fs.Filesystem, data []byte) []protocol.Fi
{
Name: "knownDir",
Type: protocol.FileInfoTypeDirectory,
Permissions: 0755,
Permissions: 0o755,
Version: protocol.Vector{Counters: []protocol.Counter{{ID: 42, Value: 42}}},
Sequence: 42,
},
{
Name: "knownDir/knownFile",
Type: protocol.FileInfoTypeFile,
Permissions: 0644,
Permissions: 0o644,
Size: fi.Size(),
ModifiedS: fi.ModTime().Unix(),
ModifiedNs: int(fi.ModTime().UnixNano() % 1e9),
@@ -521,9 +521,9 @@ func setupKnownFiles(t *testing.T, ffs fs.Filesystem, data []byte) []protocol.Fi
func setupROFolder(t *testing.T) (*testModel, *receiveOnlyFolder, context.CancelFunc) {
t.Helper()
w, cancel := createTmpWrapper(defaultCfg)
w, cancel := newConfigWrapper(defaultCfg)
cfg := w.RawCopy()
fcfg := testFolderConfigFake()
fcfg := newFolderConfig()
fcfg.ID = "ro"
fcfg.Label = "ro"
fcfg.Type = config.FolderTypeReceiveOnly