summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--selftest/target/samba.py34
-rw-r--r--selftest/tests/test_samba.py15
2 files changed, 45 insertions, 4 deletions
diff --git a/selftest/target/samba.py b/selftest/target/samba.py
index 1ea156c003..666d223ff1 100644
--- a/selftest/target/samba.py
+++ b/selftest/target/samba.py
@@ -119,3 +119,37 @@ def cleanup_child(pid, name, outf=None):
else:
outf.write("%s child process %d exited with value %d.\n" % (name, childpid, status >> 8))
return childpid
+
+
+def get_interface(netbiosname):
+ """Return interface id for a particular server.
+ """
+ netbiosname = netbiosname.lower()
+
+ interfaces = {
+ "locals3dc2": 2,
+ "localmember3": 3,
+ "localshare4": 4,
+ "localserver5": 5,
+ "localktest6": 6,
+ "maptoguest": 7,
+
+ # 11-16 used by selftest.pl for client interfaces
+ "localdc": 21,
+ "localvampiredc": 22,
+ "s4member": 23,
+ "localrpcproxy": 24,
+ "dc5": 25,
+ "dc6": 26,
+ "dc7": 27,
+ "rodc": 28,
+ "localadmember": 29,
+ "plugindc": 30,
+ "localsubdc": 31,
+ "chgdcpass": 32,
+ }
+
+ # update lib/socket_wrapper/socket_wrapper.c
+ # #define MAX_WRAPPED_INTERFACES 32
+ # if you wish to have more than 32 interfaces
+ return interfaces[netbiosname]
diff --git a/selftest/tests/test_samba.py b/selftest/tests/test_samba.py
index f06d846deb..b49463eabb 100644
--- a/selftest/tests/test_samba.py
+++ b/selftest/tests/test_samba.py
@@ -19,16 +19,13 @@
"""Tests for selftest.target.samba."""
-import os
-import sys
-
from cStringIO import StringIO
from selftest.tests import TestCase
from selftest.target.samba import (
bindir_path,
- cleanup_child,
+ get_interface,
mk_realms_stanza,
write_krb5_conf,
)
@@ -107,3 +104,13 @@ class WriteKrb5ConfTests(TestCase):
}
''', f.getvalue())
+
+
+class GetInterfaceTests(TestCase):
+
+ def test_get_interface(self):
+ self.assertEquals(21, get_interface("localdc"))
+ self.assertEquals(4, get_interface("localshare4"))
+
+ def test_unknown(self):
+ self.assertRaises(KeyError, get_interface, "unknown")