*
* @param[in] test_cases The array of tests.
*
- * @return
+ * @return a pointer to the array of test_cases[] that corresponds to the
+ * first test case where the expected error code doesn't match the real error
+ * code.
*/
const struct pam_testcase *pamtest_failed_case(struct pam_testcase *test_cases);
#else
_pamtest_failed_case(test_cases, sizeof(test_cases) / sizeof(test_cases[0]))
#endif
+/**
+ * @brief return a string representation of libpamtest error code.
+ *
+ * @param[in] perr libpamtest error code
+ *
+ * @return String representation of the perr argument
+ */
+const char *pamtest_strerror(enum pamtest_err perr);
+
/**
* @brief This frees the string array returned by the PAMTEST_GETENVLIST test.
*
return NULL;
}
+const char *pamtest_strerror(enum pamtest_err perr)
+{
+ switch (perr) {
+ case PAMTEST_ERR_OK:
+ return "Success";
+ case PAMTEST_ERR_START:
+ return "pam_start failed()";
+ case PAMTEST_ERR_CASE:
+ return "Unexpected testcase result";
+ case PAMTEST_ERR_OP:
+ return "Could not run a test case";
+ case PAMTEST_ERR_END:
+ return "pam_end failed()";
+ case PAMTEST_ERR_KEEPHANDLE:
+ /* Fallthrough */
+ case PAMTEST_ERR_INTERNAL:
+ return "Internal libpamtest error";
+ }
+
+ return "Unknown";
+}
+
struct pamtest_conv_ctx {
struct pamtest_conv_data *data;
vsyslog_test_fn(test_ctx->ph, LOG_INFO, "This is pam_wrapper test\n");
}
+static void test_libpamtest_strerror(void **state)
+{
+ const char *s;
+
+ (void) state; /* unused */
+
+ s = pamtest_strerror(PAMTEST_ERR_OK);
+ assert_non_null(s);
+
+ s = pamtest_strerror(PAMTEST_ERR_START);
+ assert_non_null(s);
+
+ s = pamtest_strerror(PAMTEST_ERR_CASE);
+ assert_non_null(s);
+
+ s = pamtest_strerror(PAMTEST_ERR_OP);
+ assert_non_null(s);
+
+ s = pamtest_strerror(PAMTEST_ERR_END);
+ assert_non_null(s);
+
+ s = pamtest_strerror(PAMTEST_ERR_KEEPHANDLE);
+ assert_non_null(s);
+
+ s = pamtest_strerror(PAMTEST_ERR_INTERNAL);
+ assert_non_null(s);
+}
+
#define test_setenv(env) setenv(env, "test_"env, 1)
#define test_getenv(envlist, key) do { \
cmocka_unit_test_setup_teardown(test_libpamtest_get_failed_test,
setup_passdb,
teardown_passdb),
+ cmocka_unit_test(test_libpamtest_strerror),
cmocka_unit_test(test_get_set),
};