@@ -198,6 +198,29 @@ static void test_uc_ctl_change_page_size(void)
198
198
}
199
199
#endif
200
200
201
+ // Test requires UC_ARCH_ARM64.
202
+ #ifdef UNICORN_HAS_ARM64
203
+ static void test_uc_ctl_change_page_size_arm64 (void )
204
+ {
205
+ uc_engine * uc ;
206
+ uc_engine * uc2 ;
207
+ uint32_t pg = 0 ;
208
+
209
+ OK (uc_open (UC_ARCH_ARM64 , UC_MODE_ARM , & uc ));
210
+ OK (uc_open (UC_ARCH_ARM64 , UC_MODE_ARM , & uc2 ));
211
+
212
+ OK (uc_ctl_set_page_size (uc , 16384 ));
213
+ OK (uc_ctl_get_page_size (uc , & pg ));
214
+ TEST_CHECK (pg == 16384 );
215
+
216
+ OK (uc_mem_map (uc2 , 1 << 10 , 1 << 10 , UC_PROT_ALL ));
217
+ uc_assert_err (UC_ERR_ARG , uc_mem_map (uc , 1 << 10 , 1 << 10 , UC_PROT_ALL ));
218
+
219
+ OK (uc_close (uc ));
220
+ OK (uc_close (uc2 ));
221
+ }
222
+ #endif
223
+
201
224
// Test requires UC_ARCH_ARM.
202
225
#ifdef UNICORN_HAS_ARM
203
226
// Copy from test_arm.c but with new API.
@@ -414,6 +437,9 @@ TEST_LIST = {{"test_uc_ctl_mode", test_uc_ctl_mode},
414
437
#ifdef UNICORN_HAS_ARM
415
438
{"test_uc_ctl_change_page_size" , test_uc_ctl_change_page_size },
416
439
{"test_uc_ctl_arm_cpu" , test_uc_ctl_arm_cpu },
440
+ #endif
441
+ #ifdef UNICORN_HAS_ARM64
442
+ {"test_uc_ctl_change_page_size_arm64" , test_uc_ctl_change_page_size_arm64 },
417
443
#endif
418
444
{"test_uc_hook_cached_uaf" , test_uc_hook_cached_uaf },
419
445
{"test_uc_emu_stop_set_ip" , test_uc_emu_stop_set_ip },
0 commit comments