mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Make driver method names consistent with public APIs
Ensure that all drivers implementing public APIs use a naming convention for their implementation that matches the public API name. eg for the public API virDomainCreate make sure QEMU uses qemuDomainCreate and not qemuDomainStart Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
81
src/check-driverimpls.pl
Executable file
81
src/check-driverimpls.pl
Executable file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# Copyright (C) 2013 Red Hat, Inc.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library. If not, see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $intable = 0;
|
||||
my $table;
|
||||
my $mainprefix;
|
||||
|
||||
my $status = 0;
|
||||
while (<>) {
|
||||
if ($intable) {
|
||||
if (/}/) {
|
||||
$intable = 0;
|
||||
$table = undef;
|
||||
$mainprefix = undef;
|
||||
} elsif (/\.(\w+)\s*=\s*(\w+),?/) {
|
||||
my $api = $1;
|
||||
my $impl = $2;
|
||||
|
||||
next if $api eq "no";
|
||||
next if $api eq "name";
|
||||
|
||||
my $suffix = $impl;
|
||||
my $prefix = $impl;
|
||||
$prefix =~ s/^([a-z]+(?:Unified)?)(.*?)$/$1/;
|
||||
|
||||
# External impls
|
||||
next if $prefix eq "node";
|
||||
next if $prefix eq "vir";
|
||||
|
||||
if (defined $mainprefix) {
|
||||
if ($mainprefix ne $prefix) {
|
||||
print "$ARGV:$. Bad prefix '$prefix' for API '$api', expecting '$mainprefix'\n";
|
||||
$status = 1;
|
||||
}
|
||||
} else {
|
||||
$mainprefix = $prefix;
|
||||
}
|
||||
|
||||
if ($api !~ /^$mainprefix/) {
|
||||
$suffix =~ s/^[a-z]+(?:Unified)?//;
|
||||
$suffix =~ s/^([A-Z]+)/lc $1/e;
|
||||
}
|
||||
|
||||
if ($api ne $suffix) {
|
||||
my $want = $api;
|
||||
$want =~ s/^nwf/NWF/;
|
||||
if ($api !~ /^$mainprefix/) {
|
||||
$want =~ s/^([a-z])/uc $1/e;
|
||||
$want = $mainprefix . $want;
|
||||
}
|
||||
print "$ARGV:$. Bad impl name '$impl' for API '$api', expecting '$want'\n";
|
||||
$status = 1;
|
||||
}
|
||||
}
|
||||
} elsif (/^(?:static\s+)?(vir(?:\w+)?Driver)\s+/) {
|
||||
next if $1 eq "virNWFilterCallbackDriver";
|
||||
$intable = 1;
|
||||
$table = $1;
|
||||
}
|
||||
}
|
||||
|
||||
exit $status;
|
||||
Reference in New Issue
Block a user