Skip to content

Commit b20a89f

Browse files
author
Anna Gringauze
committed
Run tests and generate missing assets in a copy of the SDK directory.
1 parent 14902d8 commit b20a89f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1766
-1571
lines changed

.github/workflows/dart.yml

Lines changed: 41 additions & 41 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dwds/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@
2424
- Include an optional param to `Dwds.start` to indicate whether it a Flutter
2525
app or not.
2626
- Remove deprecated `ChromeProxyService.setExceptionPauseMode()`.
27+
- Refactor `SdkConfiguration`:
28+
- Constructor now takes `SdkLayout` as a parameter.
29+
- Rename `SdkConfiguration.unsoundSdkSummaryPath` with
30+
`SdkConfiguration.weakSummaryPath`.
31+
- Rename `SdkConfiguration.soundSdkSummaryPath` with
32+
`SdkConfiguration.soundSummaryPath`.
2733
- Support dart 3.0-alpha breaking changes:
2834
- Generate missing SDK assets for tests.
2935
- Enable frontend server null safe tests.

dwds/lib/dwds.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,5 @@ export 'src/services/expression_compiler.dart'
2929
export 'src/services/expression_compiler_service.dart'
3030
show ExpressionCompilerService;
3131
export 'src/utilities/sdk_configuration.dart'
32-
show SdkLayout, SdkConfiguration, SdkConfigurationProvider;
32+
show SdkConfiguration, SdkConfigurationProvider;
33+
export 'src/utilities/sdk_layout.dart' show SdkLayout;

dwds/lib/sdk_configuration.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
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.
4+
5+
export 'src/utilities/sdk_configuration.dart' show SdkConfiguration;
6+
export 'src/utilities/sdk_layout.dart' show SdkLayout;

dwds/lib/src/services/expression_compiler_service.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ class _Compiler {
7676
final librariesUri = sdkConfiguration.librariesUri!;
7777
final workerUri = sdkConfiguration.compilerWorkerUri!;
7878
final sdkSummaryUri = soundNullSafety
79-
? sdkConfiguration.soundSdkSummaryUri!
80-
: sdkConfiguration.weakSdkSummaryUri!;
79+
? sdkConfiguration.soundSummaryUri!
80+
: sdkConfiguration.weakSummaryUri!;
8181

8282
final args = [
8383
'--experimental-expression-compiler',

dwds/lib/src/utilities/sdk_configuration.dart

Lines changed: 33 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'dart:async';
6-
import 'dart:io';
76

87
import 'package:file/file.dart';
98
import 'package:file/local.dart';
109
import 'package:path/path.dart' as p;
1110

11+
import 'sdk_layout.dart';
12+
1213
class InvalidSdkConfigurationException implements Exception {
1314
final String? message;
1415

@@ -32,164 +33,36 @@ abstract class SdkConfigurationProvider {
3233
Future<SdkConfiguration> get configuration;
3334
}
3435

35-
/// Sdk layout.
36-
///
37-
/// Contains definition of the default SDK layout.
38-
/// We keep all the path constants in one place for ease of update.
39-
class SdkLayout {
40-
static final sdkDir = p.dirname(p.dirname(Platform.resolvedExecutable));
41-
static final defaultSdkLayout = createDefault(sdkDir);
42-
43-
static SdkLayout createDefault(String sdkDirectory) {
44-
final sdkJsWeakFileName = 'dart_sdk.js';
45-
final sdkJsMapWeakFileName = 'dart_sdk.js.map';
46-
final sdkJsSoundFileName = 'dart_sdk_sound.js';
47-
final sdkJsMapSoundFileName = 'dart_sdk_sound.js.map';
48-
final sdkSummarySoundFileName = 'ddc_outline.dill';
49-
final sdkSummaryWeakFileName = 'ddc_outline_unsound.dill';
50-
final sdkFullDillSoundFileName = 'ddc_platform.dill';
51-
final sdkFullDillWeakFileName = 'ddc_platform_unsound.dill';
52-
53-
final sdkSummaryDirectory = p.join(sdkDirectory, 'lib', '_internal');
54-
final sdkJsDirectory =
55-
p.join(sdkDirectory, 'lib', 'dev_compiler', 'kernel', 'amd');
56-
57-
final soundSummaryPath =
58-
p.join(sdkSummaryDirectory, sdkSummarySoundFileName);
59-
final soundFullDillPath =
60-
p.join(sdkSummaryDirectory, sdkFullDillSoundFileName);
61-
final soundJsPath = p.join(sdkJsDirectory, sdkJsSoundFileName);
62-
final soundJsMapPath = p.join(sdkJsDirectory, sdkJsMapSoundFileName);
63-
64-
final weakSummaryPath = p.join(sdkSummaryDirectory, sdkSummaryWeakFileName);
65-
final weakFullDillPath =
66-
p.join(sdkSummaryDirectory, sdkFullDillWeakFileName);
67-
final weakJsPath = p.join(sdkJsDirectory, sdkJsWeakFileName);
68-
final weakJsMapPath = p.join(sdkJsDirectory, sdkJsMapWeakFileName);
69-
70-
final librariesPath = p.join(sdkDirectory, 'lib', 'libraries.json');
71-
final dartdevcSnapshotPath =
72-
p.join(sdkDirectory, 'bin', 'snapshots', 'dartdevc.dart.snapshot');
73-
final kernelWorkerSnapshotPath =
74-
p.join(sdkDirectory, 'bin', 'snapshots', 'kernel_worker.dart.snapshot');
75-
76-
return SdkLayout(
77-
sdkJsWeakFileName: sdkJsWeakFileName,
78-
sdkJsMapWeakFileName: sdkJsMapWeakFileName,
79-
sdkJsSoundFileName: sdkJsSoundFileName,
80-
sdkJsMapSoundFileName: sdkJsMapSoundFileName,
81-
sdkSummarySoundFileName: sdkSummarySoundFileName,
82-
sdkSummaryWeakFileName: sdkSummaryWeakFileName,
83-
sdkFullDillSoundFileName: sdkFullDillSoundFileName,
84-
sdkFullDillWeakFileName: sdkFullDillWeakFileName,
85-
sdkDirectory: sdkDirectory,
86-
soundSummaryPath: soundSummaryPath,
87-
soundFullDillPath: soundFullDillPath,
88-
soundJsPath: soundJsPath,
89-
soundJsMapPath: soundJsMapPath,
90-
weakSummaryPath: weakSummaryPath,
91-
weakFullDillPath: weakFullDillPath,
92-
weakJsPath: weakJsPath,
93-
weakJsMapPath: weakJsMapPath,
94-
librariesPath: librariesPath,
95-
dartdevcSnapshotPath: dartdevcSnapshotPath,
96-
kernelWorkerSnapshotPath: kernelWorkerSnapshotPath,
97-
);
98-
}
99-
100-
final String sdkJsWeakFileName;
101-
final String sdkJsMapWeakFileName;
102-
final String sdkJsSoundFileName;
103-
final String sdkJsMapSoundFileName;
104-
final String sdkSummarySoundFileName;
105-
final String sdkSummaryWeakFileName;
106-
final String sdkFullDillSoundFileName;
107-
final String sdkFullDillWeakFileName;
108-
109-
final String sdkDirectory;
110-
111-
final String soundSummaryPath;
112-
final String soundFullDillPath;
113-
final String soundJsPath;
114-
final String soundJsMapPath;
115-
116-
final String weakSummaryPath;
117-
final String weakFullDillPath;
118-
final String weakJsPath;
119-
final String weakJsMapPath;
120-
121-
final String librariesPath;
122-
123-
final String dartdevcSnapshotPath;
124-
final String kernelWorkerSnapshotPath;
125-
126-
SdkLayout({
127-
required this.sdkJsWeakFileName,
128-
required this.sdkJsMapWeakFileName,
129-
required this.sdkJsSoundFileName,
130-
required this.sdkJsMapSoundFileName,
131-
required this.sdkSummarySoundFileName,
132-
required this.sdkSummaryWeakFileName,
133-
required this.sdkFullDillSoundFileName,
134-
required this.sdkFullDillWeakFileName,
135-
required this.sdkDirectory,
136-
required this.soundSummaryPath,
137-
required this.soundFullDillPath,
138-
required this.soundJsPath,
139-
required this.soundJsMapPath,
140-
required this.weakSummaryPath,
141-
required this.weakFullDillPath,
142-
required this.weakJsPath,
143-
required this.weakJsMapPath,
144-
required this.librariesPath,
145-
required this.dartdevcSnapshotPath,
146-
required this.kernelWorkerSnapshotPath,
147-
});
148-
}
149-
150-
/// Data class describing the SDK layout.
36+
/// SDK configuration.
15137
///
15238
/// Provides helpers to convert paths to uris that work on all platforms.
15339
///
15440
/// Call [validate] method to make sure the files in the configuration
15541
/// layout exist before reading the files.
15642
class SdkConfiguration {
15743
static final defaultSdkLayout = SdkLayout.defaultSdkLayout;
158-
static final defaultConfiguration =
159-
SdkConfiguration.fromSdkLayout(defaultSdkLayout);
44+
static final defaultConfiguration = SdkConfiguration(defaultSdkLayout);
16045

161-
String? sdkDirectory;
162-
String? weakSdkSummaryPath;
163-
String? soundSdkSummaryPath;
164-
String? librariesPath;
165-
String? compilerWorkerPath;
46+
SdkLayout? sdkLayout;
16647

167-
SdkConfiguration({
168-
this.sdkDirectory,
169-
this.weakSdkSummaryPath,
170-
this.soundSdkSummaryPath,
171-
this.librariesPath,
172-
this.compilerWorkerPath,
173-
});
48+
SdkConfiguration(this.sdkLayout);
17449

175-
SdkConfiguration.empty() : this();
176-
177-
SdkConfiguration.fromSdkLayout(SdkLayout sdkLayout)
178-
: this(
179-
sdkDirectory: sdkLayout.sdkDirectory,
180-
weakSdkSummaryPath: sdkLayout.weakSummaryPath,
181-
soundSdkSummaryPath: sdkLayout.soundSummaryPath,
182-
librariesPath: sdkLayout.librariesPath,
183-
compilerWorkerPath: sdkLayout.dartdevcSnapshotPath,
184-
);
50+
SdkConfiguration.empty() : this(null);
18551

18652
static Uri? _toUri(String? path) => path == null ? null : p.toUri(path);
18753
static Uri? _toAbsoluteUri(String? path) =>
18854
path == null ? null : p.toUri(p.absolute(path));
18955

56+
String get dartPath => sdkLayout!.dartPath;
57+
String? get sdkDirectory => sdkLayout?.sdkDirectory;
58+
String? get soundSummaryPath => sdkLayout?.soundSummaryPath;
59+
String? get weakSummaryPath => sdkLayout?.weakSummaryPath;
60+
String? get librariesPath => sdkLayout?.librariesPath;
61+
String? get compilerWorkerPath => sdkLayout?.dartdevcSnapshotPath;
62+
19063
Uri? get sdkDirectoryUri => _toUri(sdkDirectory);
191-
Uri? get soundSdkSummaryUri => _toUri(soundSdkSummaryPath);
192-
Uri? get weakSdkSummaryUri => _toUri(weakSdkSummaryPath);
64+
Uri? get soundSummaryUri => _toUri(soundSummaryPath);
65+
Uri? get weakSummaryUri => _toUri(weakSummaryPath);
19366
Uri? get librariesUri => _toUri(librariesPath);
19467

19568
/// Note: has to be ///file: Uri to run in an isolate.
@@ -199,6 +72,7 @@ class SdkConfiguration {
19972
/// exist on disk.
20073
void validate({FileSystem fileSystem = const LocalFileSystem()}) {
20174
validateSdkDir(fileSystem: fileSystem);
75+
validateDartExecutable(fileSystem: fileSystem);
20276
validateSummaries(fileSystem: fileSystem);
20377
validateLibrariesSpec(fileSystem: fileSystem);
20478
validateCompilerWorker(fileSystem: fileSystem);
@@ -214,26 +88,36 @@ class SdkConfiguration {
21488
}
21589
}
21690

91+
/// Throws [InvalidSdkConfigurationException] if SDK root does not
92+
/// exist on the disk.
93+
void validateDartExecutable(
94+
{FileSystem fileSystem = const LocalFileSystem()}) {
95+
if (!fileSystem.file(dartPath).existsSync()) {
96+
throw InvalidSdkConfigurationException(
97+
'Dart executable $dartPath does not exist');
98+
}
99+
}
100+
217101
void validateSummaries({FileSystem fileSystem = const LocalFileSystem()}) {
218102
validateSoundSummaries(fileSystem: fileSystem);
219103
validateWeakSummaries(fileSystem: fileSystem);
220104
}
221105

222106
void validateWeakSummaries(
223107
{FileSystem fileSystem = const LocalFileSystem()}) {
224-
if (weakSdkSummaryPath == null ||
225-
!fileSystem.file(weakSdkSummaryPath).existsSync()) {
108+
if (weakSummaryPath == null ||
109+
!fileSystem.file(weakSummaryPath).existsSync()) {
226110
throw InvalidSdkConfigurationException(
227-
'Sdk summary $weakSdkSummaryPath does not exist');
111+
'Sdk summary $weakSummaryPath does not exist');
228112
}
229113
}
230114

231115
void validateSoundSummaries(
232116
{FileSystem fileSystem = const LocalFileSystem()}) {
233-
if ((soundSdkSummaryPath == null ||
234-
!fileSystem.file(soundSdkSummaryPath).existsSync())) {
117+
if ((soundSummaryPath == null ||
118+
!fileSystem.file(soundSummaryPath).existsSync())) {
235119
throw InvalidSdkConfigurationException(
236-
'Sdk summary $soundSdkSummaryPath does not exist');
120+
'Sdk summary $soundSummaryPath does not exist');
237121
}
238122
}
239123

0 commit comments

Comments
 (0)