From 9c851bf852a94e3b33e0959e5939c06acdce4702 Mon Sep 17 00:00:00 2001 From: Kenichi Ishigaki Date: Sat, 22 Dec 2018 05:25:19 +0900 Subject: [PATCH] warn if versions in %since/%until does not match the known sqlite version numbers --- util/SQLiteUtil.pm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/util/SQLiteUtil.pm b/util/SQLiteUtil.pm index 43ab8a0..5528d17 100644 --- a/util/SQLiteUtil.pm +++ b/util/SQLiteUtil.pm @@ -217,6 +217,8 @@ my %compat = map {$_ => 1} qw/ flags_for_file_open_operations /; +my %known_versions; + sub extract_constants { my $file = shift; $file ||= "$FindBin::Bin/../sqlite3.h"; @@ -235,10 +237,14 @@ sub extract_constants { } next; } - if ($tag && /^#define SQLITE_(\S+)\s+(?:\d|\(SQLITE)/) { - my $name = $1; + if ($tag && /^#define SQLITE_(\S+)\s+(\d+|\(SQLITE)/) { + my ($name, $value) = ($1, $2); + if ($name eq 'VERSION_NUMBER' and $value =~ /^\d+$/) { + $known_versions{$value} = 1; + } next if $ignore{$name}; if (my $version = $since{$name} || $since{$tag}) { + $known_versions{$version} //= 0; push @{$constants{"${tag}_${version}"} ||= []}, $name; push @{$constants{"_${tag}_${version}"} ||= []}, $name if $compat{$tag}; } else { @@ -369,6 +375,9 @@ sub check_api_history { } %current = %constants; } + if (my @wrong_versions = grep {!$known_versions{$_}} keys %known_versions) { + warn "WRONG VERSIONS: ".join(",", sort @wrong_versions); + } } package SQLiteUtil::Version;