Re: Inappropriate failure conditions in foreign_data regression test
От | Martin Pihlak |
---|---|
Тема | Re: Inappropriate failure conditions in foreign_data regression test |
Дата | |
Msg-id | 4AC9F3C4.4060400@gmail.com обсуждение исходный текст |
Ответ на | Inappropriate failure conditions in foreign_data regression test (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Inappropriate failure conditions in foreign_data
regression test
(Alvaro Herrera <alvherre@commandprompt.com>)
|
Список | pgsql-hackers |
> By chance I noticed that the foreign_data regression test fails if run > in an installation where "bob" is a live user. It appears to be > assuming that half a dozen other fairly common names don't belong to > real users, either. Could we make this a little less fragile? Maybe Attached is a patch that attempts to fix that -- user mappings are now created for "regress_test_missing_role" instead of "bob" or "baz". > call them no_such_user_N. Or for that matter do we really need quite > so many tests of the same error condition? > The code paths leading to those error conditions are different (or at least they should be). The initial aim was to get as much test coverage as possible, but I guess the tests could be simplified if this is turning out to be a maintenance burden regards, Martin *** a/src/test/regress/expected/foreign_data.out --- b/src/test/regress/expected/foreign_data.out *************** *** 524,531 **** List of user mappings (0 rows) -- CREATE USER MAPPING ! CREATE USER MAPPING FOR baz SERVER s1; -- ERROR ! ERROR: role "baz" does not exist CREATE USER MAPPING FOR current_user SERVER s1; -- ERROR ERROR: server "s1" does not exist CREATE USER MAPPING FOR current_user SERVER s4; --- 524,531 ---- (0 rows) -- CREATE USER MAPPING ! CREATE USER MAPPING FOR regress_test_missing_role SERVER s1; -- ERROR ! ERROR: role "regress_test_missing_role" does not exist CREATE USER MAPPING FOR current_user SERVER s1; -- ERROR ERROR: server "s1" does not exist CREATE USER MAPPING FOR current_user SERVER s4; *************** *** 565,572 **** RESET ROLE; (7 rows) -- ALTER USER MAPPING ! ALTER USER MAPPING FOR bob SERVER s4 OPTIONS (gotcha 'true'); -- ERROR ! ERROR: role "bob" does not exist ALTER USER MAPPING FOR user SERVER ss4 OPTIONS (gotcha 'true'); -- ERROR ERROR: server "ss4" does not exist ALTER USER MAPPING FOR public SERVER s5 OPTIONS (gotcha 'true'); -- ERROR --- 565,572 ---- (7 rows) -- ALTER USER MAPPING ! ALTER USER MAPPING FOR regress_test_missing_role SERVER s4 OPTIONS (gotcha 'true'); -- ERROR ! ERROR: role "regress_test_missing_role" does not exist ALTER USER MAPPING FOR user SERVER ss4 OPTIONS (gotcha 'true'); -- ERROR ERROR: server "ss4" does not exist ALTER USER MAPPING FOR public SERVER s5 OPTIONS (gotcha 'true'); -- ERROR *************** *** 595,608 **** RESET ROLE; (7 rows) -- DROP USER MAPPING ! DROP USER MAPPING FOR bob SERVER s4; -- ERROR ! ERROR: role "bob" does not exist DROP USER MAPPING FOR user SERVER ss4; ERROR: server "ss4" does not exist DROP USER MAPPING FOR public SERVER s7; -- ERROR ERROR: user mapping "public" does not exist for the server ! DROP USER MAPPING IF EXISTS FOR bob SERVER s4; ! NOTICE: role "bob" does not exist, skipping DROP USER MAPPING IF EXISTS FOR user SERVER ss4; NOTICE: server does not exist, skipping DROP USER MAPPING IF EXISTS FOR public SERVER s7; --- 595,608 ---- (7 rows) -- DROP USER MAPPING ! DROP USER MAPPING FOR regress_test_missing_role SERVER s4; -- ERROR ! ERROR: role "regress_test_missing_role" does not exist DROP USER MAPPING FOR user SERVER ss4; ERROR: server "ss4" does not exist DROP USER MAPPING FOR public SERVER s7; -- ERROR ERROR: user mapping "public" does not exist for the server ! DROP USER MAPPING IF EXISTS FOR regress_test_missing_role SERVER s4; ! NOTICE: role "regress_test_missing_role" does not exist, skipping DROP USER MAPPING IF EXISTS FOR user SERVER ss4; NOTICE: server does not exist, skipping DROP USER MAPPING IF EXISTS FOR public SERVER s7; *** a/src/test/regress/sql/foreign_data.sql --- b/src/test/regress/sql/foreign_data.sql *************** *** 204,210 **** DROP SERVER s3 CASCADE; \deu -- CREATE USER MAPPING ! CREATE USER MAPPING FOR baz SERVER s1; -- ERROR CREATE USER MAPPING FOR current_user SERVER s1; -- ERROR CREATE USER MAPPING FOR current_user SERVER s4; CREATE USER MAPPING FOR user SERVER s4; -- ERROR duplicate --- 204,210 ---- \deu -- CREATE USER MAPPING ! CREATE USER MAPPING FOR regress_test_missing_role SERVER s1; -- ERROR CREATE USER MAPPING FOR current_user SERVER s1; -- ERROR CREATE USER MAPPING FOR current_user SERVER s4; CREATE USER MAPPING FOR user SERVER s4; -- ERROR duplicate *************** *** 228,234 **** RESET ROLE; \deu -- ALTER USER MAPPING ! ALTER USER MAPPING FOR bob SERVER s4 OPTIONS (gotcha 'true'); -- ERROR ALTER USER MAPPING FOR user SERVER ss4 OPTIONS (gotcha 'true'); -- ERROR ALTER USER MAPPING FOR public SERVER s5 OPTIONS (gotcha 'true'); -- ERROR ALTER USER MAPPING FOR current_user SERVER s8 OPTIONS (username 'test'); -- ERROR --- 228,234 ---- \deu -- ALTER USER MAPPING ! ALTER USER MAPPING FOR regress_test_missing_role SERVER s4 OPTIONS (gotcha 'true'); -- ERROR ALTER USER MAPPING FOR user SERVER ss4 OPTIONS (gotcha 'true'); -- ERROR ALTER USER MAPPING FOR public SERVER s5 OPTIONS (gotcha 'true'); -- ERROR ALTER USER MAPPING FOR current_user SERVER s8 OPTIONS (username 'test'); -- ERROR *************** *** 241,250 **** RESET ROLE; \deu+ -- DROP USER MAPPING ! DROP USER MAPPING FOR bob SERVER s4; -- ERROR DROP USER MAPPING FOR user SERVER ss4; DROP USER MAPPING FOR public SERVER s7; -- ERROR ! DROP USER MAPPING IF EXISTS FOR bob SERVER s4; DROP USER MAPPING IF EXISTS FOR user SERVER ss4; DROP USER MAPPING IF EXISTS FOR public SERVER s7; CREATE USER MAPPING FOR public SERVER s8; --- 241,250 ---- \deu+ -- DROP USER MAPPING ! DROP USER MAPPING FOR regress_test_missing_role SERVER s4; -- ERROR DROP USER MAPPING FOR user SERVER ss4; DROP USER MAPPING FOR public SERVER s7; -- ERROR ! DROP USER MAPPING IF EXISTS FOR regress_test_missing_role SERVER s4; DROP USER MAPPING IF EXISTS FOR user SERVER ss4; DROP USER MAPPING IF EXISTS FOR public SERVER s7; CREATE USER MAPPING FOR public SERVER s8;
В списке pgsql-hackers по дате отправления: