Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: dart/compiler/javatests/com/google/dart/compiler/common/GenerateSourceMapTest.java

Issue 9353015: Remove dartc optimizing backend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix minor test issues Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dart/compiler/javatests/com/google/dart/compiler/common/GenerateSourceMapTest.java
diff --git a/dart/compiler/javatests/com/google/dart/compiler/common/GenerateSourceMapTest.java b/dart/compiler/javatests/com/google/dart/compiler/common/GenerateSourceMapTest.java
deleted file mode 100644
index ee81842e079899e813f4d8c67e6e89b5be6ceb3c..0000000000000000000000000000000000000000
--- a/dart/compiler/javatests/com/google/dart/compiler/common/GenerateSourceMapTest.java
+++ /dev/null
@@ -1,324 +0,0 @@
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.google.dart.compiler.common;
-
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.io.CharStreams;
-import com.google.dart.compiler.Backend;
-import com.google.dart.compiler.CompilerConfiguration;
-import com.google.dart.compiler.CompilerTestCase;
-import com.google.dart.compiler.DartArtifactProvider;
-import com.google.dart.compiler.DartSource;
-import com.google.dart.compiler.DefaultCompilerConfiguration;
-import com.google.dart.compiler.MockArtifactProvider;
-import com.google.dart.compiler.backend.dart.DartBackend;
-import com.google.dart.compiler.backend.js.ClosureJsBackend;
-import com.google.dart.compiler.backend.js.JavascriptBackend;
-import com.google.debugging.sourcemap.FilePosition;
-import com.google.debugging.sourcemap.SourceMapConsumerFactory;
-import com.google.debugging.sourcemap.SourceMapParseException;
-import com.google.debugging.sourcemap.SourceMapSection;
-import com.google.debugging.sourcemap.SourceMapping;
-import com.google.debugging.sourcemap.proto.Mapping.OriginalMapping;
-
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Tests for {@link GenerateSourceMap}.
- *
- * @author jschorr@google.com (Joseph Schorr)
- * @author johnlenz@google.com (John Lenz)
- */
-public class GenerateSourceMapTest extends CompilerTestCase {
-
- // TODO(johnlenz): support detail levels
-
- enum ResultType {
- JS,
- CLOSURE_JS,
- DART
- }
-
- @Override
- public void setUp() {
- }
-
- // TODO(johnlenz): fix this
- public void disable_testClassMapping() throws Exception {
- compileAndCheck("class __CLASS__ { }", "__CLASS__");
- }
-
- public void testMethodMapping() throws Exception {
- compileAndCheck("class myClass { static __MEMBER__() {} }", "myClass");
- }
-
- // TODO(johnlenz): fix this
- public void disable_testFieldMapping1() throws Exception {
- compileAndCheck("class myClass { const int __FIELD__; }", "myClass");
- }
-
- // TODO(johnlenz): fails
- public void disable_testFieldMapping2() throws Exception {
- compileAndCheck("class myClass { static const int __FIELD__ = 1; }", "myClass");
- }
-
- public void testMethodParamMapping() throws Exception {
- compileAndCheck("class myClass { static member(__PARAM1__, __PARAM2__) {} }", "myClass");
- }
-
- public void testNamedFunctionMapping() throws Exception {
- compileAndCheck(
- "class c {\n" +
- " void member() {\n" +
- " __FN__(__PARAM1__, __PARAM2__) {}\n" +
- " }" +
- "}", "c");
- }
-
- public void testLocalMapping() throws Exception {
- compileAndCheck(
- "class c {\n" +
- " void member() {\n" +
- " var __VAR__ = '__STR__'; \n" +
- " }" +
- "}", "c");
- }
-
- public void testLocalInClosureMapping() throws Exception {
- compileAndCheck(
- "class c {\n" +
- " void member() {\n" +
- " fn(p1, p2) {\n" +
- " var __VAR__ = '__STR__'; \n" +
- " }\n" +
- " }" +
- "}", "c");
- }
-
- public void testWriteMetaMap() throws IOException {
- StringWriter out = new StringWriter();
- String name = "./app.js";
- List<SourceMapSection> appSections = Lists.newArrayList(
- SourceMapSection.forURL("src1", 0, 0),
- SourceMapSection.forURL("src2", 100, 10),
- SourceMapSection.forURL("src3", 150, 5));
-
- new GenerateSourceMap().appendIndexMapTo(out, name, appSections);
-
- assertEquals(
- "{\n" +
- "\"version\":3,\n" +
- "\"file\":\"./app.js\",\n" +
- "\"sections\":[\n" +
- "{\n" +
- "\"offset\":{\n" +
- "\"line\":0,\n" +
- "\"column\":0\n" +
- "},\n" +
- "\"url\":\"src1\"\n" +
- "},\n" +
- "{\n" +
- "\"offset\":{\n" +
- "\"line\":100,\n" +
- "\"column\":10\n" +
- "},\n" +
- "\"url\":\"src2\"\n" +
- "},\n" +
- "{\n" +
- "\"offset\":{\n" +
- "\"line\":150,\n" +
- "\"column\":5\n" +
- "},\n" +
- "\"url\":\"src3\"\n" +
- "}\n" +
- "]\n" +
- "}\n",
- out.toString());
- }
-
-
- private static class RunResult {
- final String generatedSource;
- final String sourceMapFileContent;
-
- RunResult(String source, String sourceMap) {
- this.generatedSource = source;
- this.sourceMapFileContent = sourceMap;
- }
- }
-
- private static class Token {
- String tokenName;
- FilePosition position;
- }
-
- /**
- * Finds the all the __XX__ tokens in the given Javascript
- * string.
- */
- private Map<String, Token> findTokens(String js) {
- Map<String, Token> tokens = Maps.newLinkedHashMap();
-
- int currentLine = 0;
- int positionOffset = 0;
-
- for (int i = 0; i < js.length(); ++i) {
- char current = js.charAt(i);
-
- if (current == '\n') {
- positionOffset = i + 1;
- currentLine++;
- continue;
- }
-
- if (current == '_' && (i < js.length() - 5)) {
- // Check for the _ token.
- if (js.charAt(i + 1) != '_') {
- continue;
- }
-
- // Loop until we have another _ token.
- String tokenName = "";
-
- int j = i + 2;
- for (; j < js.length(); ++j) {
- if (js.charAt(j) == '_') {
- break;
- }
- if (js.charAt(j) == '\n') {
- // False match, tokens can't span lines
- tokenName = "";
- break;
- }
-
- tokenName += js.charAt(j);
- }
-
- if (tokenName.length() > 0) {
- Token token = new Token();
- token.tokenName = tokenName;
- int currentPosition = i - positionOffset;
- token.position = new FilePosition(currentLine, currentPosition);
-
- // Only use the first instance of a token (parameters can be repeated in trampolines).
- if (!tokens.containsKey(tokenName)) {
- tokens.put(tokenName, token);
- }
- }
-
- i = j;
- }
- }
-
- return tokens;
- }
-
- private void compileAndCheck(String dartSource, String part) throws Exception {
- compileAndCheck(dartSource, "", ResultType.DART);
- compileAndCheck(dartSource, part, ResultType.JS);
- // TODO(johnlenz): Use the application map instead of the per file map
- // compileAndCheck(dartSource, null, ResultType.CLOSURE_JS);
- }
-
- private void compileAndCheck(String dartSource, String part, ResultType type) throws Exception {
- RunResult result = getCompileResult("testcode", dartSource, part, type);
-
- // Find all instances of the __XXX__ pattern in the original
- // source code.
- Map<String, Token> originalTokens = findTokens(dartSource);
-
- // Find all instances of the __XXX__ pattern in the generated
- // source code.
- Map<String, Token> resultTokens = findTokens(result.generatedSource);
-
- // Ensure that the generated instances match via the source map
- // to the original source code.
-
- // Ensure the token counts match.
- assertEquals(originalTokens.size(), resultTokens.size());
-
- SourceMapping sourcemap;
- try {
- sourcemap = SourceMapConsumerFactory.parse(result.sourceMapFileContent);
- } catch (SourceMapParseException e) {
- throw new RuntimeException("unexpected exception", e);
- }
-
- // Map the tokens from the generated source back to the
- // input source and ensure that the map is correct.
- for (Token token : resultTokens.values()) {
- OriginalMapping mapping = sourcemap.getMappingForLine(
- token.position.getLine() + 1,
- token.position.getColumn() + 1);
-
- assertNotNull(mapping);
-
- // Find the associated token in the input source.
- Token inputToken = originalTokens.get(token.tokenName);
- assertNotNull(inputToken);
-
- // Ensure that the map correctly points to the token (we add 1
- // to normalize versus the Rhino line number indexing scheme).
- assertEquals(mapping.getLineNumber(),
- inputToken.position.getLine() + 1);
-
- // Ensure that if the token name does not being with an 'STR' (meaning a
- // string) it has an original name.
- String originalName = mapping.getIdentifier();
- if (!inputToken.tokenName.startsWith("STR")) {
- assertTrue(!originalName.isEmpty());
- }
-
- // Ensure that if the mapping has a name, it matches the token.
- if (!originalName.isEmpty()) {
- assertEquals("__" + inputToken.tokenName + "__", originalName);
- }
- }
- }
-
- @Override
- protected CompilerConfiguration getCompilerConfiguration(Backend backend) {
- return new DefaultCompilerConfiguration(
- backend, new com.google.dart.compiler.CommandLineOptions.CompilerOptions(){
- @Override
- public boolean generateSourceMaps() { return true; }
- });
- }
-
- protected RunResult getResultForCompile(String fileName, String sourceCode, String part,
- Backend backend, String outExt, String mapExt) throws Exception {
- DartArtifactProvider provider = new MockArtifactProvider();
- DartSource dart = compileSingleUnit(
- fileName, sourceCode, provider, backend);
-
- StringBuilder src = new StringBuilder();
- StringBuilder map = new StringBuilder();
- CharStreams.copy(provider.getArtifactReader(dart, part, outExt), src);
- CharStreams.copy(provider.getArtifactReader(dart, part, mapExt), map);
-
- return new RunResult(src.toString(), map.toString());
- }
-
- private RunResult getCompileResult(
- String filename, String sourceCode, String part, ResultType type)
- throws Exception {
- switch (type) {
- case DART:
- return getResultForCompile(filename, sourceCode, part, new DartBackend(),
- DartBackend.EXTENSION_DART, DartBackend.EXTENSION_DART_SRC_MAP);
- case JS:
- return getResultForCompile(filename, sourceCode, part, new JavascriptBackend(),
- JavascriptBackend.EXTENSION_JS, JavascriptBackend.EXTENSION_JS_SRC_MAP);
- case CLOSURE_JS:
- return getResultForCompile(filename, sourceCode, part, new ClosureJsBackend(),
- ClosureJsBackend.EXTENSION_JS, ClosureJsBackend.EXTENSION_JS_SRC_MAP);
- }
- throw new IllegalStateException();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698