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

Side by Side Diff: pkg/analyzer/test/src/task/dart_test.dart

Issue 1113103003: Use memento in ScanDartTask. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.src.task.dart_test; 5 library test.src.task.dart_test;
6 6
7 import 'package:analyzer/src/generated/ast.dart'; 7 import 'package:analyzer/src/generated/ast.dart';
8 import 'package:analyzer/src/generated/element.dart'; 8 import 'package:analyzer/src/generated/element.dart';
9 import 'package:analyzer/src/generated/error.dart'; 9 import 'package:analyzer/src/generated/error.dart';
10 import 'package:analyzer/src/generated/resolver.dart'; 10 import 'package:analyzer/src/generated/resolver.dart';
(...skipping 1738 matching lines...) Expand 10 before | Expand all | Expand 10 after
1749 FunctionElement main = unit.element.functions[0]; 1749 FunctionElement main = unit.element.functions[0];
1750 expectMutated(main.parameters[0], isFalse, isFalse); 1750 expectMutated(main.parameters[0], isFalse, isFalse);
1751 expectMutated(main.parameters[1], isFalse, isTrue); 1751 expectMutated(main.parameters[1], isFalse, isTrue);
1752 expectMutated(main.parameters[2], isTrue, isTrue); 1752 expectMutated(main.parameters[2], isTrue, isTrue);
1753 expectMutated(main.parameters[3], isTrue, isTrue); 1753 expectMutated(main.parameters[3], isTrue, isTrue);
1754 } 1754 }
1755 } 1755 }
1756 1756
1757 @reflectiveTest 1757 @reflectiveTest
1758 class ScanDartTaskTest extends _AbstractDartTaskTest { 1758 class ScanDartTaskTest extends _AbstractDartTaskTest {
1759 void assertSameResults(List<ResultDescriptor> descriptors) {
1760 descriptors.forEach((descriptor) {
1761 var oldResult = oldOutputs[descriptor];
1762 var newResult = outputs[descriptor];
1763 expect(newResult, same(oldResult));
1764 });
1765 }
1766
1759 test_buildInputs() { 1767 test_buildInputs() {
1760 Map<String, TaskInput> inputs = ScanDartTask.buildInputs(emptySource); 1768 Map<String, TaskInput> inputs = ScanDartTask.buildInputs(emptySource);
1761 expect(inputs, isNotNull); 1769 expect(inputs, isNotNull);
1762 expect(inputs.keys, unorderedEquals([ScanDartTask.CONTENT_INPUT_NAME])); 1770 expect(inputs.keys, unorderedEquals([ScanDartTask.CONTENT_INPUT_NAME]));
1763 } 1771 }
1764 1772
1765 test_constructor() { 1773 test_constructor() {
1766 ScanDartTask task = new ScanDartTask(context, emptySource); 1774 ScanDartTask task = new ScanDartTask(context, emptySource);
1767 expect(task, isNotNull); 1775 expect(task, isNotNull);
1768 expect(task.context, context); 1776 expect(task.context, context);
(...skipping 26 matching lines...) Expand all
1795 } 1803 }
1796 1804
1797 test_perform_noErrors() { 1805 test_perform_noErrors() {
1798 _performScanTask('class A {}'); 1806 _performScanTask('class A {}');
1799 expect(outputs, hasLength(3)); 1807 expect(outputs, hasLength(3));
1800 expect(outputs[LINE_INFO], isNotNull); 1808 expect(outputs[LINE_INFO], isNotNull);
1801 expect(outputs[SCAN_ERRORS], hasLength(0)); 1809 expect(outputs[SCAN_ERRORS], hasLength(0));
1802 expect(outputs[TOKEN_STREAM], isNotNull); 1810 expect(outputs[TOKEN_STREAM], isNotNull);
1803 } 1811 }
1804 1812
1813 test_perform_useMemento() {
1814 AnalysisTarget target = newSource('/test.dart', 'main() {}');
1815 _computeResult(target, TOKEN_STREAM);
1816 // update content
1817 context.setContents(target, 'main() {}');
1818 // recompute
1819 _computeResult(target, TOKEN_STREAM);
1820 // values from the mememto are returned
1821 assertSameResults([LINE_INFO, SCAN_ERRORS, TOKEN_STREAM]);
1822 }
1823
1805 void _performScanTask(String content) { 1824 void _performScanTask(String content) {
1806 AnalysisTarget target = newSource('/test.dart', content); 1825 AnalysisTarget target = newSource('/test.dart', content);
1807 _computeResult(target, TOKEN_STREAM); 1826 _computeResult(target, TOKEN_STREAM);
1808 expect(task, new isInstanceOf<ScanDartTask>()); 1827 expect(task, new isInstanceOf<ScanDartTask>());
1809 } 1828 }
1810 } 1829 }
1811 1830
1812 @reflectiveTest 1831 @reflectiveTest
1813 class VerifyUnitTaskTest extends _AbstractDartTaskTest { 1832 class VerifyUnitTaskTest extends _AbstractDartTaskTest {
1814 test_perform_verifyError() { 1833 test_perform_verifyError() {
(...skipping 10 matching lines...) Expand all
1825 // validate 1844 // validate
1826 _fillErrorListener(VERIFY_ERRORS); 1845 _fillErrorListener(VERIFY_ERRORS);
1827 errorListener.assertErrorsWithCodes( 1846 errorListener.assertErrorsWithCodes(
1828 <ErrorCode>[StaticTypeWarningCode.NON_BOOL_CONDITION]); 1847 <ErrorCode>[StaticTypeWarningCode.NON_BOOL_CONDITION]);
1829 } 1848 }
1830 } 1849 }
1831 1850
1832 class _AbstractDartTaskTest extends AbstractContextTest { 1851 class _AbstractDartTaskTest extends AbstractContextTest {
1833 Source emptySource; 1852 Source emptySource;
1834 1853
1854 Map<ResultDescriptor<dynamic>, dynamic> oldOutputs;
1835 AnalysisTask task; 1855 AnalysisTask task;
1836 Map<ResultDescriptor<dynamic>, dynamic> outputs; 1856 Map<ResultDescriptor<dynamic>, dynamic> outputs;
1837 GatheringErrorListener errorListener = new GatheringErrorListener(); 1857 GatheringErrorListener errorListener = new GatheringErrorListener();
1838 1858
1839 void setUp() { 1859 void setUp() {
1840 super.setUp(); 1860 super.setUp();
1841 emptySource = newSource('/test.dart'); 1861 emptySource = newSource('/test.dart');
1842 } 1862 }
1843 1863
1844 void _computeResult(AnalysisTarget target, ResultDescriptor result) { 1864 void _computeResult(AnalysisTarget target, ResultDescriptor result) {
1865 oldOutputs = outputs;
1845 task = analysisDriver.computeResult(target, result); 1866 task = analysisDriver.computeResult(target, result);
1846 expect(task.caughtException, isNull); 1867 expect(task.caughtException, isNull);
1847 outputs = task.outputs; 1868 outputs = task.outputs;
1848 } 1869 }
1849 1870
1850 /** 1871 /**
1851 * Fill [errorListener] with [result] errors in the current [task]. 1872 * Fill [errorListener] with [result] errors in the current [task].
1852 */ 1873 */
1853 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) { 1874 void _fillErrorListener(ResultDescriptor<List<AnalysisError>> result) {
1854 List<AnalysisError> errors = task.outputs[result]; 1875 List<AnalysisError> errors = task.outputs[result];
1855 expect(errors, isNotNull, reason: result.name); 1876 expect(errors, isNotNull, reason: result.name);
1856 errorListener = new GatheringErrorListener(); 1877 errorListener = new GatheringErrorListener();
1857 errorListener.addAll(errors); 1878 errorListener.addAll(errors);
1858 } 1879 }
1859 } 1880 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698