Files
nginx-unit/src/test/nxt_tests.h
Tiago Natel 411daeaa53 Isolation: allowed the use of credentials with unpriv userns.
The setuid/setgid syscalls requires root capabilities but if the kernel
supports unprivileged user namespace then the child process has the full
set of capabilities in the new namespace, then we can allow setting "user"
and "group" in such cases (this is a common security use case).

Tests were added to ensure user gets meaningful error messages for
uid/gid mapping misconfigurations.
2019-12-06 16:52:50 +00:00

71 lines
1.7 KiB
C

/*
* Copyright (C) Igor Sysoev
* Copyright (C) NGINX, Inc.
*/
#ifndef _NXT_TESTS_H_INCLUDED_
#define _NXT_TESTS_H_INCLUDED_
typedef nxt_bool_t (*nxt_msec_less_t)(nxt_msec_t first, nxt_msec_t second);
#define NXT_RBT_NODES 1500
#if (__i386__ || __i386 || __amd64__ || __amd64)
#if (NXT_GCC || NXT_CLANG)
#define NXT_TEST_RTDTSC 1
nxt_inline uint64_t
nxt_rdtsc(void)
{
uint32_t eax, edx;
__asm__ volatile ("rdtsc" : "=a" (eax), "=d" (edx));
return ((uint64_t) edx << 32) | eax;
}
#endif
#endif
nxt_int_t nxt_term_parse_test(nxt_thread_t *thr);
nxt_int_t nxt_msec_diff_test(nxt_thread_t *thr, nxt_msec_less_t);
nxt_int_t nxt_rbtree_test(nxt_thread_t *thr, nxt_uint_t n);
nxt_int_t nxt_rbtree1_test(nxt_thread_t *thr, nxt_uint_t n);
#if (NXT_TEST_RTDTSC)
nxt_int_t nxt_rbtree_mb_start(nxt_thread_t *thr);
void nxt_rbtree_mb_insert(nxt_thread_t *thr);
void nxt_rbtree_mb_delete(nxt_thread_t *thr);
nxt_int_t nxt_rbtree1_mb_start(nxt_thread_t *thr);
void nxt_rbtree1_mb_insert(nxt_thread_t *thr);
void nxt_rbtree1_mb_delete(nxt_thread_t *thr);
#endif
nxt_int_t nxt_mp_test(nxt_thread_t *thr, nxt_uint_t runs, nxt_uint_t nblocks,
size_t max_size);
nxt_int_t nxt_mem_zone_test(nxt_thread_t *thr, nxt_uint_t runs,
nxt_uint_t nblocks, size_t max_size);
nxt_int_t nxt_lvlhsh_test(nxt_thread_t *thr, nxt_uint_t n,
nxt_bool_t use_pool);
nxt_int_t nxt_gmtime_test(nxt_thread_t *thr);
nxt_int_t nxt_sprintf_test(nxt_thread_t *thr);
nxt_int_t nxt_malloc_test(nxt_thread_t *thr);
nxt_int_t nxt_utf8_test(nxt_thread_t *thr);
nxt_int_t nxt_http_parse_test(nxt_thread_t *thr);
nxt_int_t nxt_strverscmp_test(nxt_thread_t *thr);
nxt_int_t nxt_clone_creds_test(nxt_thread_t *thr);
#endif /* _NXT_TESTS_H_INCLUDED_ */