aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main.rs4
-rw-r--r--t/103-fails-with-more-than-one-ref-argument.t48
2 files changed, 51 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index efe4477..dd2da1c 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -46,8 +46,10 @@ fn main() {
process::exit(exitcode::USAGE);
},
}
+ } else if matches.free.len() > 1 {
+ eprintln(&"too many ref arguments");
+ process::exit(exitcode::USAGE);
} else {
- // TODO: error if more than one ref given
let refname = &matches.free[0];
let object = match repo.revparse_single(&refname) {
diff --git a/t/103-fails-with-more-than-one-ref-argument.t b/t/103-fails-with-more-than-one-ref-argument.t
new file mode 100644
index 0000000..b376137
--- /dev/null
+++ b/t/103-fails-with-more-than-one-ref-argument.t
@@ -0,0 +1,48 @@
+#!/usr/bin/env perl -w
+
+use strict;
+
+use File::Copy;
+use Test::More;
+
+use Bin qw($BIN);
+
+my $file = 'git-sugdiff.rs';
+
+chdir 't-git-repo' or die $!;
+
+system('git checkout -b fork-point');
+ok !$?;
+
+open(my $input, '<', $file) or die $!;
+open(my $output, '>', "$file.out") or die $!;
+
+while (<$input>) {
+ if ($. == 34) {
+ print $output " // TODO: 100-shows-todo-comments-since-fork-point\n";
+ }
+
+ print $output $_;
+}
+
+close $input;
+close $output;
+
+move("$file.out", $file) or die $!;
+
+system('git add git-sugdiff.rs');
+ok !$?;
+
+system('git commit -m "New TODO"');
+ok !$?;
+
+system("$BIN master fork-point");
+is $? & 64, 0;
+
+
+# Teardown
+system('git checkout master');
+system('git branch -D fork-point');
+
+
+done_testing;