19run_one_test(
const char *t,
const char *x,
int expected) {
30no_time_given(
void **state) {
35any_time_satisfies_empty_spec(
void **state) {
44time_satisfies_year_spec(
void **state) {
45 run_one_test(
"2020-01-01",
"<date_spec id='spec' years='2020'/>",
pcmk_rc_ok);
49time_after_year_spec(
void **state) {
54time_satisfies_year_range(
void **state) {
55 run_one_test(
"2020-01-01",
"<date_spec id='spec' years='2010-2030'/>",
pcmk_rc_ok);
59time_before_year_range(
void **state) {
64time_after_year_range(
void **state) {
65 run_one_test(
"2020-01-01",
"<date_spec id='spec' years='2010-2015'/>",
pcmk_rc_after_range);
69range_without_start_year_passes(
void **state) {
70 run_one_test(
"2010-01-01",
"<date_spec id='spec' years='-2020'/>",
pcmk_rc_ok);
74range_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);
80yeardays_satisfies(
void **state) {
81 run_one_test(
"2020-01-30",
"<date_spec id='spec' yeardays='30'/>",
pcmk_rc_ok);
85time_after_yeardays_spec(
void **state) {
90yeardays_feb_29_satisfies(
void **state) {
91 run_one_test(
"2016-02-29",
"<date_spec id='spec' yeardays='60'/>",
pcmk_rc_ok);
95exact_ymd_satisfies(
void **state) {
96 run_one_test(
"2001-12-31",
"<date_spec id='spec' years='2001' months='12' monthdays='31'/>",
pcmk_rc_ok);
100range_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);
105exact_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);
110time_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))
void crm_time_free(crm_time_t *dt)
crm_time_t * crm_time_new(const char *string)
struct crm_time_s crm_time_t
int pe_cron_range_satisfied(crm_time_t *now, xmlNode *cron_spec)
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
Wrappers for and extensions to libxml2.
xmlNode * string2xml(const char *input)
void free_xml(xmlNode *child)