Skip to content

Commit 5d69212

Browse files
committed
icalrecur_test: Restructure test cases and remove redundant tests.
1 parent 98af783 commit 5d69212

8 files changed

+156
-420
lines changed

src/test/CMakeLists.txt

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,10 @@ testme(builtin_timezones "${builtin_timezones_SRCS}")
181181
########### next target ###############
182182
if(NOT CYGWIN AND NOT USE_32BIT_TIME_T)
183183
set(icalrecurtest_SRCS icalrecur_test.c)
184-
configure_file(icalrecur_test.out icalrecur_test.out COPYONLY)
185-
configure_file(icalrecur_withicu_test.out icalrecur_withicu_test.out COPYONLY)
186-
configure_file(icalrecur_withouticu_test.out icalrecur_withouticu_test.out COPYONLY)
187-
configure_file(icalrecur_withicu_dangi_test.out icalrecur_withicu_dangi_test.out COPYONLY)
184+
configure_file(icalrecur_test.txt icalrecur_test.txt COPYONLY)
185+
configure_file(icalrecur_test_rscale.txt icalrecur_test_rscale.txt COPYONLY)
186+
configure_file(icalrecur_test_rscale_withicu.txt icalrecur_test_rscale_withicu.txt COPYONLY)
187+
configure_file(icalrecur_test_rscale_withicu_dangi.txt icalrecur_test_rscale_withicu_dangi.txt COPYONLY)
188188
add_executable(icalrecurtest ${icalrecurtest_SRCS})
189189
target_link_libraries(icalrecurtest ical icalss icalvcal)
190190
if(WITH_CXX_BINDINGS)
@@ -193,27 +193,43 @@ if(NOT CYGWIN AND NOT USE_32BIT_TIME_T)
193193
endif()
194194
set(test_cmd "${PROJECT_BINARY_DIR}/src/test/icalrecurtest${CMAKE_EXECUTABLE_SUFFIX}")
195195

196-
#test rscale capable rrules
197-
if(HAVE_ICU_DANGI)
198-
set(reference_data "icalrecur_withicu_dangi_test.out")
199-
elseif(ICU_FOUND)
200-
set(reference_data "icalrecur_withicu_test.out")
201-
else()
202-
set(reference_data "icalrecur_withouticu_test.out")
203-
endif()
204-
set(test_args "-f ${PROJECT_BINARY_DIR}/src/test/${reference_data}")
205-
add_test(NAME icalrecurtest-r COMMAND ${CMAKE_COMMAND} -D test_cmd=${test_cmd} -D test_args:string=${test_args} -P
206-
${PROJECT_SOURCE_DIR}/cmake/run_test.cmake
207-
)
208-
setprops(icalrecurtest-r)
209-
210196
#test non-rscale rrules
211-
set(reference_data "icalrecur_test.out")
197+
set(reference_data "icalrecur_test.txt")
212198
set(test_args "-f ${PROJECT_BINARY_DIR}/src/test/${reference_data}")
213199
add_test(NAME icalrecurtest COMMAND ${CMAKE_COMMAND} -D test_cmd=${test_cmd} -D test_args:string=${test_args} -P
214200
${PROJECT_SOURCE_DIR}/cmake/run_test.cmake
215201
)
216202
setprops(icalrecurtest)
203+
204+
#test rscale rrules without ICU
205+
set(reference_data "icalrecur_test_rscale.txt")
206+
set(test_args "-f ${PROJECT_BINARY_DIR}/src/test/${reference_data}")
207+
add_test(NAME icalrecurtest-rscale COMMAND ${CMAKE_COMMAND} -D test_cmd=${test_cmd} -D test_args:string=${test_args}
208+
-P ${PROJECT_SOURCE_DIR}/cmake/run_test.cmake
209+
)
210+
setprops(icalrecurtest-rscale)
211+
212+
if(ICU_FOUND)
213+
#test rscale rrules with ICU
214+
set(reference_data "icalrecur_test_rscale_withicu.txt")
215+
set(test_args "-f ${PROJECT_BINARY_DIR}/src/test/${reference_data}")
216+
add_test(NAME icalrecurtest-rscale-withicu
217+
COMMAND ${CMAKE_COMMAND} -D test_cmd=${test_cmd} -D test_args:string=${test_args} -P
218+
${PROJECT_SOURCE_DIR}/cmake/run_test.cmake
219+
)
220+
setprops(icalrecurtest-rscale-withicu)
221+
222+
if(HAVE_ICU_DANGI)
223+
#test rscale rrules with ICU and DANGI
224+
set(reference_data "icalrecur_test_rscale_withicu_dangi.txt")
225+
set(test_args "-f ${PROJECT_BINARY_DIR}/src/test/${reference_data}")
226+
add_test(NAME icalrecurtest-rscale-withicu-dangi
227+
COMMAND ${CMAKE_COMMAND} -D test_cmd=${test_cmd} -D test_args:string=${test_args} -P
228+
${PROJECT_SOURCE_DIR}/cmake/run_test.cmake
229+
)
230+
setprops(icalrecurtest-rscale-withicu-dangi)
231+
endif()
232+
endif()
217233
endif()
218234

219235
########### next target ###############

src/test/icalrecur_test.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ static void print_error_hdr(struct recur *r)
5959
int main(int argc, char *argv[])
6060
{
6161
/* Default to RFC 5545 tests */
62-
const char *file_name = "icalrecur_test.out";
62+
const char *file_name = "icalrecur_test.txt";
6363
int verbose = 0;
6464

6565
/* Do not use getopt for command line parsing -- for portability on Windows */
File renamed without changes.
File renamed without changes.
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
2+
# Ethiopic last day of year
3+
RRULE:RSCALE=ETHIOPIC;FREQ=YEARLY;BYMONTH=13;BYMONTHDAY=-1;COUNT=6
4+
DTSTART:20140910
5+
INSTANCES:20140910,20150911,20160910,20170910,20180910,20190911
6+
PREV-INSTANCES:20180910,20170910,20160910,20150911,20140910
7+
8+
# Chinese New Year
9+
RRULE:RSCALE=CHINESE;FREQ=YEARLY;UNTIL=20180101
10+
DTSTART:20130210
11+
INSTANCES:20130210,20140131,20150219,20160208,20170128
12+
PREV-INSTANCES:20170128,20160208,20150219,20140131,20130210
13+
14+
# Chinese monthly
15+
RRULE:RSCALE=CHINESE;FREQ=MONTHLY;COUNT=4
16+
DTSTART:20140920
17+
INSTANCES:20140920,20141020,20141119,20141218
18+
PREV-INSTANCES:20141119,20141020,20140920
19+
20+
# Islamic monthly
21+
RRULE:RSCALE=ISLAMIC-CIVIL;FREQ=MONTHLY;COUNT=4
22+
DTSTART:20131025
23+
INSTANCES:20131025,20131124,20131224,20140122
24+
PREV-INSTANCES:20131224,20131124,20131025
25+
26+
# Islamic Ramadan
27+
RRULE:RSCALE=ISLAMIC-CIVIL;FREQ=YEARLY;BYMONTH=9;COUNT=5
28+
DTSTART:20130709
29+
INSTANCES:20130709,20140629,20150618,20160607,20170527
30+
PREV-INSTANCES:20160607,20150618,20140629,20130709
31+
32+
# Chinese leap month (no leap)
33+
RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9;COUNT=3
34+
DTSTART:20131025
35+
INSTANCES:20141003,20151022,20161010
36+
PREV-INSTANCES:20151022,20141003
37+
38+
# Chinese leap month (omit)
39+
RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9L;SKIP=OMIT;COUNT=2
40+
DTSTART:20131025
41+
INSTANCES:20141102,21091102
42+
PREV-INSTANCES:20141102
43+
44+
RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=4L;SKIP=OMIT;UNTIL=21000101
45+
DTSTART:20131025
46+
INSTANCES:20200601,20580531,20690530,20770531,20880530,20960531
47+
PREV-INSTANCES:20960531,20880530,20770531,20690530,20580531,20200601
48+
49+
# Chinese leap month (skip forward)
50+
RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9L;SKIP=FORWARD;COUNT=3
51+
DTSTART:20131025
52+
INSTANCES:20131112,20141102,20151121
53+
PREV-INSTANCES:20141102,20131112
54+
55+
# Chinese leap month (skip back)
56+
RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9L;SKIP=BACKWARD;COUNT=3
57+
DTSTART:20131025
58+
INSTANCES:20141102,20151022,20161010
59+
PREV-INSTANCES:20151022,20141102
60+
61+
# Chinese leap month (both)
62+
RRULE:RSCALE=CHINESE;FREQ=YEARLY;BYMONTHDAY=10;BYMONTH=9,9L;SKIP=BACKWARD;COUNT=4
63+
DTSTART:20131025
64+
INSTANCES:20141003,20141102,20151022,20161010
65+
PREV-INSTANCES:20151022,20141102,20141003
66+
67+
# Every other Chinese New Year, starting at Jan 1, 2016
68+
RRULE:RSCALE=CHINESE;FREQ=YEARLY;UNTIL=20200101;INTERVAL=2
69+
DTSTART:20130210
70+
START-AT:20160101
71+
INSTANCES:20170128,20190205
72+
PREV-INSTANCES:20150219,20130210
73+
74+
# Jewish leap month (omit)
75+
RRULE:RSCALE=HEBREW;FREQ=YEARLY;COUNT=4
76+
DTSTART:20140205
77+
INSTANCES:20140205,20160214,20190210,20220206
78+
PREV-INSTANCES:20190210,20160214,20140205
79+
80+
# Jewish leap month (skip forward)
81+
RRULE:RSCALE=HEBREW;FREQ=YEARLY;SKIP=FORWARD;COUNT=4
82+
DTSTART:20140205
83+
INSTANCES:20140205,20150224,20160214,20170303
84+
PREV-INSTANCES:20160214,20150224,20140205
85+
86+
# Jewish leap month (skip forward by month)
87+
RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=8;SKIP=FORWARD;COUNT=5
88+
DTSTART:20140208
89+
INSTANCES:20140208,20150227,20160217,20170306,20180223
90+
PREV-INSTANCES:20170306,20160217,20150227,20140208
91+
92+
# 30th day of Jewish leap month (skip forward)
93+
RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=30;SKIP=FORWARD;COUNT=5
94+
DTSTART:20140302
95+
INSTANCES:20140302,20150321,20160310,20170328,20180317
96+
PREV-INSTANCES:20170328,20160310,20150321,20140302
97+
98+
# Last day of Jewish leap month (skip forward)
99+
RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=-1;SKIP=FORWARD;COUNT=5
100+
DTSTART:20140302
101+
INSTANCES:20140302,20150320,20160310,20170327,20180316
102+
PREV-INSTANCES:20170327,20160310,20150320,20140302
103+
104+
# 30th day of Jewish leap month (skip backward)
105+
RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=30;SKIP=BACKWARD;COUNT=5
106+
DTSTART:20140302
107+
INSTANCES:20140302,20150219,20160310,20170226,20180215
108+
PREV-INSTANCES:20170226,20160310,20150219,20140302
109+
110+
# Last day of Jewish leap month (skip backward)
111+
RRULE:RSCALE=HEBREW;FREQ=YEARLY;BYMONTH=5L;BYMONTHDAY=-1;SKIP=BACKWARD;COUNT=5
112+
DTSTART:20140302
113+
INSTANCES:20140302,20150219,20160310,20170226,20180215
114+
PREV-INSTANCES:20170226,20160310,20150219,20140302
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
# Korean Buddha birthday
3+
RRULE:RSCALE=DANGI;FREQ=YEARLY;BYMONTHDAY=8;BYMONTH=4;UNTIL=20160101
4+
DTSTART:20131025
5+
INSTANCES:20140506,20150525
6+
PREV-INSTANCES:20150525,20140506

0 commit comments

Comments
 (0)