@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
31 lines (30 loc) • 1.56 kB
TypeScript
import type { UltimateSlicerStats } from '../data';
import type { MergeableRecord } from '../../../util/objects';
interface BenchmarkGraphEntry extends MergeableRecord {
name: string;
unit: string;
value: number;
range?: string;
extra?: string;
}
/**
* Whether an entry describes what the release *is* rather than how fast it *was*.
*
* The benchmark action compares every entry it uploads against the release before and calls a value that grew
* a regression. That is right for a runtime and wrong for a counter: a release with ten more linting rules or a
* larger signature database is not slower. Those entries are written to {@link infoGraphPath} instead and are
* uploaded under a suite of their own, where nothing alerts on them. The page merges the two back together.
*
* The failures are counters too, but a run that fails to re-parse more slices than the one before is exactly
* what an alert is for, so they stay with the measurements.
*/
export declare function isInfoEntry({ name, unit }: Pick<BenchmarkGraphEntry, 'name' | 'unit'>): boolean;
/** where the counters of `path` go, next to it, so that one upload can alert and the other cannot */
export declare function infoGraphPath(path: string): string;
/**
* Write the graph output for the ultimate slicer stats to a file
* @param ultimate - The ultimate slicer stats
* @param outputGraphPath - The path to write the graph output to
*/
export declare function writeGraphOutput(ultimate: UltimateSlicerStats, outputGraphPath: string): Promise<void>;
export {};