wip: "full" finder
This commit is contained in:
@@ -6,98 +6,98 @@ import "core:testing"
|
||||
test_glob_simple :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("foo", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)foo(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)foo$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_anchored :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("foo", true)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "^foo(/.*)?$")
|
||||
testing.expect_value(t, result, "^foo$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_star :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("*.log", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)[^/]*\\.log(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)[^/]*\\.log$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_question :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("?.log", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)[^/]\\.log(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)[^/]\\.log$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_char_class :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("[abc].log", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)[abc]\\.log(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)[abc]\\.log$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_negated_class :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("[!abc].log", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)[^abc]\\.log(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)[^abc]\\.log$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_dot_escaped :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex(".env", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)\\.env(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)\\.env$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_globstar_prefix :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("**/foo", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)(.*/)?foo(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)(.*/)?foo$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_globstar_suffix :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("abc/**", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)abc/.*(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)abc/.*$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_globstar_middle :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("foo/**/bar", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)foo/(.*/)?bar(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)foo/(.*/)?bar$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_backslash_escape :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("\\!foo", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)!foo(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)!foo$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_hash_escaped :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("#foo", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)\\#foo(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)\\#foo$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_hash_in_pattern :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("#*#", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)\\#[^/]*\\#(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)\\#[^/]*\\#$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_glob_empty :: proc(t: ^testing.T) {
|
||||
result := glob_to_regex("", false)
|
||||
defer delete(result)
|
||||
testing.expect_value(t, result, "(^|/)(/.*)?$")
|
||||
testing.expect_value(t, result, "(^|/)$")
|
||||
}
|
||||
|
||||
@(test)
|
||||
@@ -190,6 +190,18 @@ test_is_ignored_globstar :: proc(t: ^testing.T) {
|
||||
testing.expect_value(t, is_ignored(&gi, "foo/bar/cache", false), true)
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_star_negation_subpath :: proc(t: ^testing.T) {
|
||||
gi := parse("*\n!public/\n")
|
||||
defer destroy(&gi)
|
||||
|
||||
// public dir itself is un-ignored
|
||||
testing.expect_value(t, is_ignored(&gi, "public", true), false)
|
||||
// children of public/ should still be ignored by *
|
||||
testing.expect_value(t, is_ignored(&gi, "public/uuid-dir", true), true)
|
||||
testing.expect_value(t, is_ignored(&gi, "public/uuid-dir/file.txt", false), true)
|
||||
}
|
||||
|
||||
@(test)
|
||||
test_is_ignored_hash_pattern :: proc(t: ^testing.T) {
|
||||
gi := parse("\\#*\\#\n")
|
||||
|
||||
Reference in New Issue
Block a user