File: do_tap.sql

package info (click to toggle)
pgtap 1.3.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,792 kB
  • sloc: sql: 25,795; sh: 790; makefile: 287; perl: 175
file content (68 lines) | stat: -rw-r--r-- 1,771 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
\unset ECHO
\i test/setup.sql
SET client_min_messages = notice;

SELECT plan(29);
--SELECT * FROM no_plan();

CREATE OR REPLACE FUNCTION public.testthis() RETURNS SETOF TEXT AS $$
    SELECT pass('simple pass') AS foo
    UNION SELECT pass('another simple pass')
    ORDER BY foo ASC;
$$ LANGUAGE SQL;

CREATE OR REPLACE FUNCTION public.testplpgsql() RETURNS SETOF TEXT AS $$
BEGIN
    RETURN NEXT pass( 'plpgsql simple' );
    RETURN NEXT pass( 'plpgsql simple 2' );
    RETURN;
END;
$$ LANGUAGE plpgsql;

CREATE OR REPLACE FUNCTION public."test ident"() RETURNS SETOF TEXT AS $$
BEGIN
    RETURN NEXT pass( 'ident' );
    RETURN NEXT pass( 'ident 2' );
    RETURN;
END;
$$ LANGUAGE plpgsql;

SELECT is(
    findfuncs('public'::name, '^test', 'this'),
    ARRAY[ 'public."test ident"', 'public.testplpgsql'],
    'findfuncs(public, ^test, this) should work'
);

SELECT is(
    findfuncs('public'::name, '^test'),
    ARRAY[ 'public."test ident"', 'public.testplpgsql', 'public.testthis' ],
    'findfuncs(public, ^test) should work'
);

SELECT is(
    findfuncs('^test', 'this'),
    ARRAY[ 'public."test ident"', 'public.testplpgsql'],
    'findfuncs(^test, this) should work'
);

SELECT is(
    findfuncs('^test'),
    ARRAY[ 'public."test ident"', 'public.testplpgsql', 'public.testthis' ],
    'findfuncs(^test) should work'
);

SELECT is(
    findfuncs('foo'),
    CASE WHEN pg_version_num() < 80300 THEN NULL ELSE '{}'::text[] END,
    'findfuncs(unknown) should find no tests'
);

SELECT * FROM do_tap('public', '^test');
SELECT * FROM do_tap('public'::name);
SELECT * FROM do_tap('^test');
SELECT * FROM do_tap();

/****************************************************************************/
-- Finish the tests and clean up.
SELECT * FROM finish();
ROLLBACK;