Sequoia
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions
AllocationCheckers.hpp File Reference

Client-facing utilities for performing allocation checks. More...

#include "sequoia/TestFramework/AllocationCheckersCore.hpp"
#include "sequoia/TestFramework/FreeCheckers.hpp"
#include "sequoia/Core/ContainerUtilities/ArrayUtilities.hpp"
#include "sequoia/Core/Meta/Utilities.hpp"

Go to the source code of this file.

Classes

class  sequoia::testing::corrections< CorrectionFlavour >
 
struct  sequoia::testing::container_counts
 
struct  sequoia::testing::allocation_equivalence_classes::container_of_values< Allocator >
 
struct  sequoia::testing::allocation_equivalence_classes::container_of_pointers< Allocator >
 
struct  sequoia::testing::allocation_count_shifter< T >
 
class  sequoia::testing::alloc_prediction_shifter< allocation_equivalence_classes::container_of_values< Allocator > >
 
class  sequoia::testing::alloc_prediction_shifter< allocation_equivalence_classes::container_of_pointers< Allocator > >
 
struct  sequoia::testing::alloc_equivalence_class_generator< T, Getter >
 
struct  sequoia::testing::alloc_equivalence_class_generator< T, Getter >
 
class  sequoia::testing::allocation_info_base< T, Getter >
 Base class for use with both plain (shared counting) allocators and std::scoped_allocator_adaptor. More...
 
class  sequoia::testing::allocation_info< T, Getter >
 Class for use with a container possessing a (shared counting) allocator. More...
 
struct  sequoia::testing::outer_alloc_getter< T, Getter >
 
class  sequoia::testing::allocation_info< T, Getter >
 A specialization of allocation_info appropriate for std::scoped_allocator_adaptor. More...
 
class  sequoia::testing::container_predictions_policy< TopLevel >
 
class  sequoia::testing::container_predictions_policy< top_level::yes >
 

Typedefs

using sequoia::testing::initialization_prediction = alloc_prediction< construction_allocation_event::initialization >
 
using sequoia::testing::copy_prediction = alloc_prediction< construction_allocation_event::copy >
 
using sequoia::testing::move_prediction = alloc_prediction< construction_allocation_event::move >
 
using sequoia::testing::para_copy_prediction = alloc_prediction< construction_allocation_event::para_copy >
 
using sequoia::testing::para_move_prediction = alloc_prediction< construction_allocation_event::para_move >
 
using sequoia::testing::assign_prediction = alloc_prediction< assignment_allocation_event::assign >
 
using sequoia::testing::assign_no_prop_prediction = alloc_prediction< assignment_allocation_event::assign_no_prop >
 
using sequoia::testing::move_assign_prediction = alloc_prediction< assignment_allocation_event::move_assign >
 
using sequoia::testing::move_assign_no_prop_prediction = alloc_prediction< assignment_allocation_event::move_assign_no_prop >
 
using sequoia::testing::mutation_prediction = alloc_prediction< individual_allocation_event::mutation >
 
using sequoia::testing::number_of_containers = corrections< scoped_prediction_corrections::num_containers >
 
using sequoia::testing::post_mutation_correction = corrections< scoped_prediction_corrections::post_mutation >
 
template<movable_comparable T, alloc_getter< T > Getter>
using sequoia::testing::alloc_equivalence_class_generator_t = typename alloc_equivalence_class_generator< T, Getter >::type
 
template<class T >
using sequoia::testing::type_to_allocation_predictions_t = typename type_to_allocation_predictions< T >::predictions_type
 
template<class T >
using sequoia::testing::type_to_inner_allocation_predictions_t = typename type_to_allocation_predictions< T >::inner_predictions_type
 

Enumerations

enum class  construction_allocation_event {
  initialization , copy , move , para_copy ,
  para_move
}
 
enum class  assignment_allocation_event { assign , assign_no_prop , move_assign , move_assign_no_prop }
 
enum class  individual_allocation_event { mutation }
 
enum class  scoped_prediction_corrections { num_containers , post_mutation }
 
enum class  top_level { no , yes }
 

Functions

template<auto To, auto From>
constexpr alloc_prediction< To > sequoia::testing::convert (alloc_prediction< From > p) noexcept
 
consteval initialization_prediction sequoia::testing::operator""_init (unsigned long long int n) noexcept
 
consteval copy_prediction sequoia::testing::operator""_c (unsigned long long int n) noexcept
 
consteval mutation_prediction sequoia::testing::operator""_mu (unsigned long long int n) noexcept
 
consteval para_copy_prediction sequoia::testing::operator""_pc (unsigned long long int n) noexcept
 
consteval para_move_prediction sequoia::testing::operator""_pm (unsigned long long int n) noexcept
 
consteval assign_no_prop_prediction sequoia::testing::operator""_anp (unsigned long long int n) noexcept
 
consteval assign_prediction sequoia::testing::operator""_awp (unsigned long long int n) noexcept
 
consteval move_assign_prediction sequoia::testing::operator""_ma (unsigned long long int n) noexcept
 
consteval move_assign_no_prop_prediction sequoia::testing::operator""_manp (unsigned long long int n) noexcept
 
consteval number_of_containers sequoia::testing::operator""_containers (unsigned long long int n) noexcept
 
consteval post_mutation_correction sequoia::testing::operator""_postmutation (unsigned long long int n) noexcept
 
template<auto AllocEvent>
constexpr alloc_prediction< AllocEvent > sequoia::testing::increment_msvc_debug_count (alloc_prediction< AllocEvent > p, int val) noexcept
 
template<class Fn , class T = std::remove_cvref_t<typename function_signature<decltype(&std::remove_cvref_t<Fn>::operator())>::arg>
 sequoia::testing::allocation_info (Fn, const type_to_allocation_predictions_t< T > &) -> allocation_info< T, Fn >
 
template<class Fn , class T = std::remove_cvref_t<typename function_signature<decltype(&std::remove_cvref_t<Fn>::operator())>::arg, class Predictions = type_to_allocation_predictions_t<T>, class InnerPredictions = type_to_inner_allocation_predictions_t<T>>
 sequoia::testing::allocation_info (Fn, Predictions, std::initializer_list< InnerPredictions >) -> allocation_info< T, Fn >
 

Detailed Description

Client-facing utilities for performing allocation checks.

For more information see AllocationCheckersCore.hpp