Adjust new pg_read_file() test cases for more portability.

It's allowed for an installation to remove postgresql.auto.conf,
so don't rely on that being present.  Instead probe whether we can
read postmaster.pid.  (If you've removed that, you broke the data
directory's multiple-postmaster interlock, not to mention pg_ctl.)
Per gripe from Michael Paquier.

Discussion: https://postgr.es/m/YuSZTsoBMObyY+vT@paquier.xyz
pull/96/head
Tom Lane 3 years ago
parent 212bdc0cbc
commit d10fad96c6
  1. 14
      src/test/regress/expected/misc_functions.out
  2. 10
      src/test/regress/sql/misc_functions.sql

@ -373,16 +373,16 @@ select count(*) >= 0 as ok from pg_ls_archive_statusdir();
(1 row)
-- pg_read_file()
select length(pg_read_file('postgresql.auto.conf')) > 30;
select length(pg_read_file('postmaster.pid')) > 20;
?column?
----------
t
(1 row)
select length(pg_read_file('postgresql.auto.conf', 1, 30));
select length(pg_read_file('postmaster.pid', 1, 20));
length
--------
30
20
(1 row)
-- Test missing_ok
@ -400,16 +400,16 @@ ERROR: requested length cannot be negative
select pg_read_file('does not exist', 0, -1, true); -- error
ERROR: requested length cannot be negative
-- pg_read_binary_file()
select length(pg_read_binary_file('postgresql.auto.conf')) > 30;
select length(pg_read_binary_file('postmaster.pid')) > 20;
?column?
----------
t
(1 row)
select length(pg_read_binary_file('postgresql.auto.conf', 1, 30));
select length(pg_read_binary_file('postmaster.pid', 1, 20));
length
--------
30
20
(1 row)
-- Test missing_ok
@ -427,7 +427,7 @@ ERROR: requested length cannot be negative
select pg_read_binary_file('does not exist', 0, -1, true); -- error
ERROR: requested length cannot be negative
-- pg_stat_file()
select size > 30, isdir from pg_stat_file('postgresql.auto.conf');
select size > 20, isdir from pg_stat_file('postmaster.pid');
?column? | isdir
----------+-------
t | f

@ -124,8 +124,8 @@ from (select pg_ls_waldir() w) ss where length((w).name) = 24 limit 1;
select count(*) >= 0 as ok from pg_ls_archive_statusdir();
-- pg_read_file()
select length(pg_read_file('postgresql.auto.conf')) > 30;
select length(pg_read_file('postgresql.auto.conf', 1, 30));
select length(pg_read_file('postmaster.pid')) > 20;
select length(pg_read_file('postmaster.pid', 1, 20));
-- Test missing_ok
select pg_read_file('does not exist'); -- error
select pg_read_file('does not exist', true) IS NULL; -- ok
@ -134,8 +134,8 @@ select pg_read_file('does not exist', 0, -1); -- error
select pg_read_file('does not exist', 0, -1, true); -- error
-- pg_read_binary_file()
select length(pg_read_binary_file('postgresql.auto.conf')) > 30;
select length(pg_read_binary_file('postgresql.auto.conf', 1, 30));
select length(pg_read_binary_file('postmaster.pid')) > 20;
select length(pg_read_binary_file('postmaster.pid', 1, 20));
-- Test missing_ok
select pg_read_binary_file('does not exist'); -- error
select pg_read_binary_file('does not exist', true) IS NULL; -- ok
@ -144,7 +144,7 @@ select pg_read_binary_file('does not exist', 0, -1); -- error
select pg_read_binary_file('does not exist', 0, -1, true); -- error
-- pg_stat_file()
select size > 30, isdir from pg_stat_file('postgresql.auto.conf');
select size > 20, isdir from pg_stat_file('postmaster.pid');
-- pg_ls_dir()
select * from (select pg_ls_dir('.') a) a where a = 'base' limit 1;

Loading…
Cancel
Save