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

Side by Side Diff: pkg/analyzer/test/src/dart/sdk/sdk_test.dart

Issue 2560323002: Simplify how patch files are specified to analyzer. (Closed)
Patch Set: Created 4 years 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
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 analyzer.test.generated.sdk_test; 5 library analyzer.test.generated.sdk_test;
6 6
7 import 'package:analyzer/file_system/file_system.dart'; 7 import 'package:analyzer/file_system/file_system.dart';
8 import 'package:analyzer/file_system/memory_file_system.dart'; 8 import 'package:analyzer/file_system/memory_file_system.dart';
9 import 'package:analyzer/src/context/builder.dart' show EmbedderYamlLocator; 9 import 'package:analyzer/src/context/builder.dart' show EmbedderYamlLocator;
10 import 'package:analyzer/src/dart/sdk/sdk.dart'; 10 import 'package:analyzer/src/dart/sdk/sdk.dart';
11 import 'package:analyzer/src/generated/engine.dart'; 11 import 'package:analyzer/src/generated/engine.dart';
12 import 'package:analyzer/src/generated/java_engine_io.dart'; 12 import 'package:analyzer/src/generated/java_engine_io.dart';
13 import 'package:analyzer/src/generated/sdk.dart'; 13 import 'package:analyzer/src/generated/sdk.dart';
14 import 'package:analyzer/src/generated/source.dart'; 14 import 'package:analyzer/src/generated/source.dart';
15 import 'package:analyzer/src/summary/summarize_elements.dart'; 15 import 'package:analyzer/src/summary/summarize_elements.dart';
16 import 'package:test/test.dart'; 16 import 'package:test/test.dart';
17 import 'package:test_reflective_loader/test_reflective_loader.dart'; 17 import 'package:test_reflective_loader/test_reflective_loader.dart';
18 18
19 import '../../../embedder_tests.dart'; 19 import '../../../embedder_tests.dart';
20 import '../../../generated/test_support.dart'; 20 import '../../../generated/test_support.dart';
21 import '../../../resource_utils.dart'; 21 import '../../../resource_utils.dart';
22 22
23 main() { 23 main() {
24 defineReflectiveSuite(() { 24 defineReflectiveSuite(() {
25 defineReflectiveTests(EmbedderSdkTest); 25 defineReflectiveTests(EmbedderSdkTest);
26 defineReflectiveTests(FolderBasedDartSdkTest); 26 defineReflectiveTests(FolderBasedDartSdkTest);
27 defineReflectiveTests(SdkExtensionFinderTest); 27 defineReflectiveTests(SdkExtensionFinderTest);
28 defineReflectiveTests(SdkLibrariesReaderTest); 28 defineReflectiveTests(SdkLibrariesReaderTest);
29 defineReflectiveTests(SdkLibraryImplTest);
30 }); 29 });
31 } 30 }
32 31
33 @reflectiveTest 32 @reflectiveTest
34 class EmbedderSdkTest extends EmbedderRelatedTest { 33 class EmbedderSdkTest extends EmbedderRelatedTest {
35 void test_creation() { 34 void test_creation() {
36 EmbedderYamlLocator locator = new EmbedderYamlLocator({ 35 EmbedderYamlLocator locator = new EmbedderYamlLocator({
37 'fox': <Folder>[pathTranslator.getResource(foxLib)] 36 'fox': <Folder>[pathTranslator.getResource(foxLib)]
38 }); 37 });
39 EmbedderSdk sdk = new EmbedderSdk(resourceProvider, locator.embedderYamls); 38 EmbedderSdk sdk = new EmbedderSdk(resourceProvider, locator.embedderYamls);
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 SdkLibrary second = libraryMap.getLibrary("dart:second"); 466 SdkLibrary second = libraryMap.getLibrary("dart:second");
468 expect(second, isNotNull); 467 expect(second, isNotNull);
469 expect(second.category, "Server"); 468 expect(second.category, "Server");
470 expect(second.path, "second/second.dart"); 469 expect(second.path, "second/second.dart");
471 expect(second.shortName, "dart:second"); 470 expect(second.shortName, "dart:second");
472 expect(second.isDart2JsLibrary, false); 471 expect(second.isDart2JsLibrary, false);
473 expect(second.isDocumented, false); 472 expect(second.isDocumented, false);
474 expect(second.isImplementation, true); 473 expect(second.isImplementation, true);
475 expect(second.isVmLibrary, false); 474 expect(second.isVmLibrary, false);
476 } 475 }
477
478 void test_readFrom_patches() {
479 LibraryMap libraryMap = new SdkLibrariesReader(false).readFromFile(
480 resourceProvider.getFile('/libs.dart'),
481 r'''
482 final Map<String, LibraryInfo> LIBRARIES = const <String, LibraryInfo> {
483 'foo' : const LibraryInfo(
484 'foo/foo.dart',
485 patches: {
486 DART2JS_PLATFORM | VM_PLATFORM: ['a', 'b'],
487 DART2JS_PLATFORM: ['c', 'd'],
488 VM_PLATFORM: ['e']}),
489 };''');
490 expect(libraryMap, isNotNull);
491 expect(libraryMap.size(), 1);
492 SdkLibrary library = libraryMap.getLibrary('dart:foo');
493 expect(library, isNotNull);
494 expect(library.path, 'foo/foo.dart');
495 expect(library.shortName, 'dart:foo');
496 expect(library.getPatches(SdkLibraryImpl.DART2JS_PLATFORM),
497 unorderedEquals(['a', 'b', 'c', 'd']));
498 expect(library.getPatches(SdkLibraryImpl.VM_PLATFORM),
499 unorderedEquals(['a', 'b', 'e']));
500 }
501
502 void test_readFrom_patches_invalid_notList() {
503 expect(() {
504 new SdkLibrariesReader(false).readFromFile(
505 resourceProvider.getFile('/libs.dart'),
506 r'''
507 final Map<String, LibraryInfo> LIBRARIES = const <String, LibraryInfo> {
508 'foo' : const LibraryInfo(
509 'foo/foo.dart',
510 patches: {
511 VM_PLATFORM: 'X'}),
512 };''');
513 }, throwsArgumentError);
514 }
515
516 void test_readFrom_patches_invalid_notString_inList() {
517 expect(() {
518 new SdkLibrariesReader(false).readFromFile(
519 resourceProvider.getFile('/libs.dart'),
520 r'''
521 final Map<String, LibraryInfo> LIBRARIES = const <String, LibraryInfo> {
522 'foo' : const LibraryInfo(
523 'foo/foo.dart',
524 patches: {
525 VM_PLATFORM: [42]}),
526 };''');
527 }, throwsArgumentError);
528 }
529
530 void test_readFrom_patches_invalid_path_hasDotDot() {
531 _assertPatchPathIsInvalid('foo/../bar.dart');
532 _assertPatchPathIsInvalid('../foo/bar.dart');
533 _assertPatchPathIsInvalid('foo/bar..dart');
534 }
535
536 void test_readFrom_patches_invalid_path_isAbsolute() {
537 _assertPatchPathIsInvalid('/foo.dart');
538 _assertPatchPathIsInvalid('/foo/bar.dart');
539 }
540
541 void test_readFrom_patches_invalid_path_notPosix() {
542 _assertPatchPathIsInvalid(r'foo\bar.dart');
543 }
544
545 void test_readFrom_patches_invalid_platformCombinator() {
546 expect(() {
547 new SdkLibrariesReader(false).readFromFile(
548 resourceProvider.getFile('/libs.dart'),
549 r'''
550 final Map<String, LibraryInfo> LIBRARIES = const <String, LibraryInfo> {
551 'foo' : const LibraryInfo(
552 'foo/foo.dart',
553 patches: {
554 DART2JS_PLATFORM + VM_PLATFORM: ['X']}),
555 };''');
556 }, throwsArgumentError);
557 }
558
559 void test_readFrom_patches_invalid_unknownPlatform() {
560 expect(() {
561 new SdkLibrariesReader(false).readFromFile(
562 resourceProvider.getFile('/libs.dart'),
563 r'''
564 final Map<String, LibraryInfo> LIBRARIES = const <String, LibraryInfo> {
565 'foo' : const LibraryInfo(
566 'foo/foo.dart',
567 patches: {
568 MY_UNKNOWN_PLATFORM: ['foo/bar_patch.dart']}),
569 };''');
570 }, throwsArgumentError);
571 }
572
573 void test_readFrom_patches_no() {
574 LibraryMap libraryMap = new SdkLibrariesReader(false).readFromFile(
575 resourceProvider.getFile('/libs.dart'),
576 r'''
577 final Map<String, LibraryInfo> LIBRARIES = const <String, LibraryInfo> {
578 'my' : const LibraryInfo('my/my.dart')
579 };''');
580 expect(libraryMap, isNotNull);
581 expect(libraryMap.size(), 1);
582 SdkLibrary library = libraryMap.getLibrary('dart:my');
583 expect(library, isNotNull);
584 expect(library.path, 'my/my.dart');
585 expect(library.shortName, 'dart:my');
586 expect(library.getPatches(SdkLibraryImpl.VM_PLATFORM), isEmpty);
587 expect(library.getPatches(SdkLibraryImpl.DART2JS_PLATFORM), isEmpty);
588 }
589
590 void _assertPatchPathIsInvalid(String patchPath) {
591 expect(() {
592 new SdkLibrariesReader(false).readFromFile(
593 resourceProvider.getFile('/libs.dart'),
594 '''
595 final Map<String, LibraryInfo> LIBRARIES = const <String, LibraryInfo> {
596 'foo' : const LibraryInfo(
597 'foo/foo.dart',
598 patches: {
599 VM_PLATFORM: [r'$patchPath']}),
600 };''');
601 }, throwsArgumentError);
602 }
603 } 476 }
604
605 @reflectiveTest
606 class SdkLibraryImplTest extends EngineTestCase {
607 void test_patches() {
608 SdkLibraryImpl library = new SdkLibraryImpl('dart:foo');
609 // Set patches.
610 library.setPatchPaths(
611 SdkLibraryImpl.DART2JS_PLATFORM | SdkLibraryImpl.VM_PLATFORM,
612 ['a', 'b']);
613 library.setPatchPaths(SdkLibraryImpl.DART2JS_PLATFORM, ['c', 'd']);
614 library.setPatchPaths(SdkLibraryImpl.VM_PLATFORM, ['e']);
615 // Get patches.
616 expect(library.getPatches(SdkLibraryImpl.DART2JS_PLATFORM),
617 unorderedEquals(['a', 'b', 'c', 'd']));
618 expect(library.getPatches(SdkLibraryImpl.VM_PLATFORM),
619 unorderedEquals(['a', 'b', 'e']));
620 }
621 }
OLDNEW
« pkg/analyzer/lib/src/task/dart.dart ('K') | « pkg/analyzer/test/src/dart/sdk/patch_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698