Skip to content

Commit 4f3e16c

Browse files
authored
ci: set up GitHub Actions. Add a test for x-smaxage (#7)
* ci: set up GitHub Actions. Add a test for x-smaxage * bump min Go version to 1.15, because of Olric * fix: ignore Windows build * Remove useless step? * ci: enable Windows builds again * ci: disable Windows build * ci: increase golangci-lint timeout
1 parent 8c7b791 commit 4f3e16c

File tree

4 files changed

+137
-20
lines changed

4 files changed

+137
-20
lines changed

.github/workflows/ci.yml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- master
10+
11+
jobs:
12+
test:
13+
strategy:
14+
# Default is true, cancels jobs for other platforms in the matrix if one fails
15+
fail-fast: false
16+
matrix:
17+
# The Windows build currently fail because of https://github.com/golang/go/issues/40795, and because xcaddy isn't compatible with the known workaround
18+
#os: [ ubuntu-latest, macos-latest, windows-latest ]
19+
os: [ ubuntu-latest, macos-latest ]
20+
go: [ '1.15' ]
21+
22+
runs-on: ${{ matrix.os }}
23+
24+
steps:
25+
- name: Install Go
26+
uses: actions/setup-go@v2
27+
with:
28+
go-version: ${{ matrix.go }}
29+
30+
- name: Checkout code
31+
uses: actions/checkout@v2
32+
33+
- name: Print Go version and environment
34+
id: vars
35+
run: |
36+
printf "Using go at: $(which go)\n"
37+
printf "Go version: $(go version)\n"
38+
printf "\n\nGo environment:\n\n"
39+
go env
40+
printf "\n\nSystem environment:\n\n"
41+
env
42+
# Calculate the short SHA1 hash of the git commit
43+
echo "::set-output name=short_sha::$(git rev-parse --short HEAD)"
44+
echo "::set-output name=go_cache::$(go env GOCACHE)"
45+
46+
- name: Cache the build cache
47+
uses: actions/cache@v2
48+
with:
49+
path: ${{ steps.vars.outputs.go_cache }}
50+
key: ${{ runner.os }}-${{ matrix.go }}-go-ci-${{ hashFiles('**/go.sum') }}
51+
restore-keys: |
52+
${{ runner.os }}-${{ matrix.go }}-go-ci
53+
54+
- name: Install xcaddy
55+
run: |
56+
go get -u github.com/caddyserver/xcaddy/cmd/xcaddy
57+
58+
- name: Build
59+
env:
60+
CGO_ENABLED: 0
61+
run: |
62+
xcaddy build
63+
64+
- name: Run tests
65+
run: |
66+
go test -v -coverprofile="cover-profile.out" -short -race ./...
67+
68+
golangci:
69+
name: Lint
70+
71+
runs-on: ubuntu-latest
72+
73+
steps:
74+
- uses: actions/checkout@v2
75+
- name: golangci-lint
76+
uses: golangci/golangci-lint-action@v2
77+
with:
78+
version: latest
79+
args: --timeout 10m

go.mod

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
module github.com/caddyserver/cache-handler
22

3-
go 1.14
3+
go 1.15
44

55
require (
66
cloud.google.com/go v0.67.0 // indirect
77
github.com/antlr/antlr4 v0.0.0-20201010232522-9e64dfc6e99f // indirect
88
github.com/armon/go-metrics v0.3.4 // indirect
9-
github.com/buraksezer/olric v0.3.0-beta.6
9+
github.com/buraksezer/olric v0.3.0-beta.7
1010
github.com/caddyserver/caddy/v2 v2.2.1
1111
github.com/dgraph-io/badger v1.6.2 // indirect
1212
github.com/dgraph-io/badger/v2 v2.2007.2 // indirect
@@ -26,21 +26,20 @@ require (
2626
github.com/manifoldco/promptui v0.8.0 // indirect
2727
github.com/marten-seemann/qtls-go1-15 v0.1.1 // indirect
2828
github.com/mattn/go-colorable v0.1.8 // indirect
29-
github.com/miekg/dns v1.1.33 // indirect
29+
github.com/miekg/dns v1.1.34 // indirect
3030
github.com/mitchellh/reflectwalk v1.0.1 // indirect
3131
github.com/pquerna/cachecontrol v0.0.0-20200921180117-858c6e7e6b7e
32-
github.com/prometheus/common v0.14.0 // indirect
33-
github.com/prometheus/procfs v0.2.0 // indirect
32+
github.com/prometheus/client_golang v1.8.0 // indirect
3433
github.com/smallstep/nosql v0.3.2 // indirect
3534
github.com/urfave/cli v1.22.4 // indirect
3635
go.step.sm/crypto v0.6.1 // indirect
3736
go.uber.org/multierr v1.6.0 // indirect
3837
go.uber.org/zap v1.16.0
39-
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee // indirect
40-
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb // indirect
41-
golang.org/x/sync v0.0.0-20201008141435-b3e1573b7520 // indirect
42-
golang.org/x/sys v0.0.0-20201014080544-cc95f250f6bc // indirect
38+
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 // indirect
39+
golang.org/x/net v0.0.0-20201020065357-d65d470038a5 // indirect
40+
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 // indirect
41+
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13 // indirect
4342
google.golang.org/appengine v1.6.7 // indirect
44-
google.golang.org/genproto v0.0.0-20201013134114-7f9ee70cb474 // indirect
43+
google.golang.org/genproto v0.0.0-20201015140912-32ed001d685c // indirect
4544
howett.net/plist v0.0.0-20200419221736-3b63eb3a43b5 // indirect
4645
)

go.sum

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ github.com/buraksezer/consistent v0.0.0-20191006190839-693edf70fd72 h1:fUmDBbSvv
133133
github.com/buraksezer/consistent v0.0.0-20191006190839-693edf70fd72/go.mod h1:OEE5igu/CDjGegM1Jn6ZMo7R6LlV/JChAkjfQQIRLpg=
134134
github.com/buraksezer/olric v0.3.0-beta.6 h1:X5AzZCSnW0BDsSw294Gc7c1laP8yzV431NFcCoJUQpg=
135135
github.com/buraksezer/olric v0.3.0-beta.6/go.mod h1:KKNx5Uqu07ZY4+IDugCuplDK5Yah6YD6ftA1wHlj+BM=
136+
github.com/buraksezer/olric v0.3.0-beta.7 h1:gUDll3EYrbuG733jD48edVwGmdpnY2Z6vru0U0fxI5Y=
137+
github.com/buraksezer/olric v0.3.0-beta.7/go.mod h1:KKNx5Uqu07ZY4+IDugCuplDK5Yah6YD6ftA1wHlj+BM=
136138
github.com/buraksezer/pool v3.0.0+incompatible h1:MXcI3YkBnElnbJ8ZPIYqa0dia3qqHDNto1E004YxseA=
137139
github.com/buraksezer/pool v3.0.0+incompatible/go.mod h1:zxtCo9iWArq14Yd5u1nvAr95d4wyp0YSkKGOF89BGr8=
138140
github.com/caddyserver/caddy/v2 v2.2.1 h1:Q62GWHMtztnvyRU+KPOpw6fNfeCD3SkwH7SfT1Tgt2c=
@@ -319,6 +321,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq
319321
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
320322
github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
321323
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
324+
github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM=
325+
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
322326
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
323327
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
324328
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
@@ -584,8 +588,8 @@ github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKju
584588
github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
585589
github.com/miekg/dns v1.1.31 h1:sJFOl9BgwbYAWOGEwr61FU28pqsBNdpRBnhGXtO06Oo=
586590
github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
587-
github.com/miekg/dns v1.1.33 h1:8KUVEKrUw2dmu1Ys0aWnkEJgoRaLAzNysfCh2KSMWiI=
588-
github.com/miekg/dns v1.1.33/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
591+
github.com/miekg/dns v1.1.34 h1:SgTzfkN+oLoIHF1bgUP+C71mzuDl3AhLApHzCCIAMWM=
592+
github.com/miekg/dns v1.1.34/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
589593
github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
590594
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
591595
github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ=
@@ -703,6 +707,8 @@ github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeD
703707
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
704708
github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA=
705709
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
710+
github.com/prometheus/client_golang v1.8.0 h1:zvJNkoCFAnYFNC24FV8nW4JdRJ3GIFcLbg65lL/JDcw=
711+
github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM=
706712
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
707713
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
708714
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@@ -971,8 +977,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
971977
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
972978
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
973979
golang.org/x/crypto v0.0.0-20201001193750-eb9a90e9f9cb/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
974-
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee h1:4yd7jl+vXjalO5ztz6Vc1VADv+S/80LGJmyl1ROJ2AI=
975-
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
980+
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 h1:pLI5jrR7OSLijeIDcmRxNmw2api+jEfxLoykJVice/E=
981+
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
976982
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
977983
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
978984
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1054,8 +1060,10 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R
10541060
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
10551061
golang.org/x/net v0.0.0-20200927032502-5d4f70055728/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
10561062
golang.org/x/net v0.0.0-20200930145003-4acb6c075d10/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
1057-
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb h1:mUVeFHoDKis5nxCAzoAi7E8Ghb86EXh/RK6wtvJIqRY=
1058-
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
1063+
golang.org/x/net v0.0.0-20201016165138-7b1cca2348c0 h1:5kGOVHlq0euqwzgTC9Vu15p6fV1Wi0ArVi8da2urnVg=
1064+
golang.org/x/net v0.0.0-20201016165138-7b1cca2348c0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
1065+
golang.org/x/net v0.0.0-20201020065357-d65d470038a5 h1:KrxvpY64uUzANd9wKWr6ZAsufiii93XnvXaeikyCJ2g=
1066+
golang.org/x/net v0.0.0-20201020065357-d65d470038a5/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
10591067
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
10601068
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
10611069
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -1082,6 +1090,8 @@ golang.org/x/sync v0.0.0-20200930132711-30421366ff76 h1:JnxiSYT3Nm0BT2a8CyvYyM6c
10821090
golang.org/x/sync v0.0.0-20200930132711-30421366ff76/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
10831091
golang.org/x/sync v0.0.0-20201008141435-b3e1573b7520 h1:Bx6FllMpG4NWDOfhMBz1VR2QYNp/SAOHPIAsaVmxfPo=
10841092
golang.org/x/sync v0.0.0-20201008141435-b3e1573b7520/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1093+
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9 h1:SQFwaSi55rU7vdNs9Yr0Z324VNlrF+0wMqRXT4St8ck=
1094+
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
10851095
golang.org/x/sys v0.0.0-20171026204733-164713f0dfce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
10861096
golang.org/x/sys v0.0.0-20180202135801-37707fdb30a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
10871097
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1142,8 +1152,11 @@ golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7w
11421152
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
11431153
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
11441154
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1145-
golang.org/x/sys v0.0.0-20201014080544-cc95f250f6bc h1:HVFDs9bKvTxP6bh1Rj9MCSo+UmafQtI8ZWDPVwVk9g4=
1146-
golang.org/x/sys v0.0.0-20201014080544-cc95f250f6bc/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1155+
golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1156+
golang.org/x/sys v0.0.0-20201018121011-98379d014ca7 h1:CNOpL+H7PSxBI7dF/EIUsfOguRSzWp6CQ91yxZE6PG4=
1157+
golang.org/x/sys v0.0.0-20201018121011-98379d014ca7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1158+
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13 h1:5jaG59Zhd+8ZXe8C+lgiAGqkOaZBruqrWclLkgAww34=
1159+
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
11471160
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
11481161
golang.org/x/text v0.0.0-20170915090833-1cbadb444a80/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
11491162
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1310,8 +1323,8 @@ google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6D
13101323
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
13111324
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
13121325
google.golang.org/genproto v0.0.0-20200929141702-51c3e5b607fe/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
1313-
google.golang.org/genproto v0.0.0-20201013134114-7f9ee70cb474 h1:TbNifhX2UFPFG5PL1RUfAajMT29pJ1hq6FME8V8ZdgE=
1314-
google.golang.org/genproto v0.0.0-20201013134114-7f9ee70cb474/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
1326+
google.golang.org/genproto v0.0.0-20201015140912-32ed001d685c h1:FM0/YezufKHjM3Y9gndHmhytJuCHW0bExs92Pu3LTQ0=
1327+
google.golang.org/genproto v0.0.0-20201015140912-32ed001d685c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
13151328
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
13161329
google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=
13171330
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=

httpcache_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,32 @@ func TestMaxAge(t *testing.T) {
3232
}
3333
}
3434

35+
func TestSMaxAge(t *testing.T) {
36+
tester := caddytest.NewTester(t)
37+
tester.InitServer(`
38+
{
39+
http_port 9080
40+
https_port 9443
41+
}
42+
localhost:9080 {
43+
route /cache-s-maxage {
44+
cache
45+
header Cache-Control "s-maxage=5"
46+
respond "Hello, s-maxage!"
47+
}
48+
}`, "caddyfile")
49+
50+
resp1, _ := tester.AssertGetResponse(`http://localhost:9080/cache-s-maxage`, 200, "Hello, s-maxage!")
51+
if resp1.Header.Get("Cache-Status") != "Caddy; fwd=uri-miss; stored" {
52+
t.Errorf("unexpected Cache-Status header %v", resp1.Header.Get("Cache-Status"))
53+
}
54+
55+
resp2, _ := tester.AssertGetResponse(`http://localhost:9080/cache-s-maxage`, 200, "Hello, s-maxage!")
56+
if resp2.Header.Get("Cache-Status") != "Caddy; hit" {
57+
t.Errorf("unexpected Cache-Status header %v", resp2.Header.Get("Cache-Status"))
58+
}
59+
}
60+
3561
func TestOlricConfig(t *testing.T) {
3662
tester := caddytest.NewTester(t)
3763
tester.InitServer(`

0 commit comments

Comments
 (0)