int main (int argc, char** argv) { int i; for (i = 0; i < 20; i++) { Timespec* spec1; Timespec spec2; gchar* sec_str; gchar* nsec_str; spec1 = get_random_timespec (); sec_str = timespec_sec_to_string (spec1); nsec_str = timespec_nsec_to_string (spec1); if (!string_to_timespec_secs (sec_str, &spec2)) { failure_args ("string_to_timespec_secs", __FILE__, __LINE__, "string is %s", sec_str); } else if (!string_to_timespec_nsecs (nsec_str, &spec2)) { failure_args ("string_to_timespec_nsecs", __FILE__, __LINE__, "string is %s", nsec_str); } else if (spec1->tv_sec != spec2.tv_sec) { failure_args ("timespec_secs", __FILE__, __LINE__, "not equal ints are %" G_GINT64_FORMAT " and %" G_GINT64_FORMAT "\n", spec1->tv_sec, spec2.tv_sec); } else if (spec1->tv_nsec != spec2.tv_nsec) { failure_args ("timespec_nsecs", __FILE__, __LINE__, "not equal ints are %ld and %ld\n", spec1->tv_nsec, spec2.tv_nsec); } else { success ("timespec"); } g_free (spec1); g_free (sec_str); g_free (nsec_str); } print_test_results (); exit (get_rv ()); }
bool generic_timespec_nsecs_end_handler(gpointer data_for_children, GSList *data_from_children, GSList *sibling_data, gpointer parent_data, gpointer global_data, gpointer *result, const gchar *tag) { gchar *txt = NULL; TimespecParseInfo *info = (TimespecParseInfo *) parent_data; bool ok; g_return_val_if_fail(parent_data, FALSE); txt = concatenate_child_result_chars(data_from_children); g_return_val_if_fail(txt, FALSE); ok = string_to_timespec_nsecs(txt, &(info->ts)); g_free(txt); g_return_val_if_fail(ok, FALSE); info->ns_block_count++; return(TRUE); }