summaryrefslogtreecommitdiffstats
path: root/src/lib/krb5
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1997-03-24 17:23:17 +0000
committerTheodore Tso <tytso@mit.edu>1997-03-24 17:23:17 +0000
commitb819da850761610623b47a216b2085f5e0e39c42 (patch)
treeca4c675f2288b7a829b0fc02d8067cf528cbe5bd /src/lib/krb5
parent79ec575b6b49781045aac86d77e03f35bdc50ca3 (diff)
downloadkrb5-b819da850761610623b47a216b2085f5e0e39c42.tar.gz
krb5-b819da850761610623b47a216b2085f5e0e39c42.tar.xz
krb5-b819da850761610623b47a216b2085f5e0e39c42.zip
t_ser.c: Clean up error reporting for krb5_init_context(). Also
report errors for each subtest, so we know which subtest failed. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10023 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5')
-rw-r--r--src/lib/krb5/krb/ChangeLog6
-rw-r--r--src/lib/krb5/krb/t_ser.c105
2 files changed, 80 insertions, 31 deletions
diff --git a/src/lib/krb5/krb/ChangeLog b/src/lib/krb5/krb/ChangeLog
index 85bd7473af..2573b959cd 100644
--- a/src/lib/krb5/krb/ChangeLog
+++ b/src/lib/krb5/krb/ChangeLog
@@ -1,3 +1,9 @@
+Mon Mar 24 12:21:38 1997 Theodore Ts'o <tytso@rsts-11.mit.edu>
+
+ * t_ser.c: Clean up error reporting for krb5_init_context(). Also
+ report errors for each subtest, so we know which subtest
+ failed.
+
Sat Feb 22 22:39:49 1997 Richard Basch <basch@lehman.com>
* Makefile.in: Use some of the new library list build rules in
diff --git a/src/lib/krb5/krb/t_ser.c b/src/lib/krb5/krb/t_ser.c
index 5ad2f951e4..f7b4cab38c 100644
--- a/src/lib/krb5/krb/t_ser.c
+++ b/src/lib/krb5/krb/t_ser.c
@@ -26,8 +26,11 @@
* t_ser.c - Test serialization.
*/
#include "k5-int.h"
+#include "com_err.h"
#include "auth_con.h"
+#include <ctype.h>
+
static const char stuff[]="You can't take a pointer to a function and convert \
it to a pointer to char; ANSI doesn't say it'll work, and in fact on the HPPA \
you can lose some bits of the function pointer, and get a pointer that you \
@@ -82,10 +85,13 @@ ser_data(verbose, msg, ctx, dtype)
krb5_pointer nctx;
krb5_octet *outrep, *ibuf, *outrep2;
size_t outlen, ilen, outlen2;
- int i, j;
/* Initialize context and initialize all Kerberos serializers */
- krb5_init_context(&ser_ctx);
+ if ((kret = krb5_init_context(&ser_ctx))) {
+ printf("Couldn't initialize krb5 library: %s\n",
+ error_message(kret));
+ exit(1);
+ }
krb5_ser_context_init(ser_ctx);
krb5_ser_db_context_init(ser_ctx);
krb5_ser_auth_context_init(ser_ctx);
@@ -111,7 +117,8 @@ ser_data(verbose, msg, ctx, dtype)
&ilen);
if (!kret) {
if (ilen)
- printf("%s: %d bytes left over after internalize\n", ilen);
+ printf("%s: %d bytes left over after internalize\n",
+ msg, ilen);
/* Now attempt to re-externalize it */
kret = krb5_externalize_data(ser_ctx, nctx, &outrep2, &outlen2);
if (!kret) {
@@ -408,7 +415,7 @@ ser_ccache_test(kcontext, verbose)
sprintf(ccname, "STDIO:temp_cc_%d", getpid());
sprintf(princname, "xxx%d/i%d@this.is.a.test",
getpid(), getpid());
- if (kret = krb5_cc_resolve(kcontext, ccname, &ccache))
+ if ((kret = krb5_cc_resolve(kcontext, ccname, &ccache)))
kret = krb5_cc_register(kcontext, &krb5_scc_ops, 1);
if (!kret &&
!(kret = krb5_cc_resolve(kcontext, ccname, &ccache)) &&
@@ -454,7 +461,7 @@ ser_keytab_test(kcontext, verbose)
(krb5_pointer) keytab, KV5M_KEYTAB)) &&
!(kret = krb5_kt_close(kcontext, keytab))) {
sprintf(ccname, "WRFILE:temp_kt_%d", getpid());
- if (kret = krb5_kt_resolve(kcontext, ccname, &keytab))
+ if ((kret = krb5_kt_resolve(kcontext, ccname, &keytab)))
kret = krb5_kt_register(kcontext, &krb5_ktf_writable_ops);
if (!kret &&
!(kret = krb5_kt_resolve(kcontext, ccname, &keytab)) &&
@@ -621,6 +628,7 @@ main(argc, argv)
int verbose;
int option;
extern char *optarg;
+ char ch_err;
kret = 0;
verbose = 0;
@@ -686,35 +694,70 @@ main(argc, argv)
do_xtest = 1;
break;
default:
- kret = EINVAL;
+ fprintf(stderr,
+ "%s: usage is %s [-acekprsxvACEKPRSX]\n",
+ argv[0], argv[0]);
+ exit(1);
break;
}
}
- if (!kret) {
- if (!(kret = krb5_init_context(&kcontext))) {
- if (!kret && do_xtest)
- kret = ser_kcontext_test(kcontext, verbose);
- if (!kret && do_atest)
- kret = ser_acontext_test(kcontext, verbose);
- if (!kret && do_ctest)
- kret = ser_ccache_test(kcontext, verbose);
- if (!kret && do_ktest)
- kret = ser_keytab_test(kcontext, verbose);
- if (!kret && do_rtest)
- kret = ser_rcache_test(kcontext, verbose);
- if (!kret && do_etest)
- kret = ser_eblock_test(kcontext, verbose);
- if (!kret && do_ptest)
- kret = ser_princ_test(kcontext, verbose);
- if (!kret && do_stest)
- kret = ser_cksum_test(kcontext, verbose);
- krb5_free_context(kcontext);
- }
+ if ((kret = krb5_init_context(&kcontext))) {
+ com_err(argv[0], kret, "while initializing krb5");
+ exit(1);
}
- else
- printf("%s: usage is %s [-acekprsxvACEKPRSX]\n", argv[0], argv[0]);
- if(kret && verbose) {
- com_err(argv[0], kret, "-- test failed ---");
+
+ if (do_xtest) {
+ ch_err = 'x';
+ kret = ser_kcontext_test(kcontext, verbose);
+ if (kret)
+ goto fail;
+ }
+ if (do_atest) {
+ ch_err = 'a';
+ kret = ser_acontext_test(kcontext, verbose);
+ if (kret)
+ goto fail;
+ }
+ if (do_ctest) {
+ ch_err = 'c';
+ kret = ser_ccache_test(kcontext, verbose);
+ if (kret)
+ goto fail;
+ }
+ if (do_ktest) {
+ ch_err = 'k';
+ kret = ser_keytab_test(kcontext, verbose);
+ if (kret)
+ goto fail;
+ }
+ if (do_rtest) {
+ ch_err = 'r';
+ kret = ser_rcache_test(kcontext, verbose);
+ if (kret)
+ goto fail;
+ }
+ if (do_etest) {
+ ch_err = 'e';
+ kret = ser_eblock_test(kcontext, verbose);
+ if (kret)
+ goto fail;
+ }
+ if (do_ptest) {
+ ch_err = 'p';
+ kret = ser_princ_test(kcontext, verbose);
+ if (kret)
+ goto fail;
+ }
+ if (do_stest) {
+ ch_err = 's';
+ kret = ser_cksum_test(kcontext, verbose);
+ if (kret)
+ goto fail;
}
- return((kret) ? 1 : 0);
+ krb5_free_context(kcontext);
+
+ exit(0);
+fail:
+ com_err(argv[0], kret, "--- test %cfailed", ch_err);
+ exit(1);
}