wasm-micro-runtime/tests/unit/shared-heap/wasm-apps/test_addr_conv.c
TianlongLiang ccdc8369d6
Shared heap enhancement for AOT and update tests and samples (#4226)
* shared heap enhancement: modify memory check for aot_check_memory_overflow to accomodate shared heap chain
* shared heap enhancement in AOT
* use alloca for func ctx shared heap cache value
* use correct alloca for func ctx shared heap cache value
* enable shared heap chain aot test and bug fix
* Fix a missing argument on 32bits platform, still has the shared heap chain iteration problem
* Fix shared heap chain iteration problem on 32bits platform
* fix AOT bulk memory bounds checks compliation issue
* fix AOT bulk memory bounds checks on 64 bits platform
* refactor aot memory check
* refactor AOT bulk memory bounds checks
* add more unit test for shared heap
* finished organizing unit test for shared heap and enable x86_32 for shared heap unit test
* cover a corner case for bulk memory overflow check
* try func call to replace shared heap chain traverse
* fix compilation error in JIT and potentially load nullptr
* add option for wamrc to enable single shared heap/multi shared heap, and update shared heap unit tests and sample
* cr suggestions: 1. check potiential underflow 2. refactor and use separate function for bulk memory and normal memroy 3. static assert 4. add more comments 5. remove unused code
2025-06-19 21:42:53 +08:00

47 lines
736 B
C

/*
* Copyright (C) 2024 Xiaomi Corporation. All rights reserved.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*/
#define NULL 0
extern void *
shared_heap_malloc(int size);
extern void
shared_heap_free(void *offset);
extern void *
test_addr_conv(void *ptr);
int
test()
{
int *ptr = NULL;
int *ptr2 = NULL;
ptr = (int *)shared_heap_malloc(4);
if (ptr == NULL) {
return 0;
}
ptr2 = test_addr_conv(ptr);
if (ptr2 != ptr) {
return 0;
}
shared_heap_free(ptr);
return 1;
}
int
test_preallocated(void *app_addr)
{
int *ptr = (int *)app_addr;
int *ptr2 = NULL;
ptr2 = test_addr_conv(ptr);
if (ptr2 != ptr) {
return 0;
}
return 1;
}