On Wed, Feb 20, 2013 at 06:34:33AM -0700, Eric Blake wrote:
Automating a sorting check is the only way to ensure we don't
regress. Suggested by Dan Berrange.
* src/check-symsorting.pl (check_sorting): Add a parameter,
validate that groups are in order, and that files exist.
* src/Makefile.am (check-symsorting): Adjust caller.
* src/libvirt_private.syms: Fix typo.
* src/libvirt_linux.syms: Fix file name.
* src/libvirt_vmx.syms: Likewise.
* src/libvirt_xenxs.syms: Likewise.
* src/libvirt_sasl.syms: Likewise.
* src/libvirt_libssh2.syms: Likewise.
* src/libvirt_esx.syms: Mention file name.
* src/libvirt_openvz.syms: Likewise.
---
While I can manage in perl, I probably don't have the best usage
patterns; suggestions for improving this patch are quite welcome.
diff --git a/src/check-symsorting.pl b/src/check-symsorting.pl
index 9c62246..cbcb737 100755
--- a/src/check-symsorting.pl
+++ b/src/check-symsorting.pl
@@ -3,22 +3,27 @@
use strict;
use warnings;
-die "syntax: $0 SYMFILE..." unless int(@ARGV) >= 1;
+die "syntax: $0 SRCDIR SYMFILE..." unless int(@ARGV) >= 2;
my $ret = 0;
+my $srcdir = shift;
+my $lastgroup = undef;
foreach my $symfile (@ARGV) {
open SYMFILE, $symfile or die "cannot read $symfile: $!";
my $line;
+ my $groupfile;
my @group;
while (<SYMFILE>) {
chomp;
- next if /^#/;
- if (/^\s*$/) {
+ if (/^#/) {
This can match plain comments, or comments with a filename
+ $_ =~ s/^# //;
+ $groupfile = $_;
So I'd split this into two:
if (/^#\s*((\w+\/)*(\w+\.h$))\s*$) {?
$groupfile = $1;
} elif (/^#\s*$/) {
# Ignore comments
...
+ } elsif (/^\s*$/) {
ACK either with or without the change
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|