From 50fcf52f0468f81316ed5d40f09602e2e3f49e36 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Wed, 4 Jul 2007 03:24:48 +0000 Subject: 2007-07-02 +#include + +using namespace qpid::sys; +typedef void (*CallMe)(int*); + +BOOST_AUTO_TEST_CASE(testShlib) { + Shlib sh(".libs/libshlibtest.so"); + // Double cast to avoid ISO warning. + CallMe callMe=sh.getSymbol("callMe"); + BOOST_REQUIRE(callMe != 0); + int unloaded=0; + callMe(&unloaded); + sh.unload(); + BOOST_CHECK_EQUAL(42, unloaded); + try { + sh.getSymbol("callMe"); + BOOST_FAIL("Expected exception"); + } + catch (...) {} +} + +BOOST_AUTO_TEST_CASE(testAutoShlib) { + int unloaded = 0; + { + AutoShlib sh(".libs/libshlibtest.so"); + CallMe callMe=sh.getSymbol("callMe"); + BOOST_REQUIRE(callMe != 0); + callMe(&unloaded); + } + BOOST_CHECK_EQUAL(42, unloaded); +} + -- cgit v1.2.1