Пример #1
0
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());
}