1
2 /*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7 #ifndef _NXT_TESTS_H_INCLUDED_
8 #define _NXT_TESTS_H_INCLUDED_
9
10
11 typedef nxt_bool_t (*nxt_msec_less_t)(nxt_msec_t first, nxt_msec_t second);
12
13
14 #define NXT_RBT_NODES 1500
15
16
17 #if (__i386__ || __i386 || __amd64__ || __amd64)
18 #if (NXT_GCC || NXT_CLANG)
19
20 #define NXT_TEST_RTDTSC 1
21
22 nxt_inline uint64_t
nxt_rdtsc(void)23 nxt_rdtsc(void)
24 {
25 uint32_t eax, edx;
26
27 __asm__ volatile ("rdtsc" : "=a" (eax), "=d" (edx));
28
29 return ((uint64_t) edx << 32) | eax;
30 }
31
32 #endif
33 #endif
34
35
36 nxt_int_t nxt_term_parse_test(nxt_thread_t *thr);
37 nxt_int_t nxt_msec_diff_test(nxt_thread_t *thr, nxt_msec_less_t);
38
39 nxt_int_t nxt_rbtree_test(nxt_thread_t *thr, nxt_uint_t n);
40 nxt_int_t nxt_rbtree1_test(nxt_thread_t *thr, nxt_uint_t n);
41
42 #if (NXT_TEST_RTDTSC)
43
44 nxt_int_t nxt_rbtree_mb_start(nxt_thread_t *thr);
45 void nxt_rbtree_mb_insert(nxt_thread_t *thr);
46 void nxt_rbtree_mb_delete(nxt_thread_t *thr);
47
48 nxt_int_t nxt_rbtree1_mb_start(nxt_thread_t *thr);
49 void nxt_rbtree1_mb_insert(nxt_thread_t *thr);
50 void nxt_rbtree1_mb_delete(nxt_thread_t *thr);
51
52 #endif
53
54 nxt_int_t nxt_mp_test(nxt_thread_t *thr, nxt_uint_t runs, nxt_uint_t nblocks,
55 size_t max_size);
56 nxt_int_t nxt_mem_zone_test(nxt_thread_t *thr, nxt_uint_t runs,
57 nxt_uint_t nblocks, size_t max_size);
58 nxt_int_t nxt_lvlhsh_test(nxt_thread_t *thr, nxt_uint_t n,
59 nxt_bool_t use_pool);
60
61 nxt_int_t nxt_gmtime_test(nxt_thread_t *thr);
62 nxt_int_t nxt_sprintf_test(nxt_thread_t *thr);
63 nxt_int_t nxt_malloc_test(nxt_thread_t *thr);
64 nxt_int_t nxt_utf8_test(nxt_thread_t *thr);
65 nxt_int_t nxt_http_parse_test(nxt_thread_t *thr);
66 nxt_int_t nxt_strverscmp_test(nxt_thread_t *thr);
67 nxt_int_t nxt_base64_test(nxt_thread_t *thr);
68 nxt_int_t nxt_clone_creds_test(nxt_thread_t *thr);
69
70
71 #endif /* _NXT_TESTS_H_INCLUDED_ */
72