Commit 1d16bc69 authored by unknown's avatar unknown
Browse files

Bug#17002 mysql-test-run as root user

 - Add test to see if tests are running with root permissions
 - Disables tests that uses chmod if that is the case


mysql-test/mysql-test-run.pl:
  Add test to check if mysql-test-run is run with root permission. 
  Set environment variable MYSQL_TEST_ROOT to 'YES' or 'NO'.
mysql-test/t/information_schema.test:
  Disable test if running as root
mysql-test/t/rpl_rotate_logs.test:
  Disable test if running as root.
mysql-test/include/not_as_root.inc:
  New BitKeeper file ``mysql-test/include/not_as_root.inc''
mysql-test/r/not_as_root.require:
  New BitKeeper file ``mysql-test/r/not_as_root.require''
parent e33031e7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
-- require r/not_as_root.require
disable_query_log;
select $MYSQL_TEST_ROOT as running_as_root;
enable_query_log;
+29 −0
Original line number Diff line number Diff line
@@ -338,6 +338,7 @@ sub environment_setup ();
sub kill_running_server ();
sub kill_and_cleanup ();
sub check_ssl_support ();
sub check_running_as_root();
sub check_ndbcluster_support ();
sub ndbcluster_install ();
sub ndbcluster_start ($);
@@ -376,6 +377,7 @@ sub main () {

  check_ndbcluster_support();
  check_ssl_support();
  check_running_as_root();

  environment_setup();
  signal_setup();
@@ -1337,6 +1339,33 @@ sub kill_and_cleanup () {
}


sub  check_running_as_root () {
  # Check if running as root
  # i.e a file can be read regardless what mode we set it to
  my $test_file= "test_running_as_root.txt";
  mtr_tofile($test_file, "MySQL");
  chmod(oct("0000"), $test_file);

  my $result="";
  if (open(FILE,"<",$test_file))
  {
    $result= join('', <FILE>);
    close FILE;
  }

  chmod(oct("0755"), $test_file);
  unlink($test_file);

  $ENV{'MYSQL_TEST_ROOT'}= "NO";
  if ($result eq "MySQL")
  {
    mtr_warning("running this script as _root_ will cause some " .
                "tests to be skipped");
    $ENV{'MYSQL_TEST_ROOT'}= "YES";
  }
}



sub check_ssl_support () {

+2 −0
Original line number Diff line number Diff line
running_as_root
NO
+3 −0
Original line number Diff line number Diff line
# This test  uses grants, which can't get tested for embedded server
-- source include/not_embedded.inc

# This test uses chmod, can't be run with root permissions
-- source include/not_as_root.inc

# Test for information_schema.schemata &
# show databases

+3 −0
Original line number Diff line number Diff line
# This test uses chmod, can't be run with root permissions
-- source include/not_as_root.inc

#
# Test is run with max_binlog_size=2048 to force automatic rotation of the
# binary log