Skip to content

Commit 011c73a

Browse files
authored
Bootstrap cleanup. (#4151)
1 parent 0cc596b commit 011c73a

File tree

5 files changed

+20
-72
lines changed

5 files changed

+20
-72
lines changed

build_runner/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
- Bug fix: with `build_runner serve`, special handling of paths containing
44
`/packages/` was hiding actual folders called `packages`. Serve the actual
55
folders first, before trying the package lookup.
6+
- Remove `build_script_generate.dart`.
67

78
## 2.7.0
89

build_runner/lib/build_script_generate.dart

Lines changed: 0 additions & 7 deletions
This file was deleted.

build_runner/lib/src/build_script_generate/bootstrap.dart

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,38 +18,29 @@ import 'build_script_generate.dart';
1818

1919
/// Generates the build script, precompiles it if needed, and runs it.
2020
///
21-
/// The [handleUncaughtError] function will be invoked when the build script
22-
/// terminates with an uncaught error.
23-
///
2421
/// Will retry once on [IsolateSpawnException]s to handle SDK updates.
2522
///
2623
/// Returns the exit code from running the build script.
2724
///
2825
/// If an exit code of 75 is returned, this function should be re-ran.
26+
///
27+
/// Pass [script] to override the default build script for testing.
2928
Future<int> generateAndRun(
3029
List<String> args, {
3130
List<String>? experiments,
3231
Logger? logger,
33-
Future<String> Function() generateBuildScript = generateBuildScript,
34-
void Function(Object error, StackTrace stackTrace) handleUncaughtError =
35-
_defaultHandleUncaughtError,
32+
String? script,
3633
}) {
3734
return buildLog.runWithLoggerDisplay(
3835
logger,
39-
() => _generateAndRun(
40-
args,
41-
experiments,
42-
generateBuildScript,
43-
handleUncaughtError,
44-
),
36+
() => _generateAndRun(args, experiments, script),
4537
);
4638
}
4739

4840
Future<int> _generateAndRun(
4941
List<String> args,
5042
List<String>? experiments,
51-
Future<String> Function() generateBuildScript,
52-
void Function(Object error, StackTrace stackTrace) handleUncaughtError,
43+
String? script,
5344
) async {
5445
experiments ??= [];
5546
ReceivePort? exitPort;
@@ -72,7 +63,7 @@ Future<int> _generateAndRun(
7263
if (buildScript.existsSync()) {
7364
oldContents = buildScript.readAsStringSync();
7465
}
75-
var newContents = await generateBuildScript();
66+
var newContents = script ?? await generateBuildScript();
7667
// Only trigger a build script update if necessary.
7768
if (newContents != oldContents) {
7869
buildScript
@@ -101,7 +92,7 @@ Future<int> _generateAndRun(
10192
final error = e[0] ?? TypeError();
10293
final trace = Trace.parse(e[1] as String? ?? '').terse;
10394

104-
handleUncaughtError(error, trace);
95+
_handleUncaughtError(error, trace);
10596
if (buildProcessState.isolateExitCode == null ||
10697
buildProcessState.isolateExitCode == 0) {
10798
buildProcessState.isolateExitCode = 1;
@@ -273,7 +264,7 @@ Future<bool> _checkImportantPackageDepsAndExperiments(
273264
return true;
274265
}
275266

276-
void _defaultHandleUncaughtError(Object error, StackTrace stackTrace) {
267+
void _handleUncaughtError(Object error, StackTrace stackTrace) {
277268
stderr
278269
..writeln('\n\nYou have hit a bug in build_runner')
279270
..writeln(

build_runner/test/build_script_generate/bootstrap_test.dart

Lines changed: 8 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ library;
66

77
import 'dart:io';
88

9-
import 'package:build_runner/build_script_generate.dart';
9+
import 'package:build_runner/src/build_script_generate/bootstrap.dart';
1010
import 'package:build_runner/src/build_script_generate/build_process_state.dart';
1111
import 'package:build_runner/src/build_script_generate/build_script_generate.dart';
1212
import 'package:build_runner_core/build_runner_core.dart';
@@ -28,8 +28,7 @@ void main() {
2828
test('writes dill', () async {
2929
await generateAndRun(
3030
[],
31-
generateBuildScript:
32-
() async => '''
31+
script: '''
3332
import 'dart:isolate';
3433
import 'package:build_runner/src/build_script_generate/build_process_state.dart';
3534
@@ -55,18 +54,17 @@ void main(_, [SendPort? sendPort]) async {
5554
''';
5655

5756
buildProcessState.isolateExitCode = 6;
58-
await generateAndRun([], generateBuildScript: () async => script);
57+
await generateAndRun([], script: script);
5958
expect(buildProcessState.isolateExitCode, 7);
60-
await generateAndRun([], generateBuildScript: () async => script);
59+
await generateAndRun([], script: script);
6160
expect(buildProcessState.isolateExitCode, 8);
6261
});
6362

6463
test('rewrites dill if script changed', () async {
6564
expect(
6665
await generateAndRun(
6766
[],
68-
generateBuildScript:
69-
() async => '''
67+
script: '''
7068
import 'dart:isolate';
7169
import 'package:build_runner/src/build_script_generate/build_process_state.dart';
7270
@@ -84,8 +82,7 @@ void main(_, [SendPort? sendPort]) async {
8482
expect(
8583
await generateAndRun(
8684
[],
87-
generateBuildScript:
88-
() async => '''
85+
script: '''
8986
import 'dart:isolate';
9087
import 'package:build_runner/src/build_script_generate/build_process_state.dart';
9188
@@ -109,8 +106,7 @@ void main(_, [SendPort? sendPort]) async {
109106
expect(
110107
await generateAndRun(
111108
[],
112-
generateBuildScript:
113-
() async => '''
109+
script: '''
114110
import 'dart:isolate';
115111
import 'package:build_runner/src/build_script_generate/build_process_state.dart';
116112
@@ -132,8 +128,7 @@ void main(_, [SendPort? sendPort]) async {
132128
expect(
133129
await generateAndRun(
134130
[],
135-
generateBuildScript:
136-
() async => '''
131+
script: '''
137132
import 'dart:isolate';
138133
import 'package:build_runner/src/build_script_generate/build_process_state.dart';
139134
@@ -148,35 +143,5 @@ void main(_, [SendPort? sendPort]) async {
148143
);
149144
},
150145
);
151-
152-
test('invokes custom error function', () async {
153-
Object? error;
154-
StackTrace? stackTrace;
155-
156-
await expectLater(
157-
generateAndRun(
158-
[],
159-
generateBuildScript: () async {
160-
return '''
161-
import 'dart:isolate';
162-
import 'package:build_runner/src/build_script_generate/build_process_state.dart';
163-
164-
void main(_, [SendPort? sendPort]) async {
165-
await buildProcessState.receive(sendPort);
166-
throw 'expected error';
167-
}
168-
''';
169-
},
170-
handleUncaughtError: (err, trace) {
171-
error = err;
172-
stackTrace = trace;
173-
},
174-
),
175-
completion(1),
176-
);
177-
178-
expect(error, 'expected error');
179-
expect(stackTrace, isNotNull);
180-
});
181146
});
182147
}

build_runner/test/build_script_generate/experiments_test.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@TestOn('vm')
77
library;
88

9-
import 'package:build_runner/build_script_generate.dart';
9+
import 'package:build_runner/src/build_script_generate/bootstrap.dart';
1010
import 'package:logging/logging.dart';
1111
import 'package:test/test.dart';
1212

@@ -17,8 +17,7 @@ void main() {
1717
final exitCode = await generateAndRun(
1818
[],
1919
experiments: ['records'],
20-
generateBuildScript: () async {
21-
return '''
20+
script: '''
2221
// @dart=3.0
2322
import 'dart:io';
2423
import 'dart:isolate';
@@ -30,8 +29,7 @@ void main() {
3029
buildProcessState.isolateExitCode = (x.\$2);
3130
buildProcessState.send(sendPort);
3231
}
33-
''';
34-
},
32+
''',
3533
logger: logger,
3634
);
3735
expect(exitCode, 2);

0 commit comments

Comments
 (0)