Skip to content

Commit 1ab46a3

Browse files
author
Guy Bedford
authored
CacheOverride StarlingMonkey port (#767)
1 parent b64b22e commit 1ab46a3

19 files changed

+751
-193
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ runtime/js-compute-runtime/fastly-world/fastly_world_component_type.o
2525

2626
*.a
2727
yarn-error.log
28+
.vscode

integration-tests/js-compute/fixtures/app/src/assertions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export function assertThrows(func, errorClass, errorMessage) {
8787
} catch (error) {
8888
if (errorClass) {
8989
if ((error instanceof errorClass) === false) {
90-
return fail(`Expected \`${func.toString()}\` to throw instance of \`${errorClass.name}\` - Found instance of \`${error.name}\``)
90+
return fail(`Expected \`${func.toString()}\` to throw instance of \`${errorClass.name}\` - Found instance of \`${error.name}\`: ${error.message}\n${error.stack}`)
9191
}
9292
}
9393

integration-tests/js-compute/fixtures/app/src/btoa.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -737,16 +737,9 @@ routes.set('/btoa', () => {
737737
if (error) { return error; }
738738
error = assertThrows(() => atob("--"))
739739
if (error) { return error; }
740+
error = assertThrows(() => atob("__"))
741+
if (error) { return error; }
740742
}
741743

742744
return pass('ok')
743745
});
744-
745-
routes.set('/btoa-doubleunderscore', () => {
746-
let error;
747-
748-
error = assertThrows(() => atob("__"))
749-
if (error) { return error; }
750-
751-
return pass('ok');
752-
});

integration-tests/js-compute/fixtures/app/src/byte-repeater.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
/* eslint-env serviceworker */
22

3-
import * as cacheOverride from 'fastly:cache-override';
3+
import { CacheOverride } from 'fastly:cache-override';
44
import { routes } from "./routes";
55

6-
const { CacheOverride } = cacheOverride;
7-
86
routes.set('/byte-repeater', () => {
97
let headers = new Headers();
108
headers.set("AssemblyScriptHeader", "AssemblyScriptValue");

integration-tests/js-compute/fixtures/app/src/cache-override.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
import * as cacheOverride from 'fastly:cache-override';
1+
import { CacheOverride } from 'fastly:cache-override';
22
import { pass, assert, assertThrows, assertDoesNotThrow } from "./assertions.js";
33
import { isRunningLocally, routes } from "./routes.js";
44

5-
const { CacheOverride } = cacheOverride;
6-
75
// CacheOverride constructor
86
{
97

integration-tests/js-compute/fixtures/app/src/dynamic-backend.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
/// <reference path="../../../../../types/index.d.ts" />
22
import { Backend } from 'fastly:backend';
3-
import * as cacheOverride from 'fastly:cache-override';
4-
import * as experimental from "fastly:experimental";
3+
import { CacheOverride } from 'fastly:cache-override';
4+
import { allowDynamicBackends } from "fastly:experimental";
55
import { pass, assert, assertDoesNotThrow, assertThrows, assertRejects, assertResolves } from "./assertions.js";
66
import { isRunningLocally, routes } from "./routes.js";
77

8-
{
9-
10-
const { CacheOverride } = cacheOverride;
11-
const { allowDynamicBackends } = experimental;
12-
138
/// The backend name is already in use.
149

1510
routes.set("/backend/timeout", async () => {
@@ -1527,7 +1522,7 @@ routes.set("/backend/timeout", async () => {
15271522
routes.set("/backend/health/called-as-constructor-function", async () => {
15281523
let error = assertThrows(() => {
15291524
new Backend.health()
1530-
}, TypeError, `Backend.health is not a constructor`)
1525+
}, TypeError)
15311526
if (error) { return error }
15321527
return pass('ok')
15331528
});
@@ -1627,5 +1622,3 @@ function createValidFastlyBackend() {
16271622
}
16281623
);
16291624
}
1630-
1631-
}

integration-tests/js-compute/fixtures/app/src/fetch-errors.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
import { pass, assertRejects } from "./assertions.js";
33
import { routes } from "./routes.js";
44
import { Backend } from "fastly:backend";
5-
import * as experimental from "fastly:experimental";
6-
7-
const { allowDynamicBackends } = experimental;
5+
import { allowDynamicBackends } from "fastly:experimental";
86

97
routes.set('/fetch-errors', async () => {
108
allowDynamicBackends(true)

integration-tests/js-compute/fixtures/app/src/manual-framing-headers.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
/// <reference path="../../../../../types/index.d.ts" />
22
/* eslint-env serviceworker */
33

4-
import * as cacheOverride from "fastly:cache-override";
4+
import { CacheOverride } from "fastly:cache-override";
55
import { pass, assert, assertRejects } from "./assertions.js";
66
import { routes, isRunningLocally } from "./routes.js";
77

8-
const { CacheOverride } = cacheOverride;
9-
108
let error;
119

1210
async function requestInitObjectLiteral(manualFramingHeaders) {

integration-tests/js-compute/fixtures/app/tests-starlingmonkey.json

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
"GET /async-select/hello",
33
"GET /btoa",
44
"GET /byob",
5+
"GET /cache-override/constructor/called-as-regular-function",
6+
"GET /cache-override/constructor/parameter-calls-7.1.17-ToString",
7+
"GET /cache-override/constructor/empty-parameter",
8+
"GET /cache-override/constructor/invalid-mode",
9+
"GET /cache-override/constructor/valid-mode",
10+
"GET /cache-override/fetch/mode-none",
11+
"GET /cache-override/fetch/mode-pass",
512
"GET /client/tlsJA3MD5",
613
"GET /client/tlsClientHello",
714
"GET /client/tlsClientCertificate",
@@ -102,6 +109,73 @@
102109
"GET /crypto.subtle.verify/incorrect-signature-hmac",
103110
"GET /crypto.subtle.verify/correct-signature-jwk-rsa",
104111
"GET /crypto.subtle.verify/correct-signature-hmac",
112+
"GET /backend/timeout",
113+
"GET /implicit-dynamic-backend/dynamic-backends-disabled",
114+
"GET /implicit-dynamic-backend/dynamic-backends-enabled",
115+
"GET /implicit-dynamic-backend/dynamic-backends-enabled-called-twice",
116+
"GET /explicit-dynamic-backend/dynamic-backends-enabled-all-fields",
117+
"GET /explicit-dynamic-backend/dynamic-backends-enabled-minimal-fields",
118+
"GET /backend/interface",
119+
"GET /backend/constructor/called-as-regular-function",
120+
"GET /backend/constructor/empty-parameter",
121+
"GET /backend/constructor/parameter-not-an-object",
122+
"GET /backend/constructor/parameter-name-property-null",
123+
"GET /backend/constructor/parameter-name-property-undefined",
124+
"GET /backend/constructor/parameter-name-property-too-long",
125+
"GET /backend/constructor/parameter-name-property-empty-string",
126+
"GET /backend/constructor/parameter-name-property-calls-7.1.17-ToString",
127+
"GET /backend/constructor/parameter-target-property-null",
128+
"GET /backend/constructor/parameter-target-property-undefined",
129+
"GET /backend/constructor/parameter-target-property-empty-string",
130+
"GET /backend/constructor/parameter-target-property-calls-7.1.17-ToString",
131+
"GET /backend/constructor/parameter-target-property-valid-host",
132+
"GET /backend/constructor/parameter-target-property-invalid-host",
133+
"GET /backend/constructor/parameter-ciphers-property-empty-string",
134+
"GET /backend/constructor/parameter-ciphers-property-invalid-cipherlist-string",
135+
"GET /backend/constructor/parameter-ciphers-property-valid-cipherlist-strings-supported-by-fastly",
136+
"GET /backend/constructor/parameter-ciphers-property-valid-cipherlist-strings-but-not-supported-by-fastly",
137+
"GET /backend/constructor/parameter-ciphers-property-calls-7.1.17-ToString",
138+
"GET /backend/constructor/parameter-hostOverride-property-empty-string",
139+
"GET /backend/constructor/parameter-hostOverride-property-calls-7.1.17-ToString",
140+
"GET /backend/constructor/parameter-hostOverride-property-valid-string",
141+
"GET /backend/constructor/parameter-connectTimeout-property-negative-number",
142+
"GET /backend/constructor/parameter-connectTimeout-property-too-big",
143+
"GET /backend/constructor/parameter-connectTimeout-property-calls-7.1.4-ToNumber",
144+
"GET /backend/constructor/parameter-connectTimeout-property-valid-number",
145+
"GET /backend/constructor/parameter-firstByteTimeout-property-negative-number",
146+
"GET /backend/constructor/parameter-firstByteTimeout-property-too-big",
147+
"GET /backend/constructor/parameter-firstByteTimeout-property-calls-7.1.4-ToNumber",
148+
"GET /backend/constructor/parameter-firstByteTimeout-property-valid-number",
149+
"GET /backend/constructor/parameter-betweenBytesTimeout-property-negative-number",
150+
"GET /backend/constructor/parameter-betweenBytesTimeout-property-too-big",
151+
"GET /backend/constructor/parameter-betweenBytesTimeout-property-calls-7.1.4-ToNumber",
152+
"GET /backend/constructor/parameter-betweenBytesTimeout-property-valid-number",
153+
"GET /backend/constructor/parameter-useSSL-property-valid-boolean",
154+
"GET /backend/constructor/parameter-dontPool-property-valid-boolean",
155+
"GET /backend/constructor/parameter-tlsMinVersion-property-nan",
156+
"GET /backend/constructor/parameter-tlsMinVersion-property-invalid-number",
157+
"GET /backend/constructor/parameter-tlsMinVersion-property-calls-7.1.4-ToNumber",
158+
"GET /backend/constructor/parameter-tlsMinVersion-property-valid-number",
159+
"GET /backend/constructor/parameter-tlsMinVersion-greater-than-tlsMaxVersion",
160+
"GET /backend/constructor/parameter-tlsMaxVersion-property-nan",
161+
"GET /backend/constructor/parameter-tlsMaxVersion-property-invalid-number",
162+
"GET /backend/constructor/parameter-tlsMaxVersion-property-calls-7.1.4-ToNumber",
163+
"GET /backend/constructor/parameter-tlsMaxVersion-property-valid-number",
164+
"GET /backend/constructor/parameter-certificateHostname-property-empty-string",
165+
"GET /backend/constructor/parameter-certificateHostname-property-calls-7.1.17-ToString",
166+
"GET /backend/constructor/parameter-certificateHostname-property-valid-string",
167+
"GET /backend/constructor/parameter-caCertificate-property-empty-string",
168+
"GET /backend/constructor/parameter-caCertificate-property-calls-7.1.17-ToString",
169+
"GET /backend/constructor/parameter-caCertificate-property-valid-string",
170+
"GET /backend/constructor/parameter-sniHostname-property-empty-string",
171+
"GET /backend/constructor/parameter-sniHostname-property-calls-7.1.17-ToString",
172+
"GET /backend/constructor/parameter-sniHostname-property-valid-string",
173+
"GET /backend/health/called-as-constructor-function",
174+
"GET /backend/health/empty-parameter",
175+
"GET /backend/health/parameter-calls-7.1.17-ToString",
176+
"GET /backend/health/parameter-invalid",
177+
"GET /backend/health/happy-path-backend-exists",
178+
"GET /backend/health/happy-path-backend-does-not-exist",
105179
"GET /env",
106180
"GET /multiple-set-cookie/response-init",
107181
"GET /multiple-set-cookie/response-direct",
@@ -157,5 +231,17 @@
157231
"GET /clearTimeout/called-unbound",
158232
"GET /urlsearchparams/sort",
159233
"GET /random",
160-
"GET /error"
234+
"GET /error",
235+
"GET /override-content-length/request/init/object-literal/true",
236+
"GET /override-content-length/request/init/object-literal/false",
237+
"GET /override-content-length/request/clone/true",
238+
"GET /override-content-length/request/clone/false",
239+
"GET /override-content-length/fetch/init/object-literal/true",
240+
"GET /override-content-length/fetch/init/object-literal/false",
241+
"GET /override-content-length/response/init/object-literal/true",
242+
"GET /override-content-length/response/init/object-literal/false",
243+
"GET /override-content-length/response/init/response-instance/true",
244+
"GET /override-content-length/response/init/response-instance/false",
245+
"GET /override-content-length/response/method/false",
246+
"GET /override-content-length/response/method/true"
161247
]

integration-tests/js-compute/fixtures/app/tests.json

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,6 @@
2525
"body": "ok"
2626
}
2727
},
28-
"GET /btoa-doubleunderscore": {
29-
"environments": ["viceroy"],
30-
"downstream_request": {
31-
"method": "GET",
32-
"pathname": "/btoa-doubleunderscore"
33-
},
34-
"downstream_response": {
35-
"status": 200,
36-
"body": "ok"
37-
}
38-
},
3928
"GET /byob": {
4029
"environments": ["viceroy", "compute"],
4130
"downstream_request": {

0 commit comments

Comments
 (0)