summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/fileserver/browse_test.go
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2021-06-16 14:28:34 -0600
committerMatthew Holt <mholt@users.noreply.github.com>2021-06-16 14:28:34 -0600
commite8ae80adca5db7102e646954fcc53827732ceb83 (patch)
tree8c41b80806dee6ffc1a84bfca3d57e576add0d22 /modules/caddyhttp/fileserver/browse_test.go
parent32c284b54a77b6c4d3b38485ac2b6484c783b825 (diff)
fileserver: Don't persist parsed template (fix #4202)
Templates are parsed at request-time (like they are in the templates middleware) to allow live changes to the template while the server is running. Fixes race condition. Also refactored use of a buffer so a buffer put back in the pool will not continue to be used (written to client) in the meantime. A couple of benchmarks removed due to refactor, which is fine, since we know pooling helps here.
Diffstat (limited to 'modules/caddyhttp/fileserver/browse_test.go')
-rw-r--r--modules/caddyhttp/fileserver/browse_test.go68
1 files changed, 0 insertions, 68 deletions
diff --git a/modules/caddyhttp/fileserver/browse_test.go b/modules/caddyhttp/fileserver/browse_test.go
deleted file mode 100644
index 30862fa..0000000
--- a/modules/caddyhttp/fileserver/browse_test.go
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2015 Matthew Holt and The Caddy Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package fileserver
-
-import (
- "testing"
- "text/template"
-)
-
-func BenchmarkBrowseWriteJSON(b *testing.B) {
- fsrv := new(FileServer)
- listing := browseTemplateContext{
- Name: "test",
- Path: "test",
- CanGoUp: false,
- Items: make([]fileInfo, 100),
- NumDirs: 42,
- NumFiles: 420,
- Sort: "",
- Order: "",
- Limit: 42,
- }
- b.ResetTimer()
-
- for n := 0; n < b.N; n++ {
- fsrv.browseWriteJSON(listing)
- }
-}
-
-func BenchmarkBrowseWriteHTML(b *testing.B) {
- fsrv := new(FileServer)
- fsrv.Browse = &Browse{
- TemplateFile: "",
- template: template.New("test"),
- }
- listing := browseTemplateContext{
- Name: "test",
- Path: "test",
- CanGoUp: false,
- Items: make([]fileInfo, 100),
- NumDirs: 42,
- NumFiles: 420,
- Sort: "",
- Order: "",
- Limit: 42,
- }
- tplCtx := &templateContext{
- browseTemplateContext: listing,
- }
- fsrv.makeBrowseTemplate(tplCtx)
- b.ResetTimer()
-
- for n := 0; n < b.N; n++ {
- fsrv.browseWriteHTML(tplCtx)
- }
-}