You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
2.9 KiB

  1. source include/windows.inc;
  2. let $datadir_name=data;
  3. let $service_name_prefix=mariadb;
  4. let $password=password;
  5. source include/check_windows_admin.inc;
  6. # The test uses return code from sc.exe utility, which are as follows
  7. let $ERROR_SERVICE_DOES_NOT_EXIST= 1060;
  8. let $ERROR_SERVICE_CANNOT_ACCEPT_CTRL=1061;# intermediate, during start or stop
  9. let $ERROR_SERVICE_NOT_ACTIVE=1062;# service stopped
  10. let $ERROR_INVALID_SERVICE_CONTROL=1052; # The requested control is not valid for this service
  11. let $sc_exe= C:\Windows\System32\sc.exe;
  12. let $ddir= $MYSQLTEST_VARDIR/tmp/$datadir_name;
  13. let $service_name=$service_name_prefix$MASTER_MYPORT;
  14. let TMP= $MYSQLTEST_VARDIR/tmp;
  15. let $upgrade_log=$TMP/mysql_upgrade_service.$service_name.log;
  16. use mysql;
  17. error 0,1;
  18. rmdir $ddir;
  19. --disable_result_log
  20. error 0,$ERROR_SERVICE_DOES_NOT_EXIST;
  21. exec $sc_exe delete $service_name;
  22. --enable_result_log
  23. source include/shutdown_mysqld.inc;
  24. echo # run mysql_install_db with --service parameter;
  25. --disable_result_log
  26. exec $MYSQL_INSTALL_DB_EXE --datadir=$ddir --port=$MASTER_MYPORT --password=$password --service=$service_name --verbose-bootstrap -R;
  27. --enable_result_log
  28. echo # Start service;
  29. --disable_result_log
  30. exec $sc_exe start $service_name;
  31. --enable_result_log
  32. enable_reconnect;
  33. source include/wait_until_connected_again.inc;
  34. disable_reconnect;
  35. echo # -- Upgrade service (online) --;
  36. --replace_result $upgrade_log UPGRADE_LOG $service_name SERVICE_NAME
  37. let $sys_errno=0;
  38. let $upgrade_success = 1;
  39. error 0,1;
  40. exec $MARIADB_UPGRADE_SERVICE_EXE --service=$service_name;
  41. if($sys_errno != 0)
  42. {
  43. let $upgrade_success = 0;
  44. }
  45. echo # upgrade_success(online)=$upgrade_success;
  46. file_exists $upgrade_log;
  47. if ($upgrade_success == 0)
  48. {
  49. echo --detailed error(online upgrade)--;
  50. cat_file $upgrade_log;
  51. }
  52. # stop service
  53. --disable_result_log
  54. # Wait until stopped
  55. let $sys_errno=0;
  56. while($sys_errno != $ERROR_SERVICE_NOT_ACTIVE)
  57. {
  58. --error 0,$ERROR_SERVICE_CANNOT_ACCEPT_CTRL,$ERROR_SERVICE_NOT_ACTIVE, $ERROR_INVALID_SERVICE_CONTROL
  59. exec $sc_exe stop $service_name;
  60. if($sys_errno != $ERROR_SERVICE_NOT_ACTIVE)
  61. {
  62. --real_sleep 0.1
  63. }
  64. }
  65. --enable_result_log
  66. echo # Service stopped;
  67. echo # -- Upgrade service (offline) --;
  68. --replace_result $upgrade_log UPGRADE_LOG $service_name SERVICE_NAME
  69. let $sys_errno=0;
  70. let $upgrade_success = 1;
  71. error 0,1;
  72. exec $MARIADB_UPGRADE_SERVICE_EXE --service=$service_name;
  73. if($sys_errno != 0)
  74. {
  75. let $upgrade_success = 0;
  76. }
  77. echo # upgrade_success(offline)=$upgrade_success;
  78. file_exists $upgrade_log;
  79. if ($upgrade_success == 0)
  80. {
  81. echo --detailed error(online upgrade)--;
  82. cat_file $upgrade_log;
  83. }
  84. echo # Delete service;
  85. let $sys_errno=0;
  86. --disable_result_log
  87. exec $sc_exe delete $service_name;
  88. --enable_result_log
  89. # Cleanup
  90. source include/wait_until_disconnected.inc;
  91. rmdir $ddir;
  92. remove_file $upgrade_log;
  93. let TEMP=$old_temp;
  94. #restart original server
  95. connection default;
  96. source include/start_mysqld.inc;