diff options
author | Igor Sysoev <igor@sysoev.ru> | 2017-01-17 20:00:00 +0300 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2017-01-17 20:00:00 +0300 |
commit | 16cbf3c076a0aca6d47adaf3f719493674cf2363 (patch) | |
tree | e6530480020f62a2bdbf249988ec3e2a751d3927 /test/nxt_term_parse_unit_test.c | |
download | unit-16cbf3c076a0aca6d47adaf3f719493674cf2363.tar.gz unit-16cbf3c076a0aca6d47adaf3f719493674cf2363.tar.bz2 |
Initial version.
Diffstat (limited to 'test/nxt_term_parse_unit_test.c')
-rw-r--r-- | test/nxt_term_parse_unit_test.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/test/nxt_term_parse_unit_test.c b/test/nxt_term_parse_unit_test.c new file mode 100644 index 00000000..539d74b9 --- /dev/null +++ b/test/nxt_term_parse_unit_test.c @@ -0,0 +1,59 @@ + +/* + * Copyright (C) Igor Sysoev + * Copyright (C) NGINX, Inc. + */ + +#include <nxt_main.h> + + +typedef struct { + nxt_str_t string; + nxt_bool_t is_sec; + nxt_int_t value; +} nxt_term_parse_test_t; + + +static const nxt_term_parse_test_t terms[] = { + { nxt_string("1y"), 1, 365 * 24 * 60 * 60 }, + { nxt_string("1w"), 1, 7 * 24 * 60 * 60 }, + { nxt_string("1w"), 0, 7 * 24 * 60 * 60 * 1000 }, + { nxt_string("1w 1d"), 0, 8 * 24 * 60 * 60 * 1000 }, + { nxt_string("1w d"), 0, -1 }, + { nxt_string("w"), 0, -1 }, + { nxt_string("1d 1w"), 0, -1 }, + { nxt_string("25d"), 0, -2 }, + { nxt_string("300"), 1, 300 }, + { nxt_string("300"), 0, 300000 }, + { nxt_string("300s"), 1, 300 }, + { nxt_string("300ms"), 0, 300 }, + { nxt_string("1y 1M 1w1d1h1m1s"), 1, + (((((365 + 30 + 7 + 1) * 24 + 1) * 60) + 1) * 60) + 1 }, +}; + + +nxt_int_t +nxt_term_parse_unit_test(nxt_thread_t *thr) +{ + nxt_int_t val; + nxt_uint_t i; + const nxt_str_t *s; + + nxt_thread_time_update(thr); + + for (i = 0; i < nxt_nitems(terms); i++) { + + s = &terms[i].string; + val = nxt_term_parse(s->data, s->len, terms[i].is_sec); + + if (val != terms[i].value) { + nxt_log_alert(thr->log, + "term parse unit test failed: \"%V\": %i %i", + s, terms[i].value, val); + return NXT_ERROR; + } + } + + nxt_log_error(NXT_LOG_NOTICE, thr->log, "term parse unit test passed"); + return NXT_OK; +} |