#!/usr/bin/perl BEGIN { if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ... chdir 't'; } if (-e 'test_dir') { # running from test directory, not .. unshift(@INC, '../blib/lib'); } } my $prefix = '.'; if (-e 'test_dir') { # running from test directory, not .. $prefix = '..'; } use strict; use Test; use Mail::SpamAssassin; use Mail::SpamAssassin::NetSet; my $sa = Mail::SpamAssassin->new({ rules_filename => "$prefix/rules", }); plan tests => 22; sub tryone { my ($testip, @nets) = @_; my $nets = Mail::SpamAssassin::NetSet->new(); foreach my $net (@nets) { $nets->add_cidr ($net); } if ($nets->contains_ip ($testip)) { print "\n$testip was in @nets\n"; return 1; } else { print "\n$testip was not in @nets\n"; return 0; } } ok (tryone ("127.0.0.1", "127.0.0.1")); ok (!tryone ("127.0.0.2", "127.0.0.1")); ok (tryone ("127.0.0.1", "127.")); ok (tryone ("127.0.0.254", "127.")); ok (tryone ("127.0.0.1", "127/8")); ok (tryone ("127.0.0.1", "127.0/16")); ok (tryone ("127.0.0.1", "127.0.0/24")); ok (tryone ("127.0.0.1", "127.0.0.1/32")); ok (tryone ("127.0.0.1", "127.0.0.1/31")); ok (tryone ("127.0.0.1", "10.", "11.", "127.0.0.1")); ok (tryone ("127.0.0.1", "127.0.")); ok (tryone ("127.0.0.1", "127.0.0.")); ok (tryone ("127.0.0.1", "127.")); ok (!tryone ("128.0.0.254", "127.")); ok (!tryone ("128.0.0.1", "127/8")); ok (!tryone ("128.0.0.1", "127.0/16")); ok (!tryone ("128.0.0.1", "127.0.0/24")); ok (!tryone ("128.0.0.1", "127.0.0.1/32")); ok (!tryone ("128.0.0.1", "127.0.0.1/31")); ok (!tryone ("128.0.0.1", "127.0.")); ok (!tryone ("128.0.0.1", "127.0.0.")); ok (!tryone ("12.9.0.1", "10.", "11.", "127.0.0.1"));