Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c9970d5

Browse files
author
Michael Meskes
committed
Started to cleanup complex tests.
Added some interval checks to regression suite.
1 parent 276b3bb commit c9970d5

25 files changed

+830
-349
lines changed

src/interfaces/ecpg/test/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# $PostgreSQL: pgsql/src/interfaces/ecpg/test/Makefile,v 1.60 2006/08/29 12:33:45 meskes Exp $
1+
# $PostgreSQL: pgsql/src/interfaces/ecpg/test/Makefile,v 1.61 2006/09/05 12:11:01 meskes Exp $
22

33
subdir = src/interfaces/ecpg/test
44
top_builddir = ../../../..
@@ -27,7 +27,7 @@ all install installdirs uninstall dep depend distprep:
2727
$(MAKE) -C connect $@
2828
$(MAKE) -C sql $@
2929
$(MAKE) -C pgtypeslib $@
30-
$(MAKE) -C errors $@
30+
$(MAKE) -C preproc $@
3131
$(MAKE) -C compat_informix $@
3232
$(MAKE) -C complex $@
3333
$(MAKE) -C thread $@
@@ -37,7 +37,7 @@ clean distclean maintainer-clean:
3737
$(MAKE) -C connect extraclean
3838
$(MAKE) -C sql $@
3939
$(MAKE) -C pgtypeslib $@
40-
$(MAKE) -C errors $@
40+
$(MAKE) -C preproc $@
4141
$(MAKE) -C compat_informix $@
4242
$(MAKE) -C complex $@
4343
$(MAKE) -C thread $@

src/interfaces/ecpg/test/complex/Makefile

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,7 @@ include $(top_srcdir)/$(subdir)/../Makefile.regress
66

77
TESTS = test1 test1.c \
88
test2 test2.c \
9-
test3 test3.c \
10-
test4 test4.c \
11-
test5 test5.c
9+
test3 test3.c
1210

1311
all: $(TESTS)
1412

15-
# test4 needs the -c option for the "EXEC SQL TYPE" construct
16-
test4.c: test4.pgc ../regression.h
17-
$(ECPG) -c -o $@ -I$(srcdir) $<

src/interfaces/ecpg/test/expected/complex-test4.stderr

Lines changed: 0 additions & 62 deletions
This file was deleted.

src/interfaces/ecpg/test/expected/complex-test5.stderr

Lines changed: 0 additions & 56 deletions
This file was deleted.

src/interfaces/ecpg/test/expected/pgtypeslib-dt_test2.c

Lines changed: 103 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <stdio.h>
1111
#include <string.h>
1212
#include <stdlib.h>
13+
#include <limits.h>
1314
#include <pgtypes_date.h>
1415
#include <pgtypes_timestamp.h>
1516

@@ -21,28 +22,72 @@
2122

2223

2324

24-
#line 7 "dt_test2.pgc"
25+
#line 8 "dt_test2.pgc"
2526

2627

28+
char *dates[] = { "19990108foobar",
29+
"19990108 foobar",
30+
"1999-01-08 foobar",
31+
"January 8, 1999",
32+
"1999-01-08",
33+
"1/8/1999",
34+
"1/18/1999",
35+
"01/02/03",
36+
"1999-Jan-08",
37+
"Jan-08-1999",
38+
"08-Jan-1999",
39+
"99-Jan-08",
40+
"08-Jan-99",
41+
"08-Jan-06",
42+
"Jan-08-99",
43+
"19990108",
44+
"990108",
45+
"1999.008",
46+
"J2451187",
47+
"January 8, 99 BC",
48+
NULL };
49+
50+
char *times[] = { "0:04",
51+
"1:59 PDT",
52+
"13:24:40 -8:00",
53+
"13:24:40.495+3",
54+
NULL };
55+
56+
char *intervals[] = { "1 minute",
57+
"1 12:59:10",
58+
"2 day 12 hour 59 minute 10 second",
59+
"1 days 12 hrs 59 mins 10 secs",
60+
"1 days 1 hours 1 minutes 1 seconds",
61+
"1 year 59 mins",
62+
"1 year 59 mins foobar",
63+
NULL };
64+
2765
int
2866
main(void)
2967
{
3068
/* exec sql begin declare section */
3169

70+
3271

3372

3473

35-
#line 13 "dt_test2.pgc"
74+
#line 51 "dt_test2.pgc"
3675
date date1 ;
3776

38-
#line 14 "dt_test2.pgc"
39-
timestamp ts1 ;
77+
#line 52 "dt_test2.pgc"
78+
timestamp ts1 , ts2 ;
4079

41-
#line 15 "dt_test2.pgc"
80+
#line 53 "dt_test2.pgc"
4281
char * text ;
82+
83+
#line 54 "dt_test2.pgc"
84+
interval * i1 ;
4385
/* exec sql end declare section */
44-
#line 16 "dt_test2.pgc"
86+
#line 55 "dt_test2.pgc"
87+
4588

89+
int i, j;
90+
char *endptr;
4691

4792
ECPGdebug(1, stderr);
4893

@@ -57,6 +102,58 @@ main(void)
57102
printf("Date of timestamp: %s\n", text);
58103
free(text);
59104

105+
for (i = 0; dates[i]; i++)
106+
{
107+
bool err = false;
108+
date1 = PGTYPESdate_from_asc(dates[i], &endptr);
109+
if (date1 == INT_MIN) {
110+
err = true;
111+
}
112+
text = PGTYPESdate_to_asc(date1);
113+
printf("Date[%d]: %s (%c - %c)\n",
114+
i, err ? "-" : text,
115+
endptr ? 'N' : 'Y',
116+
err ? 'T' : 'F');
117+
free(text);
118+
if (!err)
119+
{
120+
for (j = 0; times[j]; j++)
121+
{
122+
int length = strlen(dates[i])
123+
+ 1
124+
+ strlen(times[j])
125+
+ 1;
126+
char* t = malloc(length);
127+
sprintf(t, "%s %s", dates[i], times[j]);
128+
ts1 = PGTYPEStimestamp_from_asc(t, NULL);
129+
text = PGTYPEStimestamp_to_asc(ts1);
130+
printf("TS[%d,%d]: %s\n",
131+
i, j, errno ? "-" : text);
132+
free(text);
133+
}
134+
}
135+
}
136+
137+
ts1 = PGTYPEStimestamp_from_asc("2004-04-04 23:23:23", NULL);
138+
139+
for (i = 0; intervals[i]; i++)
140+
{
141+
i1 = PGTYPESinterval_from_asc(intervals[i], &endptr);
142+
if (*endptr)
143+
printf("endptr set to %s\n", endptr);
144+
if (!i1)
145+
{
146+
printf("Error parsing interval %d\n", i);
147+
continue;
148+
}
149+
j = PGTYPEStimestamp_add_interval(&ts1, i1, &ts2);
150+
if (j < 0)
151+
continue;
152+
text = PGTYPESinterval_to_asc(i1);
153+
printf("interval[%d]: %s\n", i, text ? text : "-");
154+
free(text);
155+
}
156+
60157
return (0);
61158
}
62159

0 commit comments

Comments
 (0)