summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorbep <bjorn.erik.pedersen@gmail.com>2015-06-03 18:54:30 +0200
committerbep <bjorn.erik.pedersen@gmail.com>2015-06-03 18:54:15 +0200
commitbeeae6ab69b0cbb4daba7a1044308bd157df77ab (patch)
tree410482d3812a80e56d486b6c8b07ef05fb954a6c /source
parentbeaa1b3aad578ebbbdf426321ed1758eb1068946 (diff)
Add some tests for IgnoreFiles
And log error on invalid regexp. See #1189
Diffstat (limited to 'source')
-rw-r--r--source/content_directory_test.go40
-rw-r--r--source/filesystem.go7
2 files changed, 31 insertions, 16 deletions
diff --git a/source/content_directory_test.go b/source/content_directory_test.go
index 8f0b21edf..3f1369c33 100644
--- a/source/content_directory_test.go
+++ b/source/content_directory_test.go
@@ -1,29 +1,41 @@
package source
import (
+ "github.com/spf13/viper"
"testing"
)
func TestIgnoreDotFilesAndDirectories(t *testing.T) {
+ viper.Reset()
+ defer viper.Reset()
+
tests := []struct {
- path string
- ignore bool
+ path string
+ ignore bool
+ ignoreFilesRegexpes interface{}
}{
- {".foobar/", true},
- {"foobar/.barfoo/", true},
- {"barfoo.md", false},
- {"foobar/barfoo.md", false},
- {"foobar/.barfoo.md", true},
- {".barfoo.md", true},
- {".md", true},
- {"", true},
- {"foobar/barfoo.md~", true},
- {".foobar/barfoo.md~", true},
- {"foobar~/barfoo.md", false},
- {"foobar/bar~foo.md", false},
+ {".foobar/", true, nil},
+ {"foobar/.barfoo/", true, nil},
+ {"barfoo.md", false, nil},
+ {"foobar/barfoo.md", false, nil},
+ {"foobar/.barfoo.md", true, nil},
+ {".barfoo.md", true, nil},
+ {".md", true, nil},
+ {"", true, nil},
+ {"foobar/barfoo.md~", true, nil},
+ {".foobar/barfoo.md~", true, nil},
+ {"foobar~/barfoo.md", false, nil},
+ {"foobar/bar~foo.md", false, nil},
+ {"foobar/foo.md", true, []string{"\\.md$", "\\.boo$"}},
+ {"foobar/foo.html", false, []string{"\\.md$", "\\.boo$"}},
+ {"foobar/foo.md", true, []string{"^foo"}},
+ {"foobar/foo.md", false, []string{"*", "\\.md$", "\\.boo$"}},
}
for _, test := range tests {
+
+ viper.Set("ignoreFiles", test.ignoreFilesRegexpes)
+
if ignored := isNonProcessablePath(test.path); test.ignore != ignored {
t.Errorf("File not ignored. Expected: %t, got: %t", test.ignore, ignored)
}
diff --git a/source/filesystem.go b/source/filesystem.go
index 7242d1dfc..7b7ebb6b7 100644
--- a/source/filesystem.go
+++ b/source/filesystem.go
@@ -151,8 +151,11 @@ func isNonProcessablePath(filePath string) bool {
ignoreFiles := viper.GetStringSlice("IgnoreFiles")
if len(ignoreFiles) > 0 {
for _, ignorePattern := range ignoreFiles {
- match, _ := regexp.MatchString(ignorePattern, filePath)
- if match {
+ match, err := regexp.MatchString(ignorePattern, filePath)
+ if err != nil {
+ helpers.DistinctErrorLog.Printf("Invalid regexp '%s' in ignoreFiles: %s", ignorePattern, err)
+ return false
+ } else if match {
return true
}
}