summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-03-13 16:43:43 +0200
committerunknown <monty@mashka.mysql.fi>2003-03-13 16:43:43 +0200
commitf3eb7fe0c3259b001f77c30844f42f96562c23f1 (patch)
treed43ad5953e51872d781cba2e6dd77912dfa42de9 /tests
parentc7551b88408430007ed7c27ed5e9f40f584e29d0 (diff)
downloadmariadb-git-f3eb7fe0c3259b001f77c30844f42f96562c23f1.tar.gz
Better fix for GRANT bug
tests/grant.pl: More options for test tests/grant.res: new test results
Diffstat (limited to 'tests')
-rw-r--r--tests/grant.pl55
-rw-r--r--tests/grant.res14
2 files changed, 40 insertions, 29 deletions
diff --git a/tests/grant.pl b/tests/grant.pl
index a82e99645bc..c41b22157bd 100644
--- a/tests/grant.pl
+++ b/tests/grant.pl
@@ -8,12 +8,13 @@ use DBI;
use Getopt::Long;
use strict;
-use vars qw($dbh $user_dbh $opt_help $opt_Information $opt_force $opt_debug
- $opt_verbose $opt_server $opt_root_user $opt_password $opt_user
- $opt_database $opt_host $version $user $tables_cols $columns_cols);
+use vars qw($dbh $user_dbh $opt_help $opt_Information $opt_force $opt_debug
+ $opt_verbose $opt_server $opt_root_user $opt_password $opt_user
+ $opt_database $opt_host $version $user $tables_cols $columns_cols
+ $opt_silent);
-$version="1.0";
-$opt_help=$opt_Information=$opt_force=$opt_debug=$opt_verbose=0;
+$version="1.1";
+$opt_help=$opt_Information=$opt_force=$opt_debug=$opt_verbose=$opt_silent=0;
$opt_host="localhost",
$opt_server="mysql";
$opt_root_user="root";
@@ -21,7 +22,7 @@ $opt_password="";
$opt_user="grant_user";
$opt_database="grant_test";
-GetOptions("Information","help","server=s","root-user=s","password=s","user","database=s","force","host=s","debug","verbose") || usage();
+GetOptions("Information","help","server=s","root-user=s","password=s","user","database=s","force","host=s","debug","verbose","silent") || usage();
usage() if ($opt_help || $opt_Information);
$user="$opt_user\@$opt_host";
@@ -477,7 +478,10 @@ sub user_connect
$password, { PrintError => 0});
if (!$user_dbh)
{
- print "$DBI::errstr\n";
+ if ($opt_verbose || !$ignore_error)
+ {
+ print "Error on connect: $DBI::errstr\n";
+ }
if (!$ignore_error)
{
die "The above should not have failed!";
@@ -492,7 +496,7 @@ sub user_connect
sub safe_query
{
my ($query,$ignore_error)=@_;
- if (do_query($dbh,$query))
+ if (do_query($dbh,$query, $ignore_error))
{
if (!defined($ignore_error))
{
@@ -509,7 +513,7 @@ sub safe_query
sub user_query
{
my ($query,$ignore_error)=@_;
- if (do_query($user_dbh,$query))
+ if (do_query($user_dbh,$query, $ignore_error))
{
if (!defined($ignore_error))
{
@@ -525,8 +529,8 @@ sub user_query
sub do_query
{
- my ($my_dbh, $query)=@_;
- my ($sth,$row,$tab,$col,$found);
+ my ($my_dbh, $query, $ignore_error)=@_;
+ my ($sth, $row, $tab, $col, $found, $fatal_error);
print "$query\n" if ($opt_debug || $opt_verbose);
if (!($sth= $my_dbh->prepare($query)))
@@ -536,25 +540,32 @@ sub do_query
}
if (!$sth->execute)
{
- print "Error in execute: $DBI::errstr\n";
- die if ($DBI::errstr =~ /parse error/);
+ $fatal_error= ($DBI::errstr =~ /parse error/);
+ if (!$ignore_error || $opt_verbose || $fatal_error)
+ {
+ print "Error in execute: $DBI::errstr\n";
+ }
+ die if ($fatal_error);
$sth->finish;
return 1;
}
$found=0;
- while (($row=$sth->fetchrow_arrayref))
+ if (!$opt_silent)
{
- $found=1;
- $tab="";
- foreach $col (@$row)
+ while (($row=$sth->fetchrow_arrayref))
{
- print $tab;
- print defined($col) ? $col : "NULL";
- $tab="\t";
+ $found=1;
+ $tab="";
+ foreach $col (@$row)
+ {
+ print $tab;
+ print defined($col) ? $col : "NULL";
+ $tab="\t";
+ }
+ print "\n";
}
- print "\n";
+ print "\n" if ($found);
}
- print "\n" if ($found);
$sth->finish;
return 0;
}
diff --git a/tests/grant.res b/tests/grant.res
index 91c37a2c9f8..1c74e5b1d1b 100644
--- a/tests/grant.res
+++ b/tests/grant.res
@@ -9,13 +9,13 @@ drop database grant_test
Error in execute: Can't drop database 'grant_test'. Database doesn't exist
create database grant_test
Connecting grant_user
-Access denied for user: '@localhost' to database 'grant_test'
+Error on connect: Access denied for user: '@localhost' to database 'grant_test'
grant select on *.* to grant_user@localhost
set password FOR grant_user2@localhost = password('test')
Error in execute: Can't find any matching row in the user table
set password FOR grant_user=password('test')
Connecting grant_user
-Access denied for user: 'grant_user@localhost' (Using password: NO)
+Error on connect: Access denied for user: 'grant_user@localhost' (Using password: NO)
set password FOR grant_user=''
Connecting grant_user
select * from mysql.user where user = 'grant_user'
@@ -48,7 +48,7 @@ Error in execute: The host or user argument to GRANT is too long
grant select on grant_test.test to grant_user with grant option
Error in execute: grant command denied to user: 'grant_user@localhost' for table 'test'
set password FOR ''@''=''
-Error in execute: You are using MySQL as an anonymous users and anonymous users are not allowed to change passwords
+Error in execute: Can't find any matching row in the user table
set password FOR root@localhost = password('test')
Error in execute: Access denied for user: 'grant_user@localhost' to database 'mysql'
revoke select on *.* from grant_user@localhost
@@ -86,7 +86,7 @@ select count(*) from grant_test.test
revoke ALL PRIVILEGES on *.* from grant_user@localhost
Connecting grant_user
-Access denied for user: 'grant_user@localhost' to database 'grant_test'
+Error on connect: Access denied for user: 'grant_user@localhost' to database 'grant_test'
delete from user where user='grant_user'
flush privileges
delete from user where user='grant_user'
@@ -133,7 +133,7 @@ insert into grant_test.test values (6,0)
Error in execute: Access denied for user: 'grant_user@localhost' to database 'grant_test'
REVOKE GRANT OPTION on grant_test.* from grant_user@localhost
Connecting grant_user
-Access denied for user: 'grant_user@localhost' to database 'grant_test'
+Error on connect: Access denied for user: 'grant_user@localhost' to database 'grant_test'
grant ALL PRIVILEGES on grant_test.* to grant_user@localhost
Connecting grant_user
select * from mysql.user where user = 'grant_user'
@@ -156,7 +156,7 @@ localhost grant_user N N N N N N N N N N N N N N
select * from mysql.db where user = 'grant_user'
Connecting grant_user
-Access denied for user: 'grant_user@localhost' to database 'grant_test'
+Error on connect: Access denied for user: 'grant_user@localhost' to database 'grant_test'
grant create on grant_test.test2 to grant_user@localhost
Connecting grant_user
create table grant_test.test2 (a int not null)
@@ -168,7 +168,7 @@ Error in execute: select command denied to user: 'grant_user@localhost' for tabl
show keys from test
Error in execute: select command denied to user: 'grant_user@localhost' for table 'test'
show columns from test2
-a int(11) 0
+a int(11) 0
show keys from test2
select * from test