Add regression test
authorCΓ©dric Villemain <cedric@2ndquadrant.fr>
Thu, 1 Dec 2011 11:11:50 +0000 (12:11 +0100)
committerCΓ©dric Villemain <cedric@2ndquadrant.fr>
Thu, 1 Dec 2011 11:11:50 +0000 (12:11 +0100)
those ran by 'make installcheck'.
They are limited but have the benefit to at least check that all functions
can be called from SQL and that all code options are covered.
/!\ no test on results quality ( just 'select true from foo(bar);'

Makefile
expected/pgfincore.ext.out [new file with mode: 0644]
expected/pgfincore.out [new file with mode: 0644]
expected/pgfincore_2.out [new file with mode: 0644]
sql/pgfincore.ext.sql [new file with mode: 0644]
sql/pgfincore.sql [new file with mode: 0644]

index 181e14f509d60094c7927c853522cddd5f61725a..16c8903b55a25805c46451a8dadb9f73a4c39f51 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,9 +4,9 @@ EXTVERSION   = 1.1
 MODULES      = $(EXTENSION)
 DATA         = pgfincore.sql uninstall_pgfincore.sql
 DOCS         = README.rst
+REGRESS      = $(EXTENSION)
 
 PG_CONFIG    = pg_config
-
 PG91         = $(shell $(PG_CONFIG) --version | grep -qE "8\.|9\.0" && echo no || echo yes)
 
 ifeq ($(PG91),yes)
@@ -16,6 +16,7 @@ pgfincore--$(EXTVERSION).sql: pgfincore.sql
        cp $< $@
 
 DATA        = pgfincore--unpackaged--$(EXTVERSION).sql pgfincore--$(EXTVERSION).sql
+REGRESS     = $(EXTENSION).ext
 EXTRA_CLEAN = $(EXTENSION)--$(EXTVERSION).sql
 endif
 
diff --git a/expected/pgfincore.ext.out b/expected/pgfincore.ext.out
new file mode 100644 (file)
index 0000000..8dfe491
--- /dev/null
@@ -0,0 +1,102 @@
+CREATE EXTENSION pgfincore;
+--
+-- test SYSCONF
+--
+select true from pgsysconf();
+ bool 
+------
+ t
+(1 row)
+
+select true from pgsysconf_pretty();
+ bool 
+------
+ t
+(1 row)
+
+--
+-- make a temp table to use below
+--
+CREATE TEMP TABLE test AS SELECT generate_series(1,256) as a;
+--
+-- this is not perfect testing but it is hard to predict what the OS will do
+-- for *sure*
+--
+--
+-- test fadvise_loader
+--
+select true from pgfadvise_loader('test', 0, true, true, B'1010');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_loader('test', 0, true, false, B'1010');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_loader('test', 0, false, true, B'1010');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_loader('test', 0, false, false, B'1010');
+ bool 
+------
+ t
+(1 row)
+
+--
+-- test pgfincore
+--
+select true from pgfincore('test', true);
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfincore('test');
+ bool 
+------
+ t
+(1 row)
+
+--
+-- test DONTNEED, WILLNEED
+--
+select true from pgfadvise_willneed('test');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_dontneed('test');
+ bool 
+------
+ t
+(1 row)
+
+--
+-- test PGFADVISE flags
+--
+select true from pgfadvise_sequential('test');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_random('test');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_normal('test');
+ bool 
+------
+ t
+(1 row)
+
diff --git a/expected/pgfincore.out b/expected/pgfincore.out
new file mode 100644 (file)
index 0000000..5995071
--- /dev/null
@@ -0,0 +1,104 @@
+SET client_min_messages = warning;
+\set ECHO none
+RESET client_min_messages;
+--
+-- test SYSCONF
+--
+select true from pgsysconf();
+ bool 
+------
+ t
+(1 row)
+
+select true from pgsysconf_pretty();
+ bool 
+------
+ t
+(1 row)
+
+--
+-- make a temp table to use below
+--
+CREATE TEMP TABLE test AS SELECT generate_series(1,256) as a;
+--
+-- this is not perfect testing but it is hard to predict what the OS will do
+-- for *sure*
+--
+--
+-- test fadvise_loader
+--
+select true from pgfadvise_loader('test', 0, true, true, B'1010');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_loader('test', 0, true, false, B'1010');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_loader('test', 0, false, true, B'1010');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_loader('test', 0, false, false, B'1010');
+ bool 
+------
+ t
+(1 row)
+
+--
+-- test pgfincore
+--
+select true from pgfincore('test', true);
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfincore('test');
+ bool 
+------
+ t
+(1 row)
+
+--
+-- test DONTNEED, WILLNEED
+--
+select true from pgfadvise_willneed('test');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_dontneed('test');
+ bool 
+------
+ t
+(1 row)
+
+--
+-- test PGFADVISE flags
+--
+select true from pgfadvise_sequential('test');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_random('test');
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfadvise_normal('test');
+ bool 
+------
+ t
+(1 row)
+
diff --git a/expected/pgfincore_2.out b/expected/pgfincore_2.out
new file mode 100644 (file)
index 0000000..0d0a387
--- /dev/null
@@ -0,0 +1,77 @@
+SET client_min_messages = warning;
+\set ECHO none
+RESET client_min_messages;
+--
+-- test SYSCONF
+--
+select true from pgsysconf();
+ bool 
+------
+ t
+(1 row)
+
+select true from pgsysconf_pretty();
+ bool 
+------
+ t
+(1 row)
+
+--
+-- make a temp table to use below
+--
+CREATE TEMP TABLE test AS SELECT generate_series(1,256) as a;
+--
+-- this is not perfect testing but it is hard to predict what the OS will do
+-- for *sure*
+--
+--
+-- test fadvise_loader
+--
+select true from pgfadvise_loader('test', 0, true, true, B'1010');
+ERROR:  POSIX_FADVISE UNSUPPORTED on your platform
+CONTEXT:  SQL function "pgfadvise_loader" statement 1
+select true from pgfadvise_loader('test', 0, true, false, B'1010');
+ERROR:  POSIX_FADVISE UNSUPPORTED on your platform
+CONTEXT:  SQL function "pgfadvise_loader" statement 1
+select true from pgfadvise_loader('test', 0, false, true, B'1010');
+ERROR:  POSIX_FADVISE UNSUPPORTED on your platform
+CONTEXT:  SQL function "pgfadvise_loader" statement 1
+select true from pgfadvise_loader('test', 0, false, false, B'1010');
+ERROR:  POSIX_FADVISE UNSUPPORTED on your platform
+CONTEXT:  SQL function "pgfadvise_loader" statement 1
+--
+-- test pgfincore
+--
+select true from pgfincore('test', true);
+ bool 
+------
+ t
+(1 row)
+
+select true from pgfincore('test');
+ bool 
+------
+ t
+(1 row)
+
+--
+-- test DONTNEED, WILLNEED
+--
+select true from pgfadvise_willneed('test');
+ERROR:  POSIX_FADVISE UNSUPPORTED on your platform
+CONTEXT:  SQL function "pgfadvise_willneed" statement 1
+select true from pgfadvise_dontneed('test');
+ERROR:  POSIX_FADVISE UNSUPPORTED on your platform
+CONTEXT:  SQL function "pgfadvise_dontneed" statement 1
+--
+-- test PGFADVISE flags
+--
+select true from pgfadvise_sequential('test');
+ERROR:  POSIX_FADVISE UNSUPPORTED on your platform
+CONTEXT:  SQL function "pgfadvise_sequential" statement 1
+select true from pgfadvise_random('test');
+ERROR:  POSIX_FADVISE UNSUPPORTED on your platform
+CONTEXT:  SQL function "pgfadvise_random" statement 1
+select true from pgfadvise_normal('test');
+ERROR:  POSIX_FADVISE UNSUPPORTED on your platform
+CONTEXT:  SQL function "pgfadvise_normal" statement 1
diff --git a/sql/pgfincore.ext.sql b/sql/pgfincore.ext.sql
new file mode 100644 (file)
index 0000000..59cba7d
--- /dev/null
@@ -0,0 +1,45 @@
+CREATE EXTENSION pgfincore;
+
+--
+-- test SYSCONF
+--
+select true from pgsysconf();
+select true from pgsysconf_pretty();
+
+--
+-- make a temp table to use below
+--
+CREATE TEMP TABLE test AS SELECT generate_series(1,256) as a;
+
+--
+-- this is not perfect testing but it is hard to predict what the OS will do
+-- for *sure*
+--
+
+--
+-- test fadvise_loader
+--
+select true from pgfadvise_loader('test', 0, true, true, B'1010');
+select true from pgfadvise_loader('test', 0, true, false, B'1010');
+select true from pgfadvise_loader('test', 0, false, true, B'1010');
+select true from pgfadvise_loader('test', 0, false, false, B'1010');
+
+--
+-- test pgfincore
+--
+select true from pgfincore('test', true);
+select true from pgfincore('test');
+
+--
+-- test DONTNEED, WILLNEED
+--
+select true from pgfadvise_willneed('test');
+select true from pgfadvise_dontneed('test');
+
+--
+-- test PGFADVISE flags
+--
+select true from pgfadvise_sequential('test');
+select true from pgfadvise_random('test');
+select true from pgfadvise_normal('test');
+
diff --git a/sql/pgfincore.sql b/sql/pgfincore.sql
new file mode 100644 (file)
index 0000000..28e3d28
--- /dev/null
@@ -0,0 +1,49 @@
+SET client_min_messages = warning;
+\set ECHO none
+\i pgfincore.sql
+\set ECHO all
+RESET client_min_messages;
+
+--
+-- test SYSCONF
+--
+select true from pgsysconf();
+select true from pgsysconf_pretty();
+
+--
+-- make a temp table to use below
+--
+CREATE TEMP TABLE test AS SELECT generate_series(1,256) as a;
+
+--
+-- this is not perfect testing but it is hard to predict what the OS will do
+-- for *sure*
+--
+
+--
+-- test fadvise_loader
+--
+select true from pgfadvise_loader('test', 0, true, true, B'1010');
+select true from pgfadvise_loader('test', 0, true, false, B'1010');
+select true from pgfadvise_loader('test', 0, false, true, B'1010');
+select true from pgfadvise_loader('test', 0, false, false, B'1010');
+
+--
+-- test pgfincore
+--
+select true from pgfincore('test', true);
+select true from pgfincore('test');
+
+--
+-- test DONTNEED, WILLNEED
+--
+select true from pgfadvise_willneed('test');
+select true from pgfadvise_dontneed('test');
+
+--
+-- test PGFADVISE flags
+--
+select true from pgfadvise_sequential('test');
+select true from pgfadvise_random('test');
+select true from pgfadvise_normal('test');
+