benchpress
Version:
Benchpress - a framework for e2e performance tests
39 lines • 5.8 kB
JavaScript
import { StringMapWrapper } from 'angular2/src/facade/collection';
import { bind } from 'angular2/src/core/di';
import { Validator } from './validator';
import { Metric } from './metric';
import { Options } from './common_options';
/**
* 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 => {
StringMapWrapper.forEach(description, (value, prop) => this.description[prop] = value);
});
}
// TODO(tbosch): use static values when our transpiler supports them
static get BINDINGS() { return _PROVIDERS; }
toJson() { return { 'id': this.id, 'description': this.description, 'metrics': this.metrics }; }
}
var _PROVIDERS = [
bind(SampleDescription)
.toFactory((metric, id, forceGc, userAgent, validator, defaultDesc, userDesc) => new SampleDescription(id, [
{ 'forceGc': forceGc, 'userAgent': userAgent },
validator.describe(),
defaultDesc,
userDesc
], metric.describe()), [
Metric,
Options.SAMPLE_ID,
Options.FORCE_GC,
Options.USER_AGENT,
Validator,
Options.DEFAULT_DESCRIPTION,
Options.SAMPLE_DESCRIPTION
])
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlX2Rlc2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlmZmluZ19wbHVnaW5fd3JhcHBlci1vdXRwdXRfcGF0aC14QkxJQnJWUi50bXAvYmVuY2hwcmVzcy9zcmMvc2FtcGxlX2Rlc2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0M7T0FDeEQsRUFBQyxJQUFJLEVBQWlDLE1BQU0sc0JBQXNCO09BQ2xFLEVBQUMsU0FBUyxFQUFDLE1BQU0sYUFBYTtPQUM5QixFQUFDLE1BQU0sRUFBQyxNQUFNLFVBQVU7T0FDeEIsRUFBQyxPQUFPLEVBQUMsTUFBTSxrQkFBa0I7QUFFeEM7O0dBRUc7QUFDSDtJQUtFLFlBQW1CLEVBQVUsRUFBRSxZQUF5QyxFQUNyRCxPQUE2QjtRQUQ3QixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQzlCLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDekYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBVkQsb0VBQW9FO0lBQ3BFLFdBQVcsUUFBUSxLQUFpQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQVd4RCxNQUFNLEtBQUssTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUVELElBQUksVUFBVSxHQUFHO0lBQ2YsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQ2xCLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsS0FDN0QsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLEVBQ0Y7UUFDRSxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQztRQUM1QyxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQ3BCLFdBQVc7UUFDWCxRQUFRO0tBQ1QsRUFDRCxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDNUM7UUFDRSxNQUFNO1FBQ04sT0FBTyxDQUFDLFNBQVM7UUFDakIsT0FBTyxDQUFDLFFBQVE7UUFDaEIsT0FBTyxDQUFDLFVBQVU7UUFDbEIsU0FBUztRQUNULE9BQU8sQ0FBQyxtQkFBbUI7UUFDM0IsT0FBTyxDQUFDLGtCQUFrQjtLQUMzQixDQUFDO0NBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1N0cmluZ01hcFdyYXBwZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvY29sbGVjdGlvbic7XG5pbXBvcnQge2JpbmQsIHByb3ZpZGUsIFByb3ZpZGVyLCBPcGFxdWVUb2tlbn0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvZGknO1xuaW1wb3J0IHtWYWxpZGF0b3J9IGZyb20gJy4vdmFsaWRhdG9yJztcbmltcG9ydCB7TWV0cmljfSBmcm9tICcuL21ldHJpYyc7XG5pbXBvcnQge09wdGlvbnN9IGZyb20gJy4vY29tbW9uX29wdGlvbnMnO1xuXG4vKipcbiAqIFNhbXBsZURlc2NyaXB0aW9uIG1lcmdlcyBhbGwgYXZhaWxhYmxlIGRlc2NyaXB0aW9ucyBhYm91dCBhIHNhbXBsZVxuICovXG5leHBvcnQgY2xhc3MgU2FtcGxlRGVzY3JpcHRpb24ge1xuICAvLyBUT0RPKHRib3NjaCk6IHVzZSBzdGF0aWMgdmFsdWVzIHdoZW4gb3VyIHRyYW5zcGlsZXIgc3VwcG9ydHMgdGhlbVxuICBzdGF0aWMgZ2V0IEJJTkRJTkdTKCk6IFByb3ZpZGVyW10geyByZXR1cm4gX1BST1ZJREVSUzsgfVxuICBkZXNjcmlwdGlvbjoge1trZXk6IHN0cmluZ106IGFueX07XG5cbiAgY29uc3RydWN0b3IocHVibGljIGlkOiBzdHJpbmcsIGRlc2NyaXB0aW9uczogQXJyYXk8e1trZXk6IHN0cmluZ106IGFueX0+LFxuICAgICAgICAgICAgICBwdWJsaWMgbWV0cmljczoge1trZXk6IHN0cmluZ106IGFueX0pIHtcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0ge307XG4gICAgZGVzY3JpcHRpb25zLmZvckVhY2goZGVzY3JpcHRpb24gPT4ge1xuICAgICAgU3RyaW5nTWFwV3JhcHBlci5mb3JFYWNoKGRlc2NyaXB0aW9uLCAodmFsdWUsIHByb3ApID0+IHRoaXMuZGVzY3JpcHRpb25bcHJvcF0gPSB2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICB0b0pzb24oKSB7IHJldHVybiB7J2lkJzogdGhpcy5pZCwgJ2Rlc2NyaXB0aW9uJzogdGhpcy5kZXNjcmlwdGlvbiwgJ21ldHJpY3MnOiB0aGlzLm1ldHJpY3N9OyB9XG59XG5cbnZhciBfUFJPVklERVJTID0gW1xuICBiaW5kKFNhbXBsZURlc2NyaXB0aW9uKVxuICAgICAgLnRvRmFjdG9yeSgobWV0cmljLCBpZCwgZm9yY2VHYywgdXNlckFnZW50LCB2YWxpZGF0b3IsIGRlZmF1bHREZXNjLCB1c2VyRGVzYykgPT5cbiAgICAgICAgICAgICAgICAgICAgIG5ldyBTYW1wbGVEZXNjcmlwdGlvbihpZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2ZvcmNlR2MnOiBmb3JjZUdjLCAndXNlckFnZW50JzogdXNlckFnZW50fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvci5kZXNjcmliZSgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdERlc2MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyRGVzY1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0cmljLmRlc2NyaWJlKCkpLFxuICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgTWV0cmljLFxuICAgICAgICAgICAgICAgICAgIE9wdGlvbnMuU0FNUExFX0lELFxuICAgICAgICAgICAgICAgICAgIE9wdGlvbnMuRk9SQ0VfR0MsXG4gICAgICAgICAgICAgICAgICAgT3B0aW9ucy5VU0VSX0FHRU5ULFxuICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcixcbiAgICAgICAgICAgICAgICAgICBPcHRpb25zLkRFRkFVTFRfREVTQ1JJUFRJT04sXG4gICAgICAgICAgICAgICAgICAgT3B0aW9ucy5TQU1QTEVfREVTQ1JJUFRJT05cbiAgICAgICAgICAgICAgICAgXSlcbl07XG4iXX0=