Test for RHEL-43418

This commit is contained in:
František Hrdina 2024-07-15 13:50:48 +02:00
commit 3ab2acaa11
7 changed files with 201 additions and 0 deletions

View 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;

View file

@ -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;

View file

@ -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;

View 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

View 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

View 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

View 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