benchpress
Version:
Benchpress - a framework for e2e performance tests
41 lines • 6.67 kB
JavaScript
import { DateWrapper, Json } from 'angular2/src/facade/lang';
import { PromiseWrapper } from 'angular2/src/facade/async';
import { bind, provide, OpaqueToken } from 'angular2/src/core/di';
import { Reporter } from '../reporter';
import { SampleDescription } from '../sample_description';
import { Options } from '../common_options';
/**
* A reporter that writes results into a json file.
*/
export class JsonFileReporter extends Reporter {
constructor(sampleDescription, path, writeFile, now) {
super();
this._description = sampleDescription;
this._path = path;
this._writeFile = writeFile;
this._now = now;
}
// TODO(tbosch): use static values when our transpiler supports them
static get PATH() { return _PATH; }
// TODO(tbosch): use static values when our transpiler supports them
static get BINDINGS() { return _PROVIDERS; }
reportMeasureValues(measureValues) {
return PromiseWrapper.resolve(null);
}
reportSample(completeSample, validSample) {
var content = Json.stringify({
'description': this._description,
'completeSample': completeSample,
'validSample': validSample
});
var filePath = `${this._path}/${this._description.id}_${DateWrapper.toMillis(this._now())}.json`;
return this._writeFile(filePath, content);
}
}
var _PATH = new OpaqueToken('JsonFileReporter.path');
var _PROVIDERS = [
bind(JsonFileReporter)
.toFactory((sampleDescription, path, writeFile, now) => new JsonFileReporter(sampleDescription, path, writeFile, now), [SampleDescription, _PATH, Options.WRITE_FILE, Options.NOW]),
provide(_PATH, { useValue: '.' })
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbl9maWxlX3JlcG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlmZmluZ19wbHVnaW5fd3JhcHBlci1vdXRwdXRfcGF0aC14QkxJQnJWUi50bXAvYmVuY2hwcmVzcy9zcmMvcmVwb3J0ZXIvanNvbl9maWxlX3JlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJPQUFPLEVBQUMsV0FBVyxFQUFzQixJQUFJLEVBQUMsTUFBTSwwQkFBMEI7T0FDdkUsRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkI7T0FFakQsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFZLFdBQVcsRUFBQyxNQUFNLHNCQUFzQjtPQUVsRSxFQUFDLFFBQVEsRUFBQyxNQUFNLGFBQWE7T0FDN0IsRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QjtPQUVoRCxFQUFDLE9BQU8sRUFBQyxNQUFNLG1CQUFtQjtBQUV6Qzs7R0FFRztBQUNILHNDQUFzQyxRQUFRO0lBVzVDLFlBQVksaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHO1FBQ2pELE9BQU8sQ0FBQztRQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsaUJBQWlCLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQWhCRCxvRUFBb0U7SUFDcEUsV0FBVyxJQUFJLEtBQWtCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hELG9FQUFvRTtJQUNwRSxXQUFXLFFBQVEsS0FBaUIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFleEQsbUJBQW1CLENBQUMsYUFBNEI7UUFDOUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FBQyxjQUErQixFQUFFLFdBQTRCO1FBQ3hFLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDM0IsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ2hDLGdCQUFnQixFQUFFLGNBQWM7WUFDaEMsYUFBYSxFQUFFLFdBQVc7U0FDM0IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxRQUFRLEdBQ1IsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUN0RixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ3JELElBQUksVUFBVSxHQUFHO0lBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ2pCLFNBQVMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUNwQyxJQUFJLGdCQUFnQixDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQ2pFLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBQyxRQUFRLEVBQUUsR0FBRyxFQUFDLENBQUM7Q0FDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0ZVdyYXBwZXIsIGlzUHJlc2VudCwgaXNCbGFuaywgSnNvbn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9sYW5nJztcbmltcG9ydCB7UHJvbWlzZVdyYXBwZXJ9IGZyb20gJ2FuZ3VsYXIyL3NyYy9mYWNhZGUvYXN5bmMnO1xuXG5pbXBvcnQge2JpbmQsIHByb3ZpZGUsIFByb3ZpZGVyLCBPcGFxdWVUb2tlbn0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvZGknO1xuXG5pbXBvcnQge1JlcG9ydGVyfSBmcm9tICcuLi9yZXBvcnRlcic7XG5pbXBvcnQge1NhbXBsZURlc2NyaXB0aW9ufSBmcm9tICcuLi9zYW1wbGVfZGVzY3JpcHRpb24nO1xuaW1wb3J0IHtNZWFzdXJlVmFsdWVzfSBmcm9tICcuLi9tZWFzdXJlX3ZhbHVlcyc7XG5pbXBvcnQge09wdGlvbnN9IGZyb20gJy4uL2NvbW1vbl9vcHRpb25zJztcblxuLyoqXG4gKiBBIHJlcG9ydGVyIHRoYXQgd3JpdGVzIHJlc3VsdHMgaW50byBhIGpzb24gZmlsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEpzb25GaWxlUmVwb3J0ZXIgZXh0ZW5kcyBSZXBvcnRlciB7XG4gIC8vIFRPRE8odGJvc2NoKTogdXNlIHN0YXRpYyB2YWx1ZXMgd2hlbiBvdXIgdHJhbnNwaWxlciBzdXBwb3J0cyB0aGVtXG4gIHN0YXRpYyBnZXQgUEFUSCgpOiBPcGFxdWVUb2tlbiB7IHJldHVybiBfUEFUSDsgfVxuICAvLyBUT0RPKHRib3NjaCk6IHVzZSBzdGF0aWMgdmFsdWVzIHdoZW4gb3VyIHRyYW5zcGlsZXIgc3VwcG9ydHMgdGhlbVxuICBzdGF0aWMgZ2V0IEJJTkRJTkdTKCk6IFByb3ZpZGVyW10geyByZXR1cm4gX1BST1ZJREVSUzsgfVxuXG4gIF93cml0ZUZpbGU6IEZ1bmN0aW9uO1xuICBfcGF0aDogc3RyaW5nO1xuICBfZGVzY3JpcHRpb246IFNhbXBsZURlc2NyaXB0aW9uO1xuICBfbm93OiBGdW5jdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzYW1wbGVEZXNjcmlwdGlvbiwgcGF0aCwgd3JpdGVGaWxlLCBub3cpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gc2FtcGxlRGVzY3JpcHRpb247XG4gICAgdGhpcy5fcGF0aCA9IHBhdGg7XG4gICAgdGhpcy5fd3JpdGVGaWxlID0gd3JpdGVGaWxlO1xuICAgIHRoaXMuX25vdyA9IG5vdztcbiAgfVxuXG4gIHJlcG9ydE1lYXN1cmVWYWx1ZXMobWVhc3VyZVZhbHVlczogTWVhc3VyZVZhbHVlcyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIFByb21pc2VXcmFwcGVyLnJlc29sdmUobnVsbCk7XG4gIH1cblxuICByZXBvcnRTYW1wbGUoY29tcGxldGVTYW1wbGU6IE1lYXN1cmVWYWx1ZXNbXSwgdmFsaWRTYW1wbGU6IE1lYXN1cmVWYWx1ZXNbXSk6IFByb21pc2U8YW55PiB7XG4gICAgdmFyIGNvbnRlbnQgPSBKc29uLnN0cmluZ2lmeSh7XG4gICAgICAnZGVzY3JpcHRpb24nOiB0aGlzLl9kZXNjcmlwdGlvbixcbiAgICAgICdjb21wbGV0ZVNhbXBsZSc6IGNvbXBsZXRlU2FtcGxlLFxuICAgICAgJ3ZhbGlkU2FtcGxlJzogdmFsaWRTYW1wbGVcbiAgICB9KTtcbiAgICB2YXIgZmlsZVBhdGggPVxuICAgICAgICBgJHt0aGlzLl9wYXRofS8ke3RoaXMuX2Rlc2NyaXB0aW9uLmlkfV8ke0RhdGVXcmFwcGVyLnRvTWlsbGlzKHRoaXMuX25vdygpKX0uanNvbmA7XG4gICAgcmV0dXJuIHRoaXMuX3dyaXRlRmlsZShmaWxlUGF0aCwgY29udGVudCk7XG4gIH1cbn1cblxudmFyIF9QQVRIID0gbmV3IE9wYXF1ZVRva2VuKCdKc29uRmlsZVJlcG9ydGVyLnBhdGgnKTtcbnZhciBfUFJPVklERVJTID0gW1xuICBiaW5kKEpzb25GaWxlUmVwb3J0ZXIpXG4gICAgICAudG9GYWN0b3J5KChzYW1wbGVEZXNjcmlwdGlvbiwgcGF0aCwgd3JpdGVGaWxlLCBub3cpID0+XG4gICAgICAgICAgICAgICAgICAgICBuZXcgSnNvbkZpbGVSZXBvcnRlcihzYW1wbGVEZXNjcmlwdGlvbiwgcGF0aCwgd3JpdGVGaWxlLCBub3cpLFxuICAgICAgICAgICAgICAgICBbU2FtcGxlRGVzY3JpcHRpb24sIF9QQVRILCBPcHRpb25zLldSSVRFX0ZJTEUsIE9wdGlvbnMuTk9XXSksXG4gIHByb3ZpZGUoX1BBVEgsIHt1c2VWYWx1ZTogJy4nfSlcbl07XG4iXX0=