diff --git a/CHANGELOG.md b/CHANGELOG.md index ce2a2760..d8706734 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ project adheres to [Semantic Versioning](http://semver.org/). "benchmarks": [ { "measurement": { - "kind": "performance", + "mode": "performance", "entryName": "foo" } } @@ -32,12 +32,12 @@ project adheres to [Semantic Versioning](http://semver.org/). "benchmarks": [ { "measurement": { - "kind": "callback" + "mode": "callback" } }, { "measurement": { - "kind": "expression", + "mode": "expression", "expression": "window.tachometerResult" } } diff --git a/README.md b/README.md index 5fe03c1d..2221cd29 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ confidence in them. ## Measurement modes -Tachometer supports four kinds of time interval measurements, controlled with +Tachometer supports four modes of time interval measurements, controlled with the `measurement` config file property, or the `--measure` flag. If `measurement` is an array, then all of the given measurements will be @@ -111,7 +111,7 @@ And in your config file: "benchmarks": [ { "measurement": { - "kind": "performance", + "mode": "performance", "entryName": "foo" } } diff --git a/config.schema.json b/config.schema.json index 878c5e98..afd84349 100644 --- a/config.schema.json +++ b/config.schema.json @@ -5,7 +5,7 @@ "CallbackMeasurement": { "additionalProperties": false, "properties": { - "kind": { + "mode": { "enum": [ "callback" ], @@ -13,7 +13,7 @@ } }, "required": [ - "kind" + "mode" ], "type": "object" }, @@ -207,7 +207,7 @@ "expression": { "type": "string" }, - "kind": { + "mode": { "enum": [ "expression" ], @@ -216,7 +216,7 @@ }, "required": [ "expression", - "kind" + "mode" ], "type": "object" }, @@ -307,7 +307,7 @@ "entryName": { "type": "string" }, - "kind": { + "mode": { "enum": [ "performance" ], @@ -316,7 +316,7 @@ }, "required": [ "entryName", - "kind" + "mode" ], "type": "object" }, diff --git a/src/config.ts b/src/config.ts index 114ce742..57f226bc 100644 --- a/src/config.ts +++ b/src/config.ts @@ -124,7 +124,7 @@ export async function makeConfig(opts: Opts): Promise { for (const spec of config.benchmarks) { for (const measurement of spec.measurement) { - if (measurement.kind === 'performance' && + if (measurement.mode === 'performance' && measurement.entryName === 'first-contentful-paint' && !fcpBrowsers.has(spec.browser.name)) { throw new Error( diff --git a/src/configfile.ts b/src/configfile.ts index 57ad68f6..2a03a34f 100644 --- a/src/configfile.ts +++ b/src/configfile.ts @@ -343,16 +343,16 @@ async function parseBenchmark(benchmark: ConfigFileBenchmark, root: string): if (benchmark.measurement === 'callback') { spec.measurement = [{ - kind: 'callback', + mode: 'callback', }]; } else if (benchmark.measurement === 'fcp') { spec.measurement = [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }]; } else if (benchmark.measurement === 'global') { spec.measurement = [{ - kind: 'expression', + mode: 'expression', expression: benchmark.measurementExpression || defaults.measurementExpression, }]; diff --git a/src/defaults.ts b/src/defaults.ts index 5e0e6827..3b7c2580 100644 --- a/src/defaults.ts +++ b/src/defaults.ts @@ -28,9 +28,9 @@ export const measurementExpression = 'window.tachometerResult'; export function measurement(url: LocalUrl|RemoteUrl): Measurement { if (url.kind === 'remote') { return { - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }; } - return {kind: 'callback'}; + return {mode: 'callback'}; } diff --git a/src/measure.ts b/src/measure.ts index d62e5bb6..0aec773e 100644 --- a/src/measure.ts +++ b/src/measure.ts @@ -24,7 +24,7 @@ export async function measure( driver: webdriver.WebDriver, measurement: Measurement, server: Server|undefined): Promise { - switch (measurement.kind) { + switch (measurement.mode) { case 'callback': if (server === undefined) { throw new Error('Internal error: no server for spec'); @@ -125,7 +125,7 @@ function escapeStringLiteral(unescaped: string): string { * where there are multiple measurements on the same page. */ export function measurementName(measurement: Measurement): string { - switch (measurement.kind) { + switch (measurement.mode) { case 'callback': return 'callback'; case 'expression': diff --git a/src/specs.ts b/src/specs.ts index f201036f..06f98e3b 100644 --- a/src/specs.ts +++ b/src/specs.ts @@ -72,16 +72,16 @@ export async function specsFromOpts(opts: Opts): Promise { let measurement: Measurement|undefined; if (opts.measure === 'callback') { measurement = { - kind: 'callback', + mode: 'callback', }; } else if (opts.measure === 'fcp') { measurement = { - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }; } else if (opts.measure === 'global') { measurement = { - kind: 'expression', + mode: 'expression', expression: opts['measurement-expression'] || defaults.measurementExpression, }; diff --git a/src/test/config_test.ts b/src/test/config_test.ts index 9bacdd96..e91e419a 100644 --- a/src/test/config_test.ts +++ b/src/test/config_test.ts @@ -61,7 +61,7 @@ suite('makeConfig', function() { }, }, measurement: [{ - kind: 'callback', + mode: 'callback', }], name: 'random-global.html', url: { @@ -104,7 +104,7 @@ suite('makeConfig', function() { }, }, measurement: [{ - kind: 'callback', + mode: 'callback', }], // TODO(aomarks) Why does this have a forward-slash? name: '/random-global.html', @@ -147,7 +147,7 @@ suite('makeConfig', function() { }, }, measurement: [{ - kind: 'callback', + mode: 'callback', }], // TODO(aomarks) Why does this have a forward-slash? name: '/random-global.html', @@ -197,7 +197,7 @@ suite('makeConfig', function() { }, }, measurement: [{ - kind: 'callback', + mode: 'callback', }], // TODO(aomarks) Why does this have a forward-slash? name: '/random-global.html', diff --git a/src/test/configfile_test.ts b/src/test/configfile_test.ts index 11c9b66e..a81d23b4 100644 --- a/src/test/configfile_test.ts +++ b/src/test/configfile_test.ts @@ -55,7 +55,7 @@ suite('config', () => { name: 'remote', browser: defaultBrowser, measurement: { - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }, url: 'http://example.com?foo=bar', @@ -69,7 +69,7 @@ suite('config', () => { 'layout.css.shadow-parts.enabled': true, }, }, - measurement: {kind: 'callback'}, + measurement: {mode: 'callback'}, url: 'mybench/index.html?foo=bar', packageVersions: { label: 'master', @@ -87,7 +87,7 @@ suite('config', () => { cpuThrottlingRate: 6, }, measurement: { - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }, url: 'http://example.com?foo=bar', @@ -108,7 +108,7 @@ suite('config', () => { name: 'remote', browser: defaultBrowser, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], url: { @@ -126,7 +126,7 @@ suite('config', () => { }, }, measurement: [{ - kind: 'callback', + mode: 'callback', }], url: { kind: 'local', @@ -149,7 +149,7 @@ suite('config', () => { cpuThrottlingRate: 6, }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], url: { @@ -188,7 +188,7 @@ suite('config', () => { url: 'http://example.com?foo=bar', }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: defaultBrowser, @@ -201,7 +201,7 @@ suite('config', () => { queryString: '?foo=bar', }, measurement: [{ - kind: 'callback', + mode: 'callback', }], browser: defaultBrowser, }, @@ -217,20 +217,20 @@ suite('config', () => { { url: 'mybench/index.html?foo=a', measurement: { - kind: 'callback', + mode: 'callback', } }, { url: 'mybench/index.html?foo=b', measurement: { - kind: 'expression', + mode: 'expression', expression: 'window.foo', } }, { url: 'mybench/index.html?foo=c', measurement: { - kind: 'performance', + mode: 'performance', entryName: 'foo-measure', } }, @@ -251,7 +251,7 @@ suite('config', () => { queryString: '?foo=a', }, measurement: [{ - kind: 'callback', + mode: 'callback', }], browser: defaultBrowser, }, @@ -263,7 +263,7 @@ suite('config', () => { queryString: '?foo=b', }, measurement: [{ - kind: 'expression', + mode: 'expression', expression: 'window.foo', }], browser: defaultBrowser, @@ -276,7 +276,7 @@ suite('config', () => { queryString: '?foo=c', }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'foo-measure', }], browser: defaultBrowser, @@ -295,7 +295,7 @@ suite('config', () => { expand: [ { measurement: { - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }, expand: [ @@ -304,7 +304,7 @@ suite('config', () => { ], }, { - measurement: {kind: 'callback'}, + measurement: {mode: 'callback'}, expand: [ {browser: 'chrome'}, {browser: 'firefox'}, @@ -324,7 +324,7 @@ suite('config', () => { name: 'http://example.com', url: {kind: 'remote', url: 'http://example.com'}, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: defaultBrowser, @@ -333,7 +333,7 @@ suite('config', () => { name: 'http://example.com', url: {kind: 'remote', url: 'http://example.com'}, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: { @@ -345,7 +345,7 @@ suite('config', () => { name: 'http://example.com', url: {kind: 'remote', url: 'http://example.com'}, measurement: [{ - kind: 'callback', + mode: 'callback', }], browser: defaultBrowser, }, @@ -353,7 +353,7 @@ suite('config', () => { name: 'http://example.com', url: {kind: 'remote', url: 'http://example.com'}, measurement: [{ - kind: 'callback', + mode: 'callback', }], browser: { ...defaultBrowser, @@ -398,7 +398,7 @@ suite('config', () => { url: 'http://example.com?foo=bar', }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: { @@ -500,7 +500,7 @@ suite('config', () => { benchmarks: [{ browser: 'chrome', measurement: { - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }, }], diff --git a/src/test/data/multiple-measurements.json b/src/test/data/multiple-measurements.json index e5551f1d..d33d233d 100644 --- a/src/test/data/multiple-measurements.json +++ b/src/test/data/multiple-measurements.json @@ -8,11 +8,11 @@ "url": "src/test/data/multiple-measurements.html?foo=20&bar=60", "measurement": [ { - "kind": "performance", + "mode": "performance", "entryName": "foo" }, { - "kind": "performance", + "mode": "performance", "entryName": "bar" } ], diff --git a/src/test/data/performance-measure.json b/src/test/data/performance-measure.json index 8b6977a2..53bd66f5 100644 --- a/src/test/data/performance-measure.json +++ b/src/test/data/performance-measure.json @@ -7,7 +7,7 @@ "name": "20", "url": "src/test/data/performance-measure.html?wait=20", "measurement": { - "kind": "performance", + "mode": "performance", "entryName": "foo" }, "browser": { @@ -19,7 +19,7 @@ "name": "60", "url": "src/test/data/performance-measure.html?wait=60", "measurement": { - "kind": "performance", + "mode": "performance", "entryName": "foo" }, "browser": { diff --git a/src/test/specs_test.ts b/src/test/specs_test.ts index bb94e4d7..b920a4ac 100644 --- a/src/test/specs_test.ts +++ b/src/test/specs_test.ts @@ -66,7 +66,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], }, @@ -86,7 +86,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], }, @@ -108,7 +108,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'callback', + mode: 'callback', }], }, ]; @@ -129,7 +129,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'callback', + mode: 'callback', }], }, ]; @@ -150,7 +150,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'callback', + mode: 'callback', }], }, ]; @@ -171,7 +171,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'callback', + mode: 'callback', }], }, ]; @@ -192,7 +192,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'callback', + mode: 'callback', }], }, ]; @@ -213,7 +213,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'callback', + mode: 'callback', }], }, ]; @@ -243,7 +243,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'callback', + mode: 'callback', }], }, { @@ -261,7 +261,7 @@ suite('specsFromOpts', () => { }, browser: defaultBrowser, measurement: [{ - kind: 'callback', + mode: 'callback', }], }, ]; diff --git a/src/test/versions_test.ts b/src/test/versions_test.ts index d7894269..7b3b87d2 100644 --- a/src/test/versions_test.ts +++ b/src/test/versions_test.ts @@ -46,7 +46,7 @@ suite('versions', () => { queryString: '', }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: defaultBrowser, @@ -65,7 +65,7 @@ suite('versions', () => { queryString: '', }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: defaultBrowser, @@ -80,7 +80,7 @@ suite('versions', () => { queryString: '', }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: defaultBrowser, @@ -93,7 +93,7 @@ suite('versions', () => { queryString: '', }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: defaultBrowser, @@ -107,7 +107,7 @@ suite('versions', () => { url: 'http://example.com', }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: defaultBrowser, @@ -205,7 +205,7 @@ suite('versions', () => { queryString: '', }, measurement: [{ - kind: 'performance', + mode: 'performance', entryName: 'first-contentful-paint', }], browser: defaultBrowser, diff --git a/src/types.ts b/src/types.ts index e3564e1e..e2e20aff 100644 --- a/src/types.ts +++ b/src/types.ts @@ -52,16 +52,16 @@ export type Measurement = CallbackMeasurement|PerformanceEntryMeasurement|ExpressionMeasurement; export interface CallbackMeasurement { - kind: 'callback'; + mode: 'callback'; } export interface PerformanceEntryMeasurement { - kind: 'performance'; + mode: 'performance'; entryName: string; } export interface ExpressionMeasurement { - kind: 'expression'; + mode: 'expression'; expression: string; }