Server IP : 85.214.239.14 / Your IP : 3.138.67.56 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/self/root/proc/2/cwd/usr/share/postgresql-common/t/ |
Upload File : |
# Check start.conf handling. use strict; use lib 't'; use TestLib; use PgCommon; use Test::More tests => 73; my $systemd = -d '/run/systemd/system'; # Do test with oldest version my $v = $MAJORS[0]; # create cluster is ((system "pg_createcluster $v main >/dev/null"), 0, "pg_createcluster $v main"); # Check that we start with 'auto' note "start.conf auto"; is ((get_cluster_start_conf $v, 'main'), 'auto', 'get_cluster_start_conf returns auto'); is_program_out 'nobody', "grep '^[^\\s#]' /etc/postgresql/$v/main/start.conf", 0, "auto\n", 'start.conf contains auto'; SKIP: { skip 'not running under systemd', 2 unless ($systemd); ok_dir '/run/systemd/generator/postgresql.service.wants', ["postgresql\@$v-main.service"], "systemd generator links cluster"; is ((readlink "/run/systemd/generator/postgresql.service.wants/postgresql\@$v-main.service"), "/lib/systemd/system/postgresql@.service", "systemd generator links correct service file"); } # init script should handle auto cluster like_program_out 0, "/etc/init.d/postgresql start $v", 0, qr/Start.*($v|systemctl)/; like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/online/, 'cluster is online'; like_program_out 0, "/etc/init.d/postgresql stop $v", 0, qr/Stop.*($v|systemctl)/; sleep 3 if ($systemd); # FIXME: systemctl stop postgresql is not yet synchronous (#759725) like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/down/, 'cluster is down'; # change to manual, verify start.conf contents note "start.conf manual"; set_cluster_start_conf $v, 'main', 'manual'; is ((get_cluster_start_conf $v, 'main'), 'manual', 'get_cluster_start_conf returns manual'); is_program_out 'nobody', "grep '^[^\\s#]' /etc/postgresql/$v/main/start.conf", 0, "manual\n", 'start.conf contains manual'; SKIP: { skip 'not running under systemd', 1 unless ($systemd); system "systemctl daemon-reload"; ok_dir '/run/systemd/generator/postgresql.service.wants', [], "systemd generator doesn't link cluster"; } # init script should not handle manual cluster ... like_program_out 0, "/etc/init.d/postgresql start $v", 0, qr/Start.*($v|systemctl)/; like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/down/, 'cluster is down'; # pg_ctlcluster should handle manual cluster is_program_out 'postgres', "pg_ctlcluster $v main start", 0, ''; like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/online/, 'cluster is online'; is_program_out 'postgres', "pg_ctlcluster $v main stop", 0, ''; like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/down/, 'cluster is down'; # change to disabled, verify start.conf contents note "start.conf disabled"; set_cluster_start_conf $v, 'main', 'disabled'; is ((get_cluster_start_conf $v, 'main'), 'disabled', 'get_cluster_start_conf returns disabled'); SKIP: { skip 'not running under systemd', 1 unless ($systemd); system "systemctl daemon-reload"; ok_dir '/run/systemd/generator/postgresql.service.wants', [], "systemd generator doesn't link cluster"; } # init script should not handle disabled cluster like_program_out 0, "/etc/init.d/postgresql start $v", 0, qr/Start.*($v|systemctl)/; like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/down/, 'cluster is down'; # pg_ctlcluster should not start disabled cluster is_program_out 'postgres', "pg_ctlcluster $v main start", 1, "Error: Cluster is disabled\n"; like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/down/, 'cluster is down'; # change back to manual, start cluster set_cluster_start_conf $v, 'main', 'manual'; is_program_out 'postgres', "pg_ctlcluster $v main start", 0, ''; like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/online/, 'cluster is online'; # however, we want to stop disabled clusters set_cluster_start_conf $v, 'main', 'disabled'; is_program_out 'postgres', "pg_ctlcluster $v main stop", 0, ''; like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/down/, 'cluster is down'; # set back to manual set_cluster_start_conf $v, 'main', 'manual'; is_program_out 'postgres', "pg_ctlcluster $v main start", 0, ''; like_program_out 'postgres', 'pg_lsclusters -h', 0, qr/online/, 'cluster is online'; # upgrade cluster note "test upgrade"; if ($#MAJORS == 0) { pass 'only one major version installed, skipping upgrade test'; pass '...'; } else { like_program_out 0, "pg_upgradecluster -v $MAJORS[-1] $v main", 0, qr/Success. Please check/; } # check start.conf of old and upgraded cluster is ((get_cluster_start_conf $v, 'main'), 'manual', 'get_cluster_start_conf for old cluster returns manual'); is ((get_cluster_start_conf $MAJORS[-1], 'main'), 'manual', 'get_cluster_start_conf for new cluster returns manual'); # clean up if ($#MAJORS == 0) { pass '...'; } else { is ((system "pg_dropcluster $v main"), 0, 'dropping old cluster'); } is ((system "pg_dropcluster $MAJORS[-1] main --stop"), 0, 'dropping upgraded cluster'); is_program_out 'postgres', 'pg_lsclusters -h', 0, '', 'no clusters any more'; # create cluster with --start-conf option is_program_out 0, "pg_createcluster $v main --start-conf foo", 1, "Error: Invalid --start-conf value: foo\n", 'pg_createcluster checks --start-conf validity'; is ((system "pg_createcluster $v main --start-conf manual >/dev/null"), 0, 'pg_createcluster checks --start-conf manual'); is ((get_cluster_start_conf $v, 'main'), 'manual', 'get_cluster_start_conf returns manual'); is ((system "pg_dropcluster $v main"), 0, 'dropping cluster'); check_clean; # vim: filetype=perl