@angular/benchpress
Version:
Benchpress - a framework for e2e performance tests
40 lines • 5.46 kB
JavaScript
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { Options } from './common_options';
import { Metric } from './metric';
import { Validator } from './validator';
/**
* SampleDescription merges all available descriptions about a sample
*/
export class SampleDescription {
constructor(id, descriptions, metrics) {
this.id = id;
this.metrics = metrics;
this.description = {};
descriptions.forEach(description => {
Object.keys(description).forEach(prop => {
this.description[prop] = description[prop];
});
});
}
toJson() {
return { 'id': this.id, 'description': this.description, 'metrics': this.metrics };
}
}
SampleDescription.PROVIDERS = [{
provide: SampleDescription,
useFactory: (metric, id, forceGc, userAgent, validator, defaultDesc, userDesc) => new SampleDescription(id, [
{ 'forceGc': forceGc, 'userAgent': userAgent }, validator.describe(), defaultDesc,
userDesc
], metric.describe()),
deps: [
Metric, Options.SAMPLE_ID, Options.FORCE_GC, Options.USER_AGENT, Validator,
Options.DEFAULT_DESCRIPTION, Options.SAMPLE_DESCRIPTION
]
}];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlX2Rlc2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYmVuY2hwcmVzcy9zcmMvc2FtcGxlX2Rlc2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUlILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFHdEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBcUI1QixZQUNXLEVBQVUsRUFBRSxZQUF5QyxFQUNyRCxPQUE2QjtRQUQ3QixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLENBQUM7SUFDbkYsQ0FBQzs7QUFqQ00sMkJBQVMsR0FBRyxDQUFDO1FBQ2xCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsVUFBVSxFQUNOLENBQUMsTUFBYyxFQUFFLEVBQVUsRUFBRSxPQUFnQixFQUFFLFNBQWlCLEVBQUUsU0FBb0IsRUFDckYsV0FBb0MsRUFBRSxRQUFpQyxFQUFFLEVBQUUsQ0FDeEUsSUFBSSxpQkFBaUIsQ0FDakIsRUFBRSxFQUNGO1lBQ0UsRUFBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUMsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsV0FBVztZQUMvRSxRQUFRO1NBQ1QsRUFDRCxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxFQUNBO1lBQ0UsTUFBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLFNBQVM7WUFDMUUsT0FBTyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7U0FDeEQ7S0FDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T3B0aW9uc30gZnJvbSAnLi9jb21tb25fb3B0aW9ucyc7XG5pbXBvcnQge01ldHJpY30gZnJvbSAnLi9tZXRyaWMnO1xuaW1wb3J0IHtWYWxpZGF0b3J9IGZyb20gJy4vdmFsaWRhdG9yJztcblxuXG4vKipcbiAqIFNhbXBsZURlc2NyaXB0aW9uIG1lcmdlcyBhbGwgYXZhaWxhYmxlIGRlc2NyaXB0aW9ucyBhYm91dCBhIHNhbXBsZVxuICovXG5leHBvcnQgY2xhc3MgU2FtcGxlRGVzY3JpcHRpb24ge1xuICBzdGF0aWMgUFJPVklERVJTID0gW3tcbiAgICBwcm92aWRlOiBTYW1wbGVEZXNjcmlwdGlvbixcbiAgICB1c2VGYWN0b3J5OlxuICAgICAgICAobWV0cmljOiBNZXRyaWMsIGlkOiBzdHJpbmcsIGZvcmNlR2M6IGJvb2xlYW4sIHVzZXJBZ2VudDogc3RyaW5nLCB2YWxpZGF0b3I6IFZhbGlkYXRvcixcbiAgICAgICAgIGRlZmF1bHREZXNjOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSwgdXNlckRlc2M6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSA9PlxuICAgICAgICAgICAgbmV3IFNhbXBsZURlc2NyaXB0aW9uKFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIHsnZm9yY2VHYyc6IGZvcmNlR2MsICd1c2VyQWdlbnQnOiB1c2VyQWdlbnR9LCB2YWxpZGF0b3IuZGVzY3JpYmUoKSwgZGVmYXVsdERlc2MsXG4gICAgICAgICAgICAgICAgICB1c2VyRGVzY1xuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgbWV0cmljLmRlc2NyaWJlKCkpLFxuICAgIGRlcHM6XG4gICAgICAgIFtcbiAgICAgICAgICBNZXRyaWMsIE9wdGlvbnMuU0FNUExFX0lELCBPcHRpb25zLkZPUkNFX0dDLCBPcHRpb25zLlVTRVJfQUdFTlQsIFZhbGlkYXRvcixcbiAgICAgICAgICBPcHRpb25zLkRFRkFVTFRfREVTQ1JJUFRJT04sIE9wdGlvbnMuU0FNUExFX0RFU0NSSVBUSU9OXG4gICAgICAgIF1cbiAgfV07XG4gIGRlc2NyaXB0aW9uOiB7W2tleTogc3RyaW5nXTogYW55fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHB1YmxpYyBpZDogc3RyaW5nLCBkZXNjcmlwdGlvbnM6IEFycmF5PHtba2V5OiBzdHJpbmddOiBhbnl9PixcbiAgICAgIHB1YmxpYyBtZXRyaWNzOiB7W2tleTogc3RyaW5nXTogYW55fSkge1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSB7fTtcbiAgICBkZXNjcmlwdGlvbnMuZm9yRWFjaChkZXNjcmlwdGlvbiA9PiB7XG4gICAgICBPYmplY3Qua2V5cyhkZXNjcmlwdGlvbikuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbltwcm9wXSA9IGRlc2NyaXB0aW9uW3Byb3BdO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICB0b0pzb24oKSB7XG4gICAgcmV0dXJuIHsnaWQnOiB0aGlzLmlkLCAnZGVzY3JpcHRpb24nOiB0aGlzLmRlc2NyaXB0aW9uLCAnbWV0cmljcyc6IHRoaXMubWV0cmljc307XG4gIH1cbn1cbiJdfQ==