From a97d826f6de35372563ca47087bd53ce837fe21e Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 28 Mar 2020 00:04:51 +0100 Subject: [PATCH] test1177: verify that all the CURL_VERSION_ bits are documented --- tests/data/Makefile.inc | 2 +- tests/data/test1177 | 25 ++++++++++++++++ tests/version-scan.pl | 66 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 tests/data/test1177 create mode 100755 tests/version-scan.pl diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index cfcfd9366..0fd29780a 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -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 \ diff --git a/tests/data/test1177 b/tests/data/test1177 new file mode 100644 index 000000000..75a1ab350 --- /dev/null +++ b/tests/data/test1177 @@ -0,0 +1,25 @@ + + + +source analysis +CURL_VERSION + + + +# +# Client-side + + +none + + + +Verify that CURL_VERSION_* in headers and docs are in sync + + + +%SRCDIR/version-scan.pl %SRCDIR/../docs/libcurl/curl_version_info.3 ../include/curl/curl.h + + + + diff --git a/tests/version-scan.pl b/tests/version-scan.pl new file mode 100755 index 000000000..788ba0fa3 --- /dev/null +++ b/tests/version-scan.pl @@ -0,0 +1,66 @@ +#!/usr/bin/env perl +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# Copyright (C) 2010 - 2020, Daniel Stenberg, , 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() { + if($_ =~ /^.ip (CURL_VERSION_[A-Z0-9_]+)/i) { + $manversion{$1}++; + } +} +close(M); + +open(H, "<$header"); +while() { + 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;