From 30fe3f7221304b4338ee6582cd86370e9a371e29 Mon Sep 17 00:00:00 2001 From: Yui T Date: Thu, 16 Oct 2014 18:13:26 -0700 Subject: [PATCH 1/4] Fix runtests for unittests --- Jakefile | 8 ++++++-- tests/cases/unittests/services/colorization.ts | 9 ++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Jakefile b/Jakefile index 1709e1f7628..790a5f3546d 100644 --- a/Jakefile +++ b/Jakefile @@ -10,6 +10,7 @@ var servicesDirectory = "src/services/"; var harnessDirectory = "src/harness/"; var libraryDirectory = "src/lib/"; var scriptsDirectory = "scripts/"; +var unittestsDirectory = "tests/cases/unittests/"; var docDirectory = "doc/"; var builtDirectory = "built/"; @@ -74,13 +75,16 @@ var harnessSources = [ "typeWriter.ts", "fourslashRunner.ts", "projectsRunner.ts", - "unittestrunner.ts", "loggedIO.ts", "rwcRunner.ts", "runner.ts" ].map(function (f) { return path.join(harnessDirectory, f); -}); +}).concat([ + "services/colorization.ts" +].map(function (f) { + return path.join(unittestsDirectory, f); +})); var librarySourceMap = [ { target: "lib.core.d.ts", sources: ["core.d.ts"] }, diff --git a/tests/cases/unittests/services/colorization.ts b/tests/cases/unittests/services/colorization.ts index ee5350a25eb..ec44492db5d 100644 --- a/tests/cases/unittests/services/colorization.ts +++ b/tests/cases/unittests/services/colorization.ts @@ -1,4 +1,7 @@ -interface Classification { +/// +/// + +interface Classification { position: number; length: number; class: ts.TokenClass; @@ -66,7 +69,7 @@ describe('Colorization', function () { function numberLiteral(text: string) { return { value: text, class: ts.TokenClass.NumberLiteral }; } function stringLiteral(text: string) { return { value: text, class: ts.TokenClass.StringLiteral }; } function regExpLiteral(text: string) { return { value: text, class: ts.TokenClass.RegExpLiteral }; } - function finalEndOfLineState(value: number) { return { value: value, class: undefined }; } + function finalEndOfLineState(value: number) { return { value: value, class: undefined }; } function test(text: string, initialEndOfLineState: ts.EndOfLineState, ...expectedEntries: ClassificationEntry[]): void { var result = getClassifications(text, initialEndOfLineState); @@ -265,7 +268,7 @@ describe('Colorization', function () { identifier("Foo"), operator("<"), identifier("Foo"), - operator(">" + operator(">"), identifier("keyword"), finalEndOfLineState(ts.EndOfLineState.Start)); }); From ba77284485c2ca379eef74b19aab78ad25a2a787 Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 20 Oct 2014 13:01:21 -0700 Subject: [PATCH 2/4] Fix colorization unittest --- tests/cases/unittests/services/colorization.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/cases/unittests/services/colorization.ts b/tests/cases/unittests/services/colorization.ts index ec44492db5d..3031cefb56c 100644 --- a/tests/cases/unittests/services/colorization.ts +++ b/tests/cases/unittests/services/colorization.ts @@ -256,7 +256,7 @@ describe('Colorization', function () { identifier("Foo"), operator("<"), identifier("Foo"), - punctuation(","), + operator(","), identifier("Foo"), operator("<"), identifier("number"), @@ -269,7 +269,7 @@ describe('Colorization', function () { operator("<"), identifier("Foo"), operator(">"), - identifier("keyword"), + keyword("number"), finalEndOfLineState(ts.EndOfLineState.Start)); }); }); From 7806094a1aff04c4dcf52c990f7b19e5b6494125 Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 20 Oct 2014 13:47:09 -0700 Subject: [PATCH 3/4] Address code review --- src/harness/runner.ts | 7 ---- src/harness/unittestrunner.ts | 73 ----------------------------------- 2 files changed, 80 deletions(-) delete mode 100644 src/harness/unittestrunner.ts diff --git a/src/harness/runner.ts b/src/harness/runner.ts index 331a19819b3..38e23bb10c5 100644 --- a/src/harness/runner.ts +++ b/src/harness/runner.ts @@ -18,7 +18,6 @@ // /// /// /// -/// function runTests(runners: RunnerBase[]) { if (reverse) { @@ -67,9 +66,6 @@ if (testConfigFile !== '') { case 'fourslash-generated': runners.push(new GeneratedFourslashRunner()); break; - case 'unittests': - runners.push(new UnitTestRunner()); - break; case 'rwc': runners.push(new RWCRunner()); break; @@ -93,9 +89,6 @@ if (runners.length === 0) { // language services runners.push(new FourslashRunner()); //runners.push(new GeneratedFourslashRunner()); - - // unittests - runners.push(new UnitTestRunner()); } sys.newLine = '\r\n'; diff --git a/src/harness/unittestrunner.ts b/src/harness/unittestrunner.ts deleted file mode 100644 index 95c90415409..00000000000 --- a/src/harness/unittestrunner.ts +++ /dev/null @@ -1,73 +0,0 @@ -/// -/// - -class UnitTestRunner extends RunnerBase { - constructor() { - super(); - } - - public initializeTests() { - this.tests = this.enumerateFiles('tests/cases/unittests/services', /\.ts/i); - - var outfile = new Harness.Compiler.WriterAggregator() - var outerr = new Harness.Compiler.WriterAggregator(); - // note this is running immediately to generate tests to be run later inside describe/it - // need a fresh instance so that the previous runner's last test is not hanging around - var harnessCompiler = Harness.Compiler.getCompiler({ useExistingInstance: false }); - - var toBeAdded = this.tests.map(test => { - return { unitName: test, content: Harness.IO.readFile(test) } - }); - harnessCompiler.addInputFiles(toBeAdded); - harnessCompiler.setCompilerOptions({ noResolve: true }); - - var stdout = new Harness.Compiler.EmitterIOHost(); - var emitDiagnostics = harnessCompiler.emitAll(stdout); - var results = stdout.toArray(); - var lines: string[] = []; - results.forEach(v => lines = lines.concat(v.file.lines)); - var code = lines.join("\n") - - var nodeContext: any = undefined; - if (Utils.getExecutionEnvironment() === Utils.ExecutionEnvironment.Node) { - nodeContext = { - require: require, - process: process, - describe: describe, - it: it, - assert: assert, - beforeEach: beforeEach, - afterEach: afterEach, - before: before, - after: after, - Harness: Harness, - IO: Harness.IO, - ts: ts, - TypeScript: TypeScript - // FourSlash: FourSlash - }; - } - - describe("Setup compiler for compiler unittests", () => { - // ensures a clean compiler instance when tests are eventually executed following this describe block - harnessCompiler = Harness.Compiler.getCompiler({ - useExistingInstance: false, - optionsForFreshInstance: { useMinimalDefaultLib: true, noImplicitAny: false } - }); - }); - - // this generated code is a series of top level describe/it blocks that will run in between the setup and cleanup blocks in this file - Utils.evalFile(code, "generated_test_code.js", nodeContext); - - describe("Cleanup after unittests", () => { - var harnessCompiler = Harness.Compiler.getCompiler({ - useExistingInstance: false, - optionsForFreshInstance: { useMinimalDefaultLib: true, noImplicitAny: false } - }); - }); - - // note this runs immediately (ie before this same code in the describe block above) - // to make sure the next runner doesn't include the previous one's stuff - harnessCompiler = Harness.Compiler.getCompiler({ useExistingInstance: false }); - } -} \ No newline at end of file From 54bc1da5d09cab69113625a0c4a6c17510a68dec Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 20 Oct 2014 14:39:31 -0700 Subject: [PATCH 4/4] Address code review --- Jakefile | 3 ++- tests/cases/unittests/services/documentRegistry.ts | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Jakefile b/Jakefile index 790a5f3546d..34879a56691 100644 --- a/Jakefile +++ b/Jakefile @@ -81,7 +81,8 @@ var harnessSources = [ ].map(function (f) { return path.join(harnessDirectory, f); }).concat([ - "services/colorization.ts" + "services/colorization.ts", + "services/documentRegistry.ts" ].map(function (f) { return path.join(unittestsDirectory, f); })); diff --git a/tests/cases/unittests/services/documentRegistry.ts b/tests/cases/unittests/services/documentRegistry.ts index a7ed030f44c..88503149715 100644 --- a/tests/cases/unittests/services/documentRegistry.ts +++ b/tests/cases/unittests/services/documentRegistry.ts @@ -5,8 +5,8 @@ describe("DocumentRegistry", () => { var documentRegistry = ts.createDocumentRegistry(); var defaultCompilerOptions = ts.getDefaultCompilerOptions(); - var f1 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), 1, false); - var f2 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), 1, false); + var f1 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), "1", false); + var f2 = documentRegistry.acquireDocument("file1.ts", defaultCompilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), "1", false); assert(f1 === f2, "DocumentRegistry should return the same document for the same name"); }); @@ -17,21 +17,21 @@ describe("DocumentRegistry", () => { // change compilation setting that doesn't affect parsing - should have the same document compilerOptions.declaration = true; - var f1 = documentRegistry.acquireDocument("file1.ts", compilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), 1, false); + var f1 = documentRegistry.acquireDocument("file1.ts", compilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), "1", false); compilerOptions.declaration = false; - var f2 = documentRegistry.acquireDocument("file1.ts", compilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), 1, false); + var f2 = documentRegistry.acquireDocument("file1.ts", compilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), "1", false); assert(f1 === f2, "Expected to have the same document instance"); // change value of compilation setting that is used during production of AST - new document is required compilerOptions.target = ts.ScriptTarget.ES3; - var f3 = documentRegistry.acquireDocument("file1.ts", compilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), 1, false); + var f3 = documentRegistry.acquireDocument("file1.ts", compilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), "1", false); assert(f1 !== f3, "Changed target: Expected to have different instances of document"); compilerOptions.module = ts.ModuleKind.CommonJS; - var f4 = documentRegistry.acquireDocument("file1.ts", compilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), 1, false); + var f4 = documentRegistry.acquireDocument("file1.ts", compilerOptions, TypeScript.ScriptSnapshot.fromString("var x = 1;"), "1", false); assert(f1 !== f4, "Changed module: Expected to have different instances of document"); });