mirror of
https://github.com/postgres/postgres.git
synced 2025-11-18 02:02:55 +03:00
Improve range checks of options for pg_test_fsync and pg_test_timing
Both tools never had safeguard checks for the options provided, and it was possible to make pg_test_fsync run an infinite amount of time or pass down buggy values to pg_test_timing. These behaviors have existed for a long time, with no actual complaints, so no backpatch is done. Basic TAP tests are introduced for both tools. Author: Michael Paquier Reviewed-by: Peter Eisentraut Discussion: https://postgr.es/m/20200806062759.GE16470@paquier.xyz
This commit is contained in:
25
src/bin/pg_test_fsync/t/001_basic.pl
Normal file
25
src/bin/pg_test_fsync/t/001_basic.pl
Normal file
@@ -0,0 +1,25 @@
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Config;
|
||||
use TestLib;
|
||||
use Test::More tests => 12;
|
||||
|
||||
#########################################
|
||||
# Basic checks
|
||||
|
||||
program_help_ok('pg_test_fsync');
|
||||
program_version_ok('pg_test_fsync');
|
||||
program_options_handling_ok('pg_test_fsync');
|
||||
|
||||
#########################################
|
||||
# Test invalid option combinations
|
||||
|
||||
command_fails_like(
|
||||
[ 'pg_test_fsync', '--secs-per-test', 'a' ],
|
||||
qr/\Qpg_test_fsync: error: invalid argument for option --secs-per-test\E/,
|
||||
'pg_test_fsync: invalid argument for option --secs-per-test');
|
||||
command_fails_like(
|
||||
[ 'pg_test_fsync', '--secs-per-test', '0' ],
|
||||
qr/\Qpg_test_fsync: error: --secs-per-test must be in range 1..4294967295\E/,
|
||||
'pg_test_fsync: --secs-per-test must be in range');
|
||||
Reference in New Issue
Block a user