From 79cc72183e87045a4c3f3fc1ec370f0fe87b393e Mon Sep 17 00:00:00 2001 From: Winfried Plappert Date: Thu, 20 Feb 2025 13:20:16 +0000 Subject: [PATCH] rewrite - have more tests --- cmd/restic/cmd_rewrite_integration_test.go | 34 ++++++++++++++++++++-- internal/walker/rewriter_test.go | 2 +- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/cmd/restic/cmd_rewrite_integration_test.go b/cmd/restic/cmd_rewrite_integration_test.go index 2db69f693..f839d0c00 100644 --- a/cmd/restic/cmd_rewrite_integration_test.go +++ b/cmd/restic/cmd_rewrite_integration_test.go @@ -219,10 +219,10 @@ func TestRewriteEmptyDirectory(t *testing.T) { createBasicRewriteRepo(t, env) snapshots := testListSnapshots(t, env.gopts, 1) - // restic rewrite -i JohannWolfgangGoethe --forget + // restic rewrite -i empty-directory --forget rtest.OK(t, runRewrite(context.TODO(), RewriteOptions{ Forget: true, - IncludePatternOptions: filter.IncludePatternOptions{Includes: []string{"JohannWolfgangGoethe"}}}, + IncludePatternOptions: filter.IncludePatternOptions{Includes: []string{"empty-directory"}}}, env.gopts, []string{snapshots[0].Str()})) newSnapshots := testListSnapshots(t, env.gopts, 1) @@ -272,3 +272,33 @@ func TestRewriteConflictingOptions(t *testing.T) { }, env.gopts, []string{"latest"}) rtest.Assert(t, err != nil, "You cannot specify include or exclude options together with --snapshot-summary!") } + +func TestRewriteIncludeNothing(t *testing.T) { + env, cleanup := withTestEnvironment(t) + defer cleanup() + createBasicRewriteRepo(t, env) + testListSnapshots(t, env.gopts, 1) + + // restic rewrite latest -i nothing-whatsoever --forget + rtest.OK(t, runRewrite(context.TODO(), RewriteOptions{ + Forget: true, + IncludePatternOptions: filter.IncludePatternOptions{Includes: []string{"nothing-whatsoever"}}}, + env.gopts, + []string{"latest"})) + testListSnapshots(t, env.gopts, 1) +} + +func TestRewriteExcludeNothing(t *testing.T) { + env, cleanup := withTestEnvironment(t) + defer cleanup() + createBasicRewriteRepo(t, env) + testListSnapshots(t, env.gopts, 1) + + // restic rewrite latest -e nothing-whatsoever --forget + rtest.OK(t, runRewrite(context.TODO(), RewriteOptions{ + Forget: true, + ExcludePatternOptions: filter.ExcludePatternOptions{Excludes: []string{"nothing-whatsoever"}}}, + env.gopts, + []string{"latest"})) + testListSnapshots(t, env.gopts, 1) +} diff --git a/internal/walker/rewriter_test.go b/internal/walker/rewriter_test.go index cc5ebd4a4..77203ce6d 100644 --- a/internal/walker/rewriter_test.go +++ b/internal/walker/rewriter_test.go @@ -334,7 +334,7 @@ func TestSnapshotSizeQuery(t *testing.T) { } return node } - rewriter, querySize := NewSnapshotSizeRewriter(rewriteNode, false) + rewriter, querySize := NewSnapshotSizeRewriter(rewriteNode, func(_ string) bool { return true }) newRoot, err := rewriter.RewriteTree(ctx, modrepo, "/", root) if err != nil { t.Error(err)