1if(NOT (EXISTS ${LIBC_SOURCE_DIR}/loader/linux/${LIBC_TARGET_ARCHITECTURE}))
2  message("Skipping loader integration tests for target architecture ${LIBC_TARGET_ARCHITECTURE}.")
3  return()
4endif()
5
6add_custom_target(libc-loader-tests)
7add_dependencies(libc-integration-tests libc-loader-tests)
8
9add_integration_test(
10  loader_args_test
11  SUITE libc-loader-tests
12  LOADER
13    libc.loader.linux.crt1
14  SRCS
15    args_test.cpp
16  ARGS
17    1 2 3
18  ENV
19    FRANCE=Paris
20    GERMANY=Berlin
21)
22
23add_integration_test(
24  loader_no_envp_test
25  SUITE libc-loader-tests
26  LOADER
27    libc.loader.linux.crt1
28  SRCS
29    main_without_envp.cpp
30)
31
32add_integration_test(
33  loader_no_args_test
34  SUITE libc-loader-tests
35  LOADER
36    libc.loader.linux.crt1
37  SRCS
38    main_without_args.cpp
39)
40
41if(NOT (${LIBC_TARGET_ARCHITECTURE} STREQUAL "x86_64"))
42  return()
43endif()
44
45add_integration_test(
46  loader_tls_test
47  SUITE libc-loader-tests
48  LOADER
49    libc.loader.linux.crt1
50  SRCS
51    tls_test.cpp
52  DEPENDS
53    libc.include.errno
54    libc.include.sys_mman
55    libc.src.errno.errno
56    libc.src.sys.mman.mmap
57)
58