diff --git a/internal/fingerprint/sources_checksum.go b/internal/fingerprint/sources_checksum.go index f1108e111c..3afd7b0aa6 100644 --- a/internal/fingerprint/sources_checksum.go +++ b/internal/fingerprint/sources_checksum.go @@ -119,7 +119,7 @@ func (checker *ChecksumChecker) checksumFilePath(t *ast.Task) string { return filepath.Join(checker.tempDir, "checksum", normalizeFilename(t.Name())) } -var checksumFilenameRegexp = regexp.MustCompile("[^A-z0-9]") +var checksumFilenameRegexp = regexp.MustCompile("[^[:alnum:]]") // replaces invalid characters on filenames with "-" func normalizeFilename(f string) string { diff --git a/internal/fingerprint/sources_checksum_test.go b/internal/fingerprint/sources_checksum_test.go index a2b35cd316..a8e4b253ae 100644 --- a/internal/fingerprint/sources_checksum_test.go +++ b/internal/fingerprint/sources_checksum_test.go @@ -16,6 +16,10 @@ func TestNormalizeFilename(t *testing.T) { {"foo/bar/baz", "foo-bar-baz"}, {"foo@bar/baz", "foo-bar-baz"}, {"foo1bar2baz3", "foo1bar2baz3"}, + {"foo\\bar", "foo-bar"}, + {"foo_bar", "foo-bar"}, + {"foo[bar]baz", "foo-bar-baz"}, + {"foo^bar`baz", "foo-bar-baz"}, } for _, test := range tests { assert.Equal(t, test.Out, normalizeFilename(test.In))