42     void test_mem_pool_free_zero();
    43     void test_mem_pool_free_heap_twice();
    44     void test_mem_pool_invalid_pool();
    45     void test_mem_pool_malloc_zero();
    46     void test_mem_pool_multiple_malloc_heap_should_be_contiguous();
    47     void test_mem_pool_malloc_heap_all_of_memory();
    48     void test_mem_pool_malloc_heap_all_of_memory_one_block();
    49     void test_mem_pool_malloc_heap_all_memory_fragmented();
    50     void test_mem_pool_malloc_heap_too_much_memory_one_block();
    51     void test_mem_pool_malloc_heap_too_much_memory_non_block_size();
    52     void test_mem_pool_malloc_heap_massive();
    53     void test_mem_pool_size_out_of_bounds();
    54     void test_mem_pool_size_unallocated();
    55     void test_mem_pool_size();
    56     void test_mem_pool_contains_out_of_bounds();
    57     void test_mem_pool_contains();
    59     void test_memory_manager_x64_size_out_of_bounds();
    60     void test_memory_manager_x64_malloc_out_of_memory();
    61     void test_memory_manager_x64_malloc_heap();
    62     void test_memory_manager_x64_malloc_page();
    63     void test_memory_manager_x64_malloc_map();
    64     void test_memory_manager_x64_add_md();
    65     void test_memory_manager_x64_add_md_invalid_type();
    66     void test_memory_manager_x64_add_md_unaligned_physical();
    67     void test_memory_manager_x64_add_md_unaligned_virtual();
    68     void test_memory_manager_x64_remove_md_invalid_virt();
    69     void test_memory_manager_x64_virtint_to_physint_failure();
    70     void test_memory_manager_x64_physint_to_virtint_failure();
    71     void test_memory_manager_x64_virtint_to_attrint_failure();
    72     void test_memory_manager_x64_virtint_to_physint_random_address();
    73     void test_memory_manager_x64_virtint_to_physint_nullptr();
    74     void test_memory_manager_x64_physint_to_virtint_random_address();
    75     void test_memory_manager_x64_physint_to_virtint_nullptr();
    76     void test_memory_manager_x64_virtint_to_attrint_random_address();
    77     void test_memory_manager_x64_virtint_to_attrint_nullptr();
    79     void test_page_table_x64_add_remove_page_success_without_setting();
    80     void test_page_table_x64_add_remove_page_1g_success();
    81     void test_page_table_x64_add_remove_page_2m_success();
    82     void test_page_table_x64_add_remove_page_4k_success();
    83     void test_page_table_x64_add_remove_page_swap_success();
    84     void test_page_table_x64_add_page_twice_success();
    85     void test_page_table_x64_remove_page_twice_success();
    86     void test_page_table_x64_remove_page_unknown_success();
    87     void test_page_table_x64_virt_to_pte_invalid();
    88     void test_page_table_x64_virt_to_pte_success();
    89     void test_page_table_x64_pt_to_mdl_success();
    91     void test_page_table_entry_x64_present();
    92     void test_page_table_entry_x64_rw();
    93     void test_page_table_entry_x64_us();
    94     void test_page_table_entry_x64_pwt();
    95     void test_page_table_entry_x64_pcd();
    96     void test_page_table_entry_x64_accessed();
    97     void test_page_table_entry_x64_dirty();
    98     void test_page_table_entry_x64_pat();
    99     void test_page_table_entry_x64_ps();
   100     void test_page_table_entry_x64_global();
   101     void test_page_table_entry_x64_nx();
   102     void test_page_table_entry_x64_phys_addr();
   103     void test_page_table_entry_x64_pat_index();
   104     void test_page_table_entry_x64_clear();
   106     void test_unique_map_ptr_x64_default_constructor();
   107     void test_unique_map_ptr_x64_phys_constructor_invalid_args();
   108     void test_unique_map_ptr_x64_phys_constructor_mm_map_fails();
   109     void test_unique_map_ptr_x64_phys_constructor_success();
   110     void test_unique_map_ptr_x64_phys_range_constructor_invalid_args();
   111     void test_unique_map_ptr_x64_phys_range_constructor_mm_map_fails();
   112     void test_unique_map_ptr_x64_phys_range_constructor_success();
   113     void test_unique_map_ptr_x64_virt_cr3_constructor_invalid_args();
   114     void test_unique_map_ptr_x64_virt_cr3_constructor_mm_map_fails();
   115     void test_unique_map_ptr_x64_virt_cr3_constructor_success_1g();
   116     void test_unique_map_ptr_x64_virt_cr3_constructor_success_2m();
   117     void test_unique_map_ptr_x64_virt_cr3_constructor_success_4k();
   118     void test_unique_map_ptr_x64_virt_cr3_constructor_success_4k_aligned_addr();
   119     void test_unique_map_ptr_x64_virt_cr3_constructor_success_4k_aligned_size();
   120     void test_unique_map_ptr_x64_virt_cr3_constructor_not_present();
   121     void test_unique_map_ptr_x64_virt_cr3_constructor_invalid_phys_addr();
   122     void test_unique_map_ptr_x64_copy_constructor();
   123     void test_unique_map_ptr_x64_move_operator_valid();
   124     void test_unique_map_ptr_x64_move_operator_invalid();
   125     void test_unique_map_ptr_x64_reference_operators();
   126     void test_unique_map_ptr_x64_release();
   127     void test_unique_map_ptr_x64_reset();
   128     void test_unique_map_ptr_x64_swap();
   129     void test_unique_map_ptr_x64_flush();
   130     void test_unique_map_ptr_x64_cache_flush();
   131     void test_unique_map_ptr_x64_comparison();
   132     void test_unique_map_ptr_x64_make_failure();
   133     void test_virt_to_phys_with_cr3_invalid();
   134     void test_virt_to_phys_with_cr3_1g();
   135     void test_virt_to_phys_with_cr3_2m();
   136     void test_virt_to_phys_with_cr3_4k();
   138     void test_root_page_table_x64_init_failure();
   139     void test_root_page_table_x64_init_success();
   140     void test_root_page_table_x64_cr3();
   141     void test_root_page_table_x64_map_1g();
   142     void test_root_page_table_x64_map_2m();
   143     void test_root_page_table_x64_map_4k();
   144     void test_root_page_table_x64_map_invalid();
   145     void test_root_page_table_x64_map_unmap_twice_success();
   146     void test_root_page_table_x64_setup_identity_map_1g_invalid();
   147     void test_root_page_table_x64_setup_identity_map_1g_valid();
   148     void test_root_page_table_x64_setup_identity_map_2m_invalid();
   149     void test_root_page_table_x64_setup_identity_map_2m_valid();
   150     void test_root_page_table_x64_setup_identity_map_4k_invalid();
   151     void test_root_page_table_x64_setup_identity_map_4k_valid();
   152     void test_root_page_table_x64_pt_to_mdl();
   154     void test_pat_x64_mem_attr_to_pat_index();
   155     void test_mem_attr_x64_mem_type_to_attr();
 
~memory_manager_ut() override=default