Check for timegm.

2006-03-23  Emmanuele Bassi  <ebassi@cvs.gnome.org>

	* configure.in: Check for timegm.

	* glib/gtimer.h:
	* glib/gtimer.c:
	* glib/glib.symbols:
	* docs/reference/glib/glib-sections.txt: Added g_time_val_to_iso8601
	and g_time_val_from_iso8601, to convert a GTimeVal to and from an
	ISO 8601 encoded date.

	* tests/testglib.c: Added test cases for g_time_val_to_iso8601()
	and g_time_val_from_iso8601() functions.
This commit is contained in:
Emmanuele Bassi
2006-03-23 02:54:29 +00:00
committed by Emmanuele Bassi
parent 0028b643bc
commit 6db9ec4070
9 changed files with 251 additions and 12 deletions

View File

@@ -475,7 +475,9 @@ main (int argc,
gint morenums[10] = { 8, 9, 7, 0, 3, 2, 5, 1, 4, 6};
gchar *string;
gint value = 120;
gint *pvalue=NULL;
gint *pvalue=NULL;
GTimeVal ref_date, date;
gchar *date_str;
gchar *mem[10000], *tmp_string = NULL, *tmp_string_2;
gint i, j;
@@ -1176,6 +1178,37 @@ main (int argc,
g_timer_destroy(timer);
g_timer_destroy(timer2);
#define REF_SEC_UTC 343737360
#define REF_STR_UTC "1980-11-22T10:36:00Z"
#define REF_STR_CEST "1980-11-22T12:36:00+02:00"
#define REF_STR_EST "1980-11-22T05:36:00-05:00"
g_print ("checking g_time_val_from_iso8601...\n");
ref_date.tv_sec = REF_SEC_UTC;
ref_date.tv_usec = 0;
g_assert (g_time_val_from_iso8601 (REF_STR_UTC, &date) != FALSE);
g_print ("\t=> UTC stamp = %ld (should be: %ld) (%ld off)\n", date.tv_sec, ref_date.tv_sec, date.tv_sec - ref_date.tv_sec);
g_assert (date.tv_sec == ref_date.tv_sec);
g_assert (g_time_val_from_iso8601 (REF_STR_CEST, &date) != FALSE);
g_print ("\t=> CEST stamp = %ld (should be: %ld) (%ld off)\n", date.tv_sec, ref_date.tv_sec, date.tv_sec - ref_date.tv_sec);
g_assert (date.tv_sec == ref_date.tv_sec);
g_assert (g_time_val_from_iso8601 (REF_STR_EST, &date) != FALSE);
g_print ("\t=> EST stamp = %ld (should be: %ld) (%ld off)\n", date.tv_sec, ref_date.tv_sec, date.tv_sec - ref_date.tv_sec);
g_assert (date.tv_sec == ref_date.tv_sec);
g_print ("ok\n");
g_print ("checking g_time_val_to_iso8601...\n");
ref_date.tv_sec = REF_SEC_UTC;
ref_date.tv_usec = 1;
date_str = g_time_val_to_iso8601 (&ref_date);
g_assert (date_str != NULL);
g_print ("\t=> date string = %s (should be: %s)\n", date_str, REF_STR_UTC);
g_assert (strcmp (date_str, REF_STR_UTC) == 0);
g_free (date_str);
g_print ("ok\n");
g_print ("checking g_ascii_strcasecmp...");
g_assert (g_ascii_strcasecmp ("FroboZZ", "frobozz") == 0);
g_assert (g_ascii_strcasecmp ("frobozz", "frobozz") == 0);