#ifndef V8_TEST_CCTEST_TEST_SWISS_NAME_DICTIONARY_INFRA_H_
#define V8_TEST_CCTEST_TEST_SWISS_NAME_DICTIONARY_INFRA_H_
#include <memory>
#include <optional>
#include <utility>
#include "src/objects/objects-inl.h"
#include "src/objects/swiss-name-dictionary-inl.h"
#include "test/cctest/cctest.h"
namespace v8 {
namespace internal {
namespace test_swiss_hash_table {
Value;
ValueOpt;
PropertyDetailsOpt;
IndexOpt;
static const ValueOpt kNoValue;
static const PropertyDetailsOpt kNoDetails;
static const std::optional<int> kNoInt;
static const IndexOpt kIndexUnknown;
static const std::vector<int> interesting_initial_capacities = {
4,
8,
16,
128,
1 << (sizeof(uint16_t) * 8),
1 << (sizeof(uint16_t) * 8 + 1)};
#if defined(THREAD_SANITIZER) || defined(V8_ENABLE_CONTROL_FLOW_INTEGRITY)
static const std::vector<int> capacities_for_slow_sanitizer_tests = {4, 8, 16,
128, 1024};
#else
static const std::vector<int> capacities_for_slow_sanitizer_tests =
interesting_initial_capacities;
#endif
#if DEBUG
static const std::vector<int> capacities_for_slow_debug_tests = {4, 8, 16, 128,
1024};
#else
static const std::vector<int> capacities_for_slow_debug_tests =
interesting_initial_capacities;
#endif
extern const std::vector<PropertyDetails> distinct_property_details;
struct FakeH1 { … };
struct FakeH2 { … };
FakeH1Opt;
FakeH2Opt;
struct Key { … };
struct CachedKey { … };
using KeyCache = std::unordered_map<std::string, CachedKey>;
Handle<Name> CreateKeyWithHash(Isolate* isolate, KeyCache& keys,
const Key& key);
class RuntimeTestRunner;
class CSATestRunner;
template <typename TestRunner>
class TestSequence { … };
}
}
}
#endif