assertion(sock, pid);
}
-RUNNER_CHILD_TEST(security_manager_51a_get_id_by_socket)
-{
+void test_51a_get_id_by_socket(bool isHybrid) {
const char *const sm_app_id = "sm_test_51a_app";
const char *const sm_pkg_id = "sm_test_51a_pkg";
InstallRequest requestInst;
requestInst.setAppId(sm_app_id);
requestInst.setPkgId(sm_pkg_id);
+ if (isHybrid)
+ requestInst.setHybrid();
Api::install(requestInst);
- std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id);
+ std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id, isHybrid);
clientTestTemplate([&] (int sock, pid_t) {
std::string rcvPkgId, rcvAppId;
Api::getPkgIdBySocket(sock, &rcvPkgId, &rcvAppId);
RUNNER_ASSERT_MSG(rcvPkgId == sm_pkg_id, "pkgIds don't match ret = " << rcvPkgId
<< "; expected = " << sm_pkg_id);
- RUNNER_ASSERT_MSG(rcvAppId == sm_app_id, "appIds don't match ret = " << rcvAppId
- << "; expected = " << sm_app_id);
+ if (isHybrid)
+ RUNNER_ASSERT_MSG(rcvAppId == sm_app_id, "appIds don't match ret = " << rcvAppId
+ << "; expected = " << sm_app_id);
+ else
+ RUNNER_ASSERT_MSG(rcvAppId.empty(), "magically acquired appId from nonhybrid app");
}, "tcsm27a", smackLabel);
InstallRequest requestUninst;
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_51b_get_id_by_socket)
+RUNNER_CHILD_TEST(security_manager_51a_get_id_by_socket_hybrid)
+{
+ test_51a_get_id_by_socket(true);
+}
+
+RUNNER_CHILD_TEST(security_manager_51a_get_id_by_socket_nonhybrid)
+{
+ test_51a_get_id_by_socket(false);
+}
+
+RUNNER_CHILD_TEST(security_manager_51b_get_id_by_socket_bad_fd)
{
const char *const sm_app_id = "sm_test_51b_app";
const char *const sm_pkg_id = "sm_test_51b_pkg";
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_51c_get_id_by_socket)
+RUNNER_CHILD_TEST(security_manager_51c_get_id_by_socket_only_pkg)
{
const char *const sm_app_id = "sm_test_51c_app";
const char *const sm_pkg_id = "sm_test_51c_pkg";
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_51d_get_id_by_socket)
+RUNNER_CHILD_TEST(security_manager_51d_get_id_by_socket_only_appid)
{
const char *const sm_app_id = "sm_test_51d_app";
const char *const sm_pkg_id = "sm_test_51d_pkg";
InstallRequest requestInst;
requestInst.setAppId(sm_app_id);
requestInst.setPkgId(sm_pkg_id);
+ requestInst.setHybrid();
Api::install(requestInst);
- std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id);
+ std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id, true);
clientTestTemplate([&] (int sock, pid_t) {
std::string rcvAppId;
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_51e_get_id_by_socket)
+RUNNER_CHILD_TEST(security_manager_51e_get_id_by_socket_nulls)
{
const char *const sm_app_id = "sm_test_51e_app";
const char *const sm_pkg_id = "sm_test_51e_pkg";
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_52a_get_id_by_pid)
-{
+void test_52a_get_id_by_pid(bool isHybrid) {
const char *const sm_app_id = "sm_test_52a_app";
const char *const sm_pkg_id = "sm_test_52a_pkg";
InstallRequest requestInst;
requestInst.setAppId(sm_app_id);
requestInst.setPkgId(sm_pkg_id);
-
+ if (isHybrid)
+ requestInst.setHybrid();
Api::install(requestInst);
- std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id);
+ std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id, isHybrid);
clientTestTemplate([&] (int, pid_t pid) {
std::string rcvPkgId, rcvAppId;
Api::getPkgIdByPid(pid, &rcvPkgId, &rcvAppId);
RUNNER_ASSERT_MSG(rcvPkgId == sm_pkg_id, "pkgIds don't match ret = " << rcvPkgId
<< "; expected = " << sm_pkg_id);
- RUNNER_ASSERT_MSG(rcvAppId == sm_app_id, "appIds don't match ret = " << rcvAppId
- << "; expected = " << sm_app_id);
+ if (isHybrid)
+ RUNNER_ASSERT_MSG(rcvAppId == sm_app_id, "appIds don't match ret = " << rcvAppId
+ << "; expected = " << sm_app_id);
+ else
+ RUNNER_ASSERT_MSG(rcvAppId.empty(), "magically acquired appId from nonhybrid app");
}, "tcsm28a", smackLabel);
InstallRequest requestUninst;
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_52b_get_id_by_pid)
+RUNNER_CHILD_TEST(security_manager_52a_get_id_by_pid_hybrid)
+{
+ test_52a_get_id_by_pid(true);
+}
+
+RUNNER_CHILD_TEST(security_manager_52a_get_id_by_pid_nonhybrid)
+{
+ test_52a_get_id_by_pid(false);
+}
+
+RUNNER_CHILD_TEST(security_manager_52b_get_id_by_pid_bad_fd)
{
const char *const sm_app_id = "sm_test_52b_app";
const char *const sm_pkg_id = "sm_test_52b_pkg";
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_52c_get_id_by_pid)
+RUNNER_CHILD_TEST(security_manager_52c_get_id_by_pid_only_pkg)
{
const char *const sm_app_id = "sm_test_52c_app";
const char *const sm_pkg_id = "sm_test_52c_pkg";
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_52d_get_id_by_pid)
+RUNNER_CHILD_TEST(security_manager_52d_get_id_by_pid_only_appid)
{
const char *const sm_app_id = "sm_test_52d_app";
const char *const sm_pkg_id = "sm_test_52d_pkg";
InstallRequest requestInst;
requestInst.setAppId(sm_app_id);
requestInst.setPkgId(sm_pkg_id);
+ requestInst.setHybrid();
Api::install(requestInst);
- std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id);
+ std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id, true);
clientTestTemplate([&] (int, pid_t pid) {
std::string rcvAppId;
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_52e_get_id_by_pid)
+RUNNER_CHILD_TEST(security_manager_52e_get_id_by_pid_nulls)
{
const char *const sm_app_id = "sm_test_52e_app";
const char *const sm_pkg_id = "sm_test_52e_pkg";
Api::uninstall(requestUninst);
}
-RUNNER_CHILD_TEST(security_manager_53a_get_id_by_cynara_client)
-{
+void test_53a_get_id_by_cynara_client(bool isHybrid) {
const char *const sm_app_id = "sm_test_53a_app";
const char *const sm_pkg_id = "sm_test_53a_pkg";
InstallRequest requestInst;
requestInst.setAppId(sm_app_id);
requestInst.setPkgId(sm_pkg_id);
+ if (isHybrid)
+ requestInst.setHybrid();
Api::install(requestInst);
- std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id);
+ std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id, isHybrid);
clientTestTemplate([&] (int sock, pid_t) {
std::string rcvPkgId, rcvAppId;
Api::getPkgIdByCynaraClient(cynaraClient.get(), &rcvPkgId, &rcvAppId);
RUNNER_ASSERT_MSG(rcvPkgId == sm_pkg_id, "pkgIds don't match ret = " << rcvPkgId
<< "; expected = " << sm_pkg_id);
- RUNNER_ASSERT_MSG(rcvAppId == sm_app_id, "appIds don't match ret = " << rcvAppId
- << "; expected = " << sm_app_id);
+ if (isHybrid)
+ RUNNER_ASSERT_MSG(rcvAppId == sm_app_id, "appIds don't match ret = " << rcvAppId
+ << "; expected = " << sm_app_id);
}, "tcsmc53a", smackLabel);
InstallRequest requestUninst;
Api::uninstall(requestUninst);
}
+RUNNER_CHILD_TEST(security_manager_53a_get_id_by_cynara_client_hybrid)
+{
+ test_53a_get_id_by_cynara_client(true);
+}
+
+RUNNER_CHILD_TEST(security_manager_53a_get_id_by_cynara_client_nonhybrid)
+{
+ test_53a_get_id_by_cynara_client(false);
+}
+
RUNNER_CHILD_TEST(security_manager_53b_get_id_by_cynara_client_wrong_client)
{
InstallRequest requestInst;
requestInst.setAppId(sm_app_id);
requestInst.setPkgId(sm_pkg_id);
+ requestInst.setHybrid();
Api::install(requestInst);
- std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id);
+ std::string smackLabel = generateProcessLabel(sm_app_id, sm_pkg_id, true);
clientTestTemplate([&] (int sock, pid_t) {
std::string rcvAppId;