#include <openssl/stack.h>
#include <limits.h>
#include <algorithm>
#include <memory>
#include <utility>
#include <vector>
#include <gtest/gtest.h>
#include <openssl/mem.h>
#include <openssl/rand.h>
TEST_INT;
static void TEST_INT_free(TEST_INT *x) { … }
BSSL_NAMESPACE_BEGIN
BORINGSSL_MAKE_DELETER(…)
BSSL_NAMESPACE_END
static bssl::UniquePtr<TEST_INT> TEST_INT_new(int x) { … }
DEFINE_STACK_OF(TEST_INT)
struct ShallowStackDeleter { … };
ShallowStack;
static const int kNull = …;
static void ExpectStackEquals(const STACK_OF(TEST_INT) *sk,
const std::vector<int> &vec) { … }
TEST(StackTest, Basic) { … }
TEST(StackTest, BigStack) { … }
static uint64_t g_compare_count = …;
static int compare(const TEST_INT *const *a, const TEST_INT *const *b) { … }
static int compare_reverse(const TEST_INT *const *a, const TEST_INT *const *b) { … }
TEST(StackTest, Sorted) { … }
TEST(StackTest, FindFirst) { … }
TEST(StackTest, BinarySearch) { … }
TEST(StackTest, DeleteIf) { … }
TEST(StackTest, IsSorted) { … }
TEST(StackTest, Sort) { … }
TEST(StackTest, NullIsEmpty) { … }