osquery-1/tests/integration/tables/deb_packages.cpp

57 lines
1.5 KiB
C++
Raw Normal View History

2018-08-27 16:21:26 +00:00
/**
* Copyright (c) 2014-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed in accordance with the terms specified in
* the LICENSE file found in the root directory of this source tree.
2018-08-27 16:21:26 +00:00
*/
// Sanity check integration test for deb_packages
// Spec file: specs/linux/deb_packages.table
#include <osquery/tests/integration/tables/helper.h>
#include <osquery/logger.h>
2018-08-27 16:21:26 +00:00
namespace osquery {
namespace table_tests {
2018-08-27 16:21:26 +00:00
class DebPackages : public testing::Test {
protected:
void SetUp() override {
setUpEnvironment();
}
};
TEST_F(DebPackages, test_sanity) {
QueryData rows = execute_query("select * from deb_packages");
if (rows.size() > 0) {
ValidationMap row_map = {{"name", NonEmptyString},
{"version", NonEmptyString},
{"source", NormalType},
{"size", IntType},
{"arch", NonEmptyString},
{"revision", NormalType},
{"status", NonEmptyString}};
2018-08-29 19:16:00 +00:00
validate_rows(rows, row_map);
auto all_packages = std::unordered_set<std::string>{};
for (const auto& row : rows) {
auto pckg_name = row.at("name");
all_packages.insert(pckg_name);
if (pckg_name == "dpkg") {
2019-11-01 14:36:42 +00:00
break;
}
}
ASSERT_EQ(all_packages.count("dpkg"), 1u);
} else {
LOG(WARNING) << "Empty results of query from 'deb_packages', assume there "
"is no dpkg in the system";
}
2018-08-27 16:21:26 +00:00
}
} // namespace table_tests
2018-08-27 16:21:26 +00:00
} // namespace osquery