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
This commit is contained in:
Tom Lane 2022-07-30 11:17:07 -04:00
parent 212bdc0cbc
commit d10fad96c6
2 changed files with 12 additions and 12 deletions

View File

@ -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

View File

@ -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;