TEST(Ldd, BinSh) { Try<vector<ldcache::Entry>> cache = ldcache::parse(); ASSERT_SOME(cache); Try<hashset<string>> dependencies = ldd("/bin/sh", cache.get()); ASSERT_SOME(dependencies); EXPECT_FALSE(dependencies->contains("/bin/sh")); auto libc = std::find_if( dependencies->begin(), dependencies->end(), [](const string& dependency) { // On most Linux systems, libc would be in libc.so.6, but // checking the unversioned prefix is robust and is enough // to know that ldd() worked. string basename = Path(dependency).basename(); return strings::startsWith(basename, "libc.so"); }); EXPECT_TRUE(libc != dependencies->end()); }