test1177: verify that all the CURL_VERSION_ bits are documented

This commit is contained in:
Daniel Stenberg 2020-03-28 00:04:51 +01:00
parent 93fafb93db
commit a97d826f6d
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 92 additions and 1 deletions

View File

@ -136,7 +136,7 @@ test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \
test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 \
test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 \
\
test1170 test1171 test1172 test1173 test1174 test1175 test1176 \
test1170 test1171 test1172 test1173 test1174 test1175 test1176 test1177 \
\
test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \

25
tests/data/test1177 Normal file
View File

@ -0,0 +1,25 @@
<testcase>
<info>
<keywords>
source analysis
CURL_VERSION
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<name>
Verify that CURL_VERSION_* in headers and docs are in sync
</name>
<command type="perl">
%SRCDIR/version-scan.pl %SRCDIR/../docs/libcurl/curl_version_info.3 ../include/curl/curl.h
</command>
</client>
</testcase>

66
tests/version-scan.pl Executable file
View File

@ -0,0 +1,66 @@
#!/usr/bin/env perl
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) 2010 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.haxx.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
###########################################################################
#
# Verify that curl_version_info.3 documents all the CURL_VERSION_ bits
# from the header.
#
use strict;
use warnings;
my $manpage=$ARGV[0];
my $header=$ARGV[1];
my %manversion;
my %headerversion;
my $error;
open(M, "<$manpage");
while(<M>) {
if($_ =~ /^.ip (CURL_VERSION_[A-Z0-9_]+)/i) {
$manversion{$1}++;
}
}
close(M);
open(H, "<$header");
while(<H>) {
if($_ =~ /^\#define (CURL_VERSION_[A-Z0-9_]+)/i) {
$headerversion{$1}++;
}
}
close(H);
for my $h (keys %headerversion) {
if(!$manversion{$h}) {
print STDERR "$manpage: missing $h\n";
$error++;
}
}
for my $h (keys %manversion) {
if(!$headerversion{$h}) {
print STDERR "$manpage: $h is not in the header!\n";
$error++;
}
}
exit $error;