diff --git a/Jakefile b/Jakefile index 6ab9155f8b3fe..767387c5d86fe 100644 --- a/Jakefile +++ b/Jakefile @@ -457,14 +457,16 @@ directory(builtLocalDirectory); var run = path.join(builtLocalDirectory, "run.js"); compileFile(run, harnessSources, [builtLocalDirectory, tscFile].concat(libraryTargets).concat(harnessSources), [], /*useBuiltCompiler:*/ true); +var internalTests = "internal/" + var localBaseline = "tests/baselines/local/"; var refBaseline = "tests/baselines/reference/"; -var localRwcBaseline = "tests/baselines/rwc/local/"; -var refRwcBaseline = "tests/baselines/rwc/reference/"; +var localRwcBaseline = path.join(internalTests, "baselines/rwc/local"); +var refRwcBaseline = path.join(internalTests, "baselines/rwc/reference"); -var localTest262Baseline = "tests/baselines/test262/local/"; -var refTest262Baseline = "tests/baselines/test262/reference/"; +var localTest262Baseline = path.join(internalTests, "baselines/test262/local"); +var refTest262Baseline = path.join(internalTests, "baselines/test262/reference"); desc("Builds the test infrastructure using the built compiler"); task("tests", ["local", run].concat(libraryTargets)); @@ -497,11 +499,13 @@ function cleanTestDirs() { jake.rmRf(localBaseline); } - // Clean the local Rwc baselines directory + // Clean the local Rwc baselines directory if (fs.existsSync(localRwcBaseline)) { jake.rmRf(localRwcBaseline); } + jake.mkdirP(localRwcBaseline); + jake.mkdirP(localTest262Baseline); jake.mkdirP(localBaseline); } @@ -513,8 +517,8 @@ function writeTestConfigFile(tests, testConfigFile) { } function deleteTemporaryProjectOutput() { - if (fs.existsSync(localBaseline + "projectOutput/")) { - jake.rmRf(localBaseline + "projectOutput/"); + if (fs.existsSync(path.join(localBaseline, "projectOutput/"))) { + jake.rmRf(path.join(localBaseline, "projectOutput/")); } } diff --git a/src/harness/harness.ts b/src/harness/harness.ts index a854436c5bf4d..c17a8da78e8b5 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1569,21 +1569,32 @@ module Harness { export interface BaselineOptions { LineEndingSensitive?: boolean; Subfolder?: string; + Baselinefolder?: string; } - export function localPath(fileName: string, subfolder?: string) { - return baselinePath(fileName, 'local', subfolder); + export function localPath(fileName: string, baselineFolder?: string, subfolder?: string) { + if (baselineFolder === undefined) { + return baselinePath(fileName, 'local', 'tests/baselines', subfolder); + } + else { + return baselinePath(fileName, 'local', baselineFolder, subfolder); + } } - function referencePath(fileName: string, subfolder?: string) { - return baselinePath(fileName, 'reference', subfolder); + function referencePath(fileName: string, baselineFolder?: string, subfolder?: string) { + if (baselineFolder === undefined) { + return baselinePath(fileName, 'reference', 'tests/baselines', subfolder); + } + else { + return baselinePath(fileName, 'reference', baselineFolder, subfolder); + } } - function baselinePath(fileName: string, type: string, subfolder?: string) { + function baselinePath(fileName: string, type: string, baselineFolder: string, subfolder?: string) { if (subfolder !== undefined) { - return Harness.userSpecifiedroot + 'tests/baselines/' + subfolder + '/' + type + '/' + fileName; + return Harness.userSpecifiedroot + baselineFolder + '/' + subfolder + '/' + type + '/' + fileName; } else { - return Harness.userSpecifiedroot + 'tests/baselines/' + type + '/' + fileName; + return Harness.userSpecifiedroot + baselineFolder + '/' + type + '/' + fileName; } } @@ -1637,7 +1648,7 @@ module Harness { return; } - var refFileName = referencePath(relativeFileName, opts && opts.Subfolder); + var refFileName = referencePath(relativeFileName, opts && opts.Baselinefolder, opts && opts.Subfolder); if (actual === null) { actual = ''; @@ -1675,7 +1686,7 @@ module Harness { opts?: BaselineOptions): void { var actual = undefined; - var actualFileName = localPath(relativeFileName, opts && opts.Subfolder); + var actualFileName = localPath(relativeFileName, opts && opts.Baselinefolder, opts && opts.Subfolder); if (runImmediately) { actual = generateActual(actualFileName, generateContent); diff --git a/src/harness/rwcRunner.ts b/src/harness/rwcRunner.ts index 3121dced76818..b66322f839021 100644 --- a/src/harness/rwcRunner.ts +++ b/src/harness/rwcRunner.ts @@ -26,7 +26,10 @@ module RWC { var otherFiles: { unitName: string; content: string; }[] = []; var compilerResult: Harness.Compiler.CompilerResult; var compilerOptions: ts.CompilerOptions; - var baselineOpts: Harness.Baseline.BaselineOptions = { Subfolder: 'rwc' }; + var baselineOpts: Harness.Baseline.BaselineOptions = { + Subfolder: 'rwc', + Baselinefolder: 'internal/baselines' + }; var baseName = /(.*)\/(.*).json/.exec(ts.normalizeSlashes(jsonPath))[2]; var currentDirectory: string; @@ -170,7 +173,7 @@ module RWC { } class RWCRunner extends RunnerBase { - private static sourcePath = "tests/cases/rwc/"; + private static sourcePath = "internal/cases/rwc/"; /** Setup the runner's tests so that they are ready to be executed by the harness * The first test should be a describe/it block that sets up the harness's compiler instance appropriately diff --git a/src/harness/test262Runner.ts b/src/harness/test262Runner.ts index 24be77922f90e..0091da5e91182 100644 --- a/src/harness/test262Runner.ts +++ b/src/harness/test262Runner.ts @@ -3,7 +3,7 @@ /// class Test262BaselineRunner extends RunnerBase { - private static basePath = 'tests/cases/test262'; + private static basePath = 'internal/cases/test262'; private static helpersFilePath = 'tests/cases/test262-harness/helpers.d.ts'; private static helperFile = { unitName: Test262BaselineRunner.helpersFilePath, @@ -15,7 +15,10 @@ class Test262BaselineRunner extends RunnerBase { target: ts.ScriptTarget.Latest, module: ts.ModuleKind.CommonJS }; - private static baselineOptions: Harness.Baseline.BaselineOptions = { Subfolder: 'test262' }; + private static baselineOptions: Harness.Baseline.BaselineOptions = { + Subfolder: 'test262', + Baselinefolder: 'internal/baselines' + }; private static getTestFilePath(filename: string): string { return Test262BaselineRunner.basePath + "/" + filename;