From af3897086fd198e12eea6eb17def090cc028bcc5 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 27 Nov 2014 13:05:23 -0800 Subject: [PATCH] Move collateOutputs to harness --- src/harness/harness.ts | 25 +++++++++++++++++++++++++ src/harness/rwcRunner.ts | 31 +++---------------------------- src/harness/test262Runner.ts | 2 +- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 791231dabaf..640d5f0ae53 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1018,6 +1018,31 @@ module Harness { sys.newLine + sys.newLine + outputLines.join('\r\n'); } + export function collateOutputs(outputFiles: Harness.Compiler.GeneratedFile[], clean?: (s: string) => string) { + // Collect, test, and sort the filenames + function cleanName(fn: string) { + var lastSlash = ts.normalizeSlashes(fn).lastIndexOf('/'); + return fn.substr(lastSlash + 1).toLowerCase(); + } + outputFiles.sort((a, b) => cleanName(a.fileName).localeCompare(cleanName(b.fileName))); + + // Emit them + var result = ''; + ts.forEach(outputFiles, outputFile => { + // Some extra spacing if this isn't the first file + if (result.length) result = result + '\r\n\r\n'; + + // Filename header + content + result = result + '/*====== ' + outputFile.fileName + ' ======*/\r\n'; + if (clean) { + result = result + clean(outputFile.code); + } else { + result = result + outputFile.code; + } + }); + return result; + } + /** The harness' compiler instance used when tests are actually run. Reseting or changing settings of this compiler instance must be done within a test case (i.e., describe/it) */ var harnessCompiler: HarnessCompiler; diff --git a/src/harness/rwcRunner.ts b/src/harness/rwcRunner.ts index 3843a1e28b9..b8bc2a80a52 100644 --- a/src/harness/rwcRunner.ts +++ b/src/harness/rwcRunner.ts @@ -20,31 +20,6 @@ module RWC { } } - export function collateOutputs(outputFiles: Harness.Compiler.GeneratedFile[], clean?: (s: string) => string) { - // Collect, test, and sort the filenames - function cleanName(fn: string) { - var lastSlash = ts.normalizeSlashes(fn).lastIndexOf('/'); - return fn.substr(lastSlash + 1).toLowerCase(); - } - outputFiles.sort((a, b) => cleanName(a.fileName).localeCompare(cleanName(b.fileName))); - - // Emit them - var result = ''; - ts.forEach(outputFiles, outputFile => { - // Some extra spacing if this isn't the first file - if (result.length) result = result + '\r\n\r\n'; - - // Filename header + content - result = result + '/*====== ' + outputFile.fileName + ' ======*/\r\n'; - if (clean) { - result = result + clean(outputFile.code); - } else { - result = result + outputFile.code; - } - }); - return result; - } - export function runRWCTest(jsonPath: string) { describe("Testing a RWC project: " + jsonPath, () => { var inputFiles: { unitName: string; content: string; }[] = []; @@ -136,7 +111,7 @@ module RWC { it('has the expected emitted code', () => { Harness.Baseline.runBaseline('has the expected emitted code', baseName + '.output.js', () => { - return collateOutputs(compilerResult.files, s => SyntacticCleaner.clean(s)); + return Harness.Compiler.collateOutputs(compilerResult.files, s => SyntacticCleaner.clean(s)); }, false, baselineOpts); }); @@ -145,7 +120,7 @@ module RWC { if (compilerResult.errors.length || !compilerResult.declFilesCode.length) { return null; } - return collateOutputs(compilerResult.declFilesCode); + return Harness.Compiler.collateOutputs(compilerResult.declFilesCode); }, false, baselineOpts); }); @@ -155,7 +130,7 @@ module RWC { return null; } - return collateOutputs(compilerResult.sourceMaps); + return Harness.Compiler.collateOutputs(compilerResult.sourceMaps); }, false, baselineOpts); }); diff --git a/src/harness/test262Runner.ts b/src/harness/test262Runner.ts index 1a6fea12d6d..86e22aaeec0 100644 --- a/src/harness/test262Runner.ts +++ b/src/harness/test262Runner.ts @@ -96,7 +96,7 @@ class Test262BaselineRunner extends RunnerBase { it('has the expected emitted code', () => { Harness.Baseline.runBaseline('has the expected emitted code', testState.filename + '.output.js', () => { var files = testState.compilerResult.files.filter(f=> f.fileName !== Test262BaselineRunner.helpersFilePath); - return RWC.collateOutputs(files, s => SyntacticCleaner.clean(s)); + return Harness.Compiler.collateOutputs(files, s => SyntacticCleaner.clean(s)); }, false, Test262BaselineRunner.baselineOptions); });