dyld-832.7.1.tar.gz
[apple/dyld.git] / testing / test-cases / _dyld_get_prog_image_header.dtest / main.c
1 // BUILD: $CC foo.c -dynamiclib -o $BUILD_DIR/libfoo.dylib -install_name $RUN_DIR/libfoo.dylib
2 // BUILD: $CC main.c -o $BUILD_DIR/_dyld_get_prog_image_header.exe
3 // BUILD: $DYLD_ENV_VARS_ENABLE $BUILD_DIR/_dyld_get_prog_image_header.exe
4
5 // RUN: ./_dyld_get_prog_image_header.exe
6 // RUN: DYLD_INSERT_LIBRARIES=libfoo.dylib ./_dyld_get_prog_image_header.exe
7
8
9 #include <mach-o/dyld_priv.h>
10
11 #include "test_support.h"
12
13 int main(int argc, const char* argv[]) {
14 uint32_t i = 0;
15 const struct mach_header* mhA = NULL;
16 do {
17 mhA = _dyld_get_image_header(i++);
18 }
19 while (mhA->filetype != MH_EXECUTE);
20
21 const struct mach_header* mhB = _dyld_get_prog_image_header();
22 if ( mhA != mhB )
23 FAIL("Incorrect mach header address (%p)", mhA);
24
25 PASS("Success");
26 }