diff --git a/.gitignore b/.gitignore index 04c397bb7e3db..a906e2cf7d5d8 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,7 @@ tests/webTestServer.js.map tests/webhost/*.d.ts tests/webhost/webtsc.js tests/cases/**/*.js +!tests/cases/docker/*.js/ tests/cases/**/*.js.map *.config scripts/debug.bat diff --git a/src/testRunner/externalCompileRunner.ts b/src/testRunner/externalCompileRunner.ts index 4e1575ca47d67..4e2cb0041d187 100644 --- a/src/testRunner/externalCompileRunner.ts +++ b/src/testRunner/externalCompileRunner.ts @@ -157,7 +157,7 @@ ${sanitizeDockerfileOutput(result.stderr.toString())}`; } function sanitizeDockerfileOutput(result: string): string { - return stripAbsoluteImportPaths(sanitizeTimestamps(stripRushStageNumbers(stripANSIEscapes(normalizeNewlines(result))))); + return stripAbsoluteImportPaths(sanitizeTimestamps(sanitizeVersionSpecifiers(stripRushStageNumbers(stripANSIEscapes(normalizeNewlines(result)))))); } function normalizeNewlines(result: string): string { @@ -176,10 +176,14 @@ function sanitizeTimestamps(result: string): string { return result.replace(/\[\d?\d:\d\d:\d\d (A|P)M\]/g, "[XX:XX:XX XM]") .replace(/\d+(\.\d+)? seconds?/g, "? seconds") .replace(/\d+(\.\d+)? minutes?/g, "") - .replace(/\d+(\.\d+)?s/g, "?s") - .replace(/\d+.\d+.\d+-insiders.\d\d\d\d\d\d\d\d/g, "X.X.X-insiders.xxxxxxxx"); + .replace(/\d+(\.\d+)?s/g, "?s"); } +function sanitizeVersionSpecifiers(result: string): string { + return result + .replace(/\d+.\d+.\d+-insiders.\d\d\d\d\d\d\d\d/g, "X.X.X-insiders.xxxxxxxx") + .replace(/@\d+\.\d+\.\d+/g, "@X.X.X"); +} /** * Import types and some other error messages use absolute paths in errors as they have no context to be written relative to; diff --git a/tests/baselines/reference/docker/xterm.js.log b/tests/baselines/reference/docker/xterm.js.log new file mode 100644 index 0000000000000..5eb25dc4da087 --- /dev/null +++ b/tests/baselines/reference/docker/xterm.js.log @@ -0,0 +1,10 @@ +Exit Code: 0 +Standard output: + +> xterm@X.X.X build /xtermjs +> tsc -b ./tsconfig.all.json + + + + +Standard error: diff --git a/tests/cases/docker/xterm.js/Dockerfile b/tests/cases/docker/xterm.js/Dockerfile new file mode 100644 index 0000000000000..179459d280e10 --- /dev/null +++ b/tests/cases/docker/xterm.js/Dockerfile @@ -0,0 +1,14 @@ +# node-pty doesn't build on node 12 right now, so we lock to 8 - the version xterm itself tests against :( +FROM node:8 +RUN git clone https://github.com/xtermjs/xterm.js.git /xtermjs +WORKDIR /xtermjs +RUN git pull +COPY --from=typescript/typescript /typescript/typescript-*.tgz /typescript.tgz +RUN mkdir /typescript +RUN tar -xzvf /typescript.tgz -C /typescript +RUN npm i typescript@/typescript/package +RUN npm install +# Set entrypoint back to bash (`node` base image made it `node`) +ENTRYPOINT [ "/bin/bash", "-c" , "exec \"${@:0}\";"] +# Build +CMD npm run build \ No newline at end of file