On 04/15/2017 11:44 AM, Alvaro Herrera wrote: > Andrew Dunstan wrote: > >> Alternatively, we could have an initdb TAP test that explicitly removed >> the environment setting so we'd get coverage of select_default_timezone, >> and have the buildfarm set TZ to something if it's not already set. > What about having an initdb option that runs select_default_timezone > only and reports the result, so that it can be used in the buildfarm > script to set TZ in all the regular initdb calls? >
Seems like more work. What I had in mind was the attached plus roughly this in the buildfarm client: $ENV{TZ} ||= 'US/Eastern'; or whatever zone we choose to use. cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
diff --git a/src/bin/initdb/t/001_initdb.pl b/src/bin/initdb/t/001_initdb.pl index 372865d..11d05c4 100644 --- a/src/bin/initdb/t/001_initdb.pl +++ b/src/bin/initdb/t/001_initdb.pl @@ -34,8 +34,16 @@ command_fails( 'role names cannot begin with "pg_"'); mkdir $datadir; -command_ok([ 'initdb', '-N', '-T', 'german', '-X', $xlogdir, $datadir ], - 'successful creation'); +# make sure we run one successful test without a TZ setting so we test +# initdb's time zone setting code +{ + # delete local only works from perl 5.12, so use the older way to do this + local (%ENV) = %ENV; + delete $ENV{TZ}; + + command_ok([ 'initdb', '-N', '-T', 'german', '-X', $xlogdir, $datadir ], + 'successful creation'); +} command_ok([ 'initdb', '-S', $datadir ], 'sync only'); command_fails([ 'initdb', $datadir ], 'existing data directory');
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers