Add test script for user2user programs
authorEzra Peisach <epeisach@mit.edu>
Sat, 5 Mar 2011 17:37:21 +0000 (17:37 +0000)
committerEzra Peisach <epeisach@mit.edu>
Sat, 5 Mar 2011 17:37:21 +0000 (17:37 +0000)
Simple test programs to make sure that user2user functions.

ticket: 6878

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@24685 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/user_user/Makefile.in
src/appl/user_user/server.c
src/appl/user_user/t_user2user.py [new file with mode: 0644]

index 381ece63c8793c2886b50a8c920b144de1e0d2da..20ddc59110b28b7d2a297b30fef1aef32ee06073 100644 (file)
@@ -1,11 +1,15 @@
 mydir=appl$(S)user_user
 BUILDTOP=$(REL)..$(S)..
+# If you remove the -DDEBUG, the test program needs a line changed
 DEFINES = -DDEBUG
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
 all:: uuclient uuserver
 
+check-pytests:: uuclient uuserver
+       $(RUNPYTEST) $(srcdir)/t_user2user.py $(PYTESTFLAGS)
+
 uuclient: client.o $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o uuclient client.o $(KRB5_BASE_LIBS)
 
index 25c7b10a3341fd2f92ea4c1499d2b35d9bd430a7..b3cfcc1639b422758c227931537939f7590c337e 100644 (file)
@@ -84,16 +84,25 @@ int main(argc, argv)
 
         l_inaddr.sin_family = AF_INET;
         l_inaddr.sin_addr.s_addr = 0;
-        if (!(sp = getservbyname("uu-sample", "tcp"))) {
-            com_err("uu-server", 0, "can't find uu-sample/tcp service");
-            exit(3);
+        if (argc == 2) {
+            l_inaddr.sin_port = htons(atoi(argv[1]));
+        } else  {
+            if (!(sp = getservbyname("uu-sample", "tcp"))) {
+                com_err("uu-server", 0, "can't find uu-sample/tcp service");
+                exit(3);
+            }
+            l_inaddr.sin_port = sp->s_port;
         }
+
         (void) setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof (one));
-        l_inaddr.sin_port = sp->s_port;
         if (bind(sock, (struct sockaddr *)&l_inaddr, sizeof(l_inaddr))) {
             com_err("uu-server", errno, "binding socket");
             exit(3);
         }
+
+        printf("Server started\n");
+        fflush(stdout);
+
         if (listen(sock, 1) == -1) {
             com_err("uu-server", errno, "listening");
             exit(3);
diff --git a/src/appl/user_user/t_user2user.py b/src/appl/user_user/t_user2user.py
new file mode 100644 (file)
index 0000000..bb9c42f
--- /dev/null
@@ -0,0 +1,18 @@
+#!/usr/bin/python
+from k5test import *
+
+# If uuserver is not compiled under -DDEBUG, then set to 0
+debug_compiled=1
+
+for realm in multipass_realms():
+    if debug_compiled == 0:
+        realm.start_in_inetd(['./uuserver', 'uuserver'], port=9999)
+    else:
+        srv_output = realm.start_server(['./uuserver', '9999'], 'Server started')
+
+    output = realm.run_as_client(['./uuclient', hostname, 'testing message', '9999'])
+    if 'uu-client: server says \"Hello, other end of connection.\"' not in output:
+        fail('Message not echoed back.')
+
+
+success('User-2-user test programs.')