14 #include "cetlib/LibraryManager.h" 15 #include "cetlib_except/exception.h" 17 using cet::LibraryManager;
22 using std::regex_match;
27 string const& expected_symbol)
32 libs.getSymbolByPath(path, expected_symbol, sym);
36 cout <<
"... symbol value was zero: report this to ART core team\n";
40 cout <<
"... FAILED:\n" 45 cout <<
" ... FAILED: Loading threw an unidentified exception\n";
51 string const& expected_symbol)
53 static const regex system_service(
"libart_Framework_Services_System_[A-Za-z]+_service\\.so");
55 vector<string> libraries;
56 LibraryManager libs(type);
58 size_t numLibs = libs.getLoadableLibraries(libraries);
61 <<
" libraries of type " 63 <<
", list follows...\n";
66 it = libraries.begin(),
67 end = libraries.end();
71 if (regex_search(*it, system_service))
void checkLoadability(string const &type, string const &expected_symbol)
decltype(auto) constexpr end(T &&obj)
ADL-aware version of std::end.
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
void try_loading(LibraryManager &libs, string const &path, string const &expected_symbol)
cet::coded_exception< error, detail::translate > exception