mirror of
https://git.proxmox.com/git/proxmox-spamassassin
synced 2025-04-28 16:01:29 +00:00
49 lines
1.3 KiB
Raku
Executable File
49 lines
1.3 KiB
Raku
Executable File
#!/usr/bin/perl -T
|
|
|
|
use lib '.'; use lib 't';
|
|
use SATest; sa_t_init("db_awl_perms");
|
|
use IO::File;
|
|
use Test::More;
|
|
plan skip_all => "Tests don't work on windows" if $RUNNING_ON_WINDOWS;
|
|
plan tests => 5;
|
|
|
|
# ---------------------------------------------------------------------------
|
|
tstpre ("
|
|
loadplugin Mail::SpamAssassin::Plugin::AWL
|
|
");
|
|
|
|
# bug 6173
|
|
|
|
tstprefs ("
|
|
use_auto_whitelist 1
|
|
auto_whitelist_path ./$userstate/awl
|
|
auto_whitelist_file_mode 0755
|
|
lock_method flock
|
|
");
|
|
|
|
unlink "$userstate/awl";
|
|
unlink "$userstate/awl.mutex";
|
|
umask 022;
|
|
sarun("--add-addr-to-whitelist whitelist_test\@example.org",
|
|
\&patterns_run_cb);
|
|
|
|
# in case this test is ever made to work on Windows
|
|
untaint_system($RUNNING_ON_WINDOWS?("dir " . File::Spec->canonpath($userstate)):"ls -l $userstate"); # for the logs
|
|
|
|
sub checkmode {
|
|
my $fname = shift;
|
|
if (!-f $fname) { return 1; }
|
|
my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size) = stat $fname;
|
|
return (($mode & 0777) == 0644);
|
|
}
|
|
|
|
ok checkmode "$userstate/awl"; # DB_File
|
|
ok checkmode "$userstate/awl.dir"; # SDBM
|
|
ok checkmode "$userstate/awl.pag"; # SDBM
|
|
ok checkmode "$userstate/awl.mutex";
|
|
|
|
unlink "$userstate/awl",
|
|
"$userstate/awl.dir",
|
|
"$userstate/awl.pag";
|
|
ok unlink "$userstate/awl.mutex";
|