Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .evergreen/functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -679,9 +679,8 @@ functions:
eval $(.evergreen/print-compass-env.sh)

if [[ "$IS_WINDOWS" == "true" ]]; then
# TODO: windows_setup
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume windows_setup referred to the .exe, i.e. COMPASS-8706?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh 👀 You're right 👍

# TODO: windows_msi
npm run --unsafe-perm --workspace @mongodb-js/compass-smoke-tests start -- --package=windows_zip
npm run --unsafe-perm --workspace @mongodb-js/compass-smoke-tests start -- --package=windows_msi
fi

if [[ "$IS_OSX" == "true" ]]; then
Expand Down
16 changes: 14 additions & 2 deletions packages/compass-smoke-tests/src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { type SmokeTestsContext } from './context';
import { installMacDMG } from './installers/mac-dmg';
import { installMacZIP } from './installers/mac-zip';
import { installWindowsZIP } from './installers/windows-zip';
import { installWindowsMSI } from './installers/windows-msi';

const SUPPORTED_PLATFORMS = ['win32', 'darwin', 'linux'] as const;
const SUPPORTED_ARCHS = ['x64', 'arm64'] as const;
Expand Down Expand Up @@ -98,6 +99,11 @@ const argv = yargs(hideBin(process.argv))
.option('localPackage', {
type: 'boolean',
description: 'Use the local package instead of downloading',
})
.option('skipCleanup', {
type: 'boolean',
description: 'Do not delete the sandbox after a run',
default: false,
});

type TestSubject = PackageDetails & {
Expand Down Expand Up @@ -154,6 +160,8 @@ function getInstaller(kind: PackageKind) {
return installMacZIP;
} else if (kind === 'windows_zip') {
return installWindowsZIP;
} else if (kind === 'windows_msi') {
return installWindowsMSI;
} else {
throw new Error(`Installer for '${kind}' is not yet implemented`);
}
Expand Down Expand Up @@ -195,8 +203,12 @@ async function run() {
await uninstall();
}
} finally {
console.log('Cleaning up sandbox');
fs.rmSync(context.sandboxPath, { recursive: true });
if (context.skipCleanup) {
console.log(`Skipped cleaning up sandbox: ${context.sandboxPath}`);
} else {
console.log(`Cleaning up sandbox: ${context.sandboxPath}`);
fs.rmSync(context.sandboxPath, { recursive: true });
}
}
}

Expand Down
1 change: 1 addition & 0 deletions packages/compass-smoke-tests/src/context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ export type SmokeTestsContext = {
forceDownload?: boolean;
localPackage?: boolean;
sandboxPath: string;
skipCleanup: boolean;
};
24 changes: 17 additions & 7 deletions packages/compass-smoke-tests/src/execute.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
import assert from 'node:assert/strict';
import { spawnSync, type SpawnOptions } from 'node:child_process';

export class ExecuteFailure extends Error {
constructor(
public command: string,
public args: string[],
public status: number | null,
public signal: NodeJS.Signals | null
) {
const commandDetails = `${command} ${args.join(' ')}`;
const statusDetails = `status = ${status || 'null'}`;
const signalDetails = `signal = ${signal || 'null'})`;
super(`${commandDetails} exited with ${statusDetails} ${signalDetails}`);
}
}

export function execute(
command: string,
args: string[],
Expand All @@ -10,10 +23,7 @@ export function execute(
stdio: 'inherit',
...options,
});
assert(
status === 0 && signal === null,
`${command} ${args.join(' ')} exited with (status = ${
status || 'null'
}, signal = ${signal || 'null'})`
);
if (status !== 0 || signal !== null) {
throw new ExecuteFailure(command, args, status, signal);
}
}
2 changes: 1 addition & 1 deletion packages/compass-smoke-tests/src/installers/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ export type InstallablePackage = {

export type InstalledAppInfo = {
appPath: string;
uninstall: () => Promise<void>;
uninstall: () => void | Promise<void>;
};
49 changes: 49 additions & 0 deletions packages/compass-smoke-tests/src/installers/windows-msi.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import path from 'node:path';

import type { InstalledAppInfo, InstallablePackage } from './types';
import { execute, ExecuteFailure } from '../execute';

// See https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec

export function installWindowsMSI({
appName,
filepath,
destinationPath,
}: InstallablePackage): InstalledAppInfo {
const installDirectory = path.resolve(destinationPath, appName);
const appPath = path.resolve(installDirectory, `${appName}.exe`);

function uninstall() {
execute('msiexec', ['/uninstall', filepath, '/passive']);
}

// Installing an MSI which is already installed is a no-op
// So we uninstall the MSI first (which will use the PackageCode to find the installed application)
// It is fine if the uninstall exists with status 1605, as this happens if the app wasn't already installed.
try {
uninstall();
} catch (err) {
if (err instanceof ExecuteFailure && err.status === 1605) {
console.log(
"Uninstalling before installing failed, which is expected if the app wasn't already installed"
);
} else {
throw err;
}
}
Comment on lines +20 to +33
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed the APPLICATIONROOTDIRECTORY wouldn't propagate as expected, if the application was already installed. So the installer starts by uninstalling any previously installed package (based on the PackageCode embedded in the MSI)


execute('msiexec', [
'/package',
filepath,
'/passive',
`APPLICATIONROOTDIRECTORY=${installDirectory}`,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found this variable by running msiexec /lp! setup.log /i mongodb-compass-25.1.13-dev.132547-win32-x64.msi and reading the setup.log produced (inspired by this SO solution).

Here's a list of other variables that might be interesting to tweak:

Property(C): UpgradeCode = {0152273D-2F9F-4913-B67F-0FCD3557FFD1}
Property(C): _locales_fb15c40c_c0a4_428f_aa5b_d5e3e6eaae94 = C:\Program Files\MongoDB Compass Dev\locales\
Property(C): _assets_3e27b14e_9a8f_4781_a362_43b0be7dd2b5 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\build\assets\
Property(C): _resources_app.asar.unpacked_build_40c1aa54_a87e_40c3_94e6_20610c7901cf = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\build\
Property(C): _dist_620d9827_2091_40bb_b307_f92ed7912a26 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\@mongosh\node-runtime-worker-thread\dist\
Property(C): _src_064d78e2_49f9_4e0d_ab05_789c55a5e4ac = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\@mongosh\node-runtime-worker-thread\src\
Property(C): _tests_2dbe94f1_fcda_4da3_9507_209d6483ba8e = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\@mongosh\node-runtime-worker-thread\tests\
Property(C): _node_runtime_worker_thread_71ce0545_66f4_4575_ae94_fe0822c723e5 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\@mongosh\node-runtime-worker-thread\
Property(C): _bindings_30a0a67b_f9d4_4fb7_9ac8_78cc507ad3ad = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\bindings\
Property(C): _test_beb004b2_761a_4773_881e_47f9d20968ad = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\bl\test\
Property(C): _bl_9431c8ee_fc08_428f_873b_d8cc4fa4057e = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\bl\
Property(C): _src_04fec5f0_8a13_4180_b9e5_3efcc909b1ba = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\debug\src\
Property(C): _debug_26fba793_078e_441e_9cea_80b90e9b7497 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\debug\
Property(C): _test_01ae0844_fa38_497d_9d7e_877b9c3a07b7 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\file-uri-to-path\test\
Property(C): _file_uri_to_path_bcae0a78_e1df_46d7_b0b1_33300070fd20 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\file-uri-to-path\
Property(C): _win32_x64_128_e08e4a4f_018a_4932_85da_5a1597e295ea = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\interruptor\bin\win32-x64-128\
Property(C): _Release_a932fa1a_bde2_46df_9bcc_340e26937c92 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\interruptor\build\Release\
Property(C): _build_d44ae72e_38f7_4d28_8bd9_56e32218eab6 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\interruptor\build\
Property(C): _lib_e32bef6d_9c38_4aaa_b1e4_2377078f0a9a = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\interruptor\lib\
Property(C): _src_ab7a547a_3ad7_4fec_b199_091174c46186 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\interruptor\src\
Property(C): _test_b6cbe8cd_41bc_4000_94b0_560128d09ca8 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\interruptor\test\
Property(C): _interruptor_6b559ee7_e865_4530_a263_1b45dd7e1d98 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\interruptor\
Property(C): _ipv6_normalize_2d6f82a5_5db9_4f80_914f_09aff1817b16 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\ipv6-normalize\
Property(C): _Release_b1bee2dc_64a1_4843_b434_31a188839061 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\kerberos\build\Release\
Property(C): _auth_processes_c2ce3dbf_367e_4270_9fbf_ebcc85a75bcf = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\kerberos\lib\auth_processes\
Property(C): _lib_b6fa7b5c_b4bc_49de_a08b_1d9925e93c68 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\kerberos\lib\
Property(C): _unix_dcb5b288_420a_440c_b15d_77eafb9e1ca6 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\kerberos\src\unix\
Property(C): _win32_f7c4c395_795a_4163_858c_038fb1abfb39 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\kerberos\src\win32\
Property(C): _src_137c974b_4e26_41fb_8bcc_7b51b09c9932 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\kerberos\src\
Property(C): _kerberos_87d77a30_9c56_49d4_9575_35e5ec6bdfdd = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\kerberos\
Property(C): _Release_03d6d26c_f269_409b_b76d_fb20445700e4 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\keytar\build\Release\
Property(C): _tools_2dd185ae_d218_42c3_ac43_2204ec1a0321 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\keytar\node_modules\node-addon-api\tools\
Property(C): _node_addon_api_6ef8734a_ae95_4b50_b7a6_c728ed1fefdf = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\keytar\node_modules\node-addon-api\
Property(C): _Release_cfadcc39_2896_4ba9_a516_25bb2e56df84 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\mongodb-client-encryption\build\Release\
Property(C): _lib_e9639868_123c_463c_865c_c8fbff9515aa = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\mongodb-client-encryption\lib\
Property(C): _tools_0016a3f6_141e_4fd5_b60a_2c780a40ebef = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\mongodb-client-encryption\node_modules\node-addon-api\tools\
Property(C): _node_addon_api_3ecf2a54_c0da_4041_bfa6_4bf7d3a8dd39 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\mongodb-client-encryption\node_modules\node-addon-api\
Property(C): _mongodb_client_encryption_1c1cf3af_8180_474f_8719_c3be33fed55b = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\mongodb-client-encryption\
Property(C): _ms_40c8c150_f2ac_4d63_9a3d_5d4d61c07975 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\ms\
Property(C): _tools_28082c1f_5779_402c_a026_6b9d1ac8bbb2 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\node-addon-api\tools\
Property(C): _node_addon_api_ac7357f2_bd88_46dd_8430_3c4f248f148b = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\node-addon-api\
Property(C): _win32_x64_128_221e6c62_4d46_480f_9ce8_4a0cbe4ed62a = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\bin\win32-x64-128\
Property(C): _Release_624999cf_5967_421c_b4ac_1c5256c715dc = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\build\Release\
Property(C): _node_addon_api_998dfc02_a716_46f0_adb1_0b6cc0353d96 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\build\node_modules\node-addon-api\
Property(C): _build_906ba433_cac8_482d_b1c8_cda75460cac0 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\build\
Property(C): _tools_04416564_03a3_40e5_8edb_631c07ebf550 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\node_modules\node-addon-api\tools\
Property(C): _node_addon_api_2ebef5b1_5f26_457e_bc57_c1735b708d4f = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\node_modules\node-addon-api\
Property(C): _os_dns_native_75f59b1b_201f_410a_87dc_1ab1f5d2cb65 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\
Property(C): _lib_dbf82d4f_59ea_4377_87cb_4ec2f8fa50d6 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\system-ca\lib\
Property(C): _system_ca_22d10706_37f9_40c3_bada_1d96c77f508a = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\system-ca\
Property(C): _win32_x64_128_becf69a4_4bf4_4022_b47e_1026b1db8159 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\bin\win32-x64-128\
Property(C): _Release_9aaa5928_c6bc_44dc_b123_bd9aa7b084c4 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\build\Release\
Property(C): _node_addon_api_07f0e827_7c9e_43a0_ae2c_4c3db0149a5b = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\build\node_modules\node-addon-api\
Property(C): _build_55d66330_d118_46f0_b837_9f3e593c3b4b = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\build\
Property(C): _tools_f498f2ce_1d3b_4a54_8b2e_e0492386322b = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\node_modules\node-addon-api\tools\
Property(C): _node_addon_api_dff83414_7649_42c8_8bd3_2a8776fabaf8 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\node_modules\node-addon-api\
Property(C): _src_f628a44b_dde5_4a84_913e_1e7e575d8fa1 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\src\
Property(C): _win_export_certificate_and_key_f00876f6_e5ef_46aa_b2be_aac5a8815fe1 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\
Property(C): _resources_a57d65a2_4140_4de2_aa6c_42c0da20f8ef = C:\Program Files\MongoDB Compass Dev\resources\
Property(C): APPLICATIONROOTDIRECTORY = C:\Program Files\MongoDB Compass Dev\
Property(C): ApplicationProgramsFolder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\MongoDB\
Property(C): WixUIRMOption = UseRM
Property(C): WIXUI_INSTALLDIR = APPLICATIONROOTDIRECTORY
Property(C): ALLUSERS = 1
Property(C): ARPNOMODIFY = 1
Property(C): _resources_app.asar.unpacked_0bce21a3_8569_4876_92df_59588cc739ed = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\
Property(C): __mongosh_4a1b3b8a_a0c8_4891_be9a_f684c7edf54f = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\@mongosh\
Property(C): _node_modules_76387065_dcad_4623_9a74_0abff4edb8c1 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\
Property(C): _bin_6bba0425_2c31_4b5c_8800_c6f37a192bc8 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\interruptor\bin\
Property(C): _build_d4fb2098_1b4a_4c60_a749_ce238b0934e7 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\kerberos\build\
Property(C): _build_0d20e152_6a5d_4c49_bbaf_b28d311c1663 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\keytar\build\
Property(C): _keytar_1e9d3f86_1b59_4a48_843d_83cec548bc61 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\keytar\
Property(C): _node_modules_42aafb5e_8681_4974_b4ee_6ceeee8410d5 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\keytar\node_modules\
Property(C): _build_26e9a701_47b2_4d53_b7cc_6ac0003e0d9a = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\mongodb-client-encryption\build\
Property(C): _node_modules_291bd7eb_5d04_44b9_872c_694a261f3c4a = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\mongodb-client-encryption\node_modules\
Property(C): _bin_d5c5d968_0580_462b_9801_8e29baadb44e = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\bin\
Property(C): _node_modules_7fb2beb1_dadc_44b3_9dda_936c1ba234be = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\build\node_modules\
Property(C): _node_modules_987b6148_d25a_4179_ad85_7f50bc45aebc = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\os-dns-native\node_modules\
Property(C): _bin_baec69e3_6c02_4b42_9a06_52a1795e4dbb = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\bin\
Property(C): _node_modules_fff0e7e2_6af1_469c_a6cc_d46fa4e0c908 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\build\node_modules\
Property(C): _node_modules_3a3cbc9b_d332_472d_98a4_1f8ca005f335 = C:\Program Files\MongoDB Compass Dev\resources\app.asar.unpacked\node_modules\win-export-certificate-and-key\node_modules\
Property(C): ProgramFiles64Folder = C:\Program Files\
Property(C): TARGETDIR = Z:\
Property(C): ProgramMenuFolder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\
Property(C): WixUI_Mode = InstallDir
Property(C): DefaultUIFont = WixUI_Font_Normal
Property(C): Manufacturer = MongoDB Inc
Property(C): ProductCode = {215D678B-AE4E-4877-AD62-80C65DA69F56}
Property(C): ProductLanguage = 1033
Property(C): ProductName = MongoDB Compass Dev
Property(C): ProductVersion = 25.1.13.0
Property(C): ErrorDialog = ErrorDlg
Property(C): SecureCustomProperties = PREVIOUSFOUND
Property(C): MsiLogFileLocation = C:\Users\Administrator\Repositories\compass\packages\compass-smoke-tests\.downloads\83c9c42911732e23b227f63d1780bfc628\my.log
Property(C): PackageCode = {AC413E84-6261-4DD6-9D6C-E68102BD9D2D}
Property(C): ProductState = 5
Property(C): ProductToBeRegistered = 1
Property(C): CURRENTDIRECTORY = C:\Users\Administrator\Repositories\compass\packages\compass-smoke-tests\.downloads\83c9c42911732e23b227f63d1780bfc628
Property(C): CLIENTUILEVEL = 0
Property(C): CLIENTPROCESSID = 4912
Property(C): PRODUCTLANGUAGE = 1033
Property(C): VersionDatabase = 405
Property(C): VersionMsi = 5.00
Property(C): VersionNT = 603
Property(C): VersionNT64 = 603
Property(C): WindowsBuild = 9600
Property(C): ServicePackLevel = 0
Property(C): ServicePackLevelMinor = 0
Property(C): MsiNTProductType = 3
Property(C): MsiNTSuiteDataCenter = 1
Property(C): WindowsFolder = C:\Windows\
Property(C): WindowsVolume = C:\
Property(C): System64Folder = C:\Windows\system32\
Property(C): SystemFolder = C:\Windows\SysWOW64\
Property(C): RemoteAdminTS = 1
Property(C): TempFolder = C:\Users\ADMINI~1\AppData\Local\Temp\2\
Property(C): ProgramFilesFolder = C:\Program Files (x86)\
Property(C): CommonFilesFolder = C:\Program Files (x86)\Common Files\
Property(C): CommonFiles64Folder = C:\Program Files\Common Files\
Property(C): AppDataFolder = C:\Users\Administrator\AppData\Roaming\
Property(C): FavoritesFolder = C:\Users\Administrator\Favorites\
Property(C): NetHoodFolder = C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Network Shortcuts\
Property(C): PersonalFolder = C:\Users\Administrator\Documents\
Property(C): PrintHoodFolder = C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Printer Shortcuts\
Property(C): RecentFolder = C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Recent\
Property(C): SendToFolder = C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\SendTo\
Property(C): TemplateFolder = C:\ProgramData\Microsoft\Windows\Templates\
Property(C): CommonAppDataFolder = C:\ProgramData\
Property(C): LocalAppDataFolder = C:\Users\Administrator\AppData\Local\
Property(C): MyPicturesFolder = C:\Users\Administrator\Pictures\
Property(C): AdminToolsFolder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\
Property(C): StartupFolder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\
Property(C): StartMenuFolder = C:\ProgramData\Microsoft\Windows\Start Menu\
Property(C): DesktopFolder = C:\Users\Public\Desktop\
Property(C): FontsFolder = C:\Windows\Fonts\
Property(C): GPTSupport = 1
Property(C): OLEAdvtSupport = 1
Property(C): ShellAdvtSupport = 1
Property(C): MsiAMD64 = 6
Property(C): Msix64 = 6
Property(C): Intel = 6
Property(C): PhysicalMemory = 32240
Property(C): VirtualMemory = 34211
Property(C): AdminUser = 1
Property(C): MsiTrueAdminUser = 1
Property(C): LogonUser = Administrator
Property(C): UserSID = S-1-5-21-247356354-3688349738-3684861927-500
Property(C): UserLanguageID = 1033
Property(C): ComputerName = EC2AMAZ-SGOR08N
Property(C): SystemLanguageID = 1033
Property(C): ScreenX = 1512
Property(C): ScreenY = 945
Property(C): CaptionHeight = 23
Property(C): BorderTop = 1
Property(C): BorderSide = 1
Property(C): TextHeight = 16
Property(C): TextInternalLeading = 3
Property(C): ColorBits = 32
Property(C): TTCSupport = 1
Property(C): Time = 9:03:02
Property(C): Date = 1/22/2025
Property(C): MsiNetAssemblySupport = 4.8.3761.0
Property(C): MsiWin32AssemblySupport = 6.3.17763.4131
Property(C): RedirectedDllSupport = 2
Property(C): MsiRunningElevated = 1
Property(C): Privileged = 1
Property(C): USERNAME = EC2
Property(C): COMPANYNAME = Amazon.com
Property(C): Installed = 00:00:00
Property(C): DATABASE = C:\Windows\Installer\693492.msi
Property(C): OriginalDatabase = C:\Users\Administrator\Repositories\compass\packages\compass-smoke-tests\.downloads\83c9c42911732e23b227f63d1780bfc628\mongodb-compass-25.1.13-dev.132547-win32-x64.msi
Property(C): VersionHandler = 5.00
Property(C): UILevel = 5
Property(C): ACTION = INSTALL
Property(C): EXECUTEACTION = INSTALL
Property(C): ROOTDRIVE = Z:\
Property(C): CostingComplete = 1
Property(C): OutOfDiskSpace = 0
Property(C): OutOfNoRbDiskSpace = 0
Property(C): PrimaryVolumeSpaceAvailable = 0
Property(C): PrimaryVolumeSpaceRequired = 0
Property(C): PrimaryVolumeSpaceRemaining = 0
Property(C): INSTALLLEVEL = 1

]);

// Check that the executable will run without being quarantined or similar
execute(appPath, ['--version']);

return {
appPath: installDirectory,
uninstall,
};
}
Loading