Refresh master with initial release/0.24 snapshot (#332)

* Initial port of release/0.24 source code

* Fix additional headers

* Fix a typo in launch.json
This commit is contained in:
Karl Burtram
2017-12-15 15:38:57 -08:00
committed by GitHub
parent 271b3a0b82
commit 6ad0df0e3e
7118 changed files with 107999 additions and 56466 deletions

View File

@@ -11,10 +11,4 @@ export const EXTENSION_LOG_BROADCAST_CHANNEL = 'vscode:extensionLog';
export const EXTENSION_ATTACH_BROADCAST_CHANNEL = 'vscode:extensionAttach';
export const EXTENSION_TERMINATE_BROADCAST_CHANNEL = 'vscode:extensionTerminate';
export const EXTENSION_RELOAD_BROADCAST_CHANNEL = 'vscode:extensionReload';
export const EXTENSION_CLOSE_EXTHOST_BROADCAST_CHANNEL = 'vscode:extensionCloseExtensionHost';
export interface ILogEntry {
type: string;
severity: string;
arguments: any;
}
export const EXTENSION_CLOSE_EXTHOST_BROADCAST_CHANNEL = 'vscode:extensionCloseExtensionHost';

View File

@@ -12,6 +12,7 @@ import { IExtensionPoint } from 'vs/platform/extensions/common/extensionsRegistr
export interface IExtensionDescription {
readonly id: string;
readonly name: string;
readonly uuid?: string;
readonly displayName?: string;
readonly version: string;
readonly publisher: string;
@@ -24,6 +25,7 @@ export interface IExtensionDescription {
};
readonly main?: string;
readonly contributes?: { [point: string]: any; };
readonly keywords?: string[];
enableProposedApi?: boolean;
}
@@ -102,4 +104,14 @@ export interface IExtensionService {
* Restarts the extension host.
*/
restartExtensionHost(): void;
/**
* Starts the extension host.
*/
startExtensionHost(): void;
/**
* Stops the extension host.
*/
stopExtensionHost(): void;
}

View File

@@ -195,8 +195,8 @@ const schema: IJSONSchema = {
},
{
label: 'onDebug',
description: nls.localize('vscode.extension.activationEvents.onDebug', 'An activation event emitted whenever a debug session of the specified type is started.'),
body: 'onDebug:${3:type}'
description: nls.localize('vscode.extension.activationEvents.onDebug', 'An activation event emitted whenever a user is about to start debugging or about to setup debug configurations.'),
body: 'onDebug'
},
{
label: 'workspaceContains',

View File

@@ -247,10 +247,16 @@ export function isVersionValid(currentVersion: string, requestedVersion: string,
}
}
if (!isValidVersion(currentVersion, desiredVersion)) {
notices.push(nls.localize('versionMismatch', "Extension is not compatible with Code {0}. Extension requires: {1}.", currentVersion, requestedVersion));
return false;
}
// {{SQL CARBON EDIT}}
//TODO: Currently the validation happens with the vscode engine version.
// We will have to have sqlops engine version in package.json instead and compare
// with that
//if (!isValidVersion(currentVersion, desiredVersion)) {
// notices.push(nls.localize('versionMismatch', "Extension is not compatible with Code {0}. Extension requires: {1}.", currentVersion, requestedVersion));
// return false;
//}
return true;
}

View File

@@ -202,195 +202,197 @@ suite('Extension Version Validator', () => {
testIsValidVersion('2.0.0', '*', true);
});
test('isValidExtensionVersion', () => {
// {{SQL CARBON EDIT}}
function testExtensionVersion(version: string, desiredVersion: string, isBuiltin: boolean, hasMain: boolean, expectedResult: boolean): void {
let desc: IReducedExtensionDescription = {
isBuiltin: isBuiltin,
engines: {
vscode: desiredVersion
},
main: hasMain ? 'something' : undefined
};
let reasons: string[] = [];
let actual = isValidExtensionVersion(version, desc, reasons);
// test('isValidExtensionVersion', () => {
assert.equal(actual, expectedResult, 'version: ' + version + ', desiredVersion: ' + desiredVersion + ', desc: ' + JSON.stringify(desc) + ', reasons: ' + JSON.stringify(reasons));
}
// function testExtensionVersion(version: string, desiredVersion: string, isBuiltin: boolean, hasMain: boolean, expectedResult: boolean): void {
// let desc: IReducedExtensionDescription = {
// isBuiltin: isBuiltin,
// engines: {
// vscode: desiredVersion
// },
// main: hasMain ? 'something' : undefined
// };
// let reasons: string[] = [];
// let actual = isValidExtensionVersion(version, desc, reasons);
function testIsInvalidExtensionVersion(version: string, desiredVersion: string, isBuiltin: boolean, hasMain: boolean): void {
testExtensionVersion(version, desiredVersion, isBuiltin, hasMain, false);
}
// assert.equal(actual, expectedResult, 'version: ' + version + ', desiredVersion: ' + desiredVersion + ', desc: ' + JSON.stringify(desc) + ', reasons: ' + JSON.stringify(reasons));
// }
function testIsValidExtensionVersion(version: string, desiredVersion: string, isBuiltin: boolean, hasMain: boolean): void {
testExtensionVersion(version, desiredVersion, isBuiltin, hasMain, true);
}
// function testIsInvalidExtensionVersion(version: string, desiredVersion: string, isBuiltin: boolean, hasMain: boolean): void {
// testExtensionVersion(version, desiredVersion, isBuiltin, hasMain, false);
// }
function testIsValidVersion(version: string, desiredVersion: string, expectedResult: boolean): void {
testExtensionVersion(version, desiredVersion, false, true, expectedResult);
}
// function testIsValidExtensionVersion(version: string, desiredVersion: string, isBuiltin: boolean, hasMain: boolean): void {
// testExtensionVersion(version, desiredVersion, isBuiltin, hasMain, true);
// }
// builtin are allowed to use * or x.x.x
testIsValidExtensionVersion('0.10.0-dev', '*', true, true);
testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', true, true);
testIsValidExtensionVersion('0.10.0-dev', '0.x.x', true, true);
testIsValidExtensionVersion('0.10.0-dev', '0.10.x', true, true);
testIsValidExtensionVersion('1.10.0-dev', '1.x.x', true, true);
testIsValidExtensionVersion('1.10.0-dev', '1.10.x', true, true);
testIsValidExtensionVersion('0.10.0-dev', '*', true, false);
testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', true, false);
testIsValidExtensionVersion('0.10.0-dev', '0.x.x', true, false);
testIsValidExtensionVersion('0.10.0-dev', '0.10.x', true, false);
testIsValidExtensionVersion('1.10.0-dev', '1.x.x', true, false);
testIsValidExtensionVersion('1.10.0-dev', '1.10.x', true, false);
// function testIsValidVersion(version: string, desiredVersion: string, expectedResult: boolean): void {
// testExtensionVersion(version, desiredVersion, false, true, expectedResult);
// }
// normal extensions are allowed to use * or x.x.x only if they have no main
testIsInvalidExtensionVersion('0.10.0-dev', '*', false, true);
testIsInvalidExtensionVersion('0.10.0-dev', 'x.x.x', false, true);
testIsInvalidExtensionVersion('0.10.0-dev', '0.x.x', false, true);
testIsValidExtensionVersion('0.10.0-dev', '0.10.x', false, true);
testIsValidExtensionVersion('1.10.0-dev', '1.x.x', false, true);
testIsValidExtensionVersion('1.10.0-dev', '1.10.x', false, true);
testIsValidExtensionVersion('0.10.0-dev', '*', false, false);
testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', false, false);
testIsValidExtensionVersion('0.10.0-dev', '0.x.x', false, false);
testIsValidExtensionVersion('0.10.0-dev', '0.10.x', false, false);
testIsValidExtensionVersion('1.10.0-dev', '1.x.x', false, false);
testIsValidExtensionVersion('1.10.0-dev', '1.10.x', false, false);
// // builtin are allowed to use * or x.x.x
// testIsValidExtensionVersion('0.10.0-dev', '*', true, true);
// testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', true, true);
// testIsValidExtensionVersion('0.10.0-dev', '0.x.x', true, true);
// testIsValidExtensionVersion('0.10.0-dev', '0.10.x', true, true);
// testIsValidExtensionVersion('1.10.0-dev', '1.x.x', true, true);
// testIsValidExtensionVersion('1.10.0-dev', '1.10.x', true, true);
// testIsValidExtensionVersion('0.10.0-dev', '*', true, false);
// testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', true, false);
// testIsValidExtensionVersion('0.10.0-dev', '0.x.x', true, false);
// testIsValidExtensionVersion('0.10.0-dev', '0.10.x', true, false);
// testIsValidExtensionVersion('1.10.0-dev', '1.x.x', true, false);
// testIsValidExtensionVersion('1.10.0-dev', '1.10.x', true, false);
// extensions without "main" get no version check
testIsValidExtensionVersion('0.10.0-dev', '>=0.9.1-pre.1', false, false);
testIsValidExtensionVersion('0.10.0-dev', '*', false, false);
testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', false, false);
testIsValidExtensionVersion('0.10.0-dev', '0.x.x', false, false);
testIsValidExtensionVersion('0.10.0-dev', '0.10.x', false, false);
testIsValidExtensionVersion('1.10.0-dev', '1.x.x', false, false);
testIsValidExtensionVersion('1.10.0-dev', '1.10.x', false, false);
testIsValidExtensionVersion('0.10.0-dev', '*', false, false);
testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', false, false);
testIsValidExtensionVersion('0.10.0-dev', '0.x.x', false, false);
testIsValidExtensionVersion('0.10.0-dev', '0.10.x', false, false);
testIsValidExtensionVersion('1.10.0-dev', '1.x.x', false, false);
testIsValidExtensionVersion('1.10.0-dev', '1.10.x', false, false);
// // normal extensions are allowed to use * or x.x.x only if they have no main
// testIsInvalidExtensionVersion('0.10.0-dev', '*', false, true);
// testIsInvalidExtensionVersion('0.10.0-dev', 'x.x.x', false, true);
// testIsInvalidExtensionVersion('0.10.0-dev', '0.x.x', false, true);
// testIsValidExtensionVersion('0.10.0-dev', '0.10.x', false, true);
// testIsValidExtensionVersion('1.10.0-dev', '1.x.x', false, true);
// testIsValidExtensionVersion('1.10.0-dev', '1.10.x', false, true);
// testIsValidExtensionVersion('0.10.0-dev', '*', false, false);
// testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', false, false);
// testIsValidExtensionVersion('0.10.0-dev', '0.x.x', false, false);
// testIsValidExtensionVersion('0.10.0-dev', '0.10.x', false, false);
// testIsValidExtensionVersion('1.10.0-dev', '1.x.x', false, false);
// testIsValidExtensionVersion('1.10.0-dev', '1.10.x', false, false);
// normal extensions with code
testIsValidVersion('0.10.0-dev', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.10.0-dev', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.10.0-dev', '0.10.0', true);
testIsValidVersion('0.10.0-dev', '0.10.2', false);
testIsValidVersion('0.10.0-dev', '^0.10.2', false);
testIsValidVersion('0.10.0-dev', '0.10.x', true);
testIsValidVersion('0.10.0-dev', '^0.10.0', true);
testIsValidVersion('0.10.0-dev', '*', false); // fails due to lack of specificity
// // extensions without "main" get no version check
// testIsValidExtensionVersion('0.10.0-dev', '>=0.9.1-pre.1', false, false);
// testIsValidExtensionVersion('0.10.0-dev', '*', false, false);
// testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', false, false);
// testIsValidExtensionVersion('0.10.0-dev', '0.x.x', false, false);
// testIsValidExtensionVersion('0.10.0-dev', '0.10.x', false, false);
// testIsValidExtensionVersion('1.10.0-dev', '1.x.x', false, false);
// testIsValidExtensionVersion('1.10.0-dev', '1.10.x', false, false);
// testIsValidExtensionVersion('0.10.0-dev', '*', false, false);
// testIsValidExtensionVersion('0.10.0-dev', 'x.x.x', false, false);
// testIsValidExtensionVersion('0.10.0-dev', '0.x.x', false, false);
// testIsValidExtensionVersion('0.10.0-dev', '0.10.x', false, false);
// testIsValidExtensionVersion('1.10.0-dev', '1.x.x', false, false);
// testIsValidExtensionVersion('1.10.0-dev', '1.10.x', false, false);
testIsValidVersion('0.10.0', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.10.0', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.10.0', '0.10.0', true);
testIsValidVersion('0.10.0', '0.10.2', false);
testIsValidVersion('0.10.0', '^0.10.2', false);
testIsValidVersion('0.10.0', '0.10.x', true);
testIsValidVersion('0.10.0', '^0.10.0', true);
testIsValidVersion('0.10.0', '*', false); // fails due to lack of specificity
// // normal extensions with code
// testIsValidVersion('0.10.0-dev', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.10.0-dev', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.10.0-dev', '0.10.0', true);
// testIsValidVersion('0.10.0-dev', '0.10.2', false);
// testIsValidVersion('0.10.0-dev', '^0.10.2', false);
// testIsValidVersion('0.10.0-dev', '0.10.x', true);
// testIsValidVersion('0.10.0-dev', '^0.10.0', true);
// testIsValidVersion('0.10.0-dev', '*', false); // fails due to lack of specificity
testIsValidVersion('0.10.1', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.10.1', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.10.1', '0.10.0', false);
testIsValidVersion('0.10.1', '0.10.2', false);
testIsValidVersion('0.10.1', '^0.10.2', false);
testIsValidVersion('0.10.1', '0.10.x', true);
testIsValidVersion('0.10.1', '^0.10.0', true);
testIsValidVersion('0.10.1', '*', false); // fails due to lack of specificity
// testIsValidVersion('0.10.0', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.10.0', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.10.0', '0.10.0', true);
// testIsValidVersion('0.10.0', '0.10.2', false);
// testIsValidVersion('0.10.0', '^0.10.2', false);
// testIsValidVersion('0.10.0', '0.10.x', true);
// testIsValidVersion('0.10.0', '^0.10.0', true);
// testIsValidVersion('0.10.0', '*', false); // fails due to lack of specificity
testIsValidVersion('0.10.100', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.10.100', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.10.100', '0.10.0', false);
testIsValidVersion('0.10.100', '0.10.2', false);
testIsValidVersion('0.10.100', '^0.10.2', true);
testIsValidVersion('0.10.100', '0.10.x', true);
testIsValidVersion('0.10.100', '^0.10.0', true);
testIsValidVersion('0.10.100', '*', false); // fails due to lack of specificity
// testIsValidVersion('0.10.1', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.10.1', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.10.1', '0.10.0', false);
// testIsValidVersion('0.10.1', '0.10.2', false);
// testIsValidVersion('0.10.1', '^0.10.2', false);
// testIsValidVersion('0.10.1', '0.10.x', true);
// testIsValidVersion('0.10.1', '^0.10.0', true);
// testIsValidVersion('0.10.1', '*', false); // fails due to lack of specificity
testIsValidVersion('0.11.0', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.11.0', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('0.11.0', '0.10.0', false);
testIsValidVersion('0.11.0', '0.10.2', false);
testIsValidVersion('0.11.0', '^0.10.2', false);
testIsValidVersion('0.11.0', '0.10.x', false);
testIsValidVersion('0.11.0', '^0.10.0', false);
testIsValidVersion('0.11.0', '*', false); // fails due to lack of specificity
// testIsValidVersion('0.10.100', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.10.100', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.10.100', '0.10.0', false);
// testIsValidVersion('0.10.100', '0.10.2', false);
// testIsValidVersion('0.10.100', '^0.10.2', true);
// testIsValidVersion('0.10.100', '0.10.x', true);
// testIsValidVersion('0.10.100', '^0.10.0', true);
// testIsValidVersion('0.10.100', '*', false); // fails due to lack of specificity
testIsValidVersion('1.0.0', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('1.0.0', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('1.0.0', '0.10.0', false);
testIsValidVersion('1.0.0', '0.10.2', false);
testIsValidVersion('1.0.0', '^0.10.2', true);
testIsValidVersion('1.0.0', '0.10.x', true);
testIsValidVersion('1.0.0', '^0.10.0', true);
testIsValidVersion('1.0.0', '*', false); // fails due to lack of specificity
// testIsValidVersion('0.11.0', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.11.0', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('0.11.0', '0.10.0', false);
// testIsValidVersion('0.11.0', '0.10.2', false);
// testIsValidVersion('0.11.0', '^0.10.2', false);
// testIsValidVersion('0.11.0', '0.10.x', false);
// testIsValidVersion('0.11.0', '^0.10.0', false);
// testIsValidVersion('0.11.0', '*', false); // fails due to lack of specificity
testIsValidVersion('1.10.0', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('1.10.0', '1.x.x', true);
testIsValidVersion('1.10.0', '1.10.0', true);
testIsValidVersion('1.10.0', '1.10.2', false);
testIsValidVersion('1.10.0', '^1.10.2', false);
testIsValidVersion('1.10.0', '1.10.x', true);
testIsValidVersion('1.10.0', '^1.10.0', true);
testIsValidVersion('1.10.0', '*', false); // fails due to lack of specificity
// testIsValidVersion('1.0.0', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('1.0.0', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('1.0.0', '0.10.0', false);
// testIsValidVersion('1.0.0', '0.10.2', false);
// testIsValidVersion('1.0.0', '^0.10.2', true);
// testIsValidVersion('1.0.0', '0.10.x', true);
// testIsValidVersion('1.0.0', '^0.10.0', true);
// testIsValidVersion('1.0.0', '*', false); // fails due to lack of specificity
// testIsValidVersion('1.10.0', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('1.10.0', '1.x.x', true);
// testIsValidVersion('1.10.0', '1.10.0', true);
// testIsValidVersion('1.10.0', '1.10.2', false);
// testIsValidVersion('1.10.0', '^1.10.2', false);
// testIsValidVersion('1.10.0', '1.10.x', true);
// testIsValidVersion('1.10.0', '^1.10.0', true);
// testIsValidVersion('1.10.0', '*', false); // fails due to lack of specificity
// Anything < 1.0.0 is compatible
// // Anything < 1.0.0 is compatible
testIsValidVersion('1.0.0', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('1.0.0', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('1.0.0', '0.10.0', false);
testIsValidVersion('1.0.0', '0.10.2', false);
testIsValidVersion('1.0.0', '^0.10.2', true);
testIsValidVersion('1.0.0', '0.10.x', true);
testIsValidVersion('1.0.0', '^0.10.0', true);
testIsValidVersion('1.0.0', '1.0.0', true);
testIsValidVersion('1.0.0', '^1.0.0', true);
testIsValidVersion('1.0.0', '^2.0.0', false);
testIsValidVersion('1.0.0', '*', false); // fails due to lack of specificity
// testIsValidVersion('1.0.0', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('1.0.0', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('1.0.0', '0.10.0', false);
// testIsValidVersion('1.0.0', '0.10.2', false);
// testIsValidVersion('1.0.0', '^0.10.2', true);
// testIsValidVersion('1.0.0', '0.10.x', true);
// testIsValidVersion('1.0.0', '^0.10.0', true);
// testIsValidVersion('1.0.0', '1.0.0', true);
// testIsValidVersion('1.0.0', '^1.0.0', true);
// testIsValidVersion('1.0.0', '^2.0.0', false);
// testIsValidVersion('1.0.0', '*', false); // fails due to lack of specificity
testIsValidVersion('1.0.100', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('1.0.100', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('1.0.100', '0.10.0', false);
testIsValidVersion('1.0.100', '0.10.2', false);
testIsValidVersion('1.0.100', '^0.10.2', true);
testIsValidVersion('1.0.100', '0.10.x', true);
testIsValidVersion('1.0.100', '^0.10.0', true);
testIsValidVersion('1.0.100', '1.0.0', false);
testIsValidVersion('1.0.100', '^1.0.0', true);
testIsValidVersion('1.0.100', '^1.0.1', true);
testIsValidVersion('1.0.100', '^2.0.0', false);
testIsValidVersion('1.0.100', '*', false); // fails due to lack of specificity
// testIsValidVersion('1.0.100', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('1.0.100', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('1.0.100', '0.10.0', false);
// testIsValidVersion('1.0.100', '0.10.2', false);
// testIsValidVersion('1.0.100', '^0.10.2', true);
// testIsValidVersion('1.0.100', '0.10.x', true);
// testIsValidVersion('1.0.100', '^0.10.0', true);
// testIsValidVersion('1.0.100', '1.0.0', false);
// testIsValidVersion('1.0.100', '^1.0.0', true);
// testIsValidVersion('1.0.100', '^1.0.1', true);
// testIsValidVersion('1.0.100', '^2.0.0', false);
// testIsValidVersion('1.0.100', '*', false); // fails due to lack of specificity
testIsValidVersion('1.100.0', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('1.100.0', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('1.100.0', '0.10.0', false);
testIsValidVersion('1.100.0', '0.10.2', false);
testIsValidVersion('1.100.0', '^0.10.2', true);
testIsValidVersion('1.100.0', '0.10.x', true);
testIsValidVersion('1.100.0', '^0.10.0', true);
testIsValidVersion('1.100.0', '1.0.0', false);
testIsValidVersion('1.100.0', '^1.0.0', true);
testIsValidVersion('1.100.0', '^1.1.0', true);
testIsValidVersion('1.100.0', '^1.100.0', true);
testIsValidVersion('1.100.0', '^2.0.0', false);
testIsValidVersion('1.100.0', '*', false); // fails due to lack of specificity
// testIsValidVersion('1.100.0', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('1.100.0', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('1.100.0', '0.10.0', false);
// testIsValidVersion('1.100.0', '0.10.2', false);
// testIsValidVersion('1.100.0', '^0.10.2', true);
// testIsValidVersion('1.100.0', '0.10.x', true);
// testIsValidVersion('1.100.0', '^0.10.0', true);
// testIsValidVersion('1.100.0', '1.0.0', false);
// testIsValidVersion('1.100.0', '^1.0.0', true);
// testIsValidVersion('1.100.0', '^1.1.0', true);
// testIsValidVersion('1.100.0', '^1.100.0', true);
// testIsValidVersion('1.100.0', '^2.0.0', false);
// testIsValidVersion('1.100.0', '*', false); // fails due to lack of specificity
testIsValidVersion('2.0.0', 'x.x.x', false); // fails due to lack of specificity
testIsValidVersion('2.0.0', '0.x.x', false); // fails due to lack of specificity
testIsValidVersion('2.0.0', '0.10.0', false);
testIsValidVersion('2.0.0', '0.10.2', false);
testIsValidVersion('2.0.0', '^0.10.2', false);
testIsValidVersion('2.0.0', '0.10.x', false);
testIsValidVersion('2.0.0', '^0.10.0', false);
testIsValidVersion('2.0.0', '1.0.0', false);
testIsValidVersion('2.0.0', '^1.0.0', false);
testIsValidVersion('2.0.0', '^1.1.0', false);
testIsValidVersion('2.0.0', '^1.100.0', false);
testIsValidVersion('2.0.0', '^2.0.0', true);
testIsValidVersion('2.0.0', '*', false); // fails due to lack of specificity
});
// testIsValidVersion('2.0.0', 'x.x.x', false); // fails due to lack of specificity
// testIsValidVersion('2.0.0', '0.x.x', false); // fails due to lack of specificity
// testIsValidVersion('2.0.0', '0.10.0', false);
// testIsValidVersion('2.0.0', '0.10.2', false);
// testIsValidVersion('2.0.0', '^0.10.2', false);
// testIsValidVersion('2.0.0', '0.10.x', false);
// testIsValidVersion('2.0.0', '^0.10.0', false);
// testIsValidVersion('2.0.0', '1.0.0', false);
// testIsValidVersion('2.0.0', '^1.0.0', false);
// testIsValidVersion('2.0.0', '^1.1.0', false);
// testIsValidVersion('2.0.0', '^1.100.0', false);
// testIsValidVersion('2.0.0', '^2.0.0', true);
// testIsValidVersion('2.0.0', '*', false); // fails due to lack of specificity
// });
});