Re: [exim-dev] Preliminary testing of a new Exim test suite

Top Page
Delete this message
Reply to this message
Author: Daniel Tiefnig
Date:  
To: exim-dev
Subject: Re: [exim-dev] Preliminary testing of a new Exim test suite
Philip Hazel wrote:
> On Thu, 10 Nov 2005, John Jetmore wrote:
>> Seems to be the standard "not using 'exim' as user for testing"
>> problem.


Yes, additionally to the messages you posted, it says

| Failed to find user "debian-exim" from expanded string "$local_part"
| for the local_delivery transport


in test-*log-munged here.

> Thanks. I really MUST get another login on the exim.org testing
> machine so that I can pick up this problem earlier.


Looks like it. :o)


There's still the OpenSSL version issue, with its different error
messages...


Then, I removed gecos information from /etc/passwd and got the following:

Basic/0002 Common string expansions
===============
Line 125 of "test-stderr-munged" does not match line 125 of "stderr/0002".
----------
originator: uid=uuuu gid=gggg login=CALLER name=
----------
originator: uid=uuuu gid=gggg login=CALLER name=CALLER_NAME

Same on line 183 of this log.

And:

Basic/0015 local part prefix
===============
Line 18 of "test-stdout-munged" does not match line 18 of "stdout/0015".
----------
From: CALLER@???
----------
From: CALLER_NAME <CALLER@???>
===============
Line 42 of "test-stdout-munged" does not match line 42 of "stdout/0015".
----------
From: CALLER@???
----------
From: CALLER_NAME <CALLER@???>
===============


Similar problems continue through tests 0016, 0022, 0025, 0028, 0031,
0032, 0033, ... (I stopped there. :o)

First I thought I could fix that by forcing $parm_caller_name to
something, but obviously that doesn't work. I also can't see where
CALLER_NAME substitution is done, so I gave up on this.


OTOS, due to this I felt motivated to implement a connection test for
ClamAV which we are using on our servers to monitor clamd. The patch is
attached to this mail, feel free to use it as you like, no legal
restrictions here. :o)


lg,
daniel
--- runtest    2005-11-10 12:57:41.000000000 +0100
+++ runtest.patched    2005-11-11 13:17:43.444073032 +0100
@@ -1819,9 +1819,40 @@
       close(IN);
       if (-e $parm_clamsocket)
         {
-        $parm_running{'ClamAV'} = ' ';
         print ":\n  The clamd socket is $parm_clamsocket\n";
-        print "  Assume ClamAV is running\n";
+
+        eval
+          {
+          my $sun = sockaddr_un($parm_clamsocket) or die "** Failed packing '$parm_clamsocket'\n";
+          socket(SOCK, AF_UNIX, SOCK_STREAM, 0) or die "** Unable to open socket '$parm_clamsocket'\n";
+
+          local $SIG{ALRM} = sub { die "** Timeout while connecting to socket '$parm_clamsocket'\n"; };
+          alarm(5);
+          connect(SOCK, $sun) or die "** Unable to connect to socket '$parm_clamsocket'\n";
+          alarm(0);
+
+          my $ofh = select SOCK; $| = 1; select $ofh;
+          print SOCK "PING\n";
+
+          $SIG{ALRM} = sub { die "** Timeout while reading from socket '$parm_clamsocket'\n"; };
+          alarm(10);
+          my $res = <SOCK>;
+          alarm(0);
+
+          $res =~ /PONG/ or die "** Did not get PONG from socket '$parm_clamsocket'. It said: $res\n";
+          };
+        alarm(0);
+
+        if($@)
+          {
+          warn $@;
+          print "  Assume ClamAV is not running\n";
+          }
+        else
+          {
+          $parm_running{'ClamAV'} = ' ';
+          print "  ClamAV seems to be running\n";
+          }
         }
       else
         {