#include "internal.h"
#include <chrono>
#include <vector>
#include <thread>
#include <gtest/gtest.h>
#include <openssl/crypto.h>
#include <openssl/rand.h>
#include "test/test_util.h"
#if defined(OPENSSL_THREADS)
static unsigned g_once_init_called = …;
static void once_init(void) { … }
static CRYPTO_once_t g_test_once = …;
TEST(ThreadTest, Once) { … }
static CRYPTO_once_t once_init_value = …;
static CRYPTO_once_t once_bss;
static CRYPTO_MUTEX mutex_init_value = …;
static CRYPTO_MUTEX mutex_bss;
static CRYPTO_EX_DATA_CLASS ex_data_class_value = …;
static CRYPTO_EX_DATA_CLASS ex_data_class_bss;
TEST(ThreadTest, InitZeros) { … }
static int g_test_thread_ok = …;
static unsigned g_destructor_called_count = …;
static void thread_local_destructor(void *arg) { … }
TEST(ThreadTest, ThreadLocal) { … }
TEST(ThreadTest, RandState) { … }
TEST(ThreadTest, PreSandboxInitThreads) { … }
#endif