diff --git a/tests/robustness/multiclient_test/multiclient_test.go b/tests/robustness/multiclient_test/multiclient_test.go index 2153f3fb0..4a5de500f 100644 --- a/tests/robustness/multiclient_test/multiclient_test.go +++ b/tests/robustness/multiclient_test/multiclient_test.go @@ -51,11 +51,9 @@ func TestManySmallFiles(t *testing.T) { err := tryRestoreIntoDataDirectory(ctx, t) require.NoError(t, err) - _, err = eng.ExecAction(ctx, engine.DeleteRandomSubdirectoryActionKey, deleteDirOpts) - require.NoError(t, err) + tryDeleteAction(ctx, t, engine.DeleteRandomSubdirectoryActionKey, deleteDirOpts) - _, err = eng.ExecAction(ctx, engine.DeleteDirectoryContentsActionKey, deleteDirOpts) - require.NoError(t, err) + tryDeleteAction(ctx, t, engine.DeleteDirectoryContentsActionKey, deleteDirOpts) _, err = eng.ExecAction(ctx, engine.WriteRandomFilesActionKey, fileWriteOpts) require.NoError(t, err) @@ -132,11 +130,9 @@ func TestManySmallFilesAcrossDirecoryTree(t *testing.T) { err := tryRestoreIntoDataDirectory(ctx, t) require.NoError(t, err) - _, err = eng.ExecAction(ctx, engine.DeleteRandomSubdirectoryActionKey, deleteDirOpts) - require.NoError(t, err) + tryDeleteAction(ctx, t, engine.DeleteRandomSubdirectoryActionKey, deleteDirOpts) - _, err = eng.ExecAction(ctx, engine.DeleteDirectoryContentsActionKey, deleteDirOpts) - require.NoError(t, err) + tryDeleteAction(ctx, t, engine.DeleteDirectoryContentsActionKey, deleteDirOpts) _, err = eng.ExecAction(ctx, engine.WriteRandomFilesActionKey, fileWriteOpts) require.NoError(t, err) @@ -215,3 +211,23 @@ func tryRandomAction(ctx context.Context, t *testing.T, opts engine.ActionOpts) return err } + +// tryDeleteAction runs the given delete action, either delete-files or delete-random-subdirectory +// with options and masks no-op errors, and asserts when called for any other action. +func tryDeleteAction(ctx context.Context, t *testing.T, action engine.ActionKey, actionOpts map[string]string) { + t.Helper() + eligibleActionsList := []engine.ActionKey{ + engine.DeleteDirectoryContentsActionKey, + engine.DeleteRandomSubdirectoryActionKey, + } + require.Contains(t, eligibleActionsList, action) + + _, err := eng.ExecAction(ctx, action, actionOpts) + // Ignore the dir-not-found error, wrapped as no-op error. + if errors.Is(err, robustness.ErrNoOp) { + t.Log("Delete action resulted in no-op") + return + } + + require.NoError(t, err) +}