diff --git a/src/backend/file/test/.cvsignore b/src/backend/file/test/.cvsignore index 24fb26a6e5..addf269285 100644 --- a/src/backend/file/test/.cvsignore +++ b/src/backend/file/test/.cvsignore @@ -1,4 +1,5 @@ Makefile +test-date-converting test-dom-converters1 test-kvp-frames test-string-converters diff --git a/src/backend/file/test/Makefile.am b/src/backend/file/test/Makefile.am index 393413b910..00f0fd1a25 100644 --- a/src/backend/file/test/Makefile.am +++ b/src/backend/file/test/Makefile.am @@ -1,4 +1,5 @@ TESTS = \ + test-date-converting \ test-dom-converters1 \ test-kvp-frames \ test-load-example-account \ @@ -22,6 +23,7 @@ noinst_LTLIBRARIES = libgnc-test-file-stuff.la libgnc_test_file_stuff_la_SOURCES = test-file-stuff.c noinst_PROGRAMS = \ + test-date-converting \ test-dom-converters1 \ test-kvp-frames \ test-load-example-account \ diff --git a/src/backend/file/test/test-date-converting.c b/src/backend/file/test/test-date-converting.c new file mode 100644 index 0000000000..e1c39c2a19 --- /dev/null +++ b/src/backend/file/test/test-date-converting.c @@ -0,0 +1,67 @@ + +#include "config.h" + +#include "test-stuff.h" +#include "test-engine-stuff.h" +#include "test-file-stuff.h" + +#include + +#include "sixtp-utils.h" +#include "sixtp-dom-generators.h" + +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 %lld and %lld\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()); +}