ATF_TC_BODY(no_memory_twice, tc) { { atf_error_t err = atf_no_memory_error(); ATF_REQUIRE(atf_error_is(err, "no_memory")); ATF_REQUIRE(atf_error_data(err) == NULL); atf_error_free(err); } { atf_error_t err = atf_no_memory_error(); ATF_REQUIRE(atf_error_is(err, "no_memory")); ATF_REQUIRE(atf_error_data(err) == NULL); atf_error_free(err); } }
ATF_TC_BODY(error_new, tc) { atf_error_t err; int data; err = atf_error_new("test_error", NULL, 0, NULL); ATF_REQUIRE(atf_error_is(err, "test_error")); ATF_REQUIRE(!atf_error_is(err, "unknown_error")); ATF_REQUIRE(atf_error_data(err) == NULL); atf_error_free(err); data = 5; err = atf_error_new("test_data_error", &data, sizeof(data), NULL); ATF_REQUIRE(atf_error_is(err, "test_data_error")); ATF_REQUIRE(!atf_error_is(err, "unknown_error")); ATF_REQUIRE(atf_error_data(err) != NULL); ATF_REQUIRE_EQ(*((const int *)atf_error_data(err)), 5); atf_error_free(err); }
const char * atf_libc_error_msg(const atf_error_t err) { const struct atf_libc_error_data *data; PRE(atf_error_is(err, "libc")); data = atf_error_data(err); return data->m_what; }
int atf_libc_error_code(const atf_error_t err) { const struct atf_libc_error_data *data; PRE(atf_error_is(err, "libc")); data = atf_error_data(err); return data->m_errno; }
static void libc_format(const atf_error_t err, char *buf, size_t buflen) { const atf_libc_error_data_t *data; PRE(atf_error_is(err, "libc")); data = atf_error_data(err); snprintf(buf, buflen, "%s: %s", data->m_what, strerror(data->m_errno)); }
static void test_format(const atf_error_t err, char *buf, size_t buflen) { const test_error_data_t* data; PRE(atf_error_is(err, "test")); data = static_cast< const test_error_data_t * >(atf_error_data(err)); snprintf(buf, buflen, "Message: %s", data->m_msg); }
static void unknown_type_format(const atf_error_t err, char *buf, size_t buflen) { const unknown_type_error_data_t *data; PRE(atf_error_is(err, "unknown_type")); data = atf_error_data(err); snprintf(buf, buflen, "Unknown file type %d of %s", data->m_type, data->m_path); }
ATF_TC_BODY(error_new_wo_memory, tc) { atf_error_t err; void *invalid; invalid = (void *)1; err = atf_error_new("test_error", invalid, SIZE_MAX, NULL); ATF_REQUIRE(atf_error_is(err, "no_memory")); ATF_REQUIRE(atf_error_data(err) == NULL); atf_error_free(err); }
static void invalid_umask_format(const atf_error_t err, char *buf, size_t buflen) { const invalid_umask_error_data_t *data; PRE(atf_error_is(err, "invalid_umask")); data = atf_error_data(err); snprintf(buf, buflen, "Could not create the temporary %s %s because " "it will not have enough access rights due to the current " "umask %05o", stat_type_to_string(data->m_type), data->m_path, (unsigned int)data->m_umask); }