]> source.dussan.org Git - rspamd.git/commitdiff
Add functional test for spamc protocol.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 2 Jul 2015 18:02:39 +0000 (19:02 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 2 Jul 2015 18:02:39 +0000 (19:02 +0100)
test/functional/cases/spamc.pl [new file with mode: 0644]
test/functional/tests.bats

diff --git a/test/functional/cases/spamc.pl b/test/functional/cases/spamc.pl
new file mode 100644 (file)
index 0000000..abeefb8
--- /dev/null
@@ -0,0 +1,40 @@
+#!/usr/bin/env perl
+
+use warnings;
+use strict;
+
+use Socket;
+
+my $host = "127.0.0.1";
+my $port = 56789;
+my $input = shift;
+
+open(INPUT, "< $input") or die "Can't open input file $input\n";
+
+socket(SOCKET,PF_INET,SOCK_STREAM,(getprotobyname('tcp'))[2])
+   or die "Can't create a socket $!\n";
+connect(SOCKET, pack_sockaddr_in($port, inet_aton($host)))
+   or die "Can't connect to port $port! \n";
+
+print SOCKET "SYMBOLS SPAMC/1.0\r\n";
+
+my $msg;
+while (my $line = <INPUT>) {
+       $msg .= $line;
+}
+
+my $dlen = length($msg);
+print SOCKET "Content-length: $dlen\r\n\r\n$msg";
+
+SOCKET->autoflush(1);
+
+shutdown(SOCKET, 1);
+
+close(INPUT);
+
+while (my $line = <SOCKET>) {
+       print $line;
+}
+
+close(SOCKET);
+
index 73811f2d5e89446adc50224aba3b68f281011b81..b9d71a2a5f5e3b9b8bb50a61ff33a139b14afa5d 100644 (file)
@@ -12,6 +12,15 @@ RSPAMC="$BATS_TEST_DIRNAME/../../src/client/rspamc"
        echo $output | grep 'Action: reject'
 }
 
+@test "Test rspamd spamc gtube" {
+       export RSPAMD_CONFIG="$BATS_TEST_DIRNAME/configs/trivial.conf"
+       run_rspamd
+       run perl $BATS_TEST_DIRNAME/cases/spamc.pl "$BATS_TEST_DIRNAME/messages/gtube.eml"
+       [ "$status" -eq 0 ]
+       
+       echo $output | grep 'GTUBE'
+}
+
 @test "Test rspamd streamlined gtube" {
        export RSPAMD_CONFIG="$BATS_TEST_DIRNAME/configs/trivial.conf"
        run_rspamd