@marcel91200 / caddy Mirror · read-only / commits / fdbef2a6
Fork 0

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