You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bn...@apache.org on 2022/03/24 20:44:24 UTC
[trafficserver-ci] branch main updated: redo cache-tests so that it publishes
This is an automated email from the ASF dual-hosted git repository.
bnolsen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/trafficserver-ci.git
The following commit(s) were added to refs/heads/main by this push:
new bec7cd0 redo cache-tests so that it publishes
new edbf108 Merge pull request #89 from traeak/cache_tests
bec7cd0 is described below
commit bec7cd0245d83147be0f29eb1217934b3673feef
Author: Brian Olsen <br...@comcast.com>
AuthorDate: Thu Mar 24 20:41:36 2022 +0000
redo cache-tests so that it publishes
---
docker/cache-tests-build/Dockerfile | 18 -
docker/cache-tests-build/docker-compose.yml | 10 -
docker/cache-tests/Dockerfile | 17 +-
docker/cache-tests/README.md | 55 ++
docker/cache-tests/docker-compose.yml | 20 +-
docker/cache-tests/results/apache.json | 646 ------------------
docker/cache-tests/results/ats-master.json | 655 ------------------
docker/cache-tests/results/chrome.json | 587 ----------------
docker/cache-tests/results/fastly.json | 835 -----------------------
docker/cache-tests/results/firefox.json | 584 ----------------
docker/cache-tests/results/index.mjs | 78 ---
docker/cache-tests/results/nginx.json | 826 -----------------------
docker/cache-tests/results/nuster.json | 922 --------------------------
docker/cache-tests/results/safari.json | 614 -----------------
docker/cache-tests/results/squid.json | 652 ------------------
docker/cache-tests/results/trafficserver.json | 670 -------------------
docker/cache-tests/results/varnish.json | 790 ----------------------
jenkins/branch/cache-tests.pipeline | 111 ++--
jenkins/branch/coverage.pipeline | 2 +-
jenkins/branch/docs.pipeline | 2 +-
jenkins/branch/in_tree.pipeline | 2 +-
jenkins/branch/os_build.pipeline | 2 +-
jenkins/branch/rat.pipeline | 2 +-
23 files changed, 152 insertions(+), 7948 deletions(-)
diff --git a/docker/cache-tests-build/Dockerfile b/docker/cache-tests-build/Dockerfile
deleted file mode 100644
index 92bb06a..0000000
--- a/docker/cache-tests-build/Dockerfile
+++ /dev/null
@@ -1,18 +0,0 @@
-FROM node:16
-EXPOSE 8000
-
-RUN apt-get update; \
- DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential llvm ccache \
- make pkgconf bison flex g++ clang gettext libc++-dev autoconf automake \
- libtool autotools-dev git distcc file wget openssl hwloc intltool-debian clang-tools-10 clang-10; \
-
- DEBIAN_FRONTEND=noninteractive apt-get -y install libssl-dev libexpat1-dev \
- libpcre3-dev libcap-dev libhwloc-dev libunwind8 libunwind-dev zlib1g-dev \
- tcl-dev tcl8.6-dev libjemalloc-dev libluajit-5.1-dev liblzma-dev \
- libhiredis-dev libbrotli-dev libncurses-dev libgeoip-dev libmagick++-dev \
- libmaxminddb-dev libcjose-dev libcjose0 libjansson-dev; \
-
- DEBIAN_FRONTEND=noninteractive apt-get autoremove; apt-get clean;
-
-RUN git clone https://github.com/http-tests/cache-tests.git
-RUN cd cache-tests && npm i
diff --git a/docker/cache-tests-build/docker-compose.yml b/docker/cache-tests-build/docker-compose.yml
deleted file mode 100644
index d310a31..0000000
--- a/docker/cache-tests-build/docker-compose.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-version: "3.4"
-services:
- cache-tests-build:
- build:
- context: .
- dockerfile: Dockerfile
- network: host
-# ports:
-# - "127.0.0.1:8000:8000"
- network_mode: host
diff --git a/docker/cache-tests/Dockerfile b/docker/cache-tests/Dockerfile
index c797be9..67fbcfb 100644
--- a/docker/cache-tests/Dockerfile
+++ b/docker/cache-tests/Dockerfile
@@ -1,6 +1,15 @@
-FROM node:16
+FROM controller.trafficserver.org/ats/debian:11
+
EXPOSE 8000
-RUN git clone https://github.com/http-tests/cache-tests.git
-RUN cd cache-tests && npm i
-CMD cd cache-tests && npm run server
+ENV DEBIAN_FRONTEND=noninteractive
+RUN apt-get update ; \
+ apt-get -y install npm curl ; \
+ apt-get autoremove ; \
+ apt-get clean ;
+
+RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
+RUN apt install -y nodejs
+COPY cache-tests /cache-tests
+RUN mkdir -p /opt/ && chmod 777 /opt/
+RUN cd /cache-tests && npm i
diff --git a/docker/cache-tests/README.md b/docker/cache-tests/README.md
new file mode 100644
index 0000000..cc37373
--- /dev/null
+++ b/docker/cache-tests/README.md
@@ -0,0 +1,55 @@
+Instructions on building and configuring cache-tests.
+
+There are 2 parts for cache-tests.
+* ATS test run on any docker jenkins build agent.
+* Publishing server that runs on the `controller`.
+
+These instructions and docker utilities exist on the `controller` in
+`/opt/cache-tests/'. There is this README, a Dockerfile and
+ docker-compose.yml files.
+
+For this to work a desired clone of the cache-tests git repo
+`https://github.com/http-tests/cache-tests.git`
+needs to reside in /opt/cache-tests/cache-tests on the `controller`.
+
+Periodically this git repo should be updated which will require rebuilding
+the cache-tests image: `controller.trafficserver.org/ats/cache-tests`
+and restarting the Publishing server.
+
+Currently the `debian:11` image from the ats docker repo is used
+as the base. On top of it is installed the npm utility which
+is used to both run the tests and also publish the results on
+port 8000 of the `controller`. The above cache-tests git repo is added
+into the docker image. Building this image *MUST* be
+done from `/opt/cache-tests` on the `controller`.
+
+The Publishing server mounts this `/opt/cache-tests/cache-tests/results`
+directory into its own copy of the cache-tests git repo and serves
+that up.
+
+In order to add or remove test run results the file
+`/opt/cache-tests/cache-tests/results/index.mjs` should be edited
+directly. When upgrading the cache-tests git repo this file
+will need to be rebased onto the updated pull.
+
+An example update run:
+
+```
+cd /opt/cache-tests
+docker-compose down server
+cd /opt/cache-tests/cache-tests
+
+# update the repo, merge the results/index.mjs changes
+git stash ; git fetch ; git pull ; git stash apply
+
+# rebuild and push cache-tests image
+cd /opt/cache-tests
+docker-compose build builder
+docker tag <hash> controller.trafficserver.org:5000/ats/cache-tests
+docker push controller.trafficserver.org:5000/ats/cache-tests
+
+docker-compose up -d server
+```
+
+Also remember to clear/repull the cache-test images on the docker jenkins
+agents.
diff --git a/docker/cache-tests/docker-compose.yml b/docker/cache-tests/docker-compose.yml
index 3f33790..63cc047 100644
--- a/docker/cache-tests/docker-compose.yml
+++ b/docker/cache-tests/docker-compose.yml
@@ -1,11 +1,25 @@
version: "3.4"
services:
- cache-tests:
- container_name: cache-tests
+ builder:
build:
context: .
dockerfile: Dockerfile
network: host
+ image: cache-tests
+ working_dir: /home/jenkins/workspace
network_mode: host
+ cap_add: [ SYS_PTRACE ]
+ command: bash
+
+ server:
+ image: cache-tests
+ container_name: cache-tests-server
+ restart: unless-stopped
+ network_mode: host
+ expose:
+ - "8000"
volumes:
- - /location_of_cache_tests/results_dir:/cache-tests/results:rw
+ - ./cache-tests/results:/cache-tests/results:Z
+ working_dir: /cache-tests
+ cap_add: [ SYS_PTRACE ]
+ command: npm run server
diff --git a/docker/cache-tests/results/apache.json b/docker/cache-tests/results/apache.json
deleted file mode 100644
index a5059fe..0000000
--- a/docker/cache-tests/results/apache.json
+++ /dev/null
@@ -1,646 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": true,
- "304-etag-update-response-Clear-Site-Data": true,
- "304-etag-update-response-Content-Encoding": [
- "Setup",
- "retry"
- ],
- "304-etag-update-response-Content-Foo": true,
- "304-etag-update-response-Content-Length": [
- "Setup",
- "retry"
- ],
- "304-etag-update-response-Content-Location": [
- "Setup",
- "retry"
- ],
- "304-etag-update-response-Content-MD5": [
- "Setup",
- "retry"
- ],
- "304-etag-update-response-Content-Range": [
- "Setup",
- "retry"
- ],
- "304-etag-update-response-Content-Security-Policy": true,
- "304-etag-update-response-Content-Type": [
- "Setup",
- "retry"
- ],
- "304-etag-update-response-ETag": [
- "Setup",
- "retry"
- ],
- "304-etag-update-response-Expires": true,
- "304-etag-update-response-Public-Key-Pins": true,
- "304-etag-update-response-Set-Cookie": true,
- "304-etag-update-response-Set-Cookie2": true,
- "304-etag-update-response-Test-Header": true,
- "304-etag-update-response-X-Content-Foo": true,
- "304-etag-update-response-X-Frame-Options": true,
- "304-etag-update-response-X-Test-Header": true,
- "304-etag-update-response-X-XSS-Protection": true,
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": true,
- "age-parse-large": true,
- "age-parse-large-minus-one": true,
- "age-parse-larger": true,
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-suffix-twoline": true,
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": true,
- "cc-resp-no-cache-case-insensitive": true,
- "cc-resp-no-cache-revalidate": true,
- "cc-resp-no-cache-revalidate-fresh": true,
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": true,
- "cc-resp-private-shared": true,
- "ccreq-ma0": true,
- "ccreq-ma1": true,
- "ccreq-magreaterage": true,
- "ccreq-max-stale": true,
- "ccreq-max-stale-age": true,
- "ccreq-min-fresh": true,
- "ccreq-min-fresh-age": true,
- "ccreq-no-cache": true,
- "ccreq-no-cache-etag": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "ccreq-no-cache-lm": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "ccreq-no-store": true,
- "ccreq-oic": true,
- "conditional-304-etag": true,
- "conditional-etag-forward": true,
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-precedence": true,
- "conditional-etag-quoted-respond-unquoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-strong-respond": true,
- "conditional-etag-strong-respond-multiple-first": true,
- "conditional-etag-strong-respond-multiple-last": true,
- "conditional-etag-strong-respond-multiple-second": true,
- "conditional-etag-strong-respond-obs-text": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-unquoted-respond-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-unquoted-respond-unquoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": true,
- "conditional-etag-weak-generate-weak": true,
- "conditional-etag-weak-respond": true,
- "conditional-etag-weak-respond-backslash": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-weak-respond-lowercase": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-weak-respond-omit-slash": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-lm-fresh": true,
- "conditional-lm-fresh-earlier": true,
- "conditional-lm-fresh-no-lm": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "conditional-lm-fresh-rfc850": true,
- "conditional-lm-stale": true,
- "freshness-expires-32bit": true,
- "freshness-expires-age-fast-date": true,
- "freshness-expires-age-slow-date": true,
- "freshness-expires-ansi-c": true,
- "freshness-expires-far-future": true,
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": true,
- "freshness-expires-invalid-2-digit-year": true,
- "freshness-expires-invalid-aest": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": true,
- "freshness-expires-invalid-multiple-lines": true,
- "freshness-expires-invalid-multiple-spaces": true,
- "freshness-expires-invalid-no-comma": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-time-periods": true,
- "freshness-expires-invalid-utc": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-old-date": true,
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": true,
- "freshness-expires-wrong-case-month": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-tz": true,
- "freshness-expires-wrong-case-weekday": true,
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-a100": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-age": true,
- "freshness-max-age-case-insenstive": true,
- "freshness-max-age-date": true,
- "freshness-max-age-decimal-five": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-decimal-zero": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": true,
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": true,
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-s-maxage-shared-longer": true,
- "freshness-max-age-s-maxage-shared-longer-multiple": true,
- "freshness-max-age-s-maxage-shared-longer-reversed": true,
- "freshness-max-age-s-maxage-shared-shorter": true,
- "freshness-max-age-s-maxage-shared-shorter-expires": true,
- "freshness-max-age-single-quoted": true,
- "freshness-max-age-space-after-equals": true,
- "freshness-max-age-space-before-equals": true,
- "freshness-max-age-two-fresh-stale-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-fresh-stale-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sameline": true,
- "freshness-max-age-two-stale-fresh-sepline": true,
- "freshness-none": true,
- "freshness-s-maxage-shared": true,
- "head-200-freshness-update": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-writethrough": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": true,
- "headers-omit-headers-listed-in-Connection": true,
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": true,
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": true,
- "headers-store-Set-Cookie2": true,
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": true,
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": true,
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": true,
- "heuristic-204-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": [
- "Setup",
- "Response 2 status is 500, not 599"
- ],
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": true,
- "heuristic-delta-1800": true,
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": true,
- "heuristic-delta-3600": true,
- "heuristic-delta-43200": true,
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": true,
- "heuristic-delta-600": true,
- "heuristic-delta-86400": true,
- "invalidate-DELETE": true,
- "invalidate-DELETE-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-failed": true,
- "invalidate-DELETE-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-failed": true,
- "invalidate-M-SEARCH-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST": true,
- "invalidate-POST-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-failed": true,
- "invalidate-POST-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT": true,
- "invalidate-PUT-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-failed": true,
- "invalidate-PUT-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": true,
- "other-age-update-expires": true,
- "other-age-update-max-age": true,
- "other-authorization": true,
- "other-authorization-must-revalidate": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-authorization-public": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-authorization-smaxage": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-cookie": true,
- "other-date-update": [
- "Assertion",
- "Response 2 header Date is \"Tue, 06 Apr 2021 07:02:33 GMT\", not \"Tue, 06 Apr 2021 07:02:30 GMT\""
- ],
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": true,
- "other-set-cookie": true,
- "partial-store-complete-reuse-partial": true,
- "partial-store-complete-reuse-partial-no-last": true,
- "partial-store-complete-reuse-partial-suffix": true,
- "partial-store-partial-complete": [
- "Assertion",
- "Request 2 header range is \"undefined\", not \"bytes=5-\""
- ],
- "partial-store-partial-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-use-headers": true,
- "partial-use-stored-headers": true,
- "pragma-request-extension": true,
- "pragma-request-no-cache": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "pragma-response-extension": true,
- "pragma-response-no-cache": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": true,
- "stale-close": true,
- "stale-close-must-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-proxy-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-s-maxage=2": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-sie-503": true,
- "stale-sie-close": true,
- "stale-warning-become": true,
- "stale-warning-stored": true,
- "status-200-fresh": true,
- "status-200-must-understand": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-204-stale": true,
- "status-299-fresh": [
- "Setup",
- "Response 2 status is 500, not 299"
- ],
- "status-299-stale": true,
- "status-301-fresh": true,
- "status-301-stale": true,
- "status-302-fresh": true,
- "status-302-stale": true,
- "status-303-fresh": true,
- "status-303-stale": true,
- "status-307-fresh": true,
- "status-307-stale": true,
- "status-308-fresh": true,
- "status-308-stale": true,
- "status-400-fresh": true,
- "status-400-stale": true,
- "status-404-fresh": true,
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": [
- "Setup",
- "Response 2 status is 500, not 499"
- ],
- "status-499-stale": true,
- "status-500-fresh": true,
- "status-500-stale": true,
- "status-502-fresh": true,
- "status-502-stale": true,
- "status-503-fresh": true,
- "status-503-stale": true,
- "status-504-fresh": true,
- "status-504-stale": true,
- "status-599-fresh": [
- "Setup",
- "Response 2 status is 500, not 599"
- ],
- "status-599-must-understand": true,
- "status-599-stale": true,
- "surrogate-append-capabilities": [
- "Assertion",
- "Request 1 Surrogate-Capability header not present."
- ],
- "surrogate-fresh-cc-nostore": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-0": true,
- "surrogate-max-age-0-expires": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-age": true,
- "surrogate-max-age-case-insensitive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-cc-max-age-invalid-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-extension": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-long-cc-max-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-max": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-max-plus": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-me-target": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-other-target": true,
- "surrogate-max-age-short-cc-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-space-after-equals": true,
- "surrogate-max-age-space-before-equals": true,
- "surrogate-no-store": true,
- "surrogate-no-store-cc-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-remove-header": true,
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": true,
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": true,
- "vary-normalise-lang-case": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": true,
- "vary-syntax-empty-star-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-foo-star": true,
- "vary-syntax-star": true,
- "vary-syntax-star-foo": true,
- "vary-syntax-star-star": true,
- "vary-syntax-star-star-lines": true
-}
diff --git a/docker/cache-tests/results/ats-master.json b/docker/cache-tests/results/ats-master.json
deleted file mode 100644
index b2545dc..0000000
--- a/docker/cache-tests/results/ats-master.json
+++ /dev/null
@@ -1,655 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": true,
- "304-etag-update-response-Clear-Site-Data": true,
- "304-etag-update-response-Content-Encoding": true,
- "304-etag-update-response-Content-Foo": true,
- "304-etag-update-response-Content-Length": true,
- "304-etag-update-response-Content-Location": true,
- "304-etag-update-response-Content-MD5": true,
- "304-etag-update-response-Content-Range": true,
- "304-etag-update-response-Content-Security-Policy": true,
- "304-etag-update-response-Content-Type": [
- "Assertion",
- "Response 2 header Content-Type is \"text/plain\", not \"text/plain;charset=utf-8\""
- ],
- "304-etag-update-response-ETag": true,
- "304-etag-update-response-Expires": true,
- "304-etag-update-response-Public-Key-Pins": true,
- "304-etag-update-response-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "304-etag-update-response-Set-Cookie2": true,
- "304-etag-update-response-Test-Header": true,
- "304-etag-update-response-X-Content-Foo": true,
- "304-etag-update-response-X-Frame-Options": true,
- "304-etag-update-response-X-Test-Header": true,
- "304-etag-update-response-X-XSS-Protection": true,
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "age-parse-large": true,
- "age-parse-large-minus-one": true,
- "age-parse-larger": true,
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": true,
- "age-parse-parameter": true,
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": true,
- "age-parse-suffix-twoline": true,
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": true,
- "cc-resp-no-cache-case-insensitive": true,
- "cc-resp-no-cache-revalidate": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "cc-resp-no-cache-revalidate-fresh": true,
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": true,
- "cc-resp-private-shared": true,
- "ccreq-ma0": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-ma1": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-magreaterage": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-max-stale": true,
- "ccreq-max-stale-age": true,
- "ccreq-min-fresh": true,
- "ccreq-min-fresh-age": true,
- "ccreq-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache-etag": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-cache-lm": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-store": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-oic": true,
- "conditional-304-etag": true,
- "conditional-etag-forward": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-precedence": true,
- "conditional-etag-quoted-respond-unquoted": true,
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-strong-respond": true,
- "conditional-etag-strong-respond-multiple-first": true,
- "conditional-etag-strong-respond-multiple-last": true,
- "conditional-etag-strong-respond-multiple-second": true,
- "conditional-etag-strong-respond-obs-text": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-quoted": true,
- "conditional-etag-unquoted-respond-unquoted": true,
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": true,
- "conditional-etag-weak-generate-weak": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "conditional-etag-weak-respond": true,
- "conditional-etag-weak-respond-backslash": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-weak-respond-lowercase": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-weak-respond-omit-slash": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh": true,
- "conditional-lm-fresh-earlier": true,
- "conditional-lm-fresh-no-lm": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh-rfc850": true,
- "conditional-lm-stale": true,
- "freshness-expires-32bit": true,
- "freshness-expires-age-fast-date": true,
- "freshness-expires-age-slow-date": true,
- "freshness-expires-ansi-c": true,
- "freshness-expires-far-future": true,
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-2-digit-year": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-aest": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-spaces": true,
- "freshness-expires-invalid-no-comma": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-time-periods": true,
- "freshness-expires-invalid-utc": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-old-date": true,
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": true,
- "freshness-expires-wrong-case-month": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-tz": true,
- "freshness-expires-wrong-case-weekday": true,
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": true,
- "freshness-max-age-a100": true,
- "freshness-max-age-age": true,
- "freshness-max-age-case-insenstive": true,
- "freshness-max-age-date": true,
- "freshness-max-age-decimal-five": true,
- "freshness-max-age-decimal-zero": true,
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": true,
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": true,
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": true,
- "freshness-max-age-s-maxage-shared-longer": true,
- "freshness-max-age-s-maxage-shared-longer-multiple": true,
- "freshness-max-age-s-maxage-shared-longer-reversed": true,
- "freshness-max-age-s-maxage-shared-shorter": true,
- "freshness-max-age-s-maxage-shared-shorter-expires": true,
- "freshness-max-age-single-quoted": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-after-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-before-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-two-fresh-stale-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-fresh-stale-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sameline": true,
- "freshness-max-age-two-stale-fresh-sepline": true,
- "freshness-none": true,
- "freshness-s-maxage-shared": true,
- "head-200-freshness-update": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-writethrough": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Connection": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": true,
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "headers-store-Set-Cookie2": true,
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": [
- "Setup",
- "Response 1 status is 400, not 200"
- ],
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": true,
- "heuristic-204-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": true,
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": true,
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1800": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-3600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-43200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-86400": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "invalidate-DELETE": true,
- "invalidate-DELETE-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-failed": true,
- "invalidate-DELETE-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-failed": true,
- "invalidate-M-SEARCH-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST": true,
- "invalidate-POST-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-failed": true,
- "invalidate-POST-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT": true,
- "invalidate-PUT-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-failed": true,
- "invalidate-PUT-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": true,
- "other-age-update-expires": true,
- "other-age-update-max-age": true,
- "other-authorization": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "other-authorization-must-revalidate": true,
- "other-authorization-public": true,
- "other-authorization-smaxage": true,
- "other-cookie": true,
- "other-date-update": true,
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-set-cookie": true,
- "partial-store-complete-reuse-partial": true,
- "partial-store-complete-reuse-partial-no-last": true,
- "partial-store-complete-reuse-partial-suffix": true,
- "partial-store-partial-complete": [
- "Assertion",
- "Request 2 header range is \"undefined\", not \"bytes=5-\""
- ],
- "partial-store-partial-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-use-headers": true,
- "partial-use-stored-headers": true,
- "pragma-request-extension": true,
- "pragma-request-no-cache": true,
- "pragma-response-extension": true,
- "pragma-response-no-cache": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": true,
- "stale-close": true,
- "stale-close-must-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-proxy-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-s-maxage=2": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-sie-503": true,
- "stale-sie-close": true,
- "stale-warning-become": true,
- "stale-warning-stored": true,
- "status-200-fresh": true,
- "status-200-must-understand": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-204-stale": true,
- "status-299-fresh": true,
- "status-299-stale": true,
- "status-301-fresh": true,
- "status-301-stale": true,
- "status-302-fresh": true,
- "status-302-stale": true,
- "status-303-fresh": true,
- "status-303-stale": true,
- "status-307-fresh": true,
- "status-307-stale": true,
- "status-308-fresh": true,
- "status-308-stale": true,
- "status-400-fresh": true,
- "status-400-stale": true,
- "status-404-fresh": true,
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": true,
- "status-499-stale": true,
- "status-500-fresh": true,
- "status-500-stale": true,
- "status-502-fresh": true,
- "status-502-stale": true,
- "status-503-fresh": true,
- "status-503-stale": true,
- "status-504-fresh": true,
- "status-504-stale": true,
- "status-599-fresh": true,
- "status-599-must-understand": true,
- "status-599-stale": true,
- "surrogate-append-capabilities": [
- "Assertion",
- "Request 1 Surrogate-Capability header not present."
- ],
- "surrogate-fresh-cc-nostore": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-0": true,
- "surrogate-max-age-0-expires": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-age": true,
- "surrogate-max-age-case-insensitive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-cc-max-age-invalid-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-extension": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-long-cc-max-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-max": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-max-plus": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-me-target": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-other-target": true,
- "surrogate-max-age-short-cc-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-space-after-equals": true,
- "surrogate-max-age-space-before-equals": true,
- "surrogate-no-store": true,
- "surrogate-no-store-cc-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-remove-header": true,
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": true,
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": true,
- "vary-normalise-lang-case": true,
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": true,
- "vary-normalise-space": true,
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": true,
- "vary-syntax-empty-star-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-foo-star": true,
- "vary-syntax-star": true,
- "vary-syntax-star-foo": true,
- "vary-syntax-star-star": true,
- "vary-syntax-star-star-lines": true
-}
diff --git a/docker/cache-tests/results/chrome.json b/docker/cache-tests/results/chrome.json
deleted file mode 100644
index 110495c..0000000
--- a/docker/cache-tests/results/chrome.json
+++ /dev/null
@@ -1,587 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": true,
- "304-etag-update-response-Clear-Site-Data": [
- "Assertion",
- "Response 2 header Clear-Site-Data is \"null\", not \"cookies\""
- ],
- "304-etag-update-response-Content-Encoding": [
- "Assertion",
- "Response 2 header Content-Encoding is \"ARIZQHYPGXOFWNE\", not \"ASKCUMEWOGYQIAS\""
- ],
- "304-etag-update-response-Content-Foo": true,
- "304-etag-update-response-Content-Length": true,
- "304-etag-update-response-Content-Location": [
- "Assertion",
- "Response 2 header Content-Location is \"/foo\", not \"/bar\""
- ],
- "304-etag-update-response-Content-MD5": [
- "Assertion",
- "Response 2 header Content-MD5 is \"rL0Y20zC+Fzt72VPzMSk2A==\", not \"N7UdGUp1E+RbVvZSTy1R8g==\""
- ],
- "304-etag-update-response-Content-Range": [
- "Assertion",
- "Response 2 header Content-Range is \"APETIXMBQFUJYNC\", not \"AQGWMCSIYOEUKAQ\""
- ],
- "304-etag-update-response-Content-Security-Policy": true,
- "304-etag-update-response-Content-Type": [
- "Assertion",
- "Response 2 header Content-Type is \"text/plain\", not \"text/plain;charset=utf-8\""
- ],
- "304-etag-update-response-ETag": [
- "Assertion",
- "Response 2 header ETag is \"\"abcdef\"\", not \"\"ghijkl\"\""
- ],
- "304-etag-update-response-Expires": true,
- "304-etag-update-response-Public-Key-Pins": true,
- "304-etag-update-response-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "304-etag-update-response-Set-Cookie2": [
- "Assertion",
- "Response 2 header Set-Cookie2 is \"null\", not \"a=c\""
- ],
- "304-etag-update-response-Test-Header": true,
- "304-etag-update-response-X-Content-Foo": [
- "Assertion",
- "Response 2 header X-Content-Foo is \"AZYXWVUTSRQPONM\", not \"AAAAAAAAAAAAAAA\""
- ],
- "304-etag-update-response-X-Frame-Options": [
- "Assertion",
- "Response 2 header X-Frame-Options is \"deny\", not \"sameorigin\""
- ],
- "304-etag-update-response-X-Test-Header": true,
- "304-etag-update-response-X-XSS-Protection": [
- "Assertion",
- "Response 2 header X-XSS-Protection is \"1\", not \"1; mode=block\""
- ],
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": true,
- "age-parse-large": true,
- "age-parse-large-minus-one": true,
- "age-parse-larger": true,
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": true,
- "age-parse-suffix-twoline": true,
- "cc-resp-immutable-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "cc-resp-immutable-stale": true,
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": true,
- "cc-resp-no-cache-case-insensitive": true,
- "cc-resp-no-cache-revalidate": true,
- "cc-resp-no-cache-revalidate-fresh": true,
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": true,
- "cc-resp-private-private": true,
- "ccreq-ma0": true,
- "ccreq-ma1": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-magreaterage": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-max-stale": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "ccreq-max-stale-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "ccreq-min-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-min-fresh-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache": true,
- "ccreq-no-cache-etag": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "ccreq-no-cache-lm": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "ccreq-no-store": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-oic": [
- "Assertion",
- "Response 1 status is 200, not 504"
- ],
- "conditional-etag-forward": true,
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": [
- "Assertion",
- "Request 2 header If-None-Match is \"\"abcdef\"\""
- ],
- "conditional-etag-weak-generate-weak": true,
- "freshness-expires-32bit": true,
- "freshness-expires-age-fast-date": true,
- "freshness-expires-age-slow-date": true,
- "freshness-expires-ansi-c": true,
- "freshness-expires-far-future": true,
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-2-digit-year": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-aest": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-spaces": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-no-comma": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-time-periods": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-utc": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-old-date": true,
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": true,
- "freshness-expires-wrong-case-month": true,
- "freshness-expires-wrong-case-tz": true,
- "freshness-expires-wrong-case-weekday": true,
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": true,
- "freshness-max-age-a100": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-age": true,
- "freshness-max-age-case-insenstive": true,
- "freshness-max-age-date": true,
- "freshness-max-age-decimal-five": true,
- "freshness-max-age-decimal-zero": true,
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": true,
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": true,
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-s-maxage-private": true,
- "freshness-max-age-s-maxage-private-multiple": true,
- "freshness-max-age-single-quoted": true,
- "freshness-max-age-space-after-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-before-equals": true,
- "freshness-max-age-two-fresh-stale-sameline": true,
- "freshness-max-age-two-fresh-stale-sepline": true,
- "freshness-max-age-two-stale-fresh-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-none": true,
- "head-200-freshness-update": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-writethrough": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": true,
- "headers-omit-headers-listed-in-Connection": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": [
- "Assertion",
- "Response 2 header Clear-Site-Data is \"null\", not \"cookies\""
- ],
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": true,
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "headers-store-Set-Cookie2": [
- "Assertion",
- "Response 2 header Set-Cookie2 is \"null\", not \"a=c\""
- ],
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": true,
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": true,
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": true,
- "heuristic-204-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": true,
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": true,
- "heuristic-delta-1800": true,
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": true,
- "heuristic-delta-3600": true,
- "heuristic-delta-43200": true,
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": true,
- "heuristic-delta-600": true,
- "heuristic-delta-86400": true,
- "invalidate-DELETE": true,
- "invalidate-DELETE-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-failed": true,
- "invalidate-DELETE-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-failed": true,
- "invalidate-M-SEARCH-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST": true,
- "invalidate-POST-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-failed": true,
- "invalidate-POST-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT": true,
- "invalidate-PUT-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-failed": true,
- "invalidate-PUT-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": [
- "Assertion",
- "Response 2 Age header not present."
- ],
- "other-age-update-expires": [
- "Assertion",
- "Response 2 header Age is 30, should be bigger than 32"
- ],
- "other-age-update-max-age": [
- "Assertion",
- "Response 2 header Age is 30, should be bigger than 32"
- ],
- "other-cookie": true,
- "other-date-update": true,
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": true,
- "other-set-cookie": true,
- "partial-store-complete-reuse-partial": true,
- "partial-store-complete-reuse-partial-no-last": true,
- "partial-store-complete-reuse-partial-suffix": true,
- "partial-store-partial-complete": [
- "Assertion",
- "Request 2 header range is \"undefined\", not \"bytes=5-\""
- ],
- "partial-store-partial-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-use-headers": true,
- "partial-use-stored-headers": true,
- "pragma-request-extension": true,
- "pragma-request-no-cache": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "pragma-response-extension": true,
- "pragma-response-no-cache": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close": [
- "TypeError",
- "Failed to fetch"
- ],
- "stale-close-must-revalidate": [
- "TypeError",
- "Failed to fetch"
- ],
- "stale-close-no-cache": [
- "TypeError",
- "Failed to fetch"
- ],
- "stale-close-proxy-revalidate": [
- "TypeError",
- "Failed to fetch"
- ],
- "stale-close-s-maxage=2": [
- "TypeError",
- "Failed to fetch"
- ],
- "stale-sie-503": [
- "TypeError",
- "Failed to fetch"
- ],
- "stale-sie-close": [
- "TypeError",
- "Failed to fetch"
- ],
- "stale-warning-become": [
- "TypeError",
- "Failed to fetch"
- ],
- "stale-warning-stored": [
- "TypeError",
- "Failed to fetch"
- ],
- "status-200-fresh": true,
- "status-200-must-understand": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": true,
- "status-204-stale": true,
- "status-299-fresh": true,
- "status-299-stale": true,
- "status-400-fresh": true,
- "status-400-stale": true,
- "status-404-fresh": true,
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": true,
- "status-499-stale": true,
- "status-500-fresh": true,
- "status-500-stale": true,
- "status-502-fresh": true,
- "status-502-stale": true,
- "status-503-fresh": true,
- "status-503-stale": true,
- "status-504-fresh": true,
- "status-504-stale": true,
- "status-599-fresh": true,
- "status-599-must-understand": true,
- "status-599-stale": true,
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": true,
- "vary-normalise-lang-case": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": true,
- "vary-syntax-empty-star-lines": true,
- "vary-syntax-foo-star": true,
- "vary-syntax-star": true,
- "vary-syntax-star-foo": true,
- "vary-syntax-star-star": true,
- "vary-syntax-star-star-lines": true
-}
\ No newline at end of file
diff --git a/docker/cache-tests/results/fastly.json b/docker/cache-tests/results/fastly.json
deleted file mode 100644
index 59bcac8..0000000
--- a/docker/cache-tests/results/fastly.json
+++ /dev/null
@@ -1,835 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": [
- "Assertion",
- "Response 2 header Cache-Control is \"max-age=1\", not \"max-age=3600\""
- ],
- "304-etag-update-response-Clear-Site-Data": [
- "Assertion",
- "Response 2 header Clear-Site-Data is \"cache\", not \"cookies\""
- ],
- "304-etag-update-response-Content-Encoding": [
- "Assertion",
- "Response 2 header Content-Encoding is \"ARIZQHYPGXOFWNE\", not \"ASKCUMEWOGYQIAS\""
- ],
- "304-etag-update-response-Content-Foo": [
- "Assertion",
- "Response 2 header Content-Foo is \"AWSOKGCYUQMIEAW\", not \"AXUROLIFCZWTQNK\""
- ],
- "304-etag-update-response-Content-Length": true,
- "304-etag-update-response-Content-Location": [
- "Assertion",
- "Response 2 header Content-Location is \"/foo\", not \"/bar\""
- ],
- "304-etag-update-response-Content-MD5": [
- "Assertion",
- "Response 2 header Content-MD5 is \"rL0Y20zC+Fzt72VPzMSk2A==\", not \"N7UdGUp1E+RbVvZSTy1R8g==\""
- ],
- "304-etag-update-response-Content-Range": [
- "Assertion",
- "Response 2 header Content-Range is \"null\", not \"AQGWMCSIYOEUKAQ\""
- ],
- "304-etag-update-response-Content-Security-Policy": [
- "Assertion",
- "Response 2 header Content-Security-Policy is \"default-src 'self'\", not \"default-src 'self' cdn.example.com\""
- ],
- "304-etag-update-response-Content-Type": [
- "Assertion",
- "Response 2 header Content-Type is \"text/plain\", not \"text/plain;charset=utf-8\""
- ],
- "304-etag-update-response-ETag": [
- "Assertion",
- "Response 2 header ETag is \"\"abcdef\"\", not \"\"ghijkl\"\""
- ],
- "304-etag-update-response-Expires": [
- "Assertion",
- "Response 2 header Expires is \"Fri, 01 Jan 2038 01:01:01 GMT\", not \"Mon, 11 Jan 2038 11:11:11 GMT\""
- ],
- "304-etag-update-response-Public-Key-Pins": [
- "Assertion",
- "Response 2 header Public-Key-Pins is \"AUOICWQKEYSMGAU\", not \"AVQLGBWRMHCXSNI\""
- ],
- "304-etag-update-response-Set-Cookie": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Set-Cookie2": [
- "Assertion",
- "Response 2 header Set-Cookie2 is \"a=b\", not \"a=c\""
- ],
- "304-etag-update-response-Test-Header": [
- "Assertion",
- "Response 2 header Test-Header is \"AAAAAAAAAAAAAAA\", not \"ABCDEFGHIJKLMNO\""
- ],
- "304-etag-update-response-X-Content-Foo": [
- "Assertion",
- "Response 2 header X-Content-Foo is \"AZYXWVUTSRQPONM\", not \"AAAAAAAAAAAAAAA\""
- ],
- "304-etag-update-response-X-Frame-Options": [
- "Assertion",
- "Response 2 header X-Frame-Options is \"deny\", not \"sameorigin\""
- ],
- "304-etag-update-response-X-Test-Header": [
- "Assertion",
- "Response 2 header X-Test-Header is \"ADGJMPSVYBEHKNQ\", not \"AEIMQUYCGKOSWAE\""
- ],
- "304-etag-update-response-X-XSS-Protection": [
- "Assertion",
- "Response 2 header X-XSS-Protection is \"1\", not \"1; mode=block\""
- ],
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": true,
- "age-parse-large": true,
- "age-parse-large-minus-one": true,
- "age-parse-larger": true,
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": true,
- "age-parse-parameter": true,
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": true,
- "age-parse-suffix-twoline": true,
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-no-cache-case-insensitive": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-no-cache-revalidate": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "cc-resp-no-cache-revalidate-fresh": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-private-shared": true,
- "ccreq-ma0": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-ma1": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-magreaterage": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-max-stale": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "ccreq-max-stale-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "ccreq-min-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-min-fresh-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache-etag": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-cache-lm": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-store": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-oic": [
- "Assertion",
- "Response 1 status is 200, not 504"
- ],
- "conditional-304-etag": true,
- "conditional-etag-forward": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-precedence": true,
- "conditional-etag-quoted-respond-unquoted": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-strong-respond": true,
- "conditional-etag-strong-respond-multiple-first": true,
- "conditional-etag-strong-respond-multiple-last": true,
- "conditional-etag-strong-respond-multiple-second": true,
- "conditional-etag-strong-respond-obs-text": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-quoted": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-unquoted": true,
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": true,
- "conditional-etag-weak-generate-weak": true,
- "conditional-etag-weak-respond": true,
- "conditional-etag-weak-respond-backslash": true,
- "conditional-etag-weak-respond-lowercase": true,
- "conditional-etag-weak-respond-omit-slash": true,
- "conditional-lm-fresh": true,
- "conditional-lm-fresh-earlier": true,
- "conditional-lm-fresh-no-lm": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh-rfc850": true,
- "conditional-lm-stale": true,
- "freshness-expires-32bit": true,
- "freshness-expires-age-fast-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-age-slow-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-ansi-c": true,
- "freshness-expires-far-future": true,
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-2-digit-year": true,
- "freshness-expires-invalid-aest": true,
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": true,
- "freshness-expires-invalid-multiple-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-spaces": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-no-comma": true,
- "freshness-expires-invalid-time-periods": true,
- "freshness-expires-invalid-utc": true,
- "freshness-expires-old-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": true,
- "freshness-expires-wrong-case-month": true,
- "freshness-expires-wrong-case-tz": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-weekday": true,
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": true,
- "freshness-max-age-a100": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-age": true,
- "freshness-max-age-case-insenstive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-decimal-five": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-decimal-zero": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": true,
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": true,
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-s-maxage-shared-longer": true,
- "freshness-max-age-s-maxage-shared-longer-multiple": true,
- "freshness-max-age-s-maxage-shared-longer-reversed": true,
- "freshness-max-age-s-maxage-shared-shorter": true,
- "freshness-max-age-s-maxage-shared-shorter-expires": true,
- "freshness-max-age-single-quoted": true,
- "freshness-max-age-space-after-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-before-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-two-fresh-stale-sameline": true,
- "freshness-max-age-two-fresh-stale-sepline": true,
- "freshness-max-age-two-stale-fresh-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-none": true,
- "freshness-s-maxage-shared": true,
- "head-200-freshness-update": [
- "Assertion",
- "Request 2 had method GET, not HEAD"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Assertion",
- "Request 2 had method GET, not HEAD"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 status is 410, not 200"
- ],
- "head-writethrough": [
- "Assertion",
- "Request 2 had method GET, not HEAD"
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-omit-headers-listed-in-Connection": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": [
- "Assertion",
- "Response 2 header Content-Range is \"null\", not \"ANANANANANANANA\""
- ],
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-store-Set-Cookie2": true,
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": [
- "Setup",
- "Response 1 status is 503, not 200"
- ],
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-204-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": [
- "Setup",
- "retry"
- ],
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1800": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-3600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-43200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-86400": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "invalidate-DELETE": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-failed": true,
- "invalidate-DELETE-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-failed": true,
- "invalidate-M-SEARCH-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-failed": true,
- "invalidate-POST-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-failed": true,
- "invalidate-PUT-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": true,
- "other-age-update-expires": [
- "Assertion",
- "Response 2 header Age is 3, should be bigger than 32"
- ],
- "other-age-update-max-age": true,
- "other-authorization": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "other-authorization-must-revalidate": true,
- "other-authorization-public": true,
- "other-authorization-smaxage": true,
- "other-cookie": true,
- "other-date-update": [
- "Assertion",
- "Response 2 header Date is \"Mon, 17 May 2021 05:28:55 GMT\", not \"Mon, 17 May 2021 05:28:52 GMT\""
- ],
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-set-cookie": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-complete-reuse-partial": true,
- "partial-store-complete-reuse-partial-no-last": true,
- "partial-store-complete-reuse-partial-suffix": true,
- "partial-store-partial-complete": [
- "Assertion",
- "Request 2 header range is \"undefined\", not \"bytes=5-\""
- ],
- "partial-store-partial-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-use-headers": true,
- "partial-use-stored-headers": true,
- "pragma-request-extension": true,
- "pragma-request-no-cache": true,
- "pragma-response-extension": true,
- "pragma-response-no-cache": true,
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": [
- "Setup",
- "retry"
- ],
- "stale-close": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close-must-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-proxy-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-s-maxage=2": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-sie-503": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-sie-close": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-warning-become": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "stale-warning-stored": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "status-200-fresh": true,
- "status-200-must-understand": true,
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-204-stale": true,
- "status-299-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-299-stale": true,
- "status-301-fresh": true,
- "status-301-stale": true,
- "status-302-fresh": true,
- "status-302-stale": true,
- "status-303-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-303-stale": true,
- "status-307-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-307-stale": true,
- "status-308-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-308-stale": true,
- "status-400-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-400-stale": true,
- "status-404-fresh": true,
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-499-stale": true,
- "status-500-fresh": [
- "Setup",
- "retry"
- ],
- "status-500-stale": [
- "Setup",
- "retry"
- ],
- "status-502-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-502-stale": true,
- "status-503-fresh": [
- "Setup",
- "retry"
- ],
- "status-503-stale": [
- "Setup",
- "retry"
- ],
- "status-504-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-504-stale": true,
- "status-599-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-599-must-understand": true,
- "status-599-stale": true,
- "surrogate-append-capabilities": [
- "Assertion",
- "Request 1 Surrogate-Capability header not present."
- ],
- "surrogate-fresh-cc-nostore": true,
- "surrogate-max-age": true,
- "surrogate-max-age-0": true,
- "surrogate-max-age-0-expires": true,
- "surrogate-max-age-age": true,
- "surrogate-max-age-case-insensitive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-cc-max-age-invalid-expires": true,
- "surrogate-max-age-expires": true,
- "surrogate-max-age-extension": true,
- "surrogate-max-age-long-cc-max-age": true,
- "surrogate-max-age-max": true,
- "surrogate-max-age-max-plus": true,
- "surrogate-max-age-me-target": true,
- "surrogate-max-age-other-target": true,
- "surrogate-max-age-short-cc-max-age": true,
- "surrogate-max-age-space-after-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-space-before-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-no-store": true,
- "surrogate-no-store-cc-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-remove-header": [
- "Assertion",
- "Response 1 header Surrogate-Control is \"null\", not \"foo\""
- ],
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": true,
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-case": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-empty-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-empty-star-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-foo-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star-foo": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star-star-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ]
-}
diff --git a/docker/cache-tests/results/firefox.json b/docker/cache-tests/results/firefox.json
deleted file mode 100644
index ffa570d..0000000
--- a/docker/cache-tests/results/firefox.json
+++ /dev/null
@@ -1,584 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": true,
- "304-etag-update-response-Clear-Site-Data": true,
- "304-etag-update-response-Content-Encoding": [
- "Assertion",
- "Response 2 header Content-Encoding is \"ARIZQHYPGXOFWNE\", not \"ASKCUMEWOGYQIAS\""
- ],
- "304-etag-update-response-Content-Foo": true,
- "304-etag-update-response-Content-Length": true,
- "304-etag-update-response-Content-Location": [
- "Assertion",
- "Response 2 header Content-Location is \"/foo\", not \"/bar\""
- ],
- "304-etag-update-response-Content-MD5": [
- "Assertion",
- "Response 2 header Content-MD5 is \"rL0Y20zC+Fzt72VPzMSk2A==\", not \"N7UdGUp1E+RbVvZSTy1R8g==\""
- ],
- "304-etag-update-response-Content-Range": [
- "Assertion",
- "Response 2 header Content-Range is \"APETIXMBQFUJYNC\", not \"AQGWMCSIYOEUKAQ\""
- ],
- "304-etag-update-response-Content-Security-Policy": true,
- "304-etag-update-response-Content-Type": [
- "Assertion",
- "Response 2 header Content-Type is \"text/plain\", not \"text/plain;charset=utf-8\""
- ],
- "304-etag-update-response-ETag": [
- "Assertion",
- "Response 2 header ETag is \"\"abcdef\"\", not \"\"ghijkl\"\""
- ],
- "304-etag-update-response-Expires": true,
- "304-etag-update-response-Public-Key-Pins": true,
- "304-etag-update-response-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "304-etag-update-response-Set-Cookie2": [
- "Assertion",
- "Response 2 header Set-Cookie2 is \"null\", not \"a=c\""
- ],
- "304-etag-update-response-Test-Header": true,
- "304-etag-update-response-X-Content-Foo": true,
- "304-etag-update-response-X-Frame-Options": true,
- "304-etag-update-response-X-Test-Header": true,
- "304-etag-update-response-X-XSS-Protection": true,
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "age-parse-large": true,
- "age-parse-large-minus-one": true,
- "age-parse-larger": true,
- "age-parse-negative": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": true,
- "age-parse-parameter": true,
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": true,
- "age-parse-suffix-twoline": true,
- "cc-resp-immutable-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "cc-resp-immutable-stale": true,
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": true,
- "cc-resp-no-cache-case-insensitive": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-no-cache-revalidate": true,
- "cc-resp-no-cache-revalidate-fresh": true,
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": true,
- "cc-resp-private-private": true,
- "ccreq-ma0": true,
- "ccreq-ma1": true,
- "ccreq-magreaterage": true,
- "ccreq-max-stale": true,
- "ccreq-max-stale-age": true,
- "ccreq-min-fresh": true,
- "ccreq-min-fresh-age": true,
- "ccreq-no-cache": true,
- "ccreq-no-cache-etag": true,
- "ccreq-no-cache-lm": true,
- "ccreq-no-store": true,
- "ccreq-oic": [
- "Assertion",
- "Response 1 status is 200, not 504"
- ],
- "conditional-etag-forward": true,
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": [
- "Assertion",
- "Request 2 header If-None-Match is \"\"abcdef\"\""
- ],
- "conditional-etag-weak-generate-weak": true,
- "freshness-expires-32bit": true,
- "freshness-expires-age-fast-date": true,
- "freshness-expires-age-slow-date": true,
- "freshness-expires-ansi-c": true,
- "freshness-expires-far-future": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-2-digit-year": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-aest": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-spaces": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-no-comma": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-time-periods": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-utc": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-old-date": true,
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": true,
- "freshness-expires-wrong-case-month": true,
- "freshness-expires-wrong-case-tz": true,
- "freshness-expires-wrong-case-weekday": true,
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": true,
- "freshness-max-age-a100": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-age": true,
- "freshness-max-age-case-insenstive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-date": true,
- "freshness-max-age-decimal-five": true,
- "freshness-max-age-decimal-zero": true,
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": true,
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-max-plus-1": true,
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-s-maxage-private": true,
- "freshness-max-age-s-maxage-private-multiple": true,
- "freshness-max-age-single-quoted": true,
- "freshness-max-age-space-after-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-before-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-two-fresh-stale-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-fresh-stale-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sameline": true,
- "freshness-max-age-two-stale-fresh-sepline": true,
- "freshness-none": true,
- "head-200-freshness-update": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-writethrough": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Connection": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": true,
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "headers-store-Set-Cookie2": [
- "Assertion",
- "Response 2 header Set-Cookie2 is \"null\", not \"a=c\""
- ],
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": true,
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": true,
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": true,
- "heuristic-204-cached": true,
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": true,
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": true,
- "heuristic-delta-1800": true,
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": true,
- "heuristic-delta-3600": true,
- "heuristic-delta-43200": true,
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": true,
- "heuristic-delta-600": true,
- "heuristic-delta-86400": true,
- "invalidate-DELETE": true,
- "invalidate-DELETE-cl": true,
- "invalidate-DELETE-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-DELETE-location": true,
- "invalidate-M-SEARCH": true,
- "invalidate-M-SEARCH-cl": true,
- "invalidate-M-SEARCH-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-M-SEARCH-location": true,
- "invalidate-POST": true,
- "invalidate-POST-cl": true,
- "invalidate-POST-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-POST-location": true,
- "invalidate-PUT": true,
- "invalidate-PUT-cl": true,
- "invalidate-PUT-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-PUT-location": true,
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": [
- "Assertion",
- "Response 2 Age header not present."
- ],
- "other-age-update-expires": [
- "Assertion",
- "Response 2 header Age is 30, should be bigger than 32"
- ],
- "other-age-update-max-age": [
- "Assertion",
- "Response 2 header Age is 30, should be bigger than 32"
- ],
- "other-cookie": true,
- "other-date-update": true,
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": true,
- "other-set-cookie": true,
- "partial-store-complete-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-complete-reuse-partial-no-last": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-complete-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-complete": [
- "Assertion",
- "Request 2 header range is \"undefined\", not \"bytes=5-\""
- ],
- "partial-store-partial-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-use-headers": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "partial-use-stored-headers": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "pragma-request-extension": true,
- "pragma-request-no-cache": true,
- "pragma-response-extension": true,
- "pragma-response-no-cache": true,
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close": [
- "TypeError",
- "NetworkError when attempting to fetch resource."
- ],
- "stale-close-must-revalidate": [
- "TypeError",
- "NetworkError when attempting to fetch resource."
- ],
- "stale-close-no-cache": [
- "TypeError",
- "NetworkError when attempting to fetch resource."
- ],
- "stale-close-proxy-revalidate": [
- "TypeError",
- "NetworkError when attempting to fetch resource."
- ],
- "stale-close-s-maxage=2": [
- "TypeError",
- "NetworkError when attempting to fetch resource."
- ],
- "stale-sie-503": [
- "TypeError",
- "NetworkError when attempting to fetch resource."
- ],
- "stale-sie-close": [
- "TypeError",
- "NetworkError when attempting to fetch resource."
- ],
- "stale-warning-become": [
- "TypeError",
- "NetworkError when attempting to fetch resource."
- ],
- "stale-warning-stored": [
- "TypeError",
- "NetworkError when attempting to fetch resource."
- ],
- "status-200-fresh": true,
- "status-200-must-understand": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": true,
- "status-204-stale": true,
- "status-299-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-299-stale": true,
- "status-400-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-400-stale": true,
- "status-404-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-499-stale": true,
- "status-500-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-500-stale": true,
- "status-502-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-502-stale": true,
- "status-503-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-503-stale": true,
- "status-504-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-504-stale": true,
- "status-599-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-599-must-understand": true,
- "status-599-stale": true,
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": true,
- "vary-normalise-lang-case": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": true,
- "vary-syntax-empty-star-lines": true,
- "vary-syntax-foo-star": true,
- "vary-syntax-star": true,
- "vary-syntax-star-foo": true,
- "vary-syntax-star-star": true,
- "vary-syntax-star-star-lines": true
-}
\ No newline at end of file
diff --git a/docker/cache-tests/results/index.mjs b/docker/cache-tests/results/index.mjs
deleted file mode 100644
index 20eed09..0000000
--- a/docker/cache-tests/results/index.mjs
+++ /dev/null
@@ -1,78 +0,0 @@
-
-export default [
- {
- file: 'chrome.json',
- name: 'Chrome',
- type: 'browser',
- version: '79.0.3945.130'
- },
- {
- file: 'firefox.json',
- name: 'Firefox',
- type: 'browser',
- version: '85.0.2',
- link: 'https://github.com/http-tests/cache-tests/wiki/Firefox'
- },
- {
- file: 'safari.json',
- name: 'Safari',
- type: 'browser',
- version: '14.0.3 (16610.4.3.1.4)'
- },
- {
- file: 'nginx.json',
- name: 'nginx',
- type: 'rev-proxy',
- version: '1.18.0-6ubuntu4',
- link: 'https://github.com/http-tests/cache-tests/wiki/nginx'
- },
- {
- file: 'squid.json',
- name: 'Squid',
- type: 'rev-proxy',
- version: '4.13-1ubuntu2',
- link: 'https://github.com/http-tests/cache-tests/wiki/Squid'
- },
- {
- file: 'trafficserver.json',
- name: 'ATS',
- type: 'rev-proxy',
- version: '8.1.1+ds-1',
- link: 'https://github.com/http-tests/cache-tests/wiki/Traffic-Server'
- },
- {
- file: 'ats-master.json',
- name: 'ATS-Master',
- type: 'rev-proxy',
- version: 'master',
- link: 'https://test.com'
- },
- {
- file: 'apache.json',
- name: 'httpd',
- type: 'rev-proxy',
- version: '2.4.46-2ubuntu1',
- link: 'https://github.com/http-tests/cache-tests/wiki/Apache-httpd'
- },
- {
- file: 'varnish.json',
- name: 'Varnish',
- type: 'rev-proxy',
- version: '6.5.1-1',
- link: 'https://github.com/http-tests/cache-tests/wiki/Varnish'
- },
- {
- file: 'nuster.json',
- name: 'nuster',
- type: 'rev-proxy',
- version: 'master',
- link: 'https://github.com/http-tests/cache-tests/wiki/nuster'
- },
- {
- file: 'fastly.json',
- name: 'Fastly',
- type: 'cdn',
- version: '06-05-2019',
- link: 'https://github.com/http-tests/cache-tests/wiki/Fastly'
- }
-]
diff --git a/docker/cache-tests/results/nginx.json b/docker/cache-tests/results/nginx.json
deleted file mode 100644
index 209da00..0000000
--- a/docker/cache-tests/results/nginx.json
+++ /dev/null
@@ -1,826 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": [
- "Assertion",
- "Response 2 header Cache-Control is \"max-age=1\", not \"max-age=3600\""
- ],
- "304-etag-update-response-Clear-Site-Data": [
- "Assertion",
- "Response 2 header Clear-Site-Data is \"cache\", not \"cookies\""
- ],
- "304-etag-update-response-Content-Encoding": [
- "Assertion",
- "Response 2 header Content-Encoding is \"ARIZQHYPGXOFWNE\", not \"ASKCUMEWOGYQIAS\""
- ],
- "304-etag-update-response-Content-Foo": [
- "Assertion",
- "Response 2 header Content-Foo is \"AWSOKGCYUQMIEAW\", not \"AXUROLIFCZWTQNK\""
- ],
- "304-etag-update-response-Content-Length": true,
- "304-etag-update-response-Content-Location": [
- "Assertion",
- "Response 2 header Content-Location is \"/foo\", not \"/bar\""
- ],
- "304-etag-update-response-Content-MD5": [
- "Assertion",
- "Response 2 header Content-MD5 is \"rL0Y20zC+Fzt72VPzMSk2A==\", not \"N7UdGUp1E+RbVvZSTy1R8g==\""
- ],
- "304-etag-update-response-Content-Range": [
- "Assertion",
- "Response 2 header Content-Range is \"APETIXMBQFUJYNC\", not \"AQGWMCSIYOEUKAQ\""
- ],
- "304-etag-update-response-Content-Security-Policy": [
- "Assertion",
- "Response 2 header Content-Security-Policy is \"default-src 'self'\", not \"default-src 'self' cdn.example.com\""
- ],
- "304-etag-update-response-Content-Type": [
- "Assertion",
- "Response 2 header Content-Type is \"text/plain\", not \"text/plain;charset=utf-8\""
- ],
- "304-etag-update-response-ETag": [
- "Assertion",
- "Response 2 header ETag is \"\"abcdef\"\", not \"\"ghijkl\"\""
- ],
- "304-etag-update-response-Expires": [
- "Assertion",
- "Response 2 header Expires is \"Fri, 01 Jan 2038 01:01:01 GMT\", not \"Mon, 11 Jan 2038 11:11:11 GMT\""
- ],
- "304-etag-update-response-Public-Key-Pins": [
- "Assertion",
- "Response 2 header Public-Key-Pins is \"AUOICWQKEYSMGAU\", not \"AVQLGBWRMHCXSNI\""
- ],
- "304-etag-update-response-Set-Cookie": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Set-Cookie2": [
- "Assertion",
- "Response 2 header Set-Cookie2 is \"a=b\", not \"a=c\""
- ],
- "304-etag-update-response-Test-Header": [
- "Assertion",
- "Response 2 header Test-Header is \"AAAAAAAAAAAAAAA\", not \"ABCDEFGHIJKLMNO\""
- ],
- "304-etag-update-response-X-Content-Foo": [
- "Assertion",
- "Response 2 header X-Content-Foo is \"AZYXWVUTSRQPONM\", not \"AAAAAAAAAAAAAAA\""
- ],
- "304-etag-update-response-X-Frame-Options": [
- "Assertion",
- "Response 2 header X-Frame-Options is \"deny\", not \"sameorigin\""
- ],
- "304-etag-update-response-X-Test-Header": [
- "Assertion",
- "Response 2 header X-Test-Header is \"ADGJMPSVYBEHKNQ\", not \"AEIMQUYCGKOSWAE\""
- ],
- "304-etag-update-response-X-XSS-Protection": [
- "Assertion",
- "Response 2 header X-XSS-Protection is \"1\", not \"1; mode=block\""
- ],
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": true,
- "age-parse-large": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-large-minus-one": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-larger": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-suffix-twoline": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": true,
- "cc-resp-no-cache-case-insensitive": true,
- "cc-resp-no-cache-revalidate": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "cc-resp-no-cache-revalidate-fresh": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": true,
- "cc-resp-private-shared": true,
- "ccreq-ma0": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-ma1": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-magreaterage": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-max-stale": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "ccreq-max-stale-age": true,
- "ccreq-min-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-min-fresh-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache-etag": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-cache-lm": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-store": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-oic": [
- "Assertion",
- "Response 1 status is 200, not 504"
- ],
- "conditional-304-etag": true,
- "conditional-etag-forward": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-precedence": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-quoted-respond-unquoted": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-strong-respond": true,
- "conditional-etag-strong-respond-multiple-first": true,
- "conditional-etag-strong-respond-multiple-last": true,
- "conditional-etag-strong-respond-multiple-second": true,
- "conditional-etag-strong-respond-obs-text": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-quoted": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-unquoted": true,
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": true,
- "conditional-etag-weak-generate-weak": true,
- "conditional-etag-weak-respond": true,
- "conditional-etag-weak-respond-backslash": true,
- "conditional-etag-weak-respond-lowercase": true,
- "conditional-etag-weak-respond-omit-slash": true,
- "conditional-lm-fresh": true,
- "conditional-lm-fresh-earlier": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh-no-lm": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh-rfc850": true,
- "conditional-lm-stale": true,
- "freshness-expires-32bit": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-age-fast-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-age-slow-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-ansi-c": true,
- "freshness-expires-far-future": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": true,
- "freshness-expires-invalid-2-digit-year": true,
- "freshness-expires-invalid-aest": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": true,
- "freshness-expires-invalid-multiple-lines": true,
- "freshness-expires-invalid-multiple-spaces": true,
- "freshness-expires-invalid-no-comma": true,
- "freshness-expires-invalid-time-periods": true,
- "freshness-expires-invalid-utc": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-old-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-past": true,
- "freshness-expires-present": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-rfc850": true,
- "freshness-expires-wrong-case-month": true,
- "freshness-expires-wrong-case-tz": true,
- "freshness-expires-wrong-case-weekday": true,
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-a100": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-case-insenstive": true,
- "freshness-max-age-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-decimal-five": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-decimal-zero": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": true,
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": true,
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-s-maxage-shared-longer": true,
- "freshness-max-age-s-maxage-shared-longer-multiple": true,
- "freshness-max-age-s-maxage-shared-longer-reversed": true,
- "freshness-max-age-s-maxage-shared-shorter": true,
- "freshness-max-age-s-maxage-shared-shorter-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-single-quoted": true,
- "freshness-max-age-space-after-equals": true,
- "freshness-max-age-space-before-equals": true,
- "freshness-max-age-two-fresh-stale-sameline": true,
- "freshness-max-age-two-fresh-stale-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sepline": true,
- "freshness-none": true,
- "freshness-s-maxage-shared": true,
- "head-200-freshness-update": [
- "Assertion",
- "Request 2 had method GET, not HEAD"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Assertion",
- "Request 2 had method GET, not HEAD"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 status is 410, not 200"
- ],
- "head-writethrough": [
- "Assertion",
- "Request 2 had method GET, not HEAD"
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Connection": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": true,
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-store-Set-Cookie2": true,
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": true,
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-204-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1800": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-3600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-43200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-86400": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "invalidate-DELETE": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-failed": true,
- "invalidate-DELETE-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-failed": true,
- "invalidate-M-SEARCH-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-failed": true,
- "invalidate-POST-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-failed": true,
- "invalidate-PUT-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": [
- "Assertion",
- "Response 2 Age header not present."
- ],
- "other-age-update-expires": [
- "Assertion",
- "Response 2 header Age is 30, should be bigger than 32"
- ],
- "other-age-update-max-age": [
- "Assertion",
- "Response 2 header Age is 30, should be bigger than 32"
- ],
- "other-authorization": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "other-authorization-must-revalidate": true,
- "other-authorization-public": true,
- "other-authorization-smaxage": true,
- "other-cookie": true,
- "other-date-update": [
- "Assertion",
- "Response 2 header Date is \"Tue, 06 Apr 2021 07:02:04 GMT\", not \"Tue, 06 Apr 2021 07:02:01 GMT\""
- ],
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-set-cookie": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-complete-reuse-partial": [
- "Assertion",
- "Response 2 status is 200, not 206"
- ],
- "partial-store-complete-reuse-partial-no-last": [
- "Assertion",
- "Response 2 status is 200, not 206"
- ],
- "partial-store-complete-reuse-partial-suffix": [
- "Assertion",
- "Response 2 status is 200, not 206"
- ],
- "partial-store-partial-complete": [
- "Setup",
- "Response 2 status is 206, not 200"
- ],
- "partial-store-partial-reuse-partial": [
- "Setup",
- "Request 1 header Range is \"undefined\", not \"bytes=-5\""
- ],
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response body is \"01234\", not \"234\""
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response body is \"01234\", not \"234\""
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response body is \"01234\", not \"4\""
- ],
- "partial-use-headers": [
- "Setup",
- "Response 2 status is 200, not 206"
- ],
- "partial-use-stored-headers": [
- "Setup",
- "Response 2 status is 200, not 206"
- ],
- "pragma-request-extension": true,
- "pragma-request-no-cache": true,
- "pragma-response-extension": true,
- "pragma-response-no-cache": true,
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close-must-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-proxy-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-s-maxage=2": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-sie-503": true,
- "stale-sie-close": true,
- "stale-warning-become": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "stale-warning-stored": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "status-200-fresh": true,
- "status-200-must-understand": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": true,
- "status-204-stale": true,
- "status-299-fresh": true,
- "status-299-stale": true,
- "status-301-fresh": true,
- "status-301-stale": true,
- "status-302-fresh": true,
- "status-302-stale": true,
- "status-303-fresh": true,
- "status-303-stale": true,
- "status-307-fresh": true,
- "status-307-stale": true,
- "status-308-fresh": true,
- "status-308-stale": true,
- "status-400-fresh": true,
- "status-400-stale": true,
- "status-404-fresh": true,
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": true,
- "status-499-stale": true,
- "status-500-fresh": true,
- "status-500-stale": true,
- "status-502-fresh": true,
- "status-502-stale": true,
- "status-503-fresh": true,
- "status-503-stale": true,
- "status-504-fresh": true,
- "status-504-stale": true,
- "status-599-fresh": true,
- "status-599-must-understand": true,
- "status-599-stale": true,
- "surrogate-append-capabilities": [
- "Assertion",
- "Request 1 Surrogate-Capability header not present."
- ],
- "surrogate-fresh-cc-nostore": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-0": true,
- "surrogate-max-age-0-expires": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-age": true,
- "surrogate-max-age-case-insensitive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-cc-max-age-invalid-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-extension": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-long-cc-max-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-max": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-max-plus": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-me-target": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-other-target": true,
- "surrogate-max-age-short-cc-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-space-after-equals": true,
- "surrogate-max-age-space-before-equals": true,
- "surrogate-no-store": true,
- "surrogate-no-store-cc-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-remove-header": true,
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": true,
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-case": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": true,
- "vary-normalise-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-empty-star-lines": true,
- "vary-syntax-foo-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star": true,
- "vary-syntax-star-foo": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star-star-lines": true
-}
diff --git a/docker/cache-tests/results/nuster.json b/docker/cache-tests/results/nuster.json
deleted file mode 100644
index 397add9..0000000
--- a/docker/cache-tests/results/nuster.json
+++ /dev/null
@@ -1,922 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Clear-Site-Data": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Content-Encoding": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Content-Foo": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Content-Length": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Content-Location": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Content-MD5": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Content-Range": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Content-Security-Policy": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Content-Type": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-ETag": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Expires": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Public-Key-Pins": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Set-Cookie": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Set-Cookie2": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Test-Header": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-X-Content-Foo": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-X-Frame-Options": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-X-Test-Header": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-X-XSS-Protection": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-lm-use-stored-Test-Header": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": true,
- "age-parse-large": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-large-minus-one": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-larger": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-suffix-twoline": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": [
- "Assertion",
- "Request 3 should have been conditional, but it was not."
- ],
- "cc-resp-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-no-cache-case-insensitive": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-no-cache-revalidate": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "cc-resp-no-cache-revalidate-fresh": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-private-shared": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-ma0": true,
- "ccreq-ma1": true,
- "ccreq-magreaterage": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-max-stale": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "ccreq-max-stale-age": true,
- "ccreq-min-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-min-fresh-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache-etag": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-cache-lm": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-store": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-oic": [
- "Assertion",
- "Response 1 status is 200, not 504"
- ],
- "conditional-304-etag": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-forward": true,
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-precedence": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-quoted-respond-unquoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-strong-generate": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "conditional-etag-strong-respond": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-strong-respond-multiple-first": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-strong-respond-multiple-last": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-strong-respond-multiple-second": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-strong-respond-obs-text": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-unquoted-respond-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-unquoted-respond-unquoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-vary-headers": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "conditional-etag-vary-headers-mismatch": true,
- "conditional-etag-weak-generate-weak": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "conditional-etag-weak-respond": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-weak-respond-backslash": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-weak-respond-lowercase": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-etag-weak-respond-omit-slash": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "conditional-lm-fresh": true,
- "conditional-lm-fresh-earlier": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh-no-lm": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh-rfc850": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-stale": true,
- "freshness-expires-32bit": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-age-fast-date": true,
- "freshness-expires-age-slow-date": true,
- "freshness-expires-ansi-c": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-far-future": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-future": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": true,
- "freshness-expires-invalid-2-digit-year": true,
- "freshness-expires-invalid-aest": true,
- "freshness-expires-invalid-date": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-invalid-date-dashes": true,
- "freshness-expires-invalid-multiple-lines": true,
- "freshness-expires-invalid-multiple-spaces": true,
- "freshness-expires-invalid-no-comma": true,
- "freshness-expires-invalid-time-periods": true,
- "freshness-expires-invalid-utc": true,
- "freshness-expires-old-date": true,
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-month": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-tz": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-weekday": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-a100": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-case-insenstive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-decimal-five": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-decimal-zero": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": true,
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": true,
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-s-maxage-shared-longer": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-s-maxage-shared-longer-multiple": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-s-maxage-shared-longer-reversed": true,
- "freshness-max-age-s-maxage-shared-shorter": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-s-maxage-shared-shorter-expires": true,
- "freshness-max-age-single-quoted": true,
- "freshness-max-age-space-after-equals": true,
- "freshness-max-age-space-before-equals": true,
- "freshness-max-age-two-fresh-stale-sameline": true,
- "freshness-max-age-two-fresh-stale-sepline": true,
- "freshness-max-age-two-stale-fresh-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-none": true,
- "freshness-s-maxage-shared": true,
- "head-200-freshness-update": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-writethrough": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-omit-headers-listed-in-Connection": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": true,
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": true,
- "headers-store-Set-Cookie2": true,
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": true,
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-204-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1800": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-3600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-43200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-86400": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "invalidate-DELETE": true,
- "invalidate-DELETE-cl": true,
- "invalidate-DELETE-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-DELETE-location": true,
- "invalidate-M-SEARCH": true,
- "invalidate-M-SEARCH-cl": true,
- "invalidate-M-SEARCH-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-M-SEARCH-location": true,
- "invalidate-POST": true,
- "invalidate-POST-cl": true,
- "invalidate-POST-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-POST-location": true,
- "invalidate-PUT": true,
- "invalidate-PUT-cl": true,
- "invalidate-PUT-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-PUT-location": true,
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-update-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-update-max-age": [
- "Assertion",
- "Response 2 header Age is 30, should be bigger than 32"
- ],
- "other-authorization": true,
- "other-authorization-must-revalidate": true,
- "other-authorization-public": true,
- "other-authorization-smaxage": true,
- "other-cookie": true,
- "other-date-update": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-set-cookie": true,
- "partial-store-complete-reuse-partial": [
- "Assertion",
- "Response 2 status is 200, not 206"
- ],
- "partial-store-complete-reuse-partial-no-last": [
- "Assertion",
- "Response 2 status is 200, not 206"
- ],
- "partial-store-complete-reuse-partial-suffix": [
- "Assertion",
- "Response 2 status is 200, not 206"
- ],
- "partial-store-partial-complete": [
- "Setup",
- "Response 2 status is 206, not 200"
- ],
- "partial-store-partial-reuse-partial": true,
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response body is \"01234\", not \"234\""
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response body is \"01234\", not \"234\""
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response body is \"01234\", not \"4\""
- ],
- "partial-use-headers": [
- "Setup",
- "Response 2 status is 200, not 206"
- ],
- "partial-use-stored-headers": [
- "Setup",
- "Response 2 status is 200, not 206"
- ],
- "pragma-request-extension": true,
- "pragma-request-no-cache": true,
- "pragma-response-extension": true,
- "pragma-response-no-cache": true,
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-503": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close-must-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-proxy-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-s-maxage=2": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-sie-503": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-sie-close": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-warning-become": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "stale-warning-stored": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "status-200-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-must-understand": true,
- "status-200-stale": true,
- "status-203-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-203-stale": true,
- "status-204-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-204-stale": true,
- "status-299-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-299-stale": true,
- "status-301-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-301-stale": true,
- "status-302-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-302-stale": true,
- "status-303-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-303-stale": true,
- "status-307-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-307-stale": true,
- "status-308-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-308-stale": true,
- "status-400-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-400-stale": true,
- "status-404-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-404-stale": true,
- "status-410-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-410-stale": true,
- "status-499-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-499-stale": true,
- "status-500-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-500-stale": true,
- "status-502-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-502-stale": true,
- "status-503-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-503-stale": true,
- "status-504-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-504-stale": true,
- "status-599-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-599-must-understand": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "status-599-stale": true,
- "surrogate-append-capabilities": [
- "Assertion",
- "Request 1 Surrogate-Capability header not present."
- ],
- "surrogate-fresh-cc-nostore": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-0": true,
- "surrogate-max-age-0-expires": true,
- "surrogate-max-age-age": true,
- "surrogate-max-age-case-insensitive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-cc-max-age-invalid-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-extension": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-long-cc-max-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-max": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-max-plus": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-me-target": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-other-target": true,
- "surrogate-max-age-short-cc-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-space-after-equals": true,
- "surrogate-max-age-space-before-equals": true,
- "surrogate-no-store": true,
- "surrogate-no-store-cc-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-remove-header": true,
- "vary-2-match": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-3-no-match": true,
- "vary-3-omit": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-3-order": true,
- "vary-cache-key": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-invalidate": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "vary-match": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-no-match": true,
- "vary-normalise-combine": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-case": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": true,
- "vary-syntax-empty-star-lines": true,
- "vary-syntax-foo-star": true,
- "vary-syntax-star": true,
- "vary-syntax-star-foo": true,
- "vary-syntax-star-star": true,
- "vary-syntax-star-star-lines": true
-}
diff --git a/docker/cache-tests/results/safari.json b/docker/cache-tests/results/safari.json
deleted file mode 100644
index 7f3180e..0000000
--- a/docker/cache-tests/results/safari.json
+++ /dev/null
@@ -1,614 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": true,
- "304-etag-update-response-Clear-Site-Data": true,
- "304-etag-update-response-Content-Encoding": [
- "Assertion",
- "Response 2 header Content-Encoding is \"ARIZQHYPGXOFWNE\", not \"ASKCUMEWOGYQIAS\""
- ],
- "304-etag-update-response-Content-Foo": [
- "Assertion",
- "Response 2 header Content-Foo is \"AWSOKGCYUQMIEAW\", not \"AXUROLIFCZWTQNK\""
- ],
- "304-etag-update-response-Content-Length": true,
- "304-etag-update-response-Content-Location": [
- "Assertion",
- "Response 2 header Content-Location is \"/foo\", not \"/bar\""
- ],
- "304-etag-update-response-Content-MD5": [
- "Assertion",
- "Response 2 header Content-MD5 is \"rL0Y20zC+Fzt72VPzMSk2A==\", not \"N7UdGUp1E+RbVvZSTy1R8g==\""
- ],
- "304-etag-update-response-Content-Range": [
- "Assertion",
- "Response 2 header Content-Range is \"APETIXMBQFUJYNC\", not \"AQGWMCSIYOEUKAQ\""
- ],
- "304-etag-update-response-Content-Security-Policy": [
- "Assertion",
- "Response 2 header Content-Security-Policy is \"default-src 'self'\", not \"default-src 'self' cdn.example.com\""
- ],
- "304-etag-update-response-Content-Type": [
- "Assertion",
- "Response 2 header Content-Type is \"text/plain\", not \"text/plain;charset=utf-8\""
- ],
- "304-etag-update-response-ETag": [
- "Assertion",
- "Response 2 header ETag is \"\"abcdef\"\", not \"\"ghijkl\"\""
- ],
- "304-etag-update-response-Expires": true,
- "304-etag-update-response-Public-Key-Pins": true,
- "304-etag-update-response-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "304-etag-update-response-Set-Cookie2": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Test-Header": true,
- "304-etag-update-response-X-Content-Foo": [
- "Assertion",
- "Response 2 header X-Content-Foo is \"AZYXWVUTSRQPONM\", not \"AAAAAAAAAAAAAAA\""
- ],
- "304-etag-update-response-X-Frame-Options": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-X-Test-Header": true,
- "304-etag-update-response-X-XSS-Protection": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "age-parse-large": true,
- "age-parse-large-minus-one": true,
- "age-parse-larger": true,
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-suffix-twoline": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-immutable-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "cc-resp-immutable-stale": true,
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": true,
- "cc-resp-no-cache-case-insensitive": true,
- "cc-resp-no-cache-revalidate": true,
- "cc-resp-no-cache-revalidate-fresh": true,
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": true,
- "cc-resp-private-private": true,
- "ccreq-ma0": true,
- "ccreq-ma1": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-magreaterage": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-max-stale": true,
- "ccreq-max-stale-age": true,
- "ccreq-min-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-min-fresh-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache": true,
- "ccreq-no-cache-etag": true,
- "ccreq-no-cache-lm": true,
- "ccreq-no-store": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-oic": [
- "TypeError",
- "can’t load from network"
- ],
- "conditional-etag-forward": true,
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": true,
- "conditional-etag-weak-generate-weak": true,
- "freshness-expires-32bit": true,
- "freshness-expires-age-fast-date": true,
- "freshness-expires-age-slow-date": true,
- "freshness-expires-ansi-c": true,
- "freshness-expires-far-future": true,
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-2-digit-year": true,
- "freshness-expires-invalid-aest": true,
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-lines": true,
- "freshness-expires-invalid-multiple-spaces": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-no-comma": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-time-periods": true,
- "freshness-expires-invalid-utc": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-old-date": true,
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-month": true,
- "freshness-expires-wrong-case-tz": true,
- "freshness-expires-wrong-case-weekday": true,
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-a100": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-age": true,
- "freshness-max-age-case-insenstive": true,
- "freshness-max-age-date": true,
- "freshness-max-age-decimal-five": true,
- "freshness-max-age-decimal-zero": true,
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": true,
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": true,
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": true,
- "freshness-max-age-s-maxage-private": true,
- "freshness-max-age-s-maxage-private-multiple": true,
- "freshness-max-age-single-quoted": true,
- "freshness-max-age-space-after-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-before-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-two-fresh-stale-sameline": true,
- "freshness-max-age-two-fresh-stale-sepline": true,
- "freshness-max-age-two-stale-fresh-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-none": true,
- "head-200-freshness-update": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-writethrough": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-omit-headers-listed-in-Connection": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": true,
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "headers-store-Set-Cookie2": [
- "Assertion",
- "Response 2 header Set-Cookie2 is \"null\", not \"a=c\""
- ],
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": true,
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": true,
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": true,
- "heuristic-204-cached": true,
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": true,
- "heuristic-405-cached": true,
- "heuristic-410-cached": true,
- "heuristic-414-cached": true,
- "heuristic-501-cached": true,
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": true,
- "heuristic-delta-1800": true,
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": true,
- "heuristic-delta-3600": true,
- "heuristic-delta-43200": true,
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": true,
- "heuristic-delta-600": true,
- "heuristic-delta-86400": true,
- "invalidate-DELETE": true,
- "invalidate-DELETE-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-DELETE-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH": true,
- "invalidate-M-SEARCH-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-M-SEARCH-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST": true,
- "invalidate-POST-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-POST-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT": true,
- "invalidate-PUT-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-PUT-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-update-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-update-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-cookie": true,
- "other-date-update": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": true,
- "other-set-cookie": true,
- "partial-store-complete-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-complete-reuse-partial-no-last": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-complete-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-complete": [
- "Assertion",
- "Request 2 header range is \"undefined\", not \"bytes=5-\""
- ],
- "partial-store-partial-reuse-partial": true,
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-use-headers": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "partial-use-stored-headers": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "pragma-request-extension": true,
- "pragma-request-no-cache": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "pragma-response-extension": true,
- "pragma-response-no-cache": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close": [
- "TypeError",
- "The network connection was lost."
- ],
- "stale-close-must-revalidate": [
- "TypeError",
- "The network connection was lost."
- ],
- "stale-close-no-cache": [
- "TypeError",
- "The network connection was lost."
- ],
- "stale-close-proxy-revalidate": [
- "TypeError",
- "The network connection was lost."
- ],
- "stale-close-s-maxage=2": [
- "TypeError",
- "The network connection was lost."
- ],
- "stale-sie-503": [
- "TypeError",
- "The network connection was lost."
- ],
- "stale-sie-close": [
- "TypeError",
- "The network connection was lost."
- ],
- "stale-warning-become": [
- "TypeError",
- "The network connection was lost."
- ],
- "stale-warning-stored": [
- "TypeError",
- "The network connection was lost."
- ],
- "status-200-fresh": true,
- "status-200-must-understand": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": true,
- "status-204-stale": true,
- "status-299-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-299-stale": true,
- "status-400-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-400-stale": true,
- "status-404-fresh": true,
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-499-stale": true,
- "status-500-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-500-stale": true,
- "status-502-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-502-stale": true,
- "status-503-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-503-stale": true,
- "status-504-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-504-stale": true,
- "status-599-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-599-must-understand": true,
- "status-599-stale": true,
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": true,
- "vary-normalise-lang-case": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": true,
- "vary-syntax-empty-star-lines": true,
- "vary-syntax-foo-star": true,
- "vary-syntax-star": true,
- "vary-syntax-star-foo": true,
- "vary-syntax-star-star": true,
- "vary-syntax-star-star-lines": true
-}
\ No newline at end of file
diff --git a/docker/cache-tests/results/squid.json b/docker/cache-tests/results/squid.json
deleted file mode 100644
index b56939b..0000000
--- a/docker/cache-tests/results/squid.json
+++ /dev/null
@@ -1,652 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": true,
- "304-etag-update-response-Clear-Site-Data": true,
- "304-etag-update-response-Content-Encoding": true,
- "304-etag-update-response-Content-Foo": true,
- "304-etag-update-response-Content-Length": [
- "Assertion",
- "Response 2 header Content-Length is \"10\", not \"36\""
- ],
- "304-etag-update-response-Content-Location": true,
- "304-etag-update-response-Content-MD5": true,
- "304-etag-update-response-Content-Range": true,
- "304-etag-update-response-Content-Security-Policy": true,
- "304-etag-update-response-Content-Type": true,
- "304-etag-update-response-ETag": true,
- "304-etag-update-response-Expires": true,
- "304-etag-update-response-Public-Key-Pins": true,
- "304-etag-update-response-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "304-etag-update-response-Set-Cookie2": true,
- "304-etag-update-response-Test-Header": true,
- "304-etag-update-response-X-Content-Foo": true,
- "304-etag-update-response-X-Frame-Options": true,
- "304-etag-update-response-X-Test-Header": true,
- "304-etag-update-response-X-XSS-Protection": true,
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "age-parse-large": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-large-minus-one": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-larger": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": true,
- "age-parse-parameter": true,
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": true,
- "age-parse-suffix-twoline": true,
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": true,
- "cc-resp-no-cache-case-insensitive": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "cc-resp-no-cache-revalidate": true,
- "cc-resp-no-cache-revalidate-fresh": true,
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": true,
- "cc-resp-private-shared": true,
- "ccreq-ma0": true,
- "ccreq-ma1": true,
- "ccreq-magreaterage": true,
- "ccreq-max-stale": true,
- "ccreq-max-stale-age": true,
- "ccreq-min-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-min-fresh-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache": true,
- "ccreq-no-cache-etag": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "ccreq-no-cache-lm": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "ccreq-no-store": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-oic": true,
- "conditional-304-etag": [
- "Assertion",
- "Response 2 header ETag is \"null\", not \"\"abcdef\"\""
- ],
- "conditional-etag-forward": true,
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-precedence": true,
- "conditional-etag-quoted-respond-unquoted": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "request 2 doesn't have if-none-match header"
- ],
- "conditional-etag-strong-respond": true,
- "conditional-etag-strong-respond-multiple-first": true,
- "conditional-etag-strong-respond-multiple-last": true,
- "conditional-etag-strong-respond-multiple-second": true,
- "conditional-etag-strong-respond-obs-text": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-quoted": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-unquoted": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": true,
- "conditional-etag-weak-generate-weak": [
- "Assertion",
- "request 2 doesn't have if-none-match header"
- ],
- "conditional-etag-weak-respond": true,
- "conditional-etag-weak-respond-backslash": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-weak-respond-lowercase": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-weak-respond-omit-slash": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh": true,
- "conditional-lm-fresh-earlier": true,
- "conditional-lm-fresh-no-lm": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh-rfc850": true,
- "conditional-lm-stale": true,
- "freshness-expires-32bit": true,
- "freshness-expires-age-fast-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-age-slow-date": true,
- "freshness-expires-ansi-c": true,
- "freshness-expires-far-future": true,
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": true,
- "freshness-expires-invalid-2-digit-year": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-aest": true,
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-lines": true,
- "freshness-expires-invalid-multiple-spaces": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-no-comma": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-time-periods": true,
- "freshness-expires-invalid-utc": true,
- "freshness-expires-old-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": true,
- "freshness-expires-wrong-case-month": true,
- "freshness-expires-wrong-case-tz": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-weekday": true,
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": true,
- "freshness-max-age-a100": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-age": true,
- "freshness-max-age-case-insenstive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-date": true,
- "freshness-max-age-decimal-five": true,
- "freshness-max-age-decimal-zero": true,
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-s-maxage-shared-longer": true,
- "freshness-max-age-s-maxage-shared-longer-multiple": true,
- "freshness-max-age-s-maxage-shared-longer-reversed": true,
- "freshness-max-age-s-maxage-shared-shorter": true,
- "freshness-max-age-s-maxage-shared-shorter-expires": true,
- "freshness-max-age-single-quoted": true,
- "freshness-max-age-space-after-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-before-equals": true,
- "freshness-max-age-two-fresh-stale-sameline": true,
- "freshness-max-age-two-fresh-stale-sepline": true,
- "freshness-max-age-two-stale-fresh-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-none": true,
- "freshness-s-maxage-shared": true,
- "head-200-freshness-update": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-writethrough": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Connection": true,
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": true,
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "headers-store-Set-Cookie2": true,
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": [
- "Setup",
- "Response 1 status is 502, not 200"
- ],
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": true,
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": true,
- "heuristic-204-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": true,
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": true,
- "heuristic-delta-1800": true,
- "heuristic-delta-30": true,
- "heuristic-delta-300": true,
- "heuristic-delta-3600": true,
- "heuristic-delta-43200": true,
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": true,
- "heuristic-delta-600": true,
- "heuristic-delta-86400": true,
- "invalidate-DELETE": true,
- "invalidate-DELETE-cl": true,
- "invalidate-DELETE-failed": true,
- "invalidate-DELETE-location": true,
- "invalidate-M-SEARCH": true,
- "invalidate-M-SEARCH-cl": true,
- "invalidate-M-SEARCH-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-M-SEARCH-location": true,
- "invalidate-POST": true,
- "invalidate-POST-cl": true,
- "invalidate-POST-failed": true,
- "invalidate-POST-location": true,
- "invalidate-PUT": true,
- "invalidate-PUT-cl": true,
- "invalidate-PUT-failed": true,
- "invalidate-PUT-location": true,
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": true,
- "other-age-update-expires": true,
- "other-age-update-max-age": true,
- "other-authorization": [
- "Setup",
- "Request 1 header Authorization is \"undefined\", not \"FOO\""
- ],
- "other-authorization-must-revalidate": [
- "Setup",
- "Request 1 header Authorization is \"undefined\", not \"FOO\""
- ],
- "other-authorization-public": [
- "Setup",
- "Request 1 header Authorization is \"undefined\", not \"FOO\""
- ],
- "other-authorization-smaxage": [
- "Setup",
- "Request 1 header Authorization is \"undefined\", not \"FOO\""
- ],
- "other-cookie": true,
- "other-date-update": true,
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": true,
- "other-set-cookie": true,
- "partial-store-complete-reuse-partial": true,
- "partial-store-complete-reuse-partial-no-last": true,
- "partial-store-complete-reuse-partial-suffix": true,
- "partial-store-partial-complete": [
- "Assertion",
- "Request 2 header range is \"undefined\", not \"bytes=5-\""
- ],
- "partial-store-partial-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-use-headers": true,
- "partial-use-stored-headers": true,
- "pragma-request-extension": true,
- "pragma-request-no-cache": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "pragma-response-extension": true,
- "pragma-response-no-cache": true,
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": true,
- "stale-close": true,
- "stale-close-must-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-proxy-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-s-maxage=2": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-sie-503": true,
- "stale-sie-close": true,
- "stale-warning-become": true,
- "stale-warning-stored": true,
- "status-200-fresh": true,
- "status-200-must-understand": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-204-stale": true,
- "status-299-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-299-stale": true,
- "status-301-fresh": true,
- "status-301-stale": true,
- "status-302-fresh": true,
- "status-302-stale": true,
- "status-303-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-303-stale": true,
- "status-307-fresh": true,
- "status-307-stale": true,
- "status-308-fresh": true,
- "status-308-stale": true,
- "status-400-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-400-stale": true,
- "status-404-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-499-stale": true,
- "status-500-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-500-stale": true,
- "status-502-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-502-stale": true,
- "status-503-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-503-stale": true,
- "status-504-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-504-stale": true,
- "status-599-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-599-must-understand": true,
- "status-599-stale": true,
- "surrogate-append-capabilities": true,
- "surrogate-fresh-cc-nostore": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-0": true,
- "surrogate-max-age-0-expires": true,
- "surrogate-max-age-age": true,
- "surrogate-max-age-case-insensitive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-cc-max-age-invalid-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-extension": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-long-cc-max-age": true,
- "surrogate-max-age-max": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-max-plus": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-me-target": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-other-target": true,
- "surrogate-max-age-short-cc-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-space-after-equals": true,
- "surrogate-max-age-space-before-equals": true,
- "surrogate-no-store": true,
- "surrogate-no-store-cc-fresh": true,
- "surrogate-remove-header": [
- "Assertion",
- "Response 1 header Surrogate-Control is \"null\", not \"foo\""
- ],
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": true,
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": true,
- "vary-normalise-lang-case": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": true,
- "vary-syntax-empty-star-lines": true,
- "vary-syntax-foo-star": true,
- "vary-syntax-star": true,
- "vary-syntax-star-foo": true,
- "vary-syntax-star-star": true,
- "vary-syntax-star-star-lines": true
-}
diff --git a/docker/cache-tests/results/trafficserver.json b/docker/cache-tests/results/trafficserver.json
deleted file mode 100644
index edd165e..0000000
--- a/docker/cache-tests/results/trafficserver.json
+++ /dev/null
@@ -1,670 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": true,
- "304-etag-update-response-Clear-Site-Data": true,
- "304-etag-update-response-Content-Encoding": true,
- "304-etag-update-response-Content-Foo": true,
- "304-etag-update-response-Content-Length": true,
- "304-etag-update-response-Content-Location": true,
- "304-etag-update-response-Content-MD5": true,
- "304-etag-update-response-Content-Range": true,
- "304-etag-update-response-Content-Security-Policy": true,
- "304-etag-update-response-Content-Type": [
- "Assertion",
- "Response 2 header Content-Type is \"text/plain\", not \"text/plain;charset=utf-8\""
- ],
- "304-etag-update-response-ETag": true,
- "304-etag-update-response-Expires": true,
- "304-etag-update-response-Public-Key-Pins": true,
- "304-etag-update-response-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "304-etag-update-response-Set-Cookie2": true,
- "304-etag-update-response-Test-Header": true,
- "304-etag-update-response-X-Content-Foo": true,
- "304-etag-update-response-X-Frame-Options": true,
- "304-etag-update-response-X-Test-Header": true,
- "304-etag-update-response-X-XSS-Protection": true,
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "age-parse-large": true,
- "age-parse-large-minus-one": true,
- "age-parse-larger": true,
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": true,
- "age-parse-parameter": true,
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": true,
- "age-parse-suffix-twoline": true,
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": true,
- "cc-resp-no-cache-case-insensitive": true,
- "cc-resp-no-cache-revalidate": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "cc-resp-no-cache-revalidate-fresh": true,
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": true,
- "cc-resp-private-shared": true,
- "ccreq-ma0": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-ma1": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-magreaterage": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-max-stale": true,
- "ccreq-max-stale-age": true,
- "ccreq-min-fresh": true,
- "ccreq-min-fresh-age": true,
- "ccreq-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache-etag": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-cache-lm": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-store": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-oic": true,
- "conditional-304-etag": true,
- "conditional-etag-forward": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-precedence": true,
- "conditional-etag-quoted-respond-unquoted": true,
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-strong-respond": true,
- "conditional-etag-strong-respond-multiple-first": true,
- "conditional-etag-strong-respond-multiple-last": true,
- "conditional-etag-strong-respond-multiple-second": true,
- "conditional-etag-strong-respond-obs-text": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-quoted": true,
- "conditional-etag-unquoted-respond-unquoted": true,
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": true,
- "conditional-etag-weak-generate-weak": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "conditional-etag-weak-respond": true,
- "conditional-etag-weak-respond-backslash": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-weak-respond-lowercase": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-weak-respond-omit-slash": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh": true,
- "conditional-lm-fresh-earlier": true,
- "conditional-lm-fresh-no-lm": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh-rfc850": true,
- "conditional-lm-stale": true,
- "freshness-expires-32bit": true,
- "freshness-expires-age-fast-date": true,
- "freshness-expires-age-slow-date": true,
- "freshness-expires-ansi-c": true,
- "freshness-expires-far-future": true,
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-2-digit-year": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-aest": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-multiple-spaces": true,
- "freshness-expires-invalid-no-comma": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-invalid-time-periods": true,
- "freshness-expires-invalid-utc": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-old-date": true,
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": true,
- "freshness-expires-wrong-case-month": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-tz": true,
- "freshness-expires-wrong-case-weekday": true,
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": true,
- "freshness-max-age-a100": true,
- "freshness-max-age-age": true,
- "freshness-max-age-case-insenstive": true,
- "freshness-max-age-date": true,
- "freshness-max-age-decimal-five": true,
- "freshness-max-age-decimal-zero": true,
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": true,
- "freshness-max-age-s-maxage-shared-longer": true,
- "freshness-max-age-s-maxage-shared-longer-multiple": true,
- "freshness-max-age-s-maxage-shared-longer-reversed": true,
- "freshness-max-age-s-maxage-shared-shorter": true,
- "freshness-max-age-s-maxage-shared-shorter-expires": true,
- "freshness-max-age-single-quoted": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-after-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-before-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-two-fresh-stale-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-fresh-stale-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sameline": true,
- "freshness-max-age-two-stale-fresh-sepline": true,
- "freshness-none": true,
- "freshness-s-maxage-shared": true,
- "head-200-freshness-update": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 does not come from cache"
- ],
- "head-writethrough": true,
- "headers-omit-headers-listed-in-Cache-Control-no-cache": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Connection": [
- "Assertion",
- "Response 2 includes unexpected header a: \"1\""
- ],
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": true,
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": [
- "Assertion",
- "Response 2 header Set-Cookie is \"null\", not \"a=c\""
- ],
- "headers-store-Set-Cookie2": true,
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": [
- "FetchError",
- "request to http://localhost:8003/test/78db4995-b2bf-4481-b433-c3f3ff310777 failed, reason: Parse Error: Content-Length can't be present with Transfer-Encoding"
- ],
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": true,
- "heuristic-204-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": true,
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": true,
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1800": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-3600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-43200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-86400": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "invalidate-DELETE": true,
- "invalidate-DELETE-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-DELETE-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-failed": true,
- "invalidate-M-SEARCH-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST": true,
- "invalidate-POST-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-POST-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT": true,
- "invalidate-PUT-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-failed": [
- "Assertion",
- "Response 3 does not come from cache"
- ],
- "invalidate-PUT-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": true,
- "other-age-update-expires": true,
- "other-age-update-max-age": true,
- "other-authorization": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "other-authorization-must-revalidate": true,
- "other-authorization-public": true,
- "other-authorization-smaxage": true,
- "other-cookie": true,
- "other-date-update": true,
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-set-cookie": true,
- "partial-store-complete-reuse-partial": true,
- "partial-store-complete-reuse-partial-no-last": true,
- "partial-store-complete-reuse-partial-suffix": true,
- "partial-store-partial-complete": [
- "Assertion",
- "Request 2 header range is \"undefined\", not \"bytes=5-\""
- ],
- "partial-store-partial-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-use-headers": true,
- "partial-use-stored-headers": true,
- "pragma-request-extension": true,
- "pragma-request-no-cache": true,
- "pragma-response-extension": true,
- "pragma-response-no-cache": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": true,
- "stale-close": true,
- "stale-close-must-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-proxy-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-s-maxage=2": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-sie-503": true,
- "stale-sie-close": true,
- "stale-warning-become": true,
- "stale-warning-stored": true,
- "status-200-fresh": true,
- "status-200-must-understand": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-204-stale": true,
- "status-299-fresh": true,
- "status-299-stale": true,
- "status-301-fresh": true,
- "status-301-stale": true,
- "status-302-fresh": true,
- "status-302-stale": true,
- "status-303-fresh": true,
- "status-303-stale": true,
- "status-307-fresh": true,
- "status-307-stale": true,
- "status-308-fresh": true,
- "status-308-stale": true,
- "status-400-fresh": true,
- "status-400-stale": true,
- "status-404-fresh": true,
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": true,
- "status-499-stale": true,
- "status-500-fresh": true,
- "status-500-stale": true,
- "status-502-fresh": true,
- "status-502-stale": true,
- "status-503-fresh": true,
- "status-503-stale": true,
- "status-504-fresh": true,
- "status-504-stale": true,
- "status-599-fresh": true,
- "status-599-must-understand": true,
- "status-599-stale": true,
- "surrogate-append-capabilities": [
- "Assertion",
- "Request 1 Surrogate-Capability header not present."
- ],
- "surrogate-fresh-cc-nostore": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-0": true,
- "surrogate-max-age-0-expires": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-age": true,
- "surrogate-max-age-case-insensitive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-cc-max-age-invalid-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-extension": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-long-cc-max-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-max": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-max-plus": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-me-target": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-other-target": true,
- "surrogate-max-age-short-cc-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-space-after-equals": true,
- "surrogate-max-age-space-before-equals": true,
- "surrogate-no-store": true,
- "surrogate-no-store-cc-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-remove-header": true,
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": true,
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": true,
- "vary-normalise-lang-case": true,
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": true,
- "vary-normalise-space": true,
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": true,
- "vary-syntax-empty-star-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-foo-star": true,
- "vary-syntax-star": true,
- "vary-syntax-star-foo": true,
- "vary-syntax-star-star": true,
- "vary-syntax-star-star-lines": true
-}
diff --git a/docker/cache-tests/results/varnish.json b/docker/cache-tests/results/varnish.json
deleted file mode 100644
index 8b8458a..0000000
--- a/docker/cache-tests/results/varnish.json
+++ /dev/null
@@ -1,790 +0,0 @@
-{
- "304-etag-update-response-Cache-Control": true,
- "304-etag-update-response-Clear-Site-Data": true,
- "304-etag-update-response-Content-Encoding": [
- "Assertion",
- "Response 2 header Content-Encoding is \"ARIZQHYPGXOFWNE\", not \"ASKCUMEWOGYQIAS\""
- ],
- "304-etag-update-response-Content-Foo": true,
- "304-etag-update-response-Content-Length": true,
- "304-etag-update-response-Content-Location": true,
- "304-etag-update-response-Content-MD5": true,
- "304-etag-update-response-Content-Range": [
- "Assertion",
- "Response 2 header Content-Range is \"null\", not \"AQGWMCSIYOEUKAQ\""
- ],
- "304-etag-update-response-Content-Security-Policy": true,
- "304-etag-update-response-Content-Type": true,
- "304-etag-update-response-ETag": true,
- "304-etag-update-response-Expires": true,
- "304-etag-update-response-Public-Key-Pins": true,
- "304-etag-update-response-Set-Cookie": [
- "Setup",
- "Request 2 should have been conditional, but it was not."
- ],
- "304-etag-update-response-Set-Cookie2": true,
- "304-etag-update-response-Test-Header": true,
- "304-etag-update-response-X-Content-Foo": true,
- "304-etag-update-response-X-Frame-Options": true,
- "304-etag-update-response-X-Test-Header": true,
- "304-etag-update-response-X-XSS-Protection": true,
- "304-lm-use-stored-Test-Header": true,
- "age-parse-dup-0": true,
- "age-parse-dup-0-twoline": true,
- "age-parse-dup-old": true,
- "age-parse-float": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "age-parse-large": true,
- "age-parse-large-minus-one": true,
- "age-parse-larger": true,
- "age-parse-negative": true,
- "age-parse-nonnumeric": true,
- "age-parse-numeric-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-parameter": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "age-parse-prefix": true,
- "age-parse-prefix-twoline": true,
- "age-parse-suffix": true,
- "age-parse-suffix-twoline": true,
- "cc-resp-must-revalidate-fresh": true,
- "cc-resp-must-revalidate-stale": true,
- "cc-resp-no-cache": true,
- "cc-resp-no-cache-case-insensitive": true,
- "cc-resp-no-cache-revalidate": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "cc-resp-no-cache-revalidate-fresh": [
- "Assertion",
- "Request 2 should have been conditional, but it was not."
- ],
- "cc-resp-no-store": true,
- "cc-resp-no-store-case-insensitive": true,
- "cc-resp-no-store-fresh": true,
- "cc-resp-private-shared": true,
- "ccreq-ma0": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-ma1": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-magreaterage": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-max-stale": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "ccreq-max-stale-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "ccreq-min-fresh": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-min-fresh-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-no-cache-etag": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-cache-lm": [
- "Assertion",
- "request 2 wasn't sent to server"
- ],
- "ccreq-no-store": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "ccreq-oic": [
- "Assertion",
- "Response 1 status is 200, not 504"
- ],
- "conditional-304-etag": true,
- "conditional-etag-forward": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-forward-unquoted": [
- "Assertion",
- "Request 1 header If-None-Match is \"undefined\", not \"\"abcdef\"\""
- ],
- "conditional-etag-precedence": true,
- "conditional-etag-quoted-respond-unquoted": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-strong-generate": true,
- "conditional-etag-strong-generate-unquoted": [
- "Assertion",
- "Request 2 header If-None-Match is \"abcdef\", not \"\"abcdef\"\""
- ],
- "conditional-etag-strong-respond": true,
- "conditional-etag-strong-respond-multiple-first": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-strong-respond-multiple-last": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-strong-respond-multiple-second": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-strong-respond-obs-text": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-quoted": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-etag-unquoted-respond-unquoted": true,
- "conditional-etag-vary-headers": true,
- "conditional-etag-vary-headers-mismatch": true,
- "conditional-etag-weak-generate-weak": true,
- "conditional-etag-weak-respond": true,
- "conditional-etag-weak-respond-backslash": true,
- "conditional-etag-weak-respond-lowercase": true,
- "conditional-etag-weak-respond-omit-slash": true,
- "conditional-lm-fresh": true,
- "conditional-lm-fresh-earlier": true,
- "conditional-lm-fresh-no-lm": [
- "Assertion",
- "Response 2 status is 200, not 304"
- ],
- "conditional-lm-fresh-rfc850": true,
- "conditional-lm-stale": true,
- "freshness-expires-32bit": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-age-fast-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-expires-age-slow-date": true,
- "freshness-expires-ansi-c": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-far-future": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-future": true,
- "freshness-expires-invalid": true,
- "freshness-expires-invalid-1-digit-hour": true,
- "freshness-expires-invalid-2-digit-year": true,
- "freshness-expires-invalid-aest": true,
- "freshness-expires-invalid-date": true,
- "freshness-expires-invalid-date-dashes": true,
- "freshness-expires-invalid-multiple-lines": true,
- "freshness-expires-invalid-multiple-spaces": true,
- "freshness-expires-invalid-no-comma": true,
- "freshness-expires-invalid-time-periods": true,
- "freshness-expires-invalid-utc": true,
- "freshness-expires-old-date": true,
- "freshness-expires-past": true,
- "freshness-expires-present": true,
- "freshness-expires-rfc850": true,
- "freshness-expires-wrong-case-month": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-tz": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-expires-wrong-case-weekday": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age": true,
- "freshness-max-age-0": true,
- "freshness-max-age-0-expires": true,
- "freshness-max-age-100a": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-a100": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-age": true,
- "freshness-max-age-case-insenstive": true,
- "freshness-max-age-date": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-decimal-five": true,
- "freshness-max-age-decimal-zero": true,
- "freshness-max-age-expires": true,
- "freshness-max-age-expires-invalid": true,
- "freshness-max-age-extension": true,
- "freshness-max-age-ignore-quoted": true,
- "freshness-max-age-ignore-quoted-rev": true,
- "freshness-max-age-leading-zero": true,
- "freshness-max-age-max": true,
- "freshness-max-age-max-minus-1": true,
- "freshness-max-age-max-plus": true,
- "freshness-max-age-max-plus-1": true,
- "freshness-max-age-negative": true,
- "freshness-max-age-quoted": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-s-maxage-shared-longer": true,
- "freshness-max-age-s-maxage-shared-longer-multiple": true,
- "freshness-max-age-s-maxage-shared-longer-reversed": true,
- "freshness-max-age-s-maxage-shared-shorter": true,
- "freshness-max-age-s-maxage-shared-shorter-expires": true,
- "freshness-max-age-single-quoted": true,
- "freshness-max-age-space-after-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-space-before-equals": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "freshness-max-age-two-fresh-stale-sameline": true,
- "freshness-max-age-two-fresh-stale-sepline": true,
- "freshness-max-age-two-stale-fresh-sameline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-max-age-two-stale-fresh-sepline": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "freshness-none": true,
- "freshness-s-maxage-shared": true,
- "head-200-freshness-update": [
- "Assertion",
- "Request 2 had method GET, not HEAD"
- ],
- "head-200-retain": [
- "Assertion",
- "Response 2 header Template-A is \"null\", not \"1\""
- ],
- "head-200-update": [
- "Assertion",
- "Request 2 had method GET, not HEAD"
- ],
- "head-410-update": [
- "Setup",
- "Response 3 status is 410, not 200"
- ],
- "head-writethrough": [
- "Assertion",
- "Request 2 had method GET, not HEAD"
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Cache-Control-no-cache-single": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-omit-headers-listed-in-Connection": true,
- "headers-store-Cache-Control": true,
- "headers-store-Clear-Site-Data": true,
- "headers-store-Connection": true,
- "headers-store-Content-Encoding": true,
- "headers-store-Content-Foo": true,
- "headers-store-Content-Length": true,
- "headers-store-Content-Location": true,
- "headers-store-Content-MD5": true,
- "headers-store-Content-Range": [
- "Assertion",
- "Response 2 header Content-Range is \"null\", not \"ANANANANANANANA\""
- ],
- "headers-store-Content-Security-Policy": true,
- "headers-store-Content-Type": true,
- "headers-store-ETag": true,
- "headers-store-Expires": true,
- "headers-store-Keep-Alive": true,
- "headers-store-Proxy-Authenticate": true,
- "headers-store-Proxy-Authentication-Info": true,
- "headers-store-Proxy-Authorization": true,
- "headers-store-Proxy-Connection": true,
- "headers-store-Public-Key-Pins": true,
- "headers-store-Set-Cookie": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "headers-store-Set-Cookie2": true,
- "headers-store-TE": true,
- "headers-store-Test-Header": true,
- "headers-store-Transfer-Encoding": [
- "Setup",
- "Response 1 status is 503, not 200"
- ],
- "headers-store-Upgrade": true,
- "headers-store-X-Content-Foo": true,
- "headers-store-X-Frame-Options": true,
- "headers-store-X-Test-Header": true,
- "headers-store-X-XSS-Protection": true,
- "heuristic-200-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-201-not_cached": true,
- "heuristic-202-not_cached": true,
- "heuristic-203-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-204-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-403-not_cached": true,
- "heuristic-404-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-405-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-410-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-414-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-501-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-502-not_cached": true,
- "heuristic-503-not_cached": true,
- "heuristic-504-not_cached": true,
- "heuristic-599-cached": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-599-not_cached": true,
- "heuristic-delta-10": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-1800": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-30": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-300": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-3600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-43200": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-5": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-60": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-600": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "heuristic-delta-86400": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "invalidate-DELETE": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-DELETE-failed": true,
- "invalidate-DELETE-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-M-SEARCH-failed": true,
- "invalidate-M-SEARCH-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-POST-failed": true,
- "invalidate-POST-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-cl": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "invalidate-PUT-failed": true,
- "invalidate-PUT-location": [
- "Assertion",
- "Response 3 comes from cache"
- ],
- "method-POST": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-age-gen": true,
- "other-age-update-expires": true,
- "other-age-update-max-age": true,
- "other-authorization": true,
- "other-authorization-must-revalidate": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-authorization-public": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-authorization-smaxage": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-cookie": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-date-update": true,
- "other-fresh-content-disposition-attachment": true,
- "other-heuristic-content-disposition-attachment": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "other-set-cookie": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-complete-reuse-partial": true,
- "partial-store-complete-reuse-partial-no-last": true,
- "partial-store-complete-reuse-partial-suffix": true,
- "partial-store-partial-complete": [
- "Assertion",
- "Request 2 header range is \"undefined\", not \"bytes=5-\""
- ],
- "partial-store-partial-reuse-partial": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-absent": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-byterange": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-store-partial-reuse-partial-suffix": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "partial-use-headers": true,
- "partial-use-stored-headers": true,
- "pragma-request-extension": true,
- "pragma-request-no-cache": true,
- "pragma-response-extension": true,
- "pragma-response-no-cache": true,
- "pragma-response-no-cache-heuristic": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "query-args-different": true,
- "query-args-same": true,
- "stale-503": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-close-must-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-no-cache": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-proxy-revalidate": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-close-s-maxage=2": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "stale-sie-503": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-sie-close": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "stale-warning-become": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "stale-warning-stored": [
- "Setup",
- "Response 2 does not come from cache"
- ],
- "status-200-fresh": true,
- "status-200-must-understand": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-200-stale": true,
- "status-203-fresh": true,
- "status-203-stale": true,
- "status-204-fresh": true,
- "status-204-stale": true,
- "status-299-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-299-stale": true,
- "status-301-fresh": true,
- "status-301-stale": true,
- "status-302-fresh": true,
- "status-302-stale": true,
- "status-303-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-303-stale": true,
- "status-307-fresh": true,
- "status-307-stale": true,
- "status-308-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-308-stale": true,
- "status-400-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-400-stale": true,
- "status-404-fresh": true,
- "status-404-stale": true,
- "status-410-fresh": true,
- "status-410-stale": true,
- "status-499-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-499-stale": true,
- "status-500-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-500-stale": true,
- "status-502-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-502-stale": true,
- "status-503-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-503-stale": true,
- "status-504-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-504-stale": true,
- "status-599-fresh": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "status-599-must-understand": true,
- "status-599-stale": true,
- "surrogate-append-capabilities": [
- "Assertion",
- "Request 1 Surrogate-Capability header not present."
- ],
- "surrogate-fresh-cc-nostore": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-0": true,
- "surrogate-max-age-0-expires": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-age": true,
- "surrogate-max-age-case-insensitive": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-cc-max-age-invalid-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-expires": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-extension": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-long-cc-max-age": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "surrogate-max-age-max": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-max-plus": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-me-target": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-other-target": true,
- "surrogate-max-age-short-cc-max-age": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "surrogate-max-age-space-after-equals": true,
- "surrogate-max-age-space-before-equals": true,
- "surrogate-no-store": true,
- "surrogate-no-store-cc-fresh": true,
- "surrogate-remove-header": true,
- "vary-2-match": true,
- "vary-2-match-omit": true,
- "vary-2-no-match": true,
- "vary-3-match": true,
- "vary-3-no-match": true,
- "vary-3-omit": true,
- "vary-3-order": true,
- "vary-cache-key": true,
- "vary-invalidate": true,
- "vary-match": true,
- "vary-no-match": true,
- "vary-normalise-combine": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-case": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-order": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-select": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-lang-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-normalise-space": [
- "Assertion",
- "Response 2 does not come from cache"
- ],
- "vary-omit": true,
- "vary-omit-stored": true,
- "vary-star": true,
- "vary-syntax-empty-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-empty-star-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-foo-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star": true,
- "vary-syntax-star-foo": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star-star": [
- "Assertion",
- "Response 2 comes from cache"
- ],
- "vary-syntax-star-star-lines": [
- "Assertion",
- "Response 2 comes from cache"
- ]
-}
diff --git a/jenkins/branch/cache-tests.pipeline b/jenkins/branch/cache-tests.pipeline
index 3b0554c..524ef91 100644
--- a/jenkins/branch/cache-tests.pipeline
+++ b/jenkins/branch/cache-tests.pipeline
@@ -1,34 +1,40 @@
pipeline {
- agent {
- docker {
- registryUrl 'https://controller.trafficserver.org/'
- image 'controller.trafficserver.org/ats/cache-tests-build:latest'
- args '--user root --init --cap-add=SYS_PTRACE --network=host -v ${HOME}/ccache:/tmp/ccache:rw'
- label 'branch'
- }
- }
+ agent none
+
environment {
CCACHE_DIR = "/tmp/ccache"
}
stages {
- stage('Initialization') {
+ stage('Test') {
+
+ agent {
+ docker {
+ registryUrl 'https://controller.trafficserver.org/'
+ //image 'controller.trafficserver.org/ats/debian:11'
+ image 'controller.trafficserver.org/ats/cache-tests'
+ args '--user root --init --cap-add=SYS_PTRACE --network=host -v ${HOME}/ccache:/tmp/ccache:rw'
+ label 'branch'
+ }
+ }
+
steps {
script {
+ if (! env.GITHUB_BRANCH) {
+ def bparts = env.JOB_NAME.split('/')
+ if (1 != bparts.length) {
+ error("Invalid branch name from ${JOB_NAME}")
+ }
+ env.GITHUB_BRANCH = bparts[0]
+ }
currentBuild.displayName = "#${BUILD_NUMBER} ${GITHUB_BRANCH}"
if (env.SHA1) {
currentBuild.description = env.SHA1
}
+ sh 'printenv'
}
- }
- }
- stage('Clone') {
- steps {
- dir('ci') {
- git url: 'https://github.com/apache/trafficserver-ci',
- branch: 'main'
- }
+ echo "Checking out and building basic ATS"
dir('src') {
script {
String branch = env.SHA1
@@ -36,7 +42,7 @@ pipeline {
branch = '*/' + env.GITHUB_BRANCH
}
- timeout(time: 1, unit: 'MINUTES') {
+ timeout(time: 1, unit: 'MINUTES') {
retry(3) {
checkout([$class: 'GitSCM',
branches: [[name: branch]],
@@ -45,50 +51,57 @@ pipeline {
])
}
}
+
+ sh '''
+ chmod -R o+r .
+ autoreconf -fiv
+ ./configure --prefix=/opt/ats --enable-ccache
+ make -j4 install
+ echo 'map / https://jenkins.trafficserver.org/cache-tests/' >> \
+ /opt/ats/etc/trafficserver/remap.config
+ '''
}
}
- echo 'Finished Cloning'
- }
- }
- stage('Build') {
- steps {
- echo 'Starting build'
+ echo "Running npm test"
dir('src') {
- sh '''
- chmod -R o+r .
- autoreconf -fiv
- ./configure --prefix=/opt/ats --enable-ccache
- make -j4
- make install
- echo 'map / https://jenkins.trafficserver.org/cache-tests/' >> /opt/ats/etc/trafficserver/remap.config
- '''
+ script {
+ sh '''
+ cd /cache-tests
+ mkdir -p ${WORKSPACE}/output
+ /opt/ats/bin/traffic_manager &
+ sleep 2
+ npm run --silent cli --base=http://localhost:8080/ > ${WORKSPACE}/output/ats-${GITHUB_BRANCH}.json
+ chmod 644 ${WORKSPACE}/output/ats-${GITHUB_BRANCH}.json
+ chown -R 1200:1200 ${WORKSPACE}/output
+ '''
+ }
+ }
+
+ echo "Stashing"
+ dir('output') {
+ stash includes: '*.json', name: "results"
}
}
}
- stage('Cache-Tests') {
+ stage('Publish') {
+ agent { label 'controller' }
steps {
- echo 'Starting Cache-Tests'
- dir('src') {
+ echo "Installing"
+ script {
+ echo "Unstashing"
+ unstash 'results'
sh '''
- cd /cache-tests
- /opt/ats/bin/traffic_manager &
- mkdir -p ${WORKSPACE}/output
- sleep 2
- npm run --silent cli --base=http://localhost:8080/ > ${WORKSPACE}/output/${GITHUB_BRANCH}.json
+ cp -avx ats-${GITHUB_BRANCH}.json /opt/cache-tests/cache-tests/results/
'''
}
}
- }
- }
-
- post {
- always {
- archiveArtifacts artifacts: 'output/**/*', fingerprint: false, allowEmptyArchive: true
- }
- cleanup {
- cleanWs()
+ post {
+ always {
+ cleanWs()
+ }
+ }
}
}
}
diff --git a/jenkins/branch/coverage.pipeline b/jenkins/branch/coverage.pipeline
index 9d52a2c..55eced2 100644
--- a/jenkins/branch/coverage.pipeline
+++ b/jenkins/branch/coverage.pipeline
@@ -44,7 +44,7 @@ pipeline {
branch = '*/' + env.GITHUB_BRANCH
}
- timeout(time: 1, unit: 'MINUTES') {
+ timeout(time: 1, unit: 'MINUTES') {
retry(3) {
checkout([$class: 'GitSCM',
branches: [[name: branch]],
diff --git a/jenkins/branch/docs.pipeline b/jenkins/branch/docs.pipeline
index 7efae8e..070af73 100644
--- a/jenkins/branch/docs.pipeline
+++ b/jenkins/branch/docs.pipeline
@@ -67,7 +67,7 @@ pipeline {
script {
if (env.PUBLISH_DOCS == "true") {
echo 'stashing docs'
- stash includes: 'en/**,ja/**', name: "docs"
+ stash includes: 'en/**,ja/**', name: "docs"
}
}
}
diff --git a/jenkins/branch/in_tree.pipeline b/jenkins/branch/in_tree.pipeline
index 4b76e48..7ee1342 100644
--- a/jenkins/branch/in_tree.pipeline
+++ b/jenkins/branch/in_tree.pipeline
@@ -45,7 +45,7 @@ pipeline {
branch = '*/' + env.GITHUB_BRANCH
}
- timeout(time: 1, unit: 'MINUTES') {
+ timeout(time: 1, unit: 'MINUTES') {
retry(3) {
checkout([$class: 'GitSCM',
branches: [[name: branch]],
diff --git a/jenkins/branch/os_build.pipeline b/jenkins/branch/os_build.pipeline
index d8f9ae8..fce93da 100644
--- a/jenkins/branch/os_build.pipeline
+++ b/jenkins/branch/os_build.pipeline
@@ -37,7 +37,7 @@ pipeline {
branch = '*/' + env.GITHUB_BRANCH
}
- timeout(time: 1, unit: 'MINUTES') {
+ timeout(time: 1, unit: 'MINUTES') {
retry(3) {
checkout([$class: 'GitSCM',
branches: [[name: branch]],
diff --git a/jenkins/branch/rat.pipeline b/jenkins/branch/rat.pipeline
index cf3fcd3..dca8bb8 100644
--- a/jenkins/branch/rat.pipeline
+++ b/jenkins/branch/rat.pipeline
@@ -42,7 +42,7 @@ pipeline {
branch = '*/' + env.GITHUB_BRANCH
}
- timeout(time: 1, unit: 'MINUTES') {
+ timeout(time: 1, unit: 'MINUTES') {
retry(3) {
checkout([$class: 'GitSCM',
branches: [[name: branch]],