diff options
-rw-r--r-- | lib/ZInit.c | 8 | ||||
-rwxr-xr-x | lib/zephyr_tests.py | 24 | ||||
-rw-r--r-- | lib/zephyr_tests.txt | 11 |
3 files changed, 36 insertions, 7 deletions
diff --git a/lib/ZInit.c b/lib/ZInit.c index 42ef2ad..d37ba04 100644 --- a/lib/ZInit.c +++ b/lib/ZInit.c @@ -38,6 +38,14 @@ static const char rcsid_ZInitialize_c[] = static int z_get_host_realm_replacement(char *, char ***); #endif +#if defined(HAVE_KRB5) +int Zauthtype = 5; +#elif defined(HAVE_KRB4) +int Zauthtype = 4; +#else +int Zauthtype = 0; +#endif + Code_t ZInitialize(void) { diff --git a/lib/zephyr_tests.py b/lib/zephyr_tests.py index 2795ba3..041c2de 100755 --- a/lib/zephyr_tests.py +++ b/lib/zephyr_tests.py @@ -332,6 +332,9 @@ class libZephyr(object): library_path = ctypes.util.find_library("zephyr") self._lib = ctypes.cdll.LoadLibrary(library_path) + # grab the Zauthtype variable + self.Zauthtype = ctypes.c_int.in_dll(self._lib, 'Zauthtype').value + # generic bindings? for funcname in self.testable_funcs: setattr(self, funcname, getattr(self._lib, funcname)) @@ -427,8 +430,12 @@ class ZephyrTestSuite(TestSuite): print "fd", self._libzephyr.ZGetFD() realm = self._libzephyr.ZGetRealm() print "realm", realm - if not realm or realm == "local-realm": + if not realm: + raise TestFailure("empty realm %s" % realm) + if self._libzephyr.Zauthtype and realm == 'local-realm': raise TestFailure("useless realm %s" % realm) + if self._libzephyr.Zauthtype == 0 and realm != 'local-realm': + raise TestFailure("wrong realm %s (should be local-realm)" % realm) print self._libzephyr.ZGetSender() def test_notices(self): @@ -470,11 +477,20 @@ class ZephyrTestSuite(TestSuite): assert not self._libzephyr.ZCompareUID(notice1.z_uid, notice2.z_uid), "distinct notices don't compare as distinct" # ctypes_pprint(notice1.z_uid) + def test_zauthtype(self): + """Make sure Zauthtype is an acceptable value""" + assert self._libzephyr.Zauthtype in (0, 4, 5) + def test_z_expand_realm(self): """test ZExpandRealm""" - assert self._libzephyr.ZExpandRealm("") == "" - assert self._libzephyr.ZExpandRealm("localhost") == "" - assert self._libzephyr.ZExpandRealm("bitsy.mit.edu") == "ATHENA.MIT.EDU" + if self._libzephyr.Zauthtype: + assert self._libzephyr.ZExpandRealm("") == "" + assert self._libzephyr.ZExpandRealm("localhost") == "" + assert self._libzephyr.ZExpandRealm("bitsy.mit.edu") == "ATHENA.MIT.EDU" + else: + assert self._libzephyr.ZExpandRealm("") == "" + assert self._libzephyr.ZExpandRealm("localhost") == "LOCALHOST" + assert self._libzephyr.ZExpandRealm("bitsy.mit.edu") == "BITSY.MIT.EDU" def find_buildpath(): parser = optparse.OptionParser(usage=__doc__, diff --git a/lib/zephyr_tests.txt b/lib/zephyr_tests.txt index 086d460..c817aa1 100644 --- a/lib/zephyr_tests.txt +++ b/lib/zephyr_tests.txt @@ -24,9 +24,12 @@ ZInit() got run by libZephyr, internally. Make sure other things actually got set up: >>> assert _z.ZGetFD() == -1 + >>> Zauthtype = _z.Zauthtype + >>> assert Zauthtype in (0, 4, 5) >>> realm = _z.ZGetRealm() >>> assert realm - >>> assert realm != "local-realm" + >>> if Zauthtype: assert realm != 'local-realm' + >>> if not Zauthtype: assert realm == 'local-realm' >>> assert _z.ZGetSender() >>> assert "@" in _z.ZGetSender() @@ -76,8 +79,10 @@ ZNotice_t as the constructor... Trivial test of ZExpandRealm, using terribly well known hostnames: >>> assert _z.ZExpandRealm("") == "" - >>> assert _z.ZExpandRealm("localhost") == "" - >>> assert _z.ZExpandRealm("bitsy.mit.edu") == "ATHENA.MIT.EDU" + >>> if Zauthtype: assert _z.ZExpandRealm("localhost") == "" + >>> if Zauthtype: assert _z.ZExpandRealm("bitsy.mit.edu") == "ATHENA.MIT.EDU" + >>> if not Zauthtype: assert _z.ZExpandRealm("localhost") == "LOCALHOST" + >>> if not Zauthtype: assert _z.ZExpandRealm("bitsy.mit.edu") == "BITSY.MIT.EDU" Trivial test of ZopenPort and ZClosePort: |