diff --git a/_infrastructure/tests/runner.js b/_infrastructure/tests/runner.js index 21e6e2ac13..190285474a 100644 --- a/_infrastructure/tests/runner.js +++ b/_infrastructure/tests/runner.js @@ -1,4 +1,18 @@ -var ExecResult = (function () { +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +var ExecResult = (function () { function ExecResult() { this.stdout = ""; this.stderr = ""; @@ -63,8 +77,23 @@ var Exec = (function () { return new NodeExec(); } })(); +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// var IOUtils; (function (IOUtils) { + // Creates the directory including its parent if not already present function createDirectoryStructure(ioHost, dirName) { if (ioHost.directoryExists(dirName)) { return; @@ -77,6 +106,7 @@ var IOUtils; ioHost.createDirectory(dirName); } + // Creates a file including its directory structure if not already present function createFileAndFolderStructure(ioHost, fileName, useUTF8) { var path = ioHost.resolvePath(fileName); var dirName = ioHost.dirName(path); @@ -96,6 +126,8 @@ var IOUtils; })(IOUtils || (IOUtils = {})); var IO = (function () { + // Create an IO object for use inside WindowsScriptHost hosts + // Depends on WSCript and FileSystemObject function getWindowsScriptHostIO() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var streamObjectPool = []; @@ -133,6 +165,7 @@ var IO = (function () { streamObj.Charset = 'utf-8'; } + // Read the whole file var str = streamObj.ReadText(-1); streamObj.Close(); releaseStreamObject(streamObj); @@ -164,6 +197,7 @@ var IO = (function () { var content = this.readFile(path); return { content: content, path: path }; } catch (err) { + //Tools.CompilerDiagnostics.debugPrint("Could not find " + path + ", trying parent"); } } else { rootPath = fso.GetParentFolderName(fso.GetAbsolutePathName(rootPath)); @@ -287,6 +321,8 @@ var IO = (function () { } ; + // Create an IO object for use inside Node.js hosts + // Depends on 'fs' and 'path' modules function getNodeIO() { var _fs = require('fs'); var _path = require('path'); @@ -299,6 +335,8 @@ var IO = (function () { switch (buffer[0]) { case 0xFE: if (buffer[1] == 0xFF) { + // utf16-be. Reading the buffer as big endian is not supported, so convert it to + // Little Endian first var i = 0; while ((i + 1) < buffer.length) { var temp = buffer[i]; @@ -311,15 +349,18 @@ var IO = (function () { break; case 0xFF: if (buffer[1] == 0xFE) { + // utf16-le return buffer.toString("ucs2", 2); } break; case 0xEF: if (buffer[1] == 0xBB) { + // utf-8 return buffer.toString("utf8", 3); } } + // Default behaviour return buffer.toString(); } catch (e) { IOUtils.throwIOError("Error reading file \"" + file + "\".", e); @@ -419,6 +460,7 @@ var IO = (function () { var content = this.readFile(path); return { content: content, path: path }; } catch (err) { + //Tools.CompilerDiagnostics.debugPrint(("Could not find " + path) + ", trying parent"); } } else { var parentPath = _path.resolve(rootPath, ".."); @@ -504,10 +546,14 @@ var IO = (function () { ; if (typeof ActiveXObject === "function") - return getWindowsScriptHostIO(); else if (typeof require === "function") - return getNodeIO(); else + return getWindowsScriptHostIO(); +else if (typeof require === "function") + return getNodeIO(); +else return null; })(); +/// +/// var DefinitelyTyped; (function (DefinitelyTyped) { (function (TestManager) { @@ -537,7 +583,7 @@ var DefinitelyTyped; function Tsc() { } Tsc.run = function (tsfile, callback) { - Exec.exec('node ./_infrastructure/tests/typescript/tsc.js ', [tsfile], function (ExecResult) { + Exec.exec('node ./_infrastructure/tests/typescript/tsc.js --module commonjs ', [tsfile], function (ExecResult) { callback(ExecResult); }); }; diff --git a/_infrastructure/tests/runner.ts b/_infrastructure/tests/runner.ts index 0d42252867..3c8f162108 100644 --- a/_infrastructure/tests/runner.ts +++ b/_infrastructure/tests/runner.ts @@ -28,7 +28,7 @@ module DefinitelyTyped { class Tsc { public static run(tsfile: string, callback: Function) { - Exec.exec('node ./_infrastructure/tests/typescript/tsc.js ', [tsfile], (ExecResult) => { + Exec.exec('node ./_infrastructure/tests/typescript/tsc.js --module commonjs ', [tsfile], (ExecResult) => { callback(ExecResult); }); } diff --git a/_infrastructure/tests/src/io.js b/_infrastructure/tests/src/io.js index 0058d59f93..0f8b9516c8 100644 --- a/_infrastructure/tests/src/io.js +++ b/_infrastructure/tests/src/io.js @@ -1,5 +1,20 @@ -var IOUtils; +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +var IOUtils; (function (IOUtils) { + // Creates the directory including its parent if not already present function createDirectoryStructure(ioHost, dirName) { if (ioHost.directoryExists(dirName)) { return; @@ -12,6 +27,7 @@ ioHost.createDirectory(dirName); } + // Creates a file including its directory structure if not already present function createFileAndFolderStructure(ioHost, fileName, useUTF8) { var path = ioHost.resolvePath(fileName); var dirName = ioHost.dirName(path); @@ -31,6 +47,8 @@ })(IOUtils || (IOUtils = {})); var IO = (function () { + // Create an IO object for use inside WindowsScriptHost hosts + // Depends on WSCript and FileSystemObject function getWindowsScriptHostIO() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var streamObjectPool = []; @@ -68,6 +86,7 @@ var IO = (function () { streamObj.Charset = 'utf-8'; } + // Read the whole file var str = streamObj.ReadText(-1); streamObj.Close(); releaseStreamObject(streamObj); @@ -99,6 +118,7 @@ var IO = (function () { var content = this.readFile(path); return { content: content, path: path }; } catch (err) { + //Tools.CompilerDiagnostics.debugPrint("Could not find " + path + ", trying parent"); } } else { rootPath = fso.GetParentFolderName(fso.GetAbsolutePathName(rootPath)); @@ -222,6 +242,8 @@ var IO = (function () { } ; + // Create an IO object for use inside Node.js hosts + // Depends on 'fs' and 'path' modules function getNodeIO() { var _fs = require('fs'); var _path = require('path'); @@ -234,6 +256,8 @@ var IO = (function () { switch (buffer[0]) { case 0xFE: if (buffer[1] == 0xFF) { + // utf16-be. Reading the buffer as big endian is not supported, so convert it to + // Little Endian first var i = 0; while ((i + 1) < buffer.length) { var temp = buffer[i]; @@ -246,15 +270,18 @@ var IO = (function () { break; case 0xFF: if (buffer[1] == 0xFE) { + // utf16-le return buffer.toString("ucs2", 2); } break; case 0xEF: if (buffer[1] == 0xBB) { + // utf-8 return buffer.toString("utf8", 3); } } + // Default behaviour return buffer.toString(); } catch (e) { IOUtils.throwIOError("Error reading file \"" + file + "\".", e); @@ -354,6 +381,7 @@ var IO = (function () { var content = this.readFile(path); return { content: content, path: path }; } catch (err) { + //Tools.CompilerDiagnostics.debugPrint(("Could not find " + path) + ", trying parent"); } } else { var parentPath = _path.resolve(rootPath, ".."); @@ -439,7 +467,9 @@ var IO = (function () { ; if (typeof ActiveXObject === "function") - return getWindowsScriptHostIO(); else if (typeof require === "function") - return getNodeIO(); else + return getWindowsScriptHostIO(); +else if (typeof require === "function") + return getNodeIO(); +else return null; })(); diff --git a/_infrastructure/tests/src/io.ts b/_infrastructure/tests/src/io.ts index 9a3bdf8ad5..6fce754893 100644 --- a/_infrastructure/tests/src/io.ts +++ b/_infrastructure/tests/src/io.ts @@ -25,11 +25,11 @@ interface IFileWatcher { interface IIO { readFile(path: string): string; writeFile(path: string, contents: string): void; - createFile(path: string, useUTF8?: bool): ITextWriter; + createFile(path: string, useUTF8?: boolean): ITextWriter; deleteFile(path: string): void; - dir(path: string, re?: RegExp, options?: { recursive?: bool; deep?: number; }): string[]; - fileExists(path: string): bool; - directoryExists(path: string): bool; + dir(path: string, re?: RegExp, options?: { recursive?: boolean; deep?: number; }): string[]; + fileExists(path: string): boolean; + directoryExists(path: string): boolean; createDirectory(path: string): void; resolvePath(path: string): string; dirName(path: string): string; @@ -60,7 +60,7 @@ module IOUtils { } // Creates a file including its directory structure if not already present - export function createFileAndFolderStructure(ioHost: IIO, fileName: string, useUTF8?: bool) { + export function createFileAndFolderStructure(ioHost: IIO, fileName: string, useUTF8?: boolean) { var path = ioHost.resolvePath(fileName); var dirName = ioHost.dirName(path); createDirectoryStructure(ioHost, dirName); @@ -78,7 +78,7 @@ module IOUtils { // Declare dependencies needed for all supported hosts declare class Enumerator { - public atEnd(): bool; + public atEnd(): boolean; public moveNext(); public item(): any; constructor (o: any); @@ -160,7 +160,7 @@ var IO = (function() { file.Close(); }, - fileExists: function(path: string): bool { + fileExists: function(path: string): boolean { return fso.FileExists(path); }, @@ -250,7 +250,7 @@ var IO = (function() { }, dir: function(path, spec?, options?) { - options = options || <{ recursive?: bool; deep?: number; }>{}; + options = options || <{ recursive?: boolean; deep?: number; }>{}; function filesInFolder(folder, root): string[]{ var paths = []; var fc: Enumerator; @@ -365,7 +365,7 @@ var IO = (function() { IOUtils.throwIOError("Couldn't delete file '" + path + "'.", e); } }, - fileExists: function(path): bool { + fileExists: function(path): boolean { return _fs.existsSync(path); }, createFile: function(path, useUTF8?) { @@ -395,7 +395,7 @@ var IO = (function() { }; }, dir: function dir(path, spec?, options?) { - options = options || <{ recursive?: bool; deep?: number; }>{}; + options = options || <{ recursive?: boolean; deep?: number; }>{}; function filesInFolder(folder: string, deep?: number): string[]{ var paths = []; @@ -427,7 +427,7 @@ var IO = (function() { } }, - directoryExists: function(path: string): bool { + directoryExists: function(path: string): boolean { return _fs.existsSync(path) && _fs.lstatSync(path).isDirectory(); }, resolvePath: function(path: string): string {