Test for RHEL-43418
This commit is contained in:
parent
8b02d03684
commit
3ab2acaa11
7 changed files with 201 additions and 0 deletions
47
Regression/store-bayes-tokens-in-mariadb/bayes_mysql.sql
Normal file
47
Regression/store-bayes-tokens-in-mariadb/bayes_mysql.sql
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
-- bayes_mysql.sql
|
||||
|
||||
CREATE TABLE bayes_expire (
|
||||
id int(11) NOT NULL default '0',
|
||||
runtime int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE bayes_global_vars (
|
||||
variable varchar(30) NOT NULL default '',
|
||||
value varchar(200) NOT NULL default '',
|
||||
PRIMARY KEY (variable)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
INSERT INTO bayes_global_vars VALUES ('VERSION','3');
|
||||
|
||||
CREATE TABLE bayes_seen (
|
||||
id int(11) NOT NULL default '0',
|
||||
msgid varchar(200) binary NOT NULL default '',
|
||||
flag char(1) NOT NULL default '',
|
||||
PRIMARY KEY (id,msgid)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE bayes_token (
|
||||
id int(11) NOT NULL default '0',
|
||||
token binary(5) NOT NULL default '',
|
||||
spam_count int(11) NOT NULL default '0',
|
||||
ham_count int(11) NOT NULL default '0',
|
||||
atime int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (id, token),
|
||||
INDEX bayes_token_idx1 (id, atime)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE bayes_vars (
|
||||
id int(11) NOT NULL AUTO_INCREMENT,
|
||||
username varchar(200) NOT NULL default '',
|
||||
spam_count int(11) NOT NULL default '0',
|
||||
ham_count int(11) NOT NULL default '0',
|
||||
token_count int(11) NOT NULL default '0',
|
||||
last_expire int(11) NOT NULL default '0',
|
||||
last_atime_delta int(11) NOT NULL default '0',
|
||||
last_expire_reduce int(11) NOT NULL default '0',
|
||||
oldest_token_age int(11) NOT NULL default '2147483647',
|
||||
newest_token_age int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE bayes_vars_idx1 (username)
|
||||
) ENGINE=InnoDB;
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
-- create_db_user.sql
|
||||
|
||||
CREATE DATABASE spamassassin;
|
||||
CREATE USER 'spamassassin'@'localhost' IDENTIFIED BY 'password';
|
||||
GRANT ALL PRIVILEGES ON spamassassin.* TO 'spamassassin'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
-- drop_tables_and_db.sql
|
||||
|
||||
USE spamassassin;
|
||||
|
||||
DROP TABLE IF EXISTS bayes_expire;
|
||||
DROP TABLE IF EXISTS bayes_global_vars;
|
||||
DROP TABLE IF EXISTS bayes_seen;
|
||||
DROP TABLE IF EXISTS bayes_token;
|
||||
DROP TABLE IF EXISTS bayes_vars;
|
||||
|
||||
DROP DATABASE IF EXISTS spamassassin;
|
||||
DROP USER IF EXISTS 'spamassassin'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
7
Regression/store-bayes-tokens-in-mariadb/local.cf
Normal file
7
Regression/store-bayes-tokens-in-mariadb/local.cf
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# local.cf
|
||||
|
||||
bayes_store_module Mail::SpamAssassin::BayesStore::MySQL
|
||||
bayes_sql_dsn DBI:MariaDB:database=spamassassin;host=localhost
|
||||
bayes_sql_username spamassassin
|
||||
bayes_sql_password password
|
||||
bayes_sql_override_username amavis
|
||||
34
Regression/store-bayes-tokens-in-mariadb/main.fmf
Normal file
34
Regression/store-bayes-tokens-in-mariadb/main.fmf
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
summary: Test store bayes token in mariadb
|
||||
description: ''
|
||||
contact: František Hrdina <fhrdina@redhat.com>
|
||||
component:
|
||||
- spamassassin
|
||||
test: ./test.sh
|
||||
framework: beakerlib
|
||||
recommend:
|
||||
- spamassassin
|
||||
- mariadb-server
|
||||
- mariadb mariadb-connector-c
|
||||
- mariadb-connector-c-devel
|
||||
- perl-DBI
|
||||
- perl-DBD-MySQL
|
||||
duration: 5m
|
||||
enabled: true
|
||||
tag:
|
||||
- Tier1
|
||||
tier: '1'
|
||||
link:
|
||||
- verifies: https://issues.redhat.com/browse/RHEL-43418
|
||||
adjust:
|
||||
- enabled: false
|
||||
when: distro < rhel-8
|
||||
continue: false
|
||||
- enabled: false
|
||||
when: distro < centos-stream-8
|
||||
continue: false
|
||||
- enabled: false
|
||||
when: distro >= rhel-10
|
||||
continue: false
|
||||
- enabled: false
|
||||
when: distro >= centos-stream-10
|
||||
continue: false
|
||||
30
Regression/store-bayes-tokens-in-mariadb/spam.txt
Normal file
30
Regression/store-bayes-tokens-in-mariadb/spam.txt
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
Delivered-To: lists-bikini@bruce-guenter.dyndns.org
|
||||
Received: (qmail 16879 invoked from network); 8 Jan 2017 08:13:51 -0000
|
||||
Received: from localhost (localhost [127.0.0.1])
|
||||
by bruce-guenter.dyndns.org ([192.168.1.2]); 08 Jan 2017 08:13:51 -0000
|
||||
Received: from zak.futurequest.net ([127.0.0.1])
|
||||
by localhost ([127.0.0.1])
|
||||
with SMTP via TCP; 08 Jan 2017 08:13:51 -0000
|
||||
Received: (qmail 23999 invoked from network); 8 Jan 2017 08:13:50 -0000
|
||||
Received: from dlhbyjp.ijagdad7.net (113.212.140.216)
|
||||
by zak.futurequest.net with SMTP; 8 Jan 2017 08:13:50 -0000
|
||||
Received: from hisxyokcsn (feotrwa.ijagdad7.net [113.212.140.163])
|
||||
by dkocemk.ijagdad7.net (Postfix) with ESMTP id 5101F709478
|
||||
for <lists-bikini@bruce-guenter.dyndns.org>; Sun, 8 Jan 2017 17:13:49 +0900 (JST)
|
||||
Received: from localhost (61-63-36-host226.kbtelecom.net.tw [61.63.36.226])
|
||||
by hisxyokcsn (Postfix) with ESMTP id 2646F5000B7
|
||||
for <lists-bikini@bruce-guenter.dyndns.org>; Sun, 8 Jan 2017 17:13:49 +0900 (JST)
|
||||
To: lists-bikini@bruce-guenter.dyndns.org
|
||||
Message-ID: <e7e5857390653859f3e626734fcf4eb6@mpw9ukmq.net>
|
||||
Date: Sun, 08 Jan 2017 17:13:49 +0900
|
||||
From: "guide@mpw9ukmq.net" <guide@mpw9ukmq.net>
|
||||
Subject: =?Shift_JIS?B?gXmTwZXKlrOXv5LKkE2ShoF6ia2SUIjKgsaCooKklJyR5YLIi+CKeoLFgreCqoFBjoSCqpPGjqmCxZGXi+CC8JJTk5aCs4K5gsSSuIKrgtyCt4FCgXmOypBek1mVdJdMguiBeg==?=!!!
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=Shift_JIS
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
j6yRgZDskLmOcYFAgrOC8YKpgueDgYNig1qBW4NXgqqTzYKrgtyCtYK9DQoNCluDXoNDg2eDi10N
|
||||
CoF5k8GVypazl7+SypBNkoaBeomtklCIyoLGgqKCpJSckeWCyIvginqCxYK3gqqBQY6EgqqTxo6p
|
||||
gsWRl4vggvCSU5OWgrOCuYLEkriCq4LcgreBQoF5jsqQXpNZlXSXTILogXoNCg0KW5GxgquC8JPH
|
||||
gt5dDQpodHRwOi8vaGNydm1jbWJldDQ0cnZ0aGhtdHVqaC5tcHc5dWttcS5uZXQNCg0KW47zkE2D
|
||||
e4Nig06DWF0NCmh0dHA6Ly9oY3J2bWNtYmV0a2gubXB3OXVrbXEubmV0
|
||||
64
Regression/store-bayes-tokens-in-mariadb/test.sh
Executable file
64
Regression/store-bayes-tokens-in-mariadb/test.sh
Executable file
|
|
@ -0,0 +1,64 @@
|
|||
#!/bin/bash
|
||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||
|
||||
DB_NAME="spamassassin"
|
||||
DB_USER="spamassassin"
|
||||
DB_PASSWORD="password"
|
||||
DB_HOST="localhost"
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlAssertRpm spamassassin
|
||||
|
||||
rlFileBackup --missing-ok "/var/lib/mysql"
|
||||
rlFileBackup --missing-ok "/etc/mail/spamassassin"
|
||||
rlFileBackup --missing-ok "/var/spool/spamassassin"
|
||||
rlFileBackup --missing-ok "/root/.spamassasin"
|
||||
|
||||
TestDir=$(pwd)
|
||||
CREATE_DB_USER_SQL="$TestDir/create_db_user.sql"
|
||||
CREATE_TABLES_SQL="$TestDir/bayes_mysql.sql"
|
||||
SPAMASSASSIN_CONFIG="$TestDir/local.cf"
|
||||
DROP_TABLES_AND_DB_SQL="$TestDir/drop_tables_and_db.sql"
|
||||
|
||||
|
||||
rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory"
|
||||
rlRun "pushd $tmp"
|
||||
rlRun "systemctl start mariadb" 0 "Running mariadb"
|
||||
rlRun "systemctl enable mariadb" 0 "Enable mariadb service"
|
||||
|
||||
mysql_secure_installation <<EOF
|
||||
|
||||
y
|
||||
rootpassword
|
||||
rootpassword
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
EOF
|
||||
|
||||
rlRun "mysql -u root -prootpassword < ${CREATE_DB_USER_SQL}" 0 "Create db and user"
|
||||
rlRun "mysql -u root -prootpassword ${DB_NAME} < ${CREATE_TABLES_SQL}" 0 "Create tables"
|
||||
rlRun "cp ${SPAMASSASSIN_CONFIG} /etc/mail/spamassassin/local.cf" 0 "Place spammassassin config file"
|
||||
rlRun "systemctl restart spamassassin" 0 "Restarting spamassassin"
|
||||
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
rlRun "sa-learn -D --spam $TestDir/spam.txt &> sa-learn.log"
|
||||
rlAssertGrep "Learned tokens" sa-learn.log
|
||||
rlAssertNotGrep "bg: bayes: _put_tokens: SQL error: Column 'id' cannot be null" "sa-learn.log"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlRun "mysql -u root -prootpassword < ${DROP_TABLES_AND_DB_SQL}"
|
||||
rlRun "systemctl stop spamassassin" 0 "Stopping spamassassin"
|
||||
rlRun "systemctl stop mariadb" 0 "Stopping mariadb"
|
||||
rlRun "systemctl disable mariadb" 0 "Disable mariadb service"
|
||||
rlFileRestore
|
||||
rlRun "popd"
|
||||
rlRun "rm -r $tmp" 0 "Remove tmp directory"
|
||||
rlPhaseEnd
|
||||
rlJournalEnd
|
||||
Loading…
Add table
Add a link
Reference in a new issue