func TestCheck(t *testing.T) { r := NewRun(t) defer r.Finalise() check := func(i int, wantErrors int64) { fs.Debug(r.fremote, "%d: Starting check test", i) oldErrors := fs.Stats.GetErrors() err := fs.Check(r.flocal, r.fremote) gotErrors := fs.Stats.GetErrors() - oldErrors if wantErrors == 0 && err != nil { t.Errorf("%d: Got error when not expecting one: %v", i, err) } if wantErrors != 0 && err == nil { t.Errorf("%d: No error when expecting one", i) } if wantErrors != gotErrors { t.Errorf("%d: Expecting %d errors but got %d", i, wantErrors, gotErrors) } fs.Debug(r.fremote, "%d: Ending check test", i) } file1 := r.WriteBoth("rutabaga", "is tasty", t3) fstest.CheckItems(t, r.fremote, file1) fstest.CheckItems(t, r.flocal, file1) check(1, 0) file2 := r.WriteFile("potato2", "------------------------------------------------------------", t1) fstest.CheckItems(t, r.flocal, file1, file2) check(2, 1) file3 := r.WriteObject("empty space", "", t2) fstest.CheckItems(t, r.fremote, file1, file3) check(3, 2) file2r := file2 if fs.Config.SizeOnly { file2r = r.WriteObject("potato2", "--Some-Differences-But-Size-Only-Is-Enabled-----------------", t1) } else { r.WriteObject("potato2", "------------------------------------------------------------", t1) } fstest.CheckItems(t, r.fremote, file1, file2r, file3) check(4, 1) r.WriteFile("empty space", "", t2) fstest.CheckItems(t, r.flocal, file1, file2, file3) check(5, 0) }
Run: func(fdst, fsrc fs.Fs) error { return fs.Purge(fdst) }, MinArgs: 1, MaxArgs: 1, Retry: true, }, { Name: "check", ArgsHelp: "source:path dest:path", Help: ` Checks the files in the source and destination match. It compares sizes and MD5SUMs and prints a report of files which don't match. It doesn't alter the source or destination.`, Run: func(fdst, fsrc fs.Fs) error { return fs.Check(fdst, fsrc) }, MinArgs: 2, MaxArgs: 2, }, { Name: "config", Help: ` Enter an interactive configuration session.`, Run: func(fdst, fsrc fs.Fs) error { fs.EditConfig() return nil }, NoStats: true, }, {
if err != nil { log.Fatalf("Failed to purge: %v", err) } }, MinArgs: 1, MaxArgs: 1, }, { Name: "check", ArgsHelp: "source:path dest:path", Help: ` Checks the files in the source and destination match. It compares sizes and MD5SUMs and prints a report of files which don't match. It doesn't alter the source or destination.`, Run: func(fdst, fsrc fs.Fs) { err := fs.Check(fdst, fsrc) if err != nil { log.Fatalf("Failed to check: %v", err) } }, MinArgs: 2, MaxArgs: 2, }, { Name: "config", Help: ` Enter an interactive configuration session.`, Run: func(fdst, fsrc fs.Fs) { fs.EditConfig() }, NoStats: true,