From 6e368f7291ffa7adea469a718b939f7966d72b83 Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Wed, 29 Aug 2007 20:16:03 +0000 Subject: [PATCH] test program build problem Split out the "standalone" test code from trval.c, so we produce trval.o only once, instead of twice with different compilation flags. One case generated the "trval" program directly, but produced and deleted trval.o as an intermediate step in the compiler, which messes things up if make thinks it's already built trval.o for another test program. Make the standalone test into t_trval. Build problem reported by Will Fiveash of Sun, about ten minutes ago. ticket: new git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19893 dc483132-0cff-0310-8789-dd5450dbe970 --- src/tests/asn.1/Makefile.in | 11 ++-- src/tests/asn.1/t_trval.c | 107 ++++++++++++++++++++++++++++++++++++ src/tests/asn.1/trval.c | 73 ------------------------ 3 files changed, 113 insertions(+), 78 deletions(-) create mode 100644 src/tests/asn.1/t_trval.c diff --git a/src/tests/asn.1/Makefile.in b/src/tests/asn.1/Makefile.in index a4189cc2d..abf40f4ea 100644 --- a/src/tests/asn.1/Makefile.in +++ b/src/tests/asn.1/Makefile.in @@ -9,9 +9,9 @@ RUN_SETUP = @KRB5_RUN_ENV@ SRCS= $(srcdir)/krb5_encode_test.c $(srcdir)/krb5_encode_test.c \ $(srcdir)/ktest.c $(srcdir)/ktest_equal.c $(srcdir)/utility.c \ - $(srcdir)/trval.c + $(srcdir)/trval.c $(srcdir)/t_trval.c -all:: krb5_encode_test krb5_decode_test trval +all:: krb5_encode_test krb5_decode_test t_trval LOCALINCLUDES = -I$(srcdir)/../../lib/krb5/asn.1 @@ -25,8 +25,8 @@ DECOBJS = krb5_decode_test.o ktest.o ktest_equal.o utility.o krb5_decode_test: $(DECOBJS) $(KRB5_BASE_DEPLIBS) $(CC_LINK) -o krb5_decode_test $(DECOBJS) $(KRB5_BASE_LIBS) -trval: $(srcdir)/trval.c - $(CC) -o trval $(ALL_CFLAGS) -DSTANDALONE $(srcdir)/trval.c +t_trval: t_trval.o + $(CC) -o t_trval $(ALL_CFLAGS) t_trval.o check:: krb5_decode_test krb5_encode_test KRB5_CONFIG=$(SRCTOP)/config-files/krb5.conf ; \ @@ -46,7 +46,7 @@ check:: krb5_decode_test krb5_encode_test install:: clean:: - rm -f *~ *.o krb5_encode_test krb5_decode_test test.out trval + rm -f *~ *.o krb5_encode_test krb5_decode_test test.out trval t_trval ################ Dependencies ################ @@ -104,3 +104,4 @@ $(OUTPRE)utility.$(OBJEXT): $(BUILDTOP)/include/autoconf.h \ $(SRCTOP)/lib/krb5/asn.1/asn1buf.h $(SRCTOP)/lib/krb5/asn.1/krbasn1.h \ utility.c utility.h $(OUTPRE)trval.$(OBJEXT): trval.c +$(OUTPRE)t_trval.$(OBJEXT): t_trval.c trval.c diff --git a/src/tests/asn.1/t_trval.c b/src/tests/asn.1/t_trval.c new file mode 100644 index 000000000..2c948fc8e --- /dev/null +++ b/src/tests/asn.1/t_trval.c @@ -0,0 +1,107 @@ +/* + * Copyright (C) 1992,1993 Trusted Information Systems, Inc. + * + * Permission to include this software in the Kerberos V5 distribution + * was graciously provided by Trusted Information Systems. + * + * Trusted Information Systems makes no representation about the + * suitability of this software for any purpose. It is provided + * "as is" without express or implied warranty. + * + * Copyright (C) 1994 Massachusetts Institute of Technology + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + */ + +/* Split out from "#ifdef STANDALONE" code previously in trval.c, so + that trval.o could be linked into other tests too without the + -DSTANDALONE code. */ +#include "trval.c" + +static void usage() +{ + fprintf(stderr, "Usage: trval [--types] [--krb5] [--krb5decode] [--hex] [-notypebytes] [file]\n"); + exit(1); +} + +/* + * Returns true if the option was selected. Allow "-option" and + * "--option" syntax, since we used to accept only "-option" + */ +static +int check_option(word, option) + char *word; + char *option; +{ + if (word[0] != '-') + return 0; + if (word[1] == '-') + word++; + if (strcmp(word+1, option)) + return 0; + return 1; +} + +int main(argc, argv) + int argc; + char **argv; +{ + int optflg = 1; + FILE *fp; + int r = 0; + + while (--argc > 0) { + argv++; + if (optflg && *(argv)[0] == '-') { + if (check_option(*argv, "help")) + usage(); + else if (check_option(*argv, "types")) + print_types = 1; + else if (check_option(*argv, "notypes")) + print_types = 0; + else if (check_option(*argv, "krb5")) + print_krb5_types = 1; + else if (check_option(*argv, "hex")) + do_hex = 1; + else if (check_option(*argv, "notypebytes")) + print_id_and_len = 0; + else if (check_option(*argv, "krb5decode")) { + print_id_and_len = 0; + print_krb5_types = 1; + print_types = 1; + } else { + fprintf(stderr,"trval: unknown option: %s\n", *argv); + usage(); + } + } else { + optflg = 0; + if ((fp = fopen(*argv,"r")) == NULL) { + fprintf(stderr,"trval: unable to open %s\n", *argv); + continue; + } + r = trval(fp, stdout); + fclose(fp); + } + } + if (optflg) r = trval(stdin, stdout); + + exit(r); +} diff --git a/src/tests/asn.1/trval.c b/src/tests/asn.1/trval.c index fc18bc0e7..4506a3f50 100644 --- a/src/tests/asn.1/trval.c +++ b/src/tests/asn.1/trval.c @@ -119,79 +119,6 @@ int trval2 (FILE *, unsigned char *, int, int, int *); /****************************************************************************/ -#ifdef STANDALONE - -static void usage() -{ - fprintf(stderr, "Usage: trval [--types] [--krb5] [--krb5decode] [--hex] [-notypebytes] [file]\n"); - exit(1); -} - -/* - * Returns true if the option was selected. Allow "-option" and - * "--option" syntax, since we used to accept only "-option" - */ -static -int check_option(word, option) - char *word; - char *option; -{ - if (word[0] != '-') - return 0; - if (word[1] == '-') - word++; - if (strcmp(word+1, option)) - return 0; - return 1; -} - -int main(argc, argv) - int argc; - char **argv; -{ - int optflg = 1; - FILE *fp; - int r = 0; - - while (--argc > 0) { - argv++; - if (optflg && *(argv)[0] == '-') { - if (check_option(*argv, "help")) - usage(); - else if (check_option(*argv, "types")) - print_types = 1; - else if (check_option(*argv, "notypes")) - print_types = 0; - else if (check_option(*argv, "krb5")) - print_krb5_types = 1; - else if (check_option(*argv, "hex")) - do_hex = 1; - else if (check_option(*argv, "notypebytes")) - print_id_and_len = 0; - else if (check_option(*argv, "krb5decode")) { - print_id_and_len = 0; - print_krb5_types = 1; - print_types = 1; - } else { - fprintf(stderr,"trval: unknown option: %s\n", *argv); - usage(); - } - } else { - optflg = 0; - if ((fp = fopen(*argv,"r")) == NULL) { - fprintf(stderr,"trval: unable to open %s\n", *argv); - continue; - } - r = trval(fp, stdout); - fclose(fp); - } - } - if (optflg) r = trval(stdin, stdout); - - exit(r); -} -#endif - static int convert_nibble(int ch) { if (isdigit(ch)) -- 2.26.2