Changeset 981 for TI05-delivery


Ignore:
Timestamp:
23/05/06 11:19:47 (14 years ago)
Author:
spascoe
Message:

Simple client/server connection test case added.

Location:
TI05-delivery/trunk
Files:
4 added
2 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/trunk/src/bbftp-server-3.2.0/bbftpd/bbftpd_private_user.c

    r973 r981  
    9393int bbftpd_private_auth(char *logmessage)  
    9494{     
    95   char msg[NDG_MESSAGE_LEN], logmsg[NDG_MESSAGE_LEN+64]; 
     95  char msg[NDG_MESSAGE_LEN]; 
    9696  /* Send version verification message.  */ 
    9797  if (bbftpd_private_recv(msg, NDG_MESSAGE_LEN, logmessage) == -1) { 
     
    9999  } 
    100100  else { 
    101     sprintf(logmsg, "Received auth message: %s", msg); 
    102     syslog(LOG_INFO, logmsg); 
     101    syslog(LOG_INFO, "Received auth message: %s", msg); 
    103102  } 
    104103 
  • TI05-delivery/trunk/test/test_bbftpd.py

    r979 r981  
    3131 
    3232    def testStartup(self): 
     33        """Start and stop the server. 
     34        """ 
    3335        try: 
    3436            self._startServer() 
    35             pid = self._getServerPids()[0] 
     37            pid = self._getServerPid() 
    3638            self._stopServer(pid) 
    3739        except Exception, e: 
     
    3941 
    4042    def testStartupWithSyslog(self): 
     43        """Start and stop the server, check syslog for INFO entries. 
     44        """ 
    4145        try: 
    4246            self._startServer() 
    43             pid = self._getServerPids()[0] 
     47            pid = self._getServerPid() 
    4448            self._stopServer(pid) 
    4549 
    4650            lines = self._readSyslog() 
    47             self.assert_(len(lines) == 2) 
    48             self.assert_(re.search('initialising private auth', lines[0])) 
    49             self.assert_(re.search('finalising private auth', lines[1])) 
    50  
    5151        except Exception, e: 
    5252            self.fail(e) 
    53              
     53 
     54        self.assert_(len(lines) == 2) 
     55        self.assert_(re.search('initialising private auth', lines[0])) 
     56        self.assert_(re.search('finalising private auth', lines[1])) 
     57 
     58    def testDir(self): 
     59        """Try connecting the client and listing a directory. 
     60        """ 
     61 
     62        self._startServer() 
     63        pid = self._getServerPid() 
     64 
     65        fh = self._runClient('-e "dir %s"' % self.DATADIR) 
     66        output = fh.read() 
     67 
     68        self._stopServer(pid) 
     69 
     70        self.assert_(self._findLines([r'dir .*/data', r' d .*/\.', r' d .*/\.\.', 
     71                                      r' f .*/foo', r' f .*/bar', r' f .*/baz'], output))         
     72 
    5473 
    5574    #------------------------------------------------------------------------------ 
     
    5877        """Find the server executable and any other important files. 
    5978        """ 
    60         self.HOME = os.getenv('NDG_DELIVERY_HOME', os.curdir) 
     79        self.HOME = os.path.abspath(os.getenv('NDG_DELIVERY_HOME', os.curdir)) 
    6180        try: 
    6281            self.BBFTPD = glob('%s/src/bbftp-server*/bbftpd/bbftpd' % self.HOME)[0] 
    6382        except IndexError: 
    6483            raise RuntimeError, 'Cannot find bbftpd executable' 
     84        try: 
     85            self.BBFTP = glob('%s/src/bbftp-client*/bbftpc/bbftp' % self.HOME)[0] 
     86        except: 
     87            raise RuntimeError, 'Cannot find bbftp executable' 
     88        dd = '%s/test/data' % self.HOME 
     89        if os.path.exists(dd): 
     90            self.DATADIR = dd 
     91        else: 
     92            raise RuntimeError, 'Cannot find test data directory' 
    6593 
    6694    def _startServer(self): 
     
    7098        pids = os.popen('ps -C bbftpd -o %p --no-headers').readlines() 
    7199        return [int(x.strip()) for x in pids] 
     100 
     101    def _getServerPid(self): 
     102        return self._getServerPids()[0] 
    72103 
    73104    def _stopServer(self, pid): 
     
    105136        return filtered_log 
    106137 
     138    def _runClient(self, *args): 
     139        """Run the client with th -m option and return a file handle of the output. 
     140        """ 
     141        fh = os.popen('%s -m -u testcase %s localhost' % (self.BBFTP, ' '.join(args))) 
     142        return fh 
    107143 
     144    def _findLines(self, lines, string): 
     145        """Look for lines matching each regular expression in lines. 
     146         
     147        @return: True if all lines are found, else False 
     148        """ 
     149         
     150        for line in lines: 
     151            if not re.search('^%s$' % line, string, re.M): 
     152                return False 
     153             
     154        return True 
    108155 
    109156if __name__ == '__main__': 
Note: See TracChangeset for help on using the changeset viewer.