Skip to content

Commit 2dcd43b

Browse files
committed
Add new tests for procedures_are()
1 parent 2d876f6 commit 2dcd43b

File tree

2 files changed

+149
-3
lines changed

2 files changed

+149
-3
lines changed

test/expected/aretap.out

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
\unset ECHO
2-
1..459
2+
1..488
33
ok 1 - tablespaces_are(tablespaces, desc) should pass
44
ok 2 - tablespaces_are(tablespaces, desc) should have the proper description
55
ok 3 - tablespaces_are(tablespaces, desc) should have the proper diagnostics
@@ -459,3 +459,32 @@ ok 456 - foreign_tables_are(schema, tables) extra and missing should have the pr
459459
ok 457 - foreign_tables_are(tables) extra and missing should fail
460460
ok 458 - foreign_tables_are(tables) extra and missing should have the proper description
461461
ok 459 - foreign_tables_are(tables) extra and missing should have the proper diagnostics
462+
ok 460 - procedures_are(schema, procedures, desc) should pass
463+
ok 461 - procedures_are(schema, procedures, desc) should have the proper description
464+
ok 462 - procedures_are(schema, procedures, desc) should have the proper diagnostics
465+
ok 463 - procedures_are(schema, procedures) should pass
466+
ok 464 - procedures_are(schema, procedures) should have the proper description
467+
ok 465 - procedures_are(schema, procedures, desc) + missing should fail
468+
ok 466 - procedures_are(schema, procedures, desc) + missing should have the proper description
469+
ok 467 - procedures_are(schema, procedures, desc) + missing should have the proper diagnostics
470+
ok 468 - procedures_are(schema, procedures, desc) + extra should fail
471+
ok 469 - procedures_are(schema, procedures, desc) + extra should have the proper description
472+
ok 470 - procedures_are(schema, procedures, desc) + extra should have the proper diagnostics
473+
ok 471 - procedures_are(schema, procedures, desc) + extra & missing should fail
474+
ok 472 - procedures_are(schema, procedures, desc) + extra & missing should have the proper description
475+
ok 473 - procedures_are(schema, procedures, desc) + extra & missing should have the proper diagnostics
476+
ok 474 - procedures_are(procedures, desc) should pass
477+
ok 475 - procedures_are(procedures, desc) should have the proper description
478+
ok 476 - procedures_are(procedures, desc) should have the proper diagnostics
479+
ok 477 - procedures_are(procedures) should pass
480+
ok 478 - procedures_are(procedures) should have the proper description
481+
ok 479 - procedures_are(procedures) should have the proper diagnostics
482+
ok 480 - procedures_are(procedures, desc) + missing should fail
483+
ok 481 - procedures_are(procedures, desc) + missing should have the proper description
484+
ok 482 - procedures_are(procedures, desc) + missing should have the proper diagnostics
485+
ok 483 - procedures_are(procedures, desc) + extra should fail
486+
ok 484 - procedures_are(procedures, desc) + extra should have the proper description
487+
ok 485 - procedures_are(procedures, desc) + extra should have the proper diagnostics
488+
ok 486 - procedures_are(procedures, desc) + extra & missing should fail
489+
ok 487 - procedures_are(procedures, desc) + extra & missing should have the proper description
490+
ok 488 - procedures_are(procedures, desc) + extra & missing should have the proper diagnostics

test/sql/aretap.sql

Lines changed: 119 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
\i test/setup.sql
33
-- \i sql/pgtap.sql
44

5-
SELECT plan(459);
5+
SELECT plan(488);
66
--SELECT * FROM no_plan();
77

88
-- This will be rolled back. :-)
@@ -83,15 +83,27 @@ CREATE TYPE someschema."myType" AS (
8383
foo INT
8484
);
8585

86-
-- Create a procedure.
86+
-- Create some procedures.
8787
DO $$
8888
BEGIN
8989
IF pg_version_num() >= 110000 THEN
9090
EXECUTE 'CREATE PROCEDURE someschema.someproc(int) LANGUAGE SQL AS ''''';
91+
EXECUTE 'CREATE PROCEDURE someschema.someotherproc(int) LANGUAGE SQL AS ''''';
92+
EXECUTE 'CREATE PROCEDURE public.yiprok(int) LANGUAGE SQL AS ''''';
93+
EXECUTE 'CREATE PROCEDURE public.yaprok(int) LANGUAGE SQL AS ''''';
9194
ELSE
9295
CREATE FUNCTION someschema.someproc(int)
9396
RETURNS void AS ''
9497
LANGUAGE SQL;
98+
CREATE FUNCTION someschema.someotherproc(int)
99+
RETURNS void AS ''
100+
LANGUAGE SQL;
101+
CREATE FUNCTION public.yiprok(int)
102+
RETURNS void AS ''
103+
LANGUAGE SQL;
104+
CREATE FUNCTION public.yaprok(int)
105+
RETURNS void AS ''
106+
LANGUAGE SQL;
95107
END IF;
96108
END;
97109
$$;
@@ -1949,6 +1961,111 @@ $$ LANGUAGE PLPGSQL;
19491961

19501962
SELECT * FROM test_foreign_tables_are();
19511963

1964+
/****************************************************************************/
1965+
-- Test procedures_are().
1966+
1967+
SELECT * FROM check_test(
1968+
procedures_are( 'someschema', ARRAY['someotherproc', 'someproc'], 'whatever' ),
1969+
true,
1970+
'procedures_are(schema, procedures, desc)',
1971+
'whatever',
1972+
''
1973+
);
1974+
1975+
SELECT * FROM check_test(
1976+
procedures_are( 'someschema', ARRAY['someotherproc', 'someproc'] ),
1977+
true,
1978+
'procedures_are(schema, procedures)',
1979+
'Schema someschema should have the correct procedures'
1980+
''
1981+
);
1982+
1983+
SELECT * FROM check_test(
1984+
procedures_are( 'someschema', ARRAY['someotherproc', 'someproc', 'yop'], 'whatever' ),
1985+
false,
1986+
'procedures_are(schema, procedures, desc) + missing',
1987+
'whatever',
1988+
' Missing procedures:
1989+
yop'
1990+
);
1991+
1992+
SELECT * FROM check_test(
1993+
procedures_are( 'someschema', ARRAY['someproc'], 'whatever' ),
1994+
false,
1995+
'procedures_are(schema, procedures, desc) + extra',
1996+
'whatever',
1997+
' Extra procedures:
1998+
someotherproc'
1999+
);
2000+
2001+
SELECT * FROM check_test(
2002+
procedures_are( 'someschema', ARRAY['yop', 'someproc'], 'whatever' ),
2003+
false,
2004+
'procedures_are(schema, procedures, desc) + extra & missing',
2005+
'whatever',
2006+
' Extra procedures:
2007+
someotherproc
2008+
Missing procedures:
2009+
yop'
2010+
);
2011+
2012+
CREATE FUNCTION ___myprok(ex text) RETURNS NAME[] AS $$
2013+
SELECT ARRAY(
2014+
SELECT p.proname
2015+
FROM pg_catalog.pg_namespace n
2016+
JOIN pg_catalog.pg_proc p ON n.oid = p.pronamespace
2017+
WHERE pg_catalog.pg_function_is_visible(p.oid)
2018+
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
2019+
AND p.proname <> $1
2020+
AND p.prokind = 'p'
2021+
);
2022+
$$ LANGUAGE SQL;
2023+
2024+
SELECT * FROM check_test(
2025+
procedures_are( ___myprok(''), 'whatever' ),
2026+
true,
2027+
'procedures_are(procedures, desc)',
2028+
'whatever',
2029+
''
2030+
);
2031+
2032+
SELECT * FROM check_test(
2033+
procedures_are( ___myprok('') ),
2034+
true,
2035+
'procedures_are(procedures)',
2036+
'Search path ' || pg_catalog.current_setting('search_path') || ' should have the correct procedures',
2037+
''
2038+
);
2039+
2040+
SELECT * FROM check_test(
2041+
procedures_are( array_append(___myprok(''), '__booyah__'), 'whatever' ),
2042+
false,
2043+
'procedures_are(procedures, desc) + missing',
2044+
'whatever',
2045+
' Missing procedures:
2046+
__booyah__'
2047+
);
2048+
2049+
SELECT * FROM check_test(
2050+
procedures_are( ___myprok('yiprok'), 'whatever' ),
2051+
false,
2052+
'procedures_are(procedures, desc) + extra',
2053+
'whatever',
2054+
' Extra procedures:
2055+
yiprok'
2056+
);
2057+
2058+
SELECT * FROM check_test(
2059+
procedures_are( array_append(___myprok('yiprok'), '__booyah__'), 'whatever' ),
2060+
false,
2061+
'procedures_are(procedures, desc) + extra & missing',
2062+
'whatever',
2063+
' Extra procedures:
2064+
yiprok
2065+
Missing procedures:
2066+
__booyah__'
2067+
);
2068+
19522069
/****************************************************************************/
19532070

19542071
-- Finish the tests and clean up.

0 commit comments

Comments
 (0)