summaryrefslogtreecommitdiffstats
path: root/src/util/testrealm.py
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2010-03-08 04:39:08 +0000
committerGreg Hudson <ghudson@mit.edu>2010-03-08 04:39:08 +0000
commit70c183862052b63be0ef3fef3f32081998c8b9e4 (patch)
tree1d0ec4f6867365e5e8689c1c4d49cbe607a4eb04 /src/util/testrealm.py
parentb076a2b5ddf94e2481a4fc79fecf9e7f4879b20d (diff)
downloadkrb5-70c183862052b63be0ef3fef3f32081998c8b9e4.tar.gz
krb5-70c183862052b63be0ef3fef3f32081998c8b9e4.tar.xz
krb5-70c183862052b63be0ef3fef3f32081998c8b9e4.zip
Add a "make testrealm" target using the Python test framework. As
part of this, expose the environments in K5Realm as attributes so that test scripts can modify them. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23794 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/util/testrealm.py')
-rw-r--r--src/util/testrealm.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/util/testrealm.py b/src/util/testrealm.py
new file mode 100644
index 000000000..826cb00b0
--- /dev/null
+++ b/src/util/testrealm.py
@@ -0,0 +1,69 @@
+# 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.
+
+# Invoked by the testrealm target in the top-level Makefile. Creates
+# a test realm and spawns a shell pointing at it, for convenience of
+# manual testing.
+
+from k5test import *
+
+# A list of directories containing programs in the build tree.
+progpaths = [
+ 'kdc',
+ os.path.join('kadmin', 'server'),
+ os.path.join('kadmin', 'cli'),
+ os.path.join('kadmin', 'dbutil'),
+ os.path.join('kadmin', 'ktutil'),
+ os.path.join('clients', 'kinit'),
+ os.path.join('clients', 'klist'),
+ os.path.join('clients', 'kdestroy'),
+ os.path.join('clients', 'kpasswd'),
+ 'slave'
+]
+
+# Add program directories to the beginning of PATH.
+def supplement_path(env):
+ # Construct prefixes; these will end in a trailing separator.
+ path_prefix = manpath_prefix = ''
+ for dir in progpaths:
+ path_prefix += os.path.join(buildtop, dir) + os.pathsep
+
+ # Assume PATH exists in env for simplicity.
+ env['PATH'] = path_prefix + env['PATH']
+
+realm = K5Realm()
+env = realm.env_master.copy()
+supplement_path(env)
+
+print
+print 'Realm files are in %s' % realm.testdir
+print 'KRB5_CONFIG is %s' % env['KRB5_CONFIG']
+print 'KRB5_KDC_PROFILE is %s' % env['KRB5_KDC_PROFILE']
+print 'KRB5CCNAME is %s' % env['KRB5CCNAME']
+print 'KRB5_KTNAME is %s' % env['KRB5_KTNAME']
+print 'KRB5RCACHEDIR is %s' % env['KRB5RCACHEDIR']
+print 'Password for user is %s' % password('user')
+print 'Password for admin is %s' % password('admin')
+print
+
+subprocess.call([os.getenv('SHELL')], env=env)
+success('Create test krb5 realm.')