@@ -6,6 +6,7 @@ use Data::Dumper;
66
77# 1. Load MySQLTuner logic
88require ' ./mysqltuner.pl' ;
9+ require ' ./tests/MySQLTuner/TestHelper.pm' ;
910
1011# Mocking essential globals and subroutines
1112$main::good = ' [OK]' ;
@@ -20,7 +21,8 @@ our @generalrec;
2021# Test 1: MariaDB 10.6 with removed vars
2122subtest ' MariaDB 10.6 Removed Variables' => sub {
2223 @main::generalrec = ();
23- %main::myvar = (
24+ MySQLTuner::TestHelper::reset_state();
25+ %main::myvar = ( %main::myvar ,
2426 version => ' 10.6.15-MariaDB' ,
2527 version_numbers => ' 10.6.15' ,
2628 version_comment => ' mariadb.org binary distribution' ,
@@ -36,7 +38,8 @@ subtest 'MariaDB 10.6 Removed Variables' => sub {
3638# Test 2: MySQL 8.0 with removed vars
3739subtest ' MySQL 8.0 Removed Variables' => sub {
3840 @main::generalrec = ();
39- %main::myvar = (
41+ MySQLTuner::TestHelper::reset_state();
42+ %main::myvar = ( %main::myvar ,
4043 version => ' 8.0.35' ,
4144 version_numbers => ' 8.0.35' ,
4245 version_comment => ' MySQL Community Server - GPL' ,
@@ -52,7 +55,8 @@ subtest 'MySQL 8.0 Removed Variables' => sub {
5255# Test 3: MySQL 9.0 with removed vars
5356subtest ' MySQL 9.0 Removed Variables' => sub {
5457 @main::generalrec = ();
55- %main::myvar = (
58+ MySQLTuner::TestHelper::reset_state();
59+ %main::myvar = ( %main::myvar ,
5660 version => ' 9.0.1' ,
5761 version_numbers => ' 9.0.1' ,
5862 version_comment => ' MySQL Community Server - GPL' ,
@@ -68,7 +72,8 @@ subtest 'MySQL 9.0 Removed Variables' => sub {
6872# Test 4: MySQL 5.7 (Legacy) - should NOT warn for these vars
6973subtest ' MySQL 5.7 Legacy Variables' => sub {
7074 @main::generalrec = ();
71- %main::myvar = (
75+ MySQLTuner::TestHelper::reset_state();
76+ %main::myvar = ( %main::myvar ,
7277 version => ' 5.7.44' ,
7378 version_numbers => ' 5.7.44' ,
7479 version_comment => ' MySQL Community Server - GPL' ,
@@ -83,21 +88,28 @@ subtest 'MySQL 5.7 Legacy Variables' => sub {
8388# Test 5: MariaDB 10.3 (Legacy) - should NOT warn for file_format (removed in 10.6)
8489subtest ' MariaDB 10.3 Legacy Variables' => sub {
8590 @main::generalrec = ();
86- %main::myvar = (
91+ MySQLTuner::TestHelper::reset_state();
92+ %main::myvar = ( %main::myvar ,
93+ version => ' 10.3.39-MariaDB' ,
94+ version_numbers => ' 10.3.39' ,
95+ version_comment => ' mariadb.org binary distribution' ,
96+ innodb_file_format => ' Antelope' ,
97+ );
98+ %main::real_vars = (
8799 version => ' 10.3.39-MariaDB' ,
88100 version_numbers => ' 10.3.39' ,
89101 version_comment => ' mariadb.org binary distribution' ,
90102 innodb_file_format => ' Antelope' ,
91103 );
92- %main::real_vars = %main::myvar ;
93104 main::check_removed_innodb_variables();
94105 is(scalar @main::generalrec , 0, ' MariaDB 10.3: No warnings for innodb_file_format (not removed yet)' );
95106};
96107
97108# Test 6: Internally injected variables should NOT trigger warnings (Issue #32)
98109subtest ' Injected Variables (Issue #32)' => sub {
99110 @main::generalrec = ();
100- %main::myvar = (
111+ MySQLTuner::TestHelper::reset_state();
112+ %main::myvar = ( %main::myvar ,
101113 version => ' 10.11.3-MariaDB' ,
102114 version_numbers => ' 10.11.3' ,
103115 version_comment => ' mariadb.org binary distribution' ,
@@ -114,13 +126,19 @@ subtest 'Injected Variables (Issue #32)' => sub {
114126# Test 7: Variables set to 'OFF' should NOT trigger warnings (Issue #32)
115127subtest ' Variables set to OFF (Issue #32)' => sub {
116128 @main::generalrec = ();
117- %main::myvar = (
129+ MySQLTuner::TestHelper::reset_state();
130+ %main::myvar = ( %main::myvar ,
131+ version => ' 10.11.3-MariaDB' ,
132+ version_numbers => ' 10.11.3' ,
133+ version_comment => ' mariadb.org binary distribution' ,
134+ innodb_prefix_index_cluster_optimization => ' OFF' ,
135+ );
136+ %main::real_vars = (
118137 version => ' 10.11.3-MariaDB' ,
119138 version_numbers => ' 10.11.3' ,
120139 version_comment => ' mariadb.org binary distribution' ,
121140 innodb_prefix_index_cluster_optimization => ' OFF' ,
122141 );
123- %main::real_vars = %main::myvar ;
124142 main::check_removed_innodb_variables();
125143 is(scalar @main::generalrec , 0, " Variables set to 'OFF' do not trigger false warnings" );
126144};
0 commit comments