Skip to content

Commit 9aa8451

Browse files
Make update backward compatible
1 parent 51ec148 commit 9aa8451

3 files changed

Lines changed: 26 additions & 9 deletions

File tree

bin/sparql-benchmark-runner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ async function main(): Promise<void> {
110110
invalidateCacheBetweenSetExecutions: args.invalidateCacheAfterQuerySet,
111111
});
112112

113-
const results: IRunResult = await runner.run();
113+
const results: IRunResult = await runner.runWithRawResults();
114114
await serializeResults(args.output, results.aggregateResults);
115115
const outputRaw = args.outputRaw ?? (args.metadata ? resolve('./output-raw.json') : undefined);
116116
if (results.rawResults && outputRaw) {

lib/SparqlBenchmarkRunner.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type * as RDF from '@rdfjs/types';
33
import { SparqlEndpointFetcher } from 'fetch-sparql-endpoint';
44
import { termToString } from 'rdf-string';
55
import type { IQuerySetMetadata } from './QueryLoader';
6-
import type { IResult, IResultMetadata, IRunResult } from './Result';
6+
import type { IAggregateResult, IResult, IResultMetadata, IRunResult } from './Result';
77
import type { IResultAggregator } from './ResultAggregator';
88
import { ResultAggregatorComunica } from './ResultAggregatorComunica';
99

@@ -51,7 +51,15 @@ export class SparqlBenchmarkRunner {
5151
* execute all query sets against the SPARQL endpoint.
5252
* Afterwards, all results are collected and averaged.
5353
*/
54-
public async run(options: IRunOptions = {}): Promise<IRunResult> {
54+
public async run(options: IRunOptions = {}): Promise<IAggregateResult[]> {
55+
const result = await this.runWithRawResults(options);
56+
return result.aggregateResults;
57+
}
58+
59+
/**
60+
* Runs the queries and return aggregated and raw results
61+
*/
62+
public async runWithRawResults(options: IRunOptions = {}): Promise<IRunResult> {
5563
// Execute queries in warmup
5664
if (this.warmup > 0) {
5765
await this.executeAllQueries(this.warmup, true, options.onQuery);

test/SparqlBenchmarkRunner-test.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ describe('SparqlBenchmarkRunner', () => {
8282
});
8383

8484
const results = await runner.run();
85+
const resultsRaw = await runner.runWithRawResults();
8586

8687
const expectedResults: IAggregateResult[] = [
8788
{
@@ -178,15 +179,23 @@ describe('SparqlBenchmarkRunner', () => {
178179
},
179180
];
180181

181-
// Calls: (warmup + replication) * queryset size
182-
const expectedCalls = Object.values(querySets).flatMap(qs => qs).length * (replication + warmup);
182+
// Calls: (warmup + replication) * queryset size * 2 (accounting for both test executions)
183+
const expectedCalls = Object.values(querySets).flatMap(qs => qs).length * (replication + warmup) * 2;
183184
expect(fetcher.fetchBindings).toHaveBeenCalledTimes(expectedCalls);
184185
expect(fetch).toHaveBeenCalledTimes(expectedCalls);
185186

186-
expect(Array.isArray(results)).toBe(false);
187-
expect((<{ 0?: IAggregateResult }><unknown>results)[0]).toBeUndefined();
188-
expect(results.aggregateResults).toEqual(expectedResults);
189-
expect(results.rawResults).toHaveLength(Object.values(querySets).flatMap(qs => qs).length * replication);
187+
// Validate run()
188+
expect(Array.isArray(results)).toBe(true);
189+
expect((<{ rawResults?: any }><unknown>results).rawResults).toBeUndefined();
190+
expect(results).toEqual(expectedResults);
191+
192+
// Validate runWithRawResults() structure and lengths
193+
expect(resultsRaw).toHaveProperty('aggregateResults');
194+
expect(resultsRaw).toHaveProperty('rawResults');
195+
expect(Array.isArray(resultsRaw.aggregateResults)).toBe(true);
196+
expect(Array.isArray(resultsRaw.rawResults)).toBe(true);
197+
expect(resultsRaw.aggregateResults).toHaveLength(expectedResults.length);
198+
expect(resultsRaw.rawResults).toHaveLength(Object.values(querySets).flatMap(qs => qs).length * replication);
190199
});
191200

192201
it('waits until endpoint is up', async() => {

0 commit comments

Comments
 (0)