From: Junio C Hamano Date: Wed, 23 May 2018 05:38:15 +0000 (+0900) Subject: Merge branch 'cc/perf-aggregate-unknown-option' X-Git-Tag: v2.18.0-rc0~58 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/d0f7b22b5bf0847a6e0fe039feb598819dffab4c?hp=89753dc2b72d838c0bae22ef708201b6473a1244 Merge branch 'cc/perf-aggregate-unknown-option' Perf-test helper updates. * cc/perf-aggregate-unknown-option: perf/aggregate: use Getopt::Long for option parsing --- diff --git a/t/perf/aggregate.perl b/t/perf/aggregate.perl index 48637ef64b..bc865160e7 100755 --- a/t/perf/aggregate.perl +++ b/t/perf/aggregate.perl @@ -4,6 +4,7 @@ use strict; use warnings; use JSON; +use Getopt::Long; use Git; sub get_times { @@ -36,46 +37,34 @@ sub format_times { return $out; } +sub usage { + print <...] [--] [...] > + + Options: + --codespeed * Format output for Codespeed + --reponame * Send given reponame to codespeed + --sort-by * Sort output (only "regression" criteria is supported) + --subsection * Use results from given subsection + +EOT + exit(1); +} + my (@dirs, %dirnames, %dirabbrevs, %prefixes, @tests, $codespeed, $sortby, $subsection, $reponame); + +Getopt::Long::Configure qw/ require_order /; + +my $rc = GetOptions("codespeed" => \$codespeed, + "reponame=s" => \$reponame, + "sort-by=s" => \$sortby, + "subsection=s" => \$subsection); +usage() unless $rc; + while (scalar @ARGV) { my $arg = $ARGV[0]; my $dir; - if ($arg eq "--codespeed") { - $codespeed = 1; - shift @ARGV; - next; - } - if ($arg =~ /--sort-by(?:=(.*))?/) { - shift @ARGV; - if (defined $1) { - $sortby = $1; - } else { - $sortby = shift @ARGV; - if (! defined $sortby) { - die "'--sort-by' requires an argument"; - } - } - next; - } - if ($arg eq "--subsection") { - shift @ARGV; - $subsection = $ARGV[0]; - shift @ARGV; - if (! $subsection) { - die "empty subsection"; - } - next; - } - if ($arg eq "--reponame") { - shift @ARGV; - $reponame = $ARGV[0]; - shift @ARGV; - if (! $reponame) { - die "empty reponame"; - } - next; - } last if -f $arg or $arg eq "--"; if (! -d $arg) { my $rev = Git::command_oneline(qw(rev-parse --verify), $arg); @@ -225,7 +214,8 @@ sub print_sorted_results { my ($sortby) = @_; if ($sortby ne "regression") { - die "only 'regression' is supported as '--sort-by' argument"; + print "Only 'regression' is supported as '--sort-by' argument\n"; + usage(); } my @evolutions;