From 019ea32e8b4944d9828522e4f261479e2c43431e Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Fri, 18 Nov 2022 12:26:27 -0600 Subject: [PATCH 1/9] Test with no --extensions-dir --- src/test/standardTest.node.ts | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index 82481f6f300..aa2cf562148 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -29,7 +29,7 @@ function requiresPythonExtensionToBeInstalled() { } const channel = (process.env.VSC_JUPYTER_CI_TEST_VSC_CHANNEL || '').toLowerCase().includes('insiders') - ? '3fb8e8feb1c93a490feb2c2259713d4c8f0e0058' + ? 'insiders' : 'stable'; function computePlatform() { @@ -56,21 +56,21 @@ async function createTempDir() { /** * Smoke tests & tests running in VSCode require Python extension to be installed. */ -async function installPythonExtension(vscodeExecutablePath: string, extensionsDir: string, platform: DownloadPlatform) { +async function installPythonExtension(vscodeExecutablePath: string, platform: DownloadPlatform) { if (!requiresPythonExtensionToBeInstalled()) { console.info('Python Extension not required'); return; } - console.info(`Installing Python Extension ${PythonExtension} to ${extensionsDir}`); + console.info(`Installing Python Extension ${PythonExtension}`); const cliPath = resolveCliPathFromVSCodeExecutablePath(vscodeExecutablePath, platform); - spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release', '--extensions-dir', extensionsDir], { + spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release'], { encoding: 'utf-8', stdio: 'inherit' }); // Make sure pylance is there too as we'll use it for intellisense tests - console.info(`Installing Pylance Extension to ${extensionsDir}`); - spawnSync(cliPath, ['--install-extension', PylanceExtension, '--extensions-dir', extensionsDir], { + console.info(`Installing Pylance Extension`); + spawnSync(cliPath, ['--install-extension', PylanceExtension], { encoding: 'utf-8', stdio: 'inherit' }); @@ -102,23 +102,6 @@ async function createSettings(): Promise { return userDataDirectory; } -async function getExtensionsDir(): Promise { - const name = 'vscode_jupyter_exts'; - const extDirPath = path.join(tmp.tmpdir, name); - if (fs.existsSync(extDirPath)) { - return extDirPath; - } - - return new Promise((resolve, reject) => { - tmp.dir({ name, keep: true }, (err, dir) => { - if (err) { - return reject(err); - } - resolve(dir); - }); - }); -} - async function start() { console.log('*'.repeat(100)); console.log('Start Standard tests'); @@ -126,8 +109,7 @@ async function start() { const vscodeExecutablePath = await downloadAndUnzipVSCode(channel, platform); const baseLaunchArgs = requiresPythonExtensionToBeInstalled() ? [] : ['--disable-extensions']; const userDataDirectory = await createSettings(); - const extensionsDir = await getExtensionsDir(); - await installPythonExtension(vscodeExecutablePath, extensionsDir, platform); + await installPythonExtension(vscodeExecutablePath, platform); await runTests({ vscodeExecutablePath, extensionDevelopmentPath: extensionDevelopmentPath, @@ -138,7 +120,6 @@ async function start() { .concat(['--skip-release-notes']) .concat(['--enable-proposed-api']) .concat(['--timeout', '5000']) - .concat(['--extensions-dir', extensionsDir]) .concat(['--user-data-dir', userDataDirectory]), // .concat(['--verbose']), // Too much logging from VS Code, enable this to see what's going on in VSC. version: channel, From 5c2e1838bf2db59e05c01128710df29a0d96b702 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Sun, 20 Nov 2022 13:09:15 -0600 Subject: [PATCH 2/9] logging --- src/test/standardTest.node.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index aa2cf562148..f153479e0a5 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -63,14 +63,19 @@ async function installPythonExtension(vscodeExecutablePath: string, platform: Do } console.info(`Installing Python Extension ${PythonExtension}`); const cliPath = resolveCliPathFromVSCodeExecutablePath(vscodeExecutablePath, platform); - spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release'], { + spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release', '--log', 'trace'], { encoding: 'utf-8', stdio: 'inherit' }); // Make sure pylance is there too as we'll use it for intellisense tests console.info(`Installing Pylance Extension`); - spawnSync(cliPath, ['--install-extension', PylanceExtension], { + spawnSync(cliPath, ['--install-extension', PylanceExtension, '--log', 'trace'], { + encoding: 'utf-8', + stdio: 'inherit' + }); + + spawnSync('ls', ['-laR', '~/.vscode-insiders/extensions'], { encoding: 'utf-8', stdio: 'inherit' }); @@ -120,6 +125,7 @@ async function start() { .concat(['--skip-release-notes']) .concat(['--enable-proposed-api']) .concat(['--timeout', '5000']) + .concat(['--log', 'trace']) .concat(['--user-data-dir', userDataDirectory]), // .concat(['--verbose']), // Too much logging from VS Code, enable this to see what's going on in VSC. version: channel, From 75fa92d965b393d397b8d2d5d4463407a06640e9 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Sun, 20 Nov 2022 13:23:32 -0600 Subject: [PATCH 3/9] ls --- src/test/standardTest.node.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index f153479e0a5..fe03121289c 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -75,7 +75,7 @@ async function installPythonExtension(vscodeExecutablePath: string, platform: Do stdio: 'inherit' }); - spawnSync('ls', ['-laR', '~/.vscode-insiders/extensions'], { + spawnSync('ls', ['-laR', '/home/runner/.vscode-insiders/extensions'], { encoding: 'utf-8', stdio: 'inherit' }); From a5c0382dd9124890d48ccb13ab7c662258c567c7 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Sun, 20 Nov 2022 16:07:35 -0600 Subject: [PATCH 4/9] launch first --- src/test/standardTest.node.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index fe03121289c..c9df91a0d72 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { spawnSync } from 'child_process'; +import { spawn, spawnSync } from 'child_process'; import * as path from '../platform/vscode-path/path'; import * as fs from 'fs-extra'; import { downloadAndUnzipVSCode, resolveCliPathFromVSCodeExecutablePath, runTests } from '@vscode/test-electron'; @@ -61,8 +61,15 @@ async function installPythonExtension(vscodeExecutablePath: string, platform: Do console.info('Python Extension not required'); return; } - console.info(`Installing Python Extension ${PythonExtension}`); + const cliPath = resolveCliPathFromVSCodeExecutablePath(vscodeExecutablePath, platform); + spawn(cliPath, { + stdio: 'inherit' + }); + + await new Promise((resolve) => setTimeout(resolve, 4000)); + + console.info(`Installing Python Extension ${PythonExtension}`); spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release', '--log', 'trace'], { encoding: 'utf-8', stdio: 'inherit' From c4699106e8dcf998b49273541da952d88c929c3f Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Sun, 20 Nov 2022 16:45:15 -0600 Subject: [PATCH 5/9] log more --- src/test/standardTest.node.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index c9df91a0d72..daef347310b 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -63,11 +63,14 @@ async function installPythonExtension(vscodeExecutablePath: string, platform: Do } const cliPath = resolveCliPathFromVSCodeExecutablePath(vscodeExecutablePath, platform); - spawn(cliPath, { + console.log(`launching vscode to warm up: ${cliPath}`); + spawn(cliPath, ['--log', 'trace'], { stdio: 'inherit' }); + console.log(`waiting`); await new Promise((resolve) => setTimeout(resolve, 4000)); + console.log(`done waiting`); console.info(`Installing Python Extension ${PythonExtension}`); spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release', '--log', 'trace'], { From 3104d418d6af749c180fb1bc1d2cd2b901be11ea Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Sun, 20 Nov 2022 17:36:57 -0600 Subject: [PATCH 6/9] Kill vscode, turn off trace logs --- src/test/standardTest.node.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index daef347310b..f6bdd850a72 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -64,13 +64,14 @@ async function installPythonExtension(vscodeExecutablePath: string, platform: Do const cliPath = resolveCliPathFromVSCodeExecutablePath(vscodeExecutablePath, platform); console.log(`launching vscode to warm up: ${cliPath}`); - spawn(cliPath, ['--log', 'trace'], { + const vscodeProc = spawn(cliPath, [], { stdio: 'inherit' }); console.log(`waiting`); await new Promise((resolve) => setTimeout(resolve, 4000)); console.log(`done waiting`); + vscodeProc.kill('SIGKILL'); console.info(`Installing Python Extension ${PythonExtension}`); spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release', '--log', 'trace'], { @@ -135,7 +136,7 @@ async function start() { .concat(['--skip-release-notes']) .concat(['--enable-proposed-api']) .concat(['--timeout', '5000']) - .concat(['--log', 'trace']) + // .concat(['--log', 'trace']) .concat(['--user-data-dir', userDataDirectory]), // .concat(['--verbose']), // Too much logging from VS Code, enable this to see what's going on in VSC. version: channel, From 855762af95d3745eb4e6219fa78f976b8ac6eb54 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Sun, 20 Nov 2022 17:52:20 -0600 Subject: [PATCH 7/9] logging --- src/test/standardTest.node.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index f6bdd850a72..a9b4837239d 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -72,6 +72,10 @@ async function installPythonExtension(vscodeExecutablePath: string, platform: Do await new Promise((resolve) => setTimeout(resolve, 4000)); console.log(`done waiting`); vscodeProc.kill('SIGKILL'); + vscodeProc.kill('SIGTERM'); + vscodeProc.on('exit', () => console.log(`vscode exited`)); + await new Promise((resolve) => setTimeout(resolve, 2000)); + console.log(`done waiting2`); console.info(`Installing Python Extension ${PythonExtension}`); spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release', '--log', 'trace'], { @@ -86,7 +90,7 @@ async function installPythonExtension(vscodeExecutablePath: string, platform: Do stdio: 'inherit' }); - spawnSync('ls', ['-laR', '/home/runner/.vscode-insiders/extensions'], { + spawnSync('ls', ['-la', '/home/runner/.vscode-insiders/extensions'], { encoding: 'utf-8', stdio: 'inherit' }); From 6efb93d3114f2eff2d1946fd1575ba7d0ee6fef5 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Sun, 20 Nov 2022 17:52:51 -0600 Subject: [PATCH 8/9] disable-telemetry --- src/test/standardTest.node.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index a9b4837239d..15e150928e2 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -63,29 +63,29 @@ async function installPythonExtension(vscodeExecutablePath: string, platform: Do } const cliPath = resolveCliPathFromVSCodeExecutablePath(vscodeExecutablePath, platform); - console.log(`launching vscode to warm up: ${cliPath}`); - const vscodeProc = spawn(cliPath, [], { - stdio: 'inherit' - }); + // console.log(`launching vscode to warm up: ${cliPath}`); + // const vscodeProc = spawn(cliPath, [], { + // stdio: 'inherit' + // }); - console.log(`waiting`); - await new Promise((resolve) => setTimeout(resolve, 4000)); - console.log(`done waiting`); - vscodeProc.kill('SIGKILL'); - vscodeProc.kill('SIGTERM'); - vscodeProc.on('exit', () => console.log(`vscode exited`)); - await new Promise((resolve) => setTimeout(resolve, 2000)); - console.log(`done waiting2`); + // console.log(`waiting`); + // await new Promise((resolve) => setTimeout(resolve, 4000)); + // console.log(`done waiting`); + // vscodeProc.kill('SIGKILL'); + // vscodeProc.kill('SIGTERM'); + // vscodeProc.on('exit', () => console.log(`vscode exited`)); + // await new Promise((resolve) => setTimeout(resolve, 2000)); + // console.log(`done waiting2`); console.info(`Installing Python Extension ${PythonExtension}`); - spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release', '--log', 'trace'], { + spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release', '--log', 'trace', '--disable-telemetry'], { encoding: 'utf-8', stdio: 'inherit' }); // Make sure pylance is there too as we'll use it for intellisense tests console.info(`Installing Pylance Extension`); - spawnSync(cliPath, ['--install-extension', PylanceExtension, '--log', 'trace'], { + spawnSync(cliPath, ['--install-extension', PylanceExtension, '--log', 'trace', '--disable-telemetry'], { encoding: 'utf-8', stdio: 'inherit' }); From 41706ed14ceff15018f35d66785c413fa0a5a896 Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Sun, 20 Nov 2022 18:12:43 -0600 Subject: [PATCH 9/9] fix lint/build --- src/test/standardTest.node.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/test/standardTest.node.ts b/src/test/standardTest.node.ts index 15e150928e2..f8dd2a6146d 100644 --- a/src/test/standardTest.node.ts +++ b/src/test/standardTest.node.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -import { spawn, spawnSync } from 'child_process'; +import { spawnSync } from 'child_process'; import * as path from '../platform/vscode-path/path'; import * as fs from 'fs-extra'; import { downloadAndUnzipVSCode, resolveCliPathFromVSCodeExecutablePath, runTests } from '@vscode/test-electron'; @@ -78,10 +78,14 @@ async function installPythonExtension(vscodeExecutablePath: string, platform: Do // console.log(`done waiting2`); console.info(`Installing Python Extension ${PythonExtension}`); - spawnSync(cliPath, ['--install-extension', PythonExtension, '--pre-release', '--log', 'trace', '--disable-telemetry'], { - encoding: 'utf-8', - stdio: 'inherit' - }); + spawnSync( + cliPath, + ['--install-extension', PythonExtension, '--pre-release', '--log', 'trace', '--disable-telemetry'], + { + encoding: 'utf-8', + stdio: 'inherit' + } + ); // Make sure pylance is there too as we'll use it for intellisense tests console.info(`Installing Pylance Extension`);