TestDlOpen.cpp 684 B

12345678910111213141516171819202122232425
  1. /*
  2. * Copyright (c) 2021, Rodrigo Tobar <rtobarc@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibDl/dlfcn.h>
  7. #include <LibTest/TestCase.h>
  8. TEST_CASE(test_dlopen)
  9. {
  10. auto liba = dlopen("/usr/Tests/LibELF/libDynlibA.so", 0);
  11. EXPECT_NE(liba, nullptr);
  12. auto libb = dlopen("/usr/Tests/LibELF/libDynlibB.so", 0);
  13. EXPECT_NE(libb, nullptr);
  14. typedef int (*dynlib_func_t)();
  15. dynlib_func_t func_a = (dynlib_func_t)dlsym(liba, "dynliba_function");
  16. EXPECT_NE(func_a, nullptr);
  17. EXPECT_EQ(0, func_a());
  18. dynlib_func_t func_b = (dynlib_func_t)dlsym(libb, "dynlibb_function");
  19. EXPECT_NE(func_b, nullptr);
  20. EXPECT_EQ(0, func_b());
  21. }