test/integration/goDebug: wait for debug adapter dispose in teardown test
Change-Id: I95dfbc894f1613c9c5f756b27db8a13ffb349059
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/318891
Trust: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Suzy Mueller <suzmue@golang.org>
diff --git a/src/goDebugFactory.ts b/src/goDebugFactory.ts
index 9417165..d8e1ed5 100644
--- a/src/goDebugFactory.ts
+++ b/src/goDebugFactory.ts
@@ -212,7 +212,7 @@
return;
}
- if (timeoutMS === undefined) {
+ if (timeoutMS === undefined || timeoutMS < 0) {
timeoutMS = 1_000;
}
const dlvDapServer = this.dlvDapServer;
@@ -230,7 +230,6 @@
const exitTimeoutToken = setTimeout(() => {
this.logger?.error(`dlv dap process (${dlvDapServer.pid}) isn't responding. Killing...`);
dlvDapServer.kill('SIGINT'); // Don't use treekill but let dlv handle cleaning up the child processes.
- resolve();
}, timeoutMS);
dlvDapServer.on('exit', (code, signal) => {
clearTimeout(exitTimeoutToken);
diff --git a/test/integration/goDebug.test.ts b/test/integration/goDebug.test.ts
index 9792d81..04bbd9f 100644
--- a/test/integration/goDebug.test.ts
+++ b/test/integration/goDebug.test.ts
@@ -1598,7 +1598,7 @@
// Skip the proper disconnect sequence started with a disconnect request.
- dlvDapAdapter.dispose(1);
+ await dlvDapAdapter.dispose(1);
dc = undefined;
await sleep(100); // allow dlv to respond and finish cleanup.
let stat: fs.Stats = null;