diff options
author | Y.Horie <u5.horie@gmail.com> | 2023-01-22 02:22:36 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-21 10:22:36 -0700 |
commit | d6d7511699f6a35e3246918023af5ba3bc2cbc67 (patch) | |
tree | e66396854c444346989408fafd73a27b6f2f38e2 /caddyconfig/caddyfile/parse_test.go | |
parent | 8d6870fd068aa3ea472a46f34d219f41703e2ddb (diff) |
httpcaddyfile: Warn on importing empty file; skip dotfiles (#5320)
* httpcaddyfile: Change the parse rules when empty file or dotfile with a glob.
* Fixes #5295
* Empty file should just log a warning, and result in no tokens.
* The last segment of the path is '*', it should skip any dotfiles.
* The last segment of the path is '.*', it should read all dotfiles in a dir.
* httpcaddyfile: Regard empty files as import files which include only white space.
Diffstat (limited to 'caddyconfig/caddyfile/parse_test.go')
-rw-r--r-- | caddyconfig/caddyfile/parse_test.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/caddyconfig/caddyfile/parse_test.go b/caddyconfig/caddyfile/parse_test.go index e3eff56..4d18cc4 100644 --- a/caddyconfig/caddyfile/parse_test.go +++ b/caddyconfig/caddyfile/parse_test.go @@ -187,6 +187,23 @@ func TestParseOneAndImport(t *testing.T) { {`import testdata/not_found.txt`, true, []string{}, []int{}}, + // empty file should just log a warning, and result in no tokens + {`import testdata/empty.txt`, false, []string{}, []int{}}, + + {`import testdata/only_white_space.txt`, false, []string{}, []int{}}, + + // import path/to/dir/* should skip any files that start with a . when iterating over them. + {`localhost + dir1 arg1 + import testdata/glob/*`, false, []string{ + "localhost", + }, []int{2, 3, 1}}, + + // import path/to/dir/.* should continue to read all dotfiles in a dir. + {`import testdata/glob/.*`, false, []string{ + "host1", + }, []int{1, 2}}, + {`""`, false, []string{}, []int{}}, {``, false, []string{}, []int{}}, |