From 18059543e76aeb6b3cf3a5513e69daf222d3558e Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 28 Jan 2019 14:34:15 +0100 Subject: [PATCH] Add tests for pg_stat_ssl system view Reviewed-by: Kyotaro HORIGUCHI Discussion: https://www.postgresql.org/message-id/flat/398754d8-6bb5-c5cf-e7b8-22e5f0983caf@2ndquadrant.com/ --- src/test/ssl/t/001_ssltests.pl | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/test/ssl/t/001_ssltests.pl b/src/test/ssl/t/001_ssltests.pl index 2b875a3c95..74a5da578a 100644 --- a/src/test/ssl/t/001_ssltests.pl +++ b/src/test/ssl/t/001_ssltests.pl @@ -8,7 +8,7 @@ use File::Copy; if ($ENV{with_openssl} eq 'yes') { - plan tests => 65; + plan tests => 71; } else { @@ -309,6 +309,16 @@ test_connect_fails( qr/SSL error/, "does not connect with client-side CRL"); +# pg_stat_ssl +command_like([ + 'psql', '-X', '-A', '-F', ',', '-P', 'null=_null_', + '-d', "$common_connstr sslrootcert=invalid", + '-c', "SELECT * FROM pg_stat_ssl WHERE pid = pg_backend_pid()" + ], + qr{^pid,ssl,version,cipher,bits,compression,clientdn\n + ^\d+,t,TLSv[\d.]+,[\w-]+,\d+,f,$}mx, + 'pg_stat_ssl view without client certificate'); + ### Server-side tests. ### ### Test certificate authorization. @@ -331,6 +341,16 @@ test_connect_ok( "user=ssltestuser sslcert=ssl/client.crt sslkey=ssl/client_tmp.key", "certificate authorization succeeds with correct client cert"); +# pg_stat_ssl +command_like([ + 'psql', '-X', '-A', '-F', ',', '-P', 'null=_null_', + '-d', "$common_connstr user=ssltestuser sslcert=ssl/client.crt sslkey=ssl/client_tmp.key", + '-c', "SELECT * FROM pg_stat_ssl WHERE pid = pg_backend_pid()" + ], + qr{^pid,ssl,version,cipher,bits,compression,clientdn\n + ^\d+,t,TLSv[\d.]+,[\w-]+,\d+,f,/CN=ssltestuser$}mx, + 'pg_stat_ssl with client certificate'); + # client key with wrong permissions test_connect_fails( $common_connstr,