Skip to content

Commit 42ec3e8

Browse files
committed
debug: respect go test flags usage
1 parent 4298b52 commit 42ec3e8

File tree

2 files changed

+28
-28
lines changed

2 files changed

+28
-28
lines changed

src/testUtils.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -427,11 +427,14 @@ export function computeTestCommand(
427427
addJSONFlag: boolean | undefined; // true if we add extra -json flag for stream processing.
428428
} {
429429
const args: Array<string> = ['test'];
430+
const outArgs:Array<string> = ['test']; // command to show
430431
// user-specified flags
431432
const argsFlagIdx = testconfig.flags?.indexOf('-args') ?? -1;
432433
const userFlags = argsFlagIdx < 0 ? testconfig.flags : testconfig.flags.slice(0, argsFlagIdx);
433434
const userArgsFlags = argsFlagIdx < 0 ? [] : testconfig.flags.slice(argsFlagIdx);
434435

436+
args.push(...targets);
437+
435438
// flags to limit test time
436439
if (testconfig.isBenchmark) {
437440
args.push('-benchmem', '-run=^$');
@@ -469,32 +472,29 @@ export function computeTestCommand(
469472
// all other test run/benchmark flags
470473
args.push(...targetArgs(testconfig));
471474

472-
const outArgs = args.slice(0); // command to show
473-
474475
// if user set -v, set -json to emulate streaming test output
475476
const addJSONFlag = (userFlags.includes('-v') || testconfig.goTestOutputConsumer) && !userFlags.includes('-json');
476477
if (addJSONFlag) {
477478
args.push('-json'); // this is not shown to the user.
478479
}
479480

480-
if (targets.length > 4) {
481-
outArgs.push('<long arguments omitted>');
482-
} else {
483-
outArgs.push(...targets);
484-
}
485-
args.push(...targets);
486-
487481
// ensure that user provided flags are appended last (allow use of -args ...)
488482
// ignore user provided -run flag if we are already using it
489483
if (args.indexOf('-run') > -1) {
490484
removeRunFlag(userFlags);
491485
}
492486

493487
args.push(...userFlags);
494-
outArgs.push(...userFlags);
495-
496488
args.push(...userArgsFlags);
497-
outArgs.push(...userArgsFlags);
489+
490+
// build outArgs
491+
if (targets.length > 4) {
492+
outArgs.push('<long arguments omitted>');
493+
} else {
494+
outArgs.push(...targets);
495+
}
496+
497+
outArgs.push(...args.slice(targets.length + 1));
498498

499499
return {
500500
args,

test/integration/test.test.ts

+16-16
Original file line numberDiff line numberDiff line change
@@ -42,57 +42,57 @@ suite('Test Go Test Args', () => {
4242

4343
test('default config', () => {
4444
runTest({
45-
expectedArgs: 'test -timeout 30s ./...',
46-
expectedOutArgs: 'test -timeout 30s ./...'
45+
expectedArgs: 'test ./... -timeout 30s',
46+
expectedOutArgs: 'test ./... -timeout 30s'
4747
});
4848
});
4949
test('user flag [-v] enables -json flag', () => {
5050
runTest({
51-
expectedArgs: 'test -timeout 30s -json ./... -v',
52-
expectedOutArgs: 'test -timeout 30s ./... -v',
51+
expectedArgs: 'test ./... -timeout 30s -json -v',
52+
expectedOutArgs: 'test ./... -timeout 30s -json -v',
5353
flags: ['-v']
5454
});
5555
});
5656
test('user flag [-json -v] prevents -json flag addition', () => {
5757
runTest({
58-
expectedArgs: 'test -timeout 30s ./... -json -v',
59-
expectedOutArgs: 'test -timeout 30s ./... -json -v',
58+
expectedArgs: 'test ./... -timeout 30s -json -v',
59+
expectedOutArgs: 'test ./... -timeout 30s -json -v',
6060
flags: ['-json', '-v']
6161
});
6262
});
6363
test('user flag [-args] does not crash', () => {
6464
runTest({
65-
expectedArgs: 'test -timeout 30s ./... -args',
66-
expectedOutArgs: 'test -timeout 30s ./... -args',
65+
expectedArgs: 'test ./... -timeout 30s -args',
66+
expectedOutArgs: 'test ./... -timeout 30s -args',
6767
flags: ['-args']
6868
});
6969
});
7070
test('user flag [-args -v] does not enable -json flag', () => {
7171
runTest({
72-
expectedArgs: 'test -timeout 30s ./... -args -v',
73-
expectedOutArgs: 'test -timeout 30s ./... -args -v',
72+
expectedArgs: 'test ./... -timeout 30s -args -v',
73+
expectedOutArgs: 'test ./... -timeout 30s -args -v',
7474
flags: ['-args', '-v']
7575
});
7676
});
7777
test('specifying functions adds -run flags', () => {
7878
runTest({
79-
expectedArgs: 'test -timeout 30s -run ^(TestA|TestB)$ ./...',
80-
expectedOutArgs: 'test -timeout 30s -run ^(TestA|TestB)$ ./...',
79+
expectedArgs: 'test ./... -timeout 30s -run ^(TestA|TestB)$',
80+
expectedOutArgs: 'test ./... -timeout 30s -run ^(TestA|TestB)$',
8181
functions: ['TestA', 'TestB']
8282
});
8383
});
8484
test('functions & benchmark adds -bench flags and skips timeout', () => {
8585
runTest({
86-
expectedArgs: 'test -benchmem -run=^$ -bench ^(TestA|TestB)$ ./...',
87-
expectedOutArgs: 'test -benchmem -run=^$ -bench ^(TestA|TestB)$ ./...',
86+
expectedArgs: 'test ./... -benchmem -run=^$ -bench ^(TestA|TestB)$',
87+
expectedOutArgs: 'test ./... -benchmem -run=^$ -bench ^(TestA|TestB)$',
8888
functions: ['TestA', 'TestB'],
8989
isBenchmark: true
9090
});
9191
});
9292
test('user -run flag is ignored when functions are provided', () => {
9393
runTest({
94-
expectedArgs: 'test -timeout 30s -run ^(TestA|TestB)$ ./...',
95-
expectedOutArgs: 'test -timeout 30s -run ^(TestA|TestB)$ ./...',
94+
expectedArgs: 'test ./... -timeout 30s -run ^(TestA|TestB)$',
95+
expectedOutArgs: 'test ./... -timeout 30s -run ^(TestA|TestB)$',
9696
functions: ['TestA', 'TestB'],
9797
flags: ['-run', 'TestC']
9898
});

0 commit comments

Comments
 (0)