Skip to content

Commit

Permalink
Replace CLI tar use with package:tar in test utils. (#8113)
Browse files Browse the repository at this point in the history
  • Loading branch information
isoos authored Oct 7, 2024
1 parent 653816e commit d2af649
Showing 1 changed file with 9 additions and 33 deletions.
42 changes: 9 additions & 33 deletions app/test/package/backend_test_utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ library pub_dartlang_org.backend_test_utils;
import 'dart:async';
import 'dart:io';

import 'package:pub_dev/tool/test_profile/import_source.dart';

import '../shared/test_models.dart';

Future<T> withTempDirectory<T>(Future<T> Function(String temp) func) async {
Expand All @@ -20,37 +22,11 @@ Future<T> withTempDirectory<T>(Future<T> Function(String temp) func) async {
}

Future<List<int>> packageArchiveBytes({required String pubspecContent}) async {
return await withTempDirectory((String tmp) async {
final readme = File('$tmp/README.md');
final changelog = File('$tmp/CHANGELOG.md');
final pubspec = File('$tmp/pubspec.yaml');
final license = File('$tmp/LICENSE');

await readme.writeAsString(foobarReadmeContent);
await changelog.writeAsString(foobarChangelogContent);
await pubspec.writeAsString(pubspecContent);
await license.writeAsString('BSD LICENSE 2.0');

await Directory('$tmp/lib').create();
await File('$tmp/lib/test_library.dart')
.writeAsString('hello() => print("hello");');

final files = [
'README.md',
'CHANGELOG.md',
'LICENSE',
'pubspec.yaml',
'lib/test_library.dart'
];
final args = ['cz', ...files];
final Process p =
await Process.start('tar', args, workingDirectory: '$tmp');
await p.stderr.drain();
final bytes = await p.stdout.fold<List<int>>([], (b, d) => b..addAll(d));
final exitCode = await p.exitCode;
if (exitCode != 0) {
throw Exception('Failed to make tarball of test package.');
}
return bytes;
});
final builder = ArchiveBuilder();
builder.addFile('README.md', foobarReadmeContent);
builder.addFile('CHANGELOG.md', foobarChangelogContent);
builder.addFile('pubspec.yaml', pubspecContent);
builder.addFile('LICENSE', 'BSD LICENSE 2.0');
builder.addFile('lib/test_library.dart', 'hello() => print("hello");');
return builder.toTarGzBytes();
}

0 comments on commit d2af649

Please sign in to comment.