19 run_one_test(
const char *t,
const char *x,
int expected) {
30 no_time_given(
void **state) {
35 any_time_satisfies_empty_spec(
void **state) {
44 time_satisfies_year_spec(
void **state) {
45 run_one_test(
"2020-01-01",
"<date_spec id='spec' years='2020'/>",
pcmk_rc_ok);
49 time_after_year_spec(
void **state) {
54 time_satisfies_year_range(
void **state) {
55 run_one_test(
"2020-01-01",
"<date_spec id='spec' years='2010-2030'/>",
pcmk_rc_ok);
59 time_before_year_range(
void **state) {
64 time_after_year_range(
void **state) {
65 run_one_test(
"2020-01-01",
"<date_spec id='spec' years='2010-2015'/>",
pcmk_rc_after_range);
69 range_without_start_year_passes(
void **state) {
70 run_one_test(
"2010-01-01",
"<date_spec id='spec' years='-2020'/>",
pcmk_rc_ok);
74 range_without_end_year_passes(
void **state) {
75 run_one_test(
"2010-01-01",
"<date_spec id='spec' years='2000-'/>",
pcmk_rc_ok);
76 run_one_test(
"2000-10-01",
"<date_spec id='spec' years='2000-'/>",
pcmk_rc_ok);
80 yeardays_satisfies(
void **state) {
81 run_one_test(
"2020-01-30",
"<date_spec id='spec' yeardays='30'/>",
pcmk_rc_ok);
85 time_after_yeardays_spec(
void **state) {
90 yeardays_feb_29_satisfies(
void **state) {
91 run_one_test(
"2016-02-29",
"<date_spec id='spec' yeardays='60'/>",
pcmk_rc_ok);
95 exact_ymd_satisfies(
void **state) {
96 run_one_test(
"2001-12-31",
"<date_spec id='spec' years='2001' months='12' monthdays='31'/>",
pcmk_rc_ok);
100 range_in_month_satisfies(
void **state) {
101 run_one_test(
"2001-06-10",
"<date_spec id='spec' years='2001' months='6' monthdays='1-10'/>",
pcmk_rc_ok);
105 exact_ymd_after_range(
void **state) {
106 run_one_test(
"2001-12-31",
"<date_spec id='spec' years='2001' months='12' monthdays='30'/>",
pcmk_rc_after_range);
110 time_after_monthdays_range(
void **state) {
111 run_one_test(
"2001-06-10",
"<date_spec id='spec' years='2001' months='6' monthdays='11-15'/>",
pcmk_rc_before_range);
115 cmocka_unit_test(no_time_given),
116 cmocka_unit_test(any_time_satisfies_empty_spec),
117 cmocka_unit_test(time_satisfies_year_spec),
118 cmocka_unit_test(time_after_year_spec),
119 cmocka_unit_test(time_satisfies_year_range),
120 cmocka_unit_test(time_before_year_range),
121 cmocka_unit_test(time_after_year_range),
122 cmocka_unit_test(range_without_start_year_passes),
123 cmocka_unit_test(range_without_end_year_passes),
124 cmocka_unit_test(yeardays_satisfies),
125 cmocka_unit_test(time_after_yeardays_spec),
126 cmocka_unit_test(yeardays_feb_29_satisfies),
127 cmocka_unit_test(exact_ymd_satisfies),
128 cmocka_unit_test(range_in_month_satisfies),
129 cmocka_unit_test(exact_ymd_after_range),
130 cmocka_unit_test(time_after_monthdays_range))
int pe_cron_range_satisfied(crm_time_t *now, xmlNode *cron_spec)
struct crm_time_s crm_time_t
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
xmlNode * string2xml(const char *input)
Wrappers for and extensions to libxml2.
void free_xml(xmlNode *child)
crm_time_t * crm_time_new(const char *string)
void crm_time_free(crm_time_t *dt)