sync: fix one transform test error failing all the following tests

Sync refuses to delete files when the global error stats are non-zero
so a single backend error in one transform test made every following
transform test in the same test binary fail with "not deleting files
as there were IO errors". Reset the stats at the start of each test.
This commit is contained in:
Nick Craig-Wood
2026-07-20 17:21:33 +01:00
parent a4972de505
commit 4db5b91610
+23 -14
View File
@@ -26,6 +26,15 @@ import (
var debug = ``
// newTransformRun resets the global error stats, which Sync consults
// before deleting files, so that an error left over from an earlier
// test in this binary doesn't disable deletions in this one, then
// creates a new test run.
func newTransformRun(t *testing.T) *fstest.Run {
accounting.GlobalStats().ResetCounters()
return fstest.NewRun(t)
}
func TestTransform(t *testing.T) {
type args struct {
TransformOpt []string
@@ -94,7 +103,7 @@ func TestTransform(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
r := fstest.NewRun(t)
r := newTransformRun(t)
defer r.Finalise()
ctx := context.Background()
@@ -228,7 +237,7 @@ func detectEncoding(s string) string {
func TestTransformCopy(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "all,suffix_keep_extension=_somesuffix")
require.NoError(t, err)
file1 := r.WriteFile("sub dir/hello world.txt", "hello world", t1)
@@ -245,7 +254,7 @@ func TestTransformCopy(t *testing.T) {
func TestDoubleTransform(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "all,prefix=tac", "all,prefix=tic")
require.NoError(t, err)
file1 := r.WriteFile("toe/toe", "hello world", t1)
@@ -262,7 +271,7 @@ func TestDoubleTransform(t *testing.T) {
func TestFileTag(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "file,prefix=tac", "file,prefix=tic")
require.NoError(t, err)
file1 := r.WriteFile("toe/toe/toe", "hello world", t1)
@@ -279,7 +288,7 @@ func TestFileTag(t *testing.T) {
func TestNoTag(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "prefix=tac", "prefix=tic")
require.NoError(t, err)
file1 := r.WriteFile("toe/toe/toe", "hello world", t1)
@@ -296,7 +305,7 @@ func TestNoTag(t *testing.T) {
func TestDirTag(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "dir,prefix=tac", "dir,prefix=tic")
require.NoError(t, err)
r.WriteFile("toe/toe/toe.txt", "hello world", t1)
@@ -315,7 +324,7 @@ func TestDirTag(t *testing.T) {
func TestAllTag(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "all,prefix=tac", "all,prefix=tic")
require.NoError(t, err)
r.WriteFile("toe/toe/toe.txt", "hello world", t1)
@@ -336,7 +345,7 @@ func TestAllTag(t *testing.T) {
func TestRunTwice(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "dir,prefix=tac", "dir,prefix=tic")
require.NoError(t, err)
file1 := r.WriteFile("toe/toe/toe.txt", "hello world", t1)
@@ -377,7 +386,7 @@ func TestSyntax(t *testing.T) {
func TestConflicting(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "prefix=tac", "trimprefix=tac")
require.NoError(t, err)
file1 := r.WriteFile("toe/toe/toe", "hello world", t1)
@@ -395,7 +404,7 @@ func TestConflicting(t *testing.T) {
func TestMove(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "all,prefix=tac", "all,prefix=tic")
require.NoError(t, err)
r.WriteFile("toe/toe/toe.txt", "hello world", t1)
@@ -414,7 +423,7 @@ func TestMove(t *testing.T) {
func TestTransformFile(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "all,prefix=tac", "all,prefix=tic")
require.NoError(t, err)
r.WriteFile("toe/toe/toe.txt", "hello world", t1)
@@ -443,7 +452,7 @@ func TestTransformFile(t *testing.T) {
func TestManualTransformFile(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
r.Flocal.Features().DisableList([]string{"Copy", "Move"})
r.Fremote.Features().DisableList([]string{"Copy", "Move"})
@@ -476,7 +485,7 @@ func TestManualTransformFile(t *testing.T) {
func TestBase64(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "all,base64encode")
require.NoError(t, err)
file1 := r.WriteFile("toe/toe/toe.txt", "hello world", t1)
@@ -504,7 +513,7 @@ func TestBase64(t *testing.T) {
func TestError(t *testing.T) {
ctx := context.Background()
r := fstest.NewRun(t)
r := newTransformRun(t)
err := transform.SetOptions(ctx, "all,prefix=ta/c") // has illegal character
require.NoError(t, err)
file1 := r.WriteFile("toe/toe/toe", "hello world", t1)