Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tools/clang_tidy/lib/src/options.dart
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ class Options {
}
final String? shardIdString = argResults['shard-id'] as String?;
final int? shardId = shardIdString == null ? null : int.parse(shardIdString);
if (shardId != null && (shardId >= shardCommands.length || shardId < 0)) {
if (shardId != null && (shardId > shardCommands.length || shardId < 0)) {
return Options._error('Invalid shard-id value: $shardId.', errSink: errSink);
}
return Options._fromArgResults(
Expand Down
39 changes: 39 additions & 0 deletions tools/clang_tidy/test/clang_tidy_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import 'package:clang_tidy/clang_tidy.dart';
import 'package:clang_tidy/src/command.dart';
import 'package:clang_tidy/src/options.dart';
import 'package:litetest/litetest.dart';
import 'package:path/path.dart' as path;
import 'package:process_runner/process_runner.dart';

// Recorded locally from clang-tidy.
Expand Down Expand Up @@ -115,6 +116,44 @@ Future<int> main(List<String> args) async {
));
});

test('shard-id valid', () async {
final StringBuffer outBuffer = StringBuffer();
final StringBuffer errBuffer = StringBuffer();
final String variant = path.basename(io.File(buildCommands).parent.path);
final ClangTidy clangTidy = ClangTidy.fromCommandLine(
<String>[
'--shard-variants=$variant',
'--shard-id=1',
],
outSink: outBuffer,
errSink: errBuffer,
);

final int result = await clangTidy.run();

expect(clangTidy.options.help, isFalse);
expect(result, equals(0));
});

test('shard-id invalid', () async {
final StringBuffer outBuffer = StringBuffer();
final StringBuffer errBuffer = StringBuffer();
final String variant = path.basename(io.File(buildCommands).parent.path);
final ClangTidy clangTidy = ClangTidy.fromCommandLine(
<String>[
'--shard-variants=$variant',
'--shard-id=2',
],
outSink: outBuffer,
errSink: errBuffer,
);

final int result = await clangTidy.run();

expect(clangTidy.options.help, isFalse);
expect(result, equals(1));
});

test('Error when --compile-commands path does not exist', () async {
final StringBuffer outBuffer = StringBuffer();
final StringBuffer errBuffer = StringBuffer();
Expand Down