Merge pull request #27405 from rvl/postgresql-xml

postgresql: fix nixos tests and add xml support
This commit is contained in:
Franz Pletz 2017-07-20 20:31:38 +02:00 committed by GitHub
commit 226964861f
2 changed files with 16 additions and 7 deletions

View File

@ -13,8 +13,10 @@ let
INSERT INTO sth (id) VALUES (1); INSERT INTO sth (id) VALUES (1);
INSERT INTO sth (id) VALUES (1); INSERT INTO sth (id) VALUES (1);
INSERT INTO sth (id) VALUES (1); INSERT INTO sth (id) VALUES (1);
CREATE TABLE xmltest ( doc xml );
INSERT INTO xmltest (doc) VALUES ('<test>ok</test>'); -- check if libxml2 enabled
''; '';
make-postgresql-test = postgresql-name: postgresql-package: { make-postgresql-test = postgresql-name: postgresql-package: makeTest {
name = postgresql-name; name = postgresql-name;
meta = with pkgs.stdenv.lib.maintainers; { meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ zagy ]; maintainers = [ zagy ];
@ -27,17 +29,23 @@ let
}; };
testScript = '' testScript = ''
sub check_count {
my ($select, $nlines) = @_;
return 'test $(sudo -u postgres psql postgres -tAc "' . $select . '"|wc -l) -eq ' . $nlines;
}
$machine->start; $machine->start;
$machine->waitForUnit("postgresql"); $machine->waitForUnit("postgresql");
# postgresql should be available just after unit start # postgresql should be available just after unit start
$machine->succeed("cat ${test-sql} | psql postgres"); $machine->succeed("cat ${test-sql} | sudo -u postgres psql");
$machine->shutdown; # make sure that postgresql survive restart (bug #1735) $machine->shutdown; # make sure that postgresql survive restart (bug #1735)
sleep(2); sleep(2);
$machine->start; $machine->start;
$machine->waitForUnit("postgresql"); $machine->waitForUnit("postgresql");
$machine->fail('test $(psql postgres -tAc "SELECT * FROM sth;"|wc -l) -eq 3'); $machine->fail(check_count("SELECT * FROM sth;", 3));
$machine->succeed('test $(psql postgres -tAc "SELECT * FROM sth;"|wc -l) -eq 5'); $machine->succeed(check_count("SELECT * FROM sth;", 5));
$machine->fail('test $(psql postgres -tAc "SELECT * FROM sth;"|wc -l) -eq 4'); $machine->fail(check_count("SELECT * FROM sth;", 4));
$machine->succeed(check_count("SELECT xpath(\'/test/text()\', doc) FROM xmltest;", 1));
$machine->shutdown; $machine->shutdown;
''; '';

View File

@ -1,4 +1,4 @@
{ lib, stdenv, glibc, fetchurl, zlib, readline, libossp_uuid, openssl, makeWrapper }: { lib, stdenv, glibc, fetchurl, zlib, readline, libossp_uuid, openssl, libxml2, makeWrapper }:
let let
@ -15,7 +15,7 @@ let
setOutputFlags = false; # $out retains configureFlags :-/ setOutputFlags = false; # $out retains configureFlags :-/
buildInputs = buildInputs =
[ zlib readline openssl makeWrapper ] [ zlib readline openssl libxml2 makeWrapper ]
++ lib.optionals (!stdenv.isDarwin) [ libossp_uuid ]; ++ lib.optionals (!stdenv.isDarwin) [ libossp_uuid ];
enableParallelBuilding = true; enableParallelBuilding = true;
@ -24,6 +24,7 @@ let
configureFlags = [ configureFlags = [
"--with-openssl" "--with-openssl"
"--with-libxml"
"--sysconfdir=/etc" "--sysconfdir=/etc"
"--libdir=$(lib)/lib" "--libdir=$(lib)/lib"
] ]