src/pickProcess: fix regexp to detect go versions with no patch version
Recognize go versions that do not have a patch version (eg go1.16).
Change-Id: Ib3f294ee185aad5a5bb1d7b9236848e65bbee7ff
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/295590
Trust: Suzy Mueller <suzmue@golang.org>
Run-TryBot: Suzy Mueller <suzmue@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
diff --git a/src/pickProcess.ts b/src/pickProcess.ts
index d894643..6b1ac33 100644
--- a/src/pickProcess.ts
+++ b/src/pickProcess.ts
@@ -128,7 +128,7 @@
export function parseGoVersionOutput(stdout: string): string[] {
const goProcessExes: string[] = [];
- const goVersionRegexp = /: go\d+.\d+.\d+$/;
+ const goVersionRegexp = /: go\d+\.\d+(\.\d+)?$/;
const lines = stdout.toString().split('\n');
lines.forEach((line) => {
diff --git a/test/integration/pickProcess.test.ts b/test/integration/pickProcess.test.ts
index c525853..1172ba7 100644
--- a/test/integration/pickProcess.test.ts
+++ b/test/integration/pickProcess.test.ts
@@ -11,17 +11,28 @@
test('Parse go version output', () => {
const tt = [
{
- input: '/path/to/process/a: go1.16.2\n/path/to/process/b: go1.15.4\n/path/to/process/a b c: go1.8.0\n',
- want: ['/path/to/process/a', '/path/to/process/b', '/path/to/process/a b c']
+ input:
+ '/path/to/process/a: go1.16.2\n/path/to/process/b: go1.15.4\n/path/to/process/a b c: go1.8.0\n/path/to/process/d: go1.14',
+ want: ['/path/to/process/a', '/path/to/process/b', '/path/to/process/a b c', '/path/to/process/d']
},
{
input:
- 'C:\\path\\to\\process\\a: go1.16.2\nC:\\path\\to\\process\\b: go1.15.4\nC:\\path\\to\\process\\a b c: go1.8.0',
- want: ['C:\\path\\to\\process\\a', 'C:\\path\\to\\process\\b', 'C:\\path\\to\\process\\a b c']
+ 'C:\\path\\to\\process\\a: go1.16.2\nC:\\path\\to\\process\\b: go1.15.4\nC:\\path\\to\\process\\a b c: go1.8.0\nC:\\path\\to\\process\\d: go1.14',
+ want: [
+ 'C:\\path\\to\\process\\a',
+ 'C:\\path\\to\\process\\b',
+ 'C:\\path\\to\\process\\a b c',
+ 'C:\\path\\to\\process\\d'
+ ]
},
{
input: 'go version go1.15.7 darwin/amd64',
want: []
+ },
+ {
+ input:
+ '/path/to/process/a: go11a62b12\n/path/to/process/b: go1/15/4\n/path/to/process/a b c: gob.v.b\n/path/to/process/d: gp1.14',
+ want: []
}
];
for (const tc of tt) {