svn rev #24376: trunk/src/ plugins/ plugins/kadm5_hook/ plugins/kadm5_hook/test/ ...
hartmans@MIT.EDU
hartmans at MIT.EDU
Wed Sep 29 17:29:21 EDT 2010
http://src.mit.edu/fisheye/changelog/krb5/?cs=24376
Commit By: hartmans
Log Message:
Automated tests for kadm5_hook plugin
Include a k5test Python test and test plugin for the kadm5_hook interface.
Changed Files:
U trunk/src/configure.in
A trunk/src/plugins/kadm5_hook/
A trunk/src/plugins/kadm5_hook/test/
A trunk/src/plugins/kadm5_hook/test/Makefile.in
A trunk/src/plugins/kadm5_hook/test/deps
A trunk/src/plugins/kadm5_hook/test/kadm5_hook_test.exports
A trunk/src/plugins/kadm5_hook/test/main.c
U trunk/src/tests/Makefile.in
A trunk/src/tests/t_kadm5_hook.py
Modified: trunk/src/configure.in
===================================================================
--- trunk/src/configure.in 2010-09-29 21:29:14 UTC (rev 24375)
+++ trunk/src/configure.in 2010-09-29 21:29:20 UTC (rev 24376)
@@ -1105,6 +1105,7 @@
kdc slave config-files gen-manpages include
plugins/locate/python
+ plugins/kadm5_hook/test
plugins/kdb/db2
plugins/kdb/db2/libdb2
plugins/kdb/db2/libdb2/hash
Copied: trunk/src/plugins/kadm5_hook/test/Makefile.in (from rev 24375, trunk/src/plugins/preauth/wpse/Makefile.in)
===================================================================
--- trunk/src/plugins/kadm5_hook/test/Makefile.in (rev 0)
+++ trunk/src/plugins/kadm5_hook/test/Makefile.in 2010-09-29 21:29:20 UTC (rev 24376)
@@ -0,0 +1,37 @@
+mydir=plugins/kadm5_hook/test
+BUILDTOP=$(REL)..$(S)..$(S)..
+KRB5_RUN_ENV = @KRB5_RUN_ENV@
+KRB5_CONFIG_SETUP = KRB5_CONFIG=$(top_srcdir)/config-files/krb5.conf ; export KRB5_CONFIG ;
+PROG_LIBPATH=-L$(TOPLIBD)
+PROG_RPATH=$(KRB5_LIBDIR)
+DEFS=@DEFS@
+
+LOCALINCLUDES = -I../../../include/krb5 -I.
+
+LIBBASE=kadm5_hook_test
+LIBMAJOR=0
+LIBMINOR=0
+SO_EXT=.so
+RELDIR=../plugins/kadm5_hook/test
+# Depends on libk5crypto and libkrb5
+SHLIB_EXPDEPS = \
+ $(TOPLIBD)/libk5crypto$(SHLIBEXT) \
+ $(TOPLIBD)/libkrb5$(SHLIBEXT)
+SHLIB_EXPLIBS= -lkrb5 -lcom_err -lk5crypto $(SUPPORT_LIB) $(LIBS)
+
+SHLIB_DIRS=-L$(TOPLIBD)
+SHLIB_RDIRS=$(KRB5_LIBDIR)
+STOBJLISTS=OBJS.ST
+STLIBOBJS=main.o
+
+SRCS= $(srcdir)/main.c
+
+all-unix:: all-liblinks
+install-unix::
+clean-unix:: clean-libs clean-libobjs
+
+clean::
+ $(RM) lib$(LIBBASE)$(SO_EXT)
+
+ at libnover_frag@
+ at libobj_frag@
Copied: trunk/src/plugins/kadm5_hook/test/deps (from rev 24375, trunk/src/ccapi/test/deps)
===================================================================
Added: trunk/src/plugins/kadm5_hook/test/kadm5_hook_test.exports
===================================================================
--- trunk/src/plugins/kadm5_hook/test/kadm5_hook_test.exports (rev 0)
+++ trunk/src/plugins/kadm5_hook/test/kadm5_hook_test.exports 2010-09-29 21:29:20 UTC (rev 24376)
@@ -0,0 +1 @@
+kadm5_hook_test_initvt
Added: trunk/src/plugins/kadm5_hook/test/main.c
===================================================================
--- trunk/src/plugins/kadm5_hook/test/main.c (rev 0)
+++ trunk/src/plugins/kadm5_hook/test/main.c 2010-09-29 21:29:20 UTC (rev 24376)
@@ -0,0 +1,105 @@
+/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
+/*
+ * plugins/kadm5_hook/test/main.c
+ *
+ * Copyright (C) 2010 by the Massachusetts Institute of Technology.
+ * All rights reserved.
+ *
+ * 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.
+ *
+ */
+
+
+/**
+ * @file plugins/kadm5_hook/test/main.c
+ *
+ * This is a test kadm5_hook plugin. If enabled, it will print when kadm5_hook
+ * calls are made.
+ */
+
+#include <krb5/krb5.h>
+#include <krb5/kadm5_hook_plugin.h>
+#include <stdio.h>
+#include <assert.h>
+
+static void
+log_call(krb5_context context,
+ const char * function,
+ int stage,
+ krb5_principal princ)
+{
+ char *unparsed = NULL;
+ krb5_error_code ret;
+ ret = krb5_unparse_name(context, princ, &unparsed);
+ assert(ret == 0);
+ printf("%s: stage %s principal %s\n",
+ function,
+ (stage == KADM5_HOOK_STAGE_PRECOMMIT)? "precommit"
+ :"postcommit",
+ unparsed);
+ if (unparsed)
+ krb5_free_unparsed_name(context, unparsed);
+}
+
+static kadm5_ret_t
+chpass(krb5_context context,
+ kadm5_hook_modinfo *modinfo,
+ int stage,
+ krb5_principal princ, krb5_boolean keepold,
+ int n_ks_tuple,
+ krb5_key_salt_tuple *ks_tuple,
+ const char *newpass)
+{
+ log_call(context, "chpass", stage, princ);
+ return 0;
+}
+
+
+static kadm5_ret_t
+create(krb5_context context,
+ kadm5_hook_modinfo *modinfo,
+ int stage,
+ kadm5_principal_ent_t princ, long mask,
+ int n_ks_tuple,
+ krb5_key_salt_tuple *ks_tuple,
+ const char *newpass)
+{
+ log_call(context, "create", stage, princ->principal);
+ return 0;
+}
+
+
+krb5_error_code
+kadm5_hook_test_initvt(krb5_context context, int maj_ver, int min_ver,
+ krb5_plugin_vtable vtable);
+
+krb5_error_code
+kadm5_hook_test_initvt(krb5_context context, int maj_ver, int min_ver,
+ krb5_plugin_vtable vtable)
+{
+ kadm5_hook_vftable_1 *vt = (kadm5_hook_vftable_1 *) vtable;
+ if (maj_ver != 1)
+ return KRB5_PLUGIN_VER_NOTSUPP;
+
+ vt->name = "test";
+ vt->chpass = chpass;
+ vt->create = create;
+ return 0;
+}
Modified: trunk/src/tests/Makefile.in
===================================================================
--- trunk/src/tests/Makefile.in 2010-09-29 21:29:14 UTC (rev 24375)
+++ trunk/src/tests/Makefile.in 2010-09-29 21:29:20 UTC (rev 24376)
@@ -64,7 +64,9 @@
$(RUNPYTEST) $(srcdir)/t_general.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_anonpkinit.py $(PYTESTFLAGS)
$(RUNPYTEST) $(srcdir)/t_lockout.py $(PYTESTFLAGS)
+ $(RUNPYTEST) $(srcdir)/t_kadm5_hook.py $(PYTESTFLAGS)
+
clean::
$(RM) kdc.conf
Added: trunk/src/tests/t_kadm5_hook.py
===================================================================
--- trunk/src/tests/t_kadm5_hook.py (rev 0)
+++ trunk/src/tests/t_kadm5_hook.py 2010-09-29 21:29:20 UTC (rev 24376)
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+from k5test import *
+plugin = os.path.join(buildtop, "plugins", "kadm5_hook", "test", "kadm5_hook_test.so")
+
+hook_krb5_conf = {
+ 'all' : {
+ "plugins" : {
+ "kadm5_hook": {
+ "module": "test:"+plugin
+ }
+ }
+ }
+ }
+
+realm = K5Realm(krb5_conf=hook_krb5_conf, create_user=False,
+ create_host=False)
+output = realm.run_kadminl ('addprinc -randkey test')
+if "create: stage precommit" not in output:
+ fail('kadm5_hook test output not found')
+
+
+
+success('kadm5_hook')
More information about the cvs-krb5
mailing list