X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=t%2Fsrc%2Fupdate.c;h=22e852c76278ed5d323deda0278062a3e01cbd1d;hb=d7e1e0c33172af1165d3059f67d51ec099fa4e02;hp=cc983768e6fef906efe39661fac83cd8d42b1642;hpb=26f6997a399d4e68ea4a9cea87c8c277fb06b709;p=gedcom-parse.git diff --git a/t/src/update.c b/t/src/update.c index cc98376..22e852c 100644 --- a/t/src/update.c +++ b/t/src/update.c @@ -23,6 +23,7 @@ #include "gedcom.h" #include "output.h" +#include "portability.h" #include #include @@ -40,16 +41,18 @@ void gedcom_message_handler(Gedcom_msg_type type, char *msg) void show_help () { printf("gedcom-parse test program for libgedcom\n\n"); - printf("Usage: updatetest [options] file\n"); + printf("Usage: updatetest [options]\n"); printf("Options:\n"); printf(" -h Show this help text\n"); printf(" -q No output to standard output\n"); + printf(" -o File to generate output to (def. testgedcom.out)\n"); } int test_xref_functions() { struct xref_value* xr; int result; + long int tmp; xr = gedcom_get_by_xref("@NOTHING_THERE@"); if (xr != NULL) @@ -80,7 +83,8 @@ int test_xref_functions() return 16; } - if ((int)xr->object != 1) { + tmp = void_ptr_to_int(xr->object); + if (tmp != 1) { output(1, "Not the correct cross-reference object\n"); return 17; } @@ -135,6 +139,7 @@ int test_xref_functions() int main(int argc, char* argv[]) { int result; + char* outfilename = NULL; if (argc > 1) { int i; @@ -146,6 +151,17 @@ int main(int argc, char* argv[]) else if (!strncmp(argv[i], "-q", 3)) { output_set_quiet(1); } + else if (!strncmp(argv[i], "-o", 3)) { + i++; + if (i < argc) { + outfilename = argv[i]; + } + else { + printf ("Missing output file name\n"); + show_help(); + exit(1); + } + } else { printf ("Unrecognized option: %s\n", argv[i]); show_help(); @@ -158,10 +174,11 @@ int main(int argc, char* argv[]) setlocale(LC_ALL, ""); gedcom_set_message_handler(gedcom_message_handler); - output_open(); + output_open(outfilename); result = gedcom_new_model(); - result |= test_xref_functions(); + if (result == 0) + result |= test_xref_functions(); if (result == 0) { output(1, "Test succeeded\n"); }