comparison lib/Test/Nginx.pm @ 1860:58951cf933e1

Tests: added has_feature() test for SSL libraries. This makes it possible to further simplify various SSL tests. It also avoids direct testing of the $t->{_configure_args} internal field, and implements proper comparison of version numbers.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 18 May 2023 18:07:06 +0300
parents cdcd75657e52
children 0e1865aa9b33
comparison
equal deleted inserted replaced
1859:5f46af4707e7 1860:58951cf933e1
264 return IO::Socket::SSL->can('get_session_reused'); 264 return IO::Socket::SSL->can('get_session_reused');
265 } 265 }
266 return 0; 266 return 0;
267 } 267 }
268 268
269 if ($feature =~ /^(openssl|libressl):([0-9.]+)/) {
270 my $library = $1;
271 my $need = $2;
272
273 $self->{_configure_args} = `$NGINX -V 2>&1`
274 if !defined $self->{_configure_args};
275
276 return 0 unless
277 $self->{_configure_args} =~ /with $library ([0-9.]+)/i;
278
279 my @v = split(/\./, $1);
280 my ($n, $v);
281
282 for $n (split(/\./, $need)) {
283 $v = shift @v || 0;
284 return 0 if $n > $v;
285 return 1 if $v > $n;
286 }
287
288 return 1;
289 }
290
269 return 0; 291 return 0;
270 } 292 }
271 293
272 sub has_version($) { 294 sub has_version($) {
273 my ($self, $need) = @_; 295 my ($self, $need) = @_;