RUNNER_ASSERT_MSG_BT(ret == 0, "setgroups() failed. " << strerror(error));
}
}
+
+std::string formatCstr(const char *cstr)
+{
+ if (!cstr)
+ return std::string("nullptr");
+ return std::string("\"") + cstr + "\"";
+}
#include <dpl/test/test_runner_multiprocess.h>
#include <privilege-control.h>
#include <sys/smack.h>
+#include <string>
#include "gdbbacktrace.h"
void setLabelForSelf(const int line, const char *label);
void add_process_group(const char* group_name);
void remove_process_group(const char* group_name);
+std::string formatCstr(const char *cstr);
#define RUNNER_TEST_SMACK(Proc) \
void Proc(); \
#files to compile
SET(CYNARA_TARGET_TEST_SOURCES
${PROJECT_SOURCE_DIR}/tests/cynara-tests/common/cynara_test_admin.cpp
+ ${PROJECT_SOURCE_DIR}/tests/cynara-tests/common/cynara_test_client.cpp
${PROJECT_SOURCE_DIR}/tests/cynara-tests/cynara-test.cpp
${PROJECT_SOURCE_DIR}/tests/cynara-tests/cynara_client.cpp
)
namespace
{
-std::string formatCstr(const char *cstr)
-{
- if (!cstr)
- return std::string("nullptr");
- return std::string("\"") + cstr + "\"";
-}
-
std::ostream& operator<<(std::ostream& os, const cynara_admin_policy *const *policies)
{
--- /dev/null
+#include <cynara_test_client.h>
+
+#include <tests_common.h>
+
+CynaraTestClient::CynaraTestClient()
+ : m_cynara(nullptr)
+{
+ int ret = cynara_initialize(&m_cynara, nullptr);
+ RUNNER_ASSERT_MSG_BT(ret == CYNARA_API_SUCCESS,
+ "cynara_initialize failed. ret: " << ret);
+ RUNNER_ASSERT_MSG_BT(m_cynara != nullptr, "cynara struct was not initialized");
+}
+
+CynaraTestClient::~CynaraTestClient()
+{
+ cynara_finish(m_cynara);
+}
+
+void CynaraTestClient::check(const char *client, const char *session,
+ const char *user, const char *privilege,
+ int expectedResult)
+{
+ int ret = cynara_check(m_cynara, client, session, user, privilege);
+ RUNNER_ASSERT_MSG_BT(ret == expectedResult,
+ "cynara_check returned wrong value: "
+ << ret << " != " << expectedResult << "."
+ << " client: " << formatCstr(client) << ","
+ << " session: " << formatCstr(session) << ","
+ << " user: " << formatCstr(user) << ","
+ << " privilege: " << formatCstr(privilege));
+}
--- /dev/null
+#ifndef CYNARA_TEST_CLIENT_H
+#define CYNARA_TEST_CLIENT_H
+
+#include <cynara-client.h>
+
+class CynaraTestClient
+{
+public:
+ CynaraTestClient();
+ virtual ~CynaraTestClient();
+
+ void check(const char *client, const char *session,
+ const char *user, const char *privilege,
+ int expectedResult);
+
+private:
+ struct cynara *m_cynara;
+};
+
+#endif // CYNARA_TEST_CLIENT_H