summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/test/preproc
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2006-09-08 13:32:29 +0000
committerMichael Meskes <meskes@postgresql.org>2006-09-08 13:32:29 +0000
commit460f46816a589ed6916e86b84a56a6b97eccabb1 (patch)
tree1aaea76bc720d63255dcc91a7eb8b44f533146c2 /src/interfaces/ecpg/test/preproc
parent52a013bea86906bc8296781eb16deee7e281a87e (diff)
downloadpostgresql-460f46816a589ed6916e86b84a56a6b97eccabb1.tar.gz
Replaced complex tests with small ones.
Diffstat (limited to 'src/interfaces/ecpg/test/preproc')
-rw-r--r--src/interfaces/ecpg/test/preproc/Makefile6
-rw-r--r--src/interfaces/ecpg/test/preproc/comment.pgc25
-rw-r--r--src/interfaces/ecpg/test/preproc/type.pgc2
-rw-r--r--src/interfaces/ecpg/test/preproc/whenever.pgc65
4 files changed, 96 insertions, 2 deletions
diff --git a/src/interfaces/ecpg/test/preproc/Makefile b/src/interfaces/ecpg/test/preproc/Makefile
index 005bc33598..937f89ca52 100644
--- a/src/interfaces/ecpg/test/preproc/Makefile
+++ b/src/interfaces/ecpg/test/preproc/Makefile
@@ -4,10 +4,12 @@ include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/$(subdir)/../Makefile.regress
-TESTS = define define.c \
+TESTS = comment comment.c \
+ define define.c \
init init.c \
type type.c \
- variable variable.c
+ variable variable.c \
+ whenever whenever.c
all: $(TESTS)
diff --git a/src/interfaces/ecpg/test/preproc/comment.pgc b/src/interfaces/ecpg/test/preproc/comment.pgc
new file mode 100644
index 0000000000..5ef3b695ee
--- /dev/null
+++ b/src/interfaces/ecpg/test/preproc/comment.pgc
@@ -0,0 +1,25 @@
+#include <stdlib.h>
+
+exec sql include ../regression;
+
+/* just a test comment */ int i;
+/* just a test comment int j*/;
+
+/****************************************************************************/
+/* Test comment */
+/*--------------------------------------------------------------------------*/
+
+// we also understand this style
+int k;
+
+int main(void)
+{
+ ECPGdebug(1, stderr);
+
+ exec sql --this is a comment too
+ connect to REGRESSDB1;
+
+ exec sql disconnect;
+ exit (0);
+}
+
diff --git a/src/interfaces/ecpg/test/preproc/type.pgc b/src/interfaces/ecpg/test/preproc/type.pgc
index 33ebcb77bb..461401c8ee 100644
--- a/src/interfaces/ecpg/test/preproc/type.pgc
+++ b/src/interfaces/ecpg/test/preproc/type.pgc
@@ -74,5 +74,7 @@ main (void)
printf ("id=%ld name='%s' accs=%d str='%s' ptr='%s' vc='%10.10s'\n", empl.idnum, empl.name, empl.accs, str, ptr, vc.text);
EXEC SQL disconnect;
+
+ free(ptr);
exit (0);
}
diff --git a/src/interfaces/ecpg/test/preproc/whenever.pgc b/src/interfaces/ecpg/test/preproc/whenever.pgc
new file mode 100644
index 0000000000..ad56327804
--- /dev/null
+++ b/src/interfaces/ecpg/test/preproc/whenever.pgc
@@ -0,0 +1,65 @@
+#include <stdlib.h>
+
+exec sql include ../regression;
+
+exec sql whenever sqlerror sqlprint;
+
+static void print(char *msg)
+{
+ fprintf(stderr, "Error in statement '%s':\n", msg);
+ sqlprint();
+}
+
+static void print2(void)
+{
+ fprintf(stderr, "Found another error\n");
+ sqlprint();
+}
+
+static void warn(void)
+{
+ fprintf(stderr, "Warning: At least one column was truncated\n");
+}
+
+int main(void)
+{
+ exec sql int i;
+ exec sql char c[6];
+
+ ECPGdebug(1, stderr);
+
+ exec sql connect to REGRESSDB1;
+ exec sql create table test(i int, c char(10));
+ exec sql insert into test values(1, 'abcdefghij');
+
+ exec sql whenever sqlwarning do warn();
+ exec sql select * into :i, :c from test;
+ exec sql rollback;
+
+ exec sql select * into :i from nonexistant;
+ exec sql rollback;
+
+ exec sql whenever sqlerror do print("select");
+ exec sql select * into :i from nonexistant;
+ exec sql rollback;
+
+ exec sql whenever sqlerror call print2();
+ exec sql select * into :i from nonexistant;
+ exec sql rollback;
+
+ exec sql whenever sqlerror continue;
+ exec sql select * into :i from nonexistant;
+ exec sql rollback;
+
+ exec sql whenever sqlerror goto error;
+ exec sql select * into :i from nonexistant;
+ printf("Should not be reachable\n");
+
+ error:
+ exec sql rollback;
+
+ exec sql whenever sqlerror stop;
+ exec sql select * into :i from nonexistant;
+ exec sql rollback;
+ exit (0);
+}