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) {