From 836e96dc2e006b691d6a5d129003392dd583c8e1 Mon Sep 17 00:00:00 2001 From: Peter Verthez Date: Sun, 3 Nov 2002 13:18:56 +0000 Subject: [PATCH] New test (for textdomain corruption). --- t/intl.test | 3 ++ t/output/intl.ref | 1 + t/src/test_intl | 81 ++++++++++++++++++++++++++++++++++ t/src/testintl.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 195 insertions(+) create mode 100755 t/intl.test create mode 100644 t/output/intl.ref create mode 100755 t/src/test_intl create mode 100644 t/src/testintl.c diff --git a/t/intl.test b/t/intl.test new file mode 100755 index 0000000..1f6ce7d --- /dev/null +++ b/t/intl.test @@ -0,0 +1,3 @@ +#!/bin/sh + +$srcdir/src/test_intl intl 0 diff --git a/t/output/intl.ref b/t/output/intl.ref new file mode 100644 index 0000000..2fc8ba6 --- /dev/null +++ b/t/output/intl.ref @@ -0,0 +1 @@ +Test succeeded diff --git a/t/src/test_intl b/t/src/test_intl new file mode 100755 index 0000000..6706ad9 --- /dev/null +++ b/t/src/test_intl @@ -0,0 +1,81 @@ +#!/bin/sh +# $Id$ +# $Name$ + +options="-q" +extra_options= + +while [ $# -gt 0 ] +do + case "$1" in + -*) extra_options="$extra_options $1";; + *) break;; + esac + shift +done + +test_name=$1 +expected_result=$2 +if [ -z "$test_name" ] +then + test_name=check +fi +if [ -z "$expected_result" ] +then + expected_result=0 +fi + +# For use outside Makefile +if [ -z "$srcdir" ] +then + srcdir=. + options=$extra_options +else + options="$options $extra_options" +fi + +outfile=$test_name.out +logfile=check.out +reffile=$srcdir/output/$test_name.ref +options="$options -o $outfile" + +builddir=`pwd` +ltcmd="$builddir/../libtool --mode=execute -dlopen $builddir/../gedcom/libgedcom.la" +GCONV_PATH=.:$GCONV_PATH +export GCONV_PATH +ln -s $srcdir/../data/gedcom.enc . +ln -s $builddir/../data/new.ged . +ln -s $builddir/../iconv/glibc/.libs/ANSI_Z39.47.so . +ln -s $srcdir/../iconv/glibc/gconv-modules . +rm -f core +echo "======================================================">> $logfile +echo "Performing test '$test_name'" >> $logfile +$ltcmd $GEDCOM_TESTENV $builddir/src/testintl $options +result=$? +rm gedcom.enc +rm new.ged +rm ANSI_Z39.47.so +rm gconv-modules + +echo "Result is $result (expected: $expected_result)" >> $logfile +if [ "$result" -ne "$expected_result" ] +then + echo "Not the expected return value!" >> $logfile + exit 1 +else + if [ -r core ] + then + echo "Core file generated!" >> $logfile + exit 1 + else + if diff $outfile $reffile >/dev/null 2>>$logfile + then + echo "Output agrees with reference output" >> $logfile + rm $outfile + exit 0 + else + echo "Differences with reference output detected!" >> $logfile + exit 1 + fi + fi +fi diff --git a/t/src/testintl.c b/t/src/testintl.c new file mode 100644 index 0000000..95a324c --- /dev/null +++ b/t/src/testintl.c @@ -0,0 +1,110 @@ +/* Test program for the Gedcom library. + Copyright (C) 2001, 2002 The Genes Development Team + This file is part of the Gedcom parser library. + Contributed by Peter Verthez , 2001. + + The Gedcom parser library is free software; you can redistribute it + and/or modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The Gedcom parser library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the Gedcom parser library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* $Id$ */ +/* $Name$ */ + +#include "gedcom.h" +#include +#include + +#define MYTEXTDOMAIN "TESTINTL" + +void gedcom_message_handler(Gedcom_msg_type type, char *msg) +{ + if (type == MESSAGE) + output(1, "MESSAGE: "); + else if (type == WARNING) + output(1, "WARNING: "); + else if (type == ERROR) + output(1, "ERROR: "); + output(1, "%s\n", msg); +} + +void show_help () +{ + printf("gedcom-parse test program for libgedcom\n\n"); + printf("Usage: testintl [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 main(int argc, char* argv[]) +{ + int result; + char* outfilename = NULL; + + if (argc > 1) { + int i; + for (i=1; i