blob: 2ddf65b8d6a2b0dfc2482bcc4b64e52a1e4bc7b1 [file] [log] [blame] [edit]
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
@TestOn('vm')
library;
import 'dart:io';
import 'dart:typed_data';
import 'package:pub/src/git.dart';
import 'package:test/test.dart';
import 'descriptor.dart';
import 'test_pub.dart';
void main() {
test('splitZeroTerminated works', () {
expect(splitZeroTerminated(Uint8List.fromList([])), <Uint8List>[]);
expect(splitZeroTerminated(Uint8List.fromList([0])), <Uint8List>[
Uint8List.fromList([]),
]);
expect(splitZeroTerminated(Uint8List.fromList([1, 0, 1])), <Uint8List>[
Uint8List.fromList([1]),
]);
expect(
splitZeroTerminated(Uint8List.fromList([2, 1, 0, 1, 0, 0])),
<Uint8List>[
Uint8List.fromList([2, 1]),
Uint8List.fromList([1]),
Uint8List.fromList([]),
],
);
expect(
splitZeroTerminated(
Uint8List.fromList([2, 1, 0, 1, 0, 2, 3, 0]),
skipPrefix: 1,
),
<Uint8List>[
Uint8List.fromList([1]),
Uint8List.fromList([]),
Uint8List.fromList([3]),
],
);
expect(
() => splitZeroTerminated(
Uint8List.fromList([2, 1, 0, 1, 0, 0]),
skipPrefix: 1,
),
throwsA(isA<FormatException>()),
);
});
test('safe.bareRepository is enabled by default in test environment', () {
// Regression protection for https://github.com/dart-lang/pub/issues/4770.
final r = Process.runSync('git', [
'config',
'--get',
'safe.bareRepository',
], environment: getPubTestEnvironment());
expect(r.stdout, contains('explicit'));
Process.runSync(
'git',
['init', '--bare'],
workingDirectory: sandbox,
environment: getPubTestEnvironment(),
);
final r1 = Process.runSync(
'git',
['log'],
workingDirectory: sandbox,
environment: getPubTestEnvironment(),
);
expect(r1.exitCode, isNot(0));
expect(r1.stderr, contains('fatal: cannot use bare repository '));
});
}