Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 11, 12:15 UTC
logging: add regression coverage for rotated file mode (#7620)
Zen Dodd committed
Apr 26, 2026 at 23:30 UTC
fdbef2a6ef698efe414076836b631daf8f791111
1 file changed
+41
modules/logging/filewriter_test.go
+41
@@ -174,6 +174,47 @@ func TestFileRotationPreserveMode(t *testing.T) {
174
}
175
}
176
177
+func TestFileRotationPreserveModeWithUmask(t *testing.T) {
178
+ m := syscall.Umask(0o022)
179
+ defer syscall.Umask(m)
180
+
181
+ dir, err := os.MkdirTemp("", "caddytest")
182
+ if err != nil {
183
+ t.Fatalf("failed to create tempdir: %v", err)
184
+ }
185
+ defer os.RemoveAll(dir)
186
+
187
+ fpath := path.Join(dir, "test.log")
188
+
189
+ roll := true
190
+ mode := fileMode(0o660)
191
+ fw := FileWriter{
192
+ Filename: fpath,
193
+ Mode: mode,
194
+ Roll: &roll,
195
+ RollSizeMB: 1,
196
+ }
197
+
198
+ logger, err := fw.OpenWriter()
199
+ if err != nil {
200
+ t.Fatalf("failed to create file: %v", err)
201
+ }
202
+ defer logger.Close()
203
+
204
+ b := make([]byte, 1024*1024-1000)
205
+ logger.Write(b)
206
+ logger.Write(b[0:2000])
207
+
208
+ st, err := os.Stat(fpath)
209
+ if err != nil {
210
+ t.Fatalf("failed to check file permissions: %v", err)
211
+ }
212
+
213
+ if got := st.Mode().Perm(); got != os.FileMode(mode) {
214
+ t.Errorf("file mode after rotation is %v, want %v", got, mode)
215
+ }
216
+}
217
+
218
func TestFileModeConfig(t *testing.T) {
219
tests := []struct {
220
name string