2017-01-17 17:00:00 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright (C) Igor Sysoev
|
|
|
|
* Copyright (C) NGINX, Inc.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <nxt_main.h>
|
2017-08-29 21:31:02 +00:00
|
|
|
#include "nxt_tests.h"
|
2017-01-17 17:00:00 +00:00
|
|
|
|
|
|
|
|
|
|
|
extern char **environ;
|
|
|
|
|
2017-05-12 17:41:34 +00:00
|
|
|
nxt_module_init_t nxt_init_modules[1];
|
2017-03-14 12:09:17 +00:00
|
|
|
nxt_uint_t nxt_init_modules_n;
|
|
|
|
|
2017-01-17 17:00:00 +00:00
|
|
|
|
|
|
|
/* The function is defined here to prevent inline optimizations. */
|
|
|
|
static nxt_bool_t
|
|
|
|
nxt_msec_less(nxt_msec_t first, nxt_msec_t second)
|
|
|
|
{
|
|
|
|
return (nxt_msec_diff(first, second) < 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int nxt_cdecl
|
|
|
|
main(int argc, char **argv)
|
|
|
|
{
|
2017-06-19 13:26:19 +00:00
|
|
|
nxt_task_t task;
|
2017-01-17 17:00:00 +00:00
|
|
|
nxt_thread_t *thr;
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_lib_start("tests", argv, &environ) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
nxt_main_log.level = NXT_LOG_INFO;
|
2017-06-19 13:26:19 +00:00
|
|
|
task.log = &nxt_main_log;
|
2017-01-17 17:00:00 +00:00
|
|
|
|
|
|
|
thr = nxt_thread();
|
2017-06-19 13:26:19 +00:00
|
|
|
thr->task = &task;
|
2017-01-17 17:00:00 +00:00
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
#if (NXT_TEST_RTDTSC)
|
2017-01-17 17:00:00 +00:00
|
|
|
|
|
|
|
if (nxt_process_argv[1] != NULL
|
|
|
|
&& nxt_memcmp(nxt_process_argv[1], "rbm", 3) == 0)
|
|
|
|
{
|
|
|
|
if (nxt_rbtree1_mb_start(thr) != NXT_OK) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (nxt_rbtree_mb_start(thr) != NXT_OK) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_lvlhsh_test(thr, 500 * 1000, 0) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
nxt_rbtree1_mb_insert(thr);
|
|
|
|
nxt_rbtree_mb_insert(thr);
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_lvlhsh_test(thr, 500 * 1000, 0) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
nxt_rbtree1_mb_delete(thr);
|
|
|
|
nxt_rbtree_mb_delete(thr);
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_random_test(thr) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_term_parse_test(thr) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_msec_diff_test(thr, nxt_msec_less) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_rbtree_test(thr, 100 * 1000) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_rbtree_test(thr, 1000 * 1000) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_rbtree1_test(thr, 100 * 1000) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_rbtree1_test(thr, 1000 * 1000) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_mp_test(thr, 100, 40000, 128 - 1) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_mp_test(thr, 100, 1000, 4096 - 1) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_mp_test(thr, 1000, 100, 64 * 1024 - 1) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_mem_zone_test(thr, 100, 20000, 128 - 1) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_mem_zone_test(thr, 100, 10000, 4096 - 1) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_mem_zone_test(thr, 1000, 40, 64 * 1024 - 1) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_lvlhsh_test(thr, 2, 1) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_lvlhsh_test(thr, 100 * 1000, 1) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_lvlhsh_test(thr, 100 * 1000, 0) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_lvlhsh_test(thr, 1000 * 1000, 1) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_gmtime_test(thr) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_sprintf_test(thr) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_malloc_test(thr) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_utf8_test(thr) != NXT_OK) {
|
2017-01-17 17:00:00 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-08-29 21:31:02 +00:00
|
|
|
if (nxt_http_parse_test(thr) != NXT_OK) {
|
2017-03-01 12:29:18 +00:00
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-10-05 13:46:18 +00:00
|
|
|
if (nxt_strverscmp_test(thr) != NXT_OK) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2017-01-17 17:00:00 +00:00
|
|
|
return 0;
|
|
|
|
}
|