check_mysql.t 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #! /usr/bin/perl -w -I ..
  2. #
  3. # MySQL Database Server Tests via check_mysql
  4. #
  5. # $Id$
  6. #
  7. use strict;
  8. use Test::More;
  9. use NPTest;
  10. use vars qw($tests);
  11. plan skip_all => "check_mysql not compiled" unless (-x "check_mysql");
  12. plan tests => 7;
  13. my $bad_login_output = '/Access denied for user /';
  14. my $mysqlserver = getTestParameter(
  15. "NP_MYSQL_SERVER",
  16. "A MySQL Server with no slaves setup"
  17. );
  18. my $mysql_login_details = getTestParameter(
  19. "MYSQL_LOGIN_DETAILS",
  20. "Command line parameters to specify login access",
  21. "-u user -ppw",
  22. );
  23. my $with_slave = getTestParameter(
  24. "NP_MYSQL_WITH_SLAVE",
  25. "MySQL server with slaves setup"
  26. );
  27. my $with_slave_login = getTestParameter(
  28. "NP_MYSQL_WITH_SLAVE_LOGIN",
  29. "Login details for server with slave",
  30. "-uroot -ppw"
  31. );
  32. my $result;
  33. SKIP: {
  34. skip "No mysql server defined", 5 unless $mysqlserver;
  35. $result = NPTest->testCmd("./check_mysql -H $mysqlserver $mysql_login_details");
  36. cmp_ok( $result->return_code, '==', 0, "Login okay");
  37. $result = NPTest->testCmd("./check_mysql -H $mysqlserver -u dummy");
  38. cmp_ok( $result->return_code, '==', 2, "Login failure");
  39. like( $result->output, $bad_login_output, "Expected login failure message");
  40. $result = NPTest->testCmd("./check_mysql -S -H $mysqlserver $mysql_login_details");
  41. cmp_ok( $result->return_code, "==", 1, "No slaves defined" );
  42. like( $result->output, "/No slaves defined/", "Correct error message");
  43. }
  44. SKIP: {
  45. skip "No mysql server with slaves defined", 2 unless $with_slave;
  46. $result = NPTest->testCmd("./check_mysql -H $with_slave $with_slave_login");
  47. cmp_ok( $result->return_code, '==', 0, "Login okay");
  48. $result = NPTest->testCmd("./check_mysql -S -H $with_slave $with_slave_login");
  49. cmp_ok( $result->return_code, "==", 0, "Slaves okay" );
  50. }