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 по дате отправления:

Предыдущее
От: Boszormenyi Zoltan
Дата:
Сообщение: Re: Review of "SQLDA support for ECPG"
Следующее
От: "Kevin Grittner"
Дата:
Сообщение: Re: commented out para in docs