mysqltest.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:23k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. # ============================================================================
  2. #
  3. # Test of mysqltest itself
  4. #
  5. # There are three rules that determines what belong to each command
  6. # 1. A normal command is delimited by the <delimiter> which by default is
  7. #    set to ';'
  8. #
  9. #   ex: | select *
  10. #       |   from t1;
  11. #       |
  12. #   Command: "select * from t1"
  13. #
  14. # 2. Special case is a line that starts with "--", this is a comment
  15. #    ended when the new line character is reached. But the first word
  16. #    in the comment may contain a valid command, which then will be
  17. #    executed. This can be useful when sending commands that
  18. #    contains <delimiter>
  19. #
  20. # 3. Special case is also a line that starts with '#' which is treated
  21. #     as a comment and will be ended by new line character
  22. #
  23. # ============================================================================
  24. # ----------------------------------------------------------------------------
  25. # $mysql_errno contains the return code of the last command
  26. # send to the server.
  27. # ----------------------------------------------------------------------------
  28. # get $mysql_errno before the first statement
  29. #     $mysql_errno should be -1
  30. eval select $mysql_errno as "before_use_test" ;
  31. # ----------------------------------------------------------------------------
  32. # Positive case(statement)
  33. # ----------------------------------------------------------------------------
  34. select otto from (select 1 as otto) as t1;
  35. # expectation = response
  36. --error 0
  37. select otto from (select 1 as otto) as t1;
  38. # expectation <> response
  39. -- // --error 1054
  40. -- // select otto from (select 1 as otto) as t1;
  41. # ----------------------------------------------------------------------------
  42. # Negative case(statement):
  43. # The dervied table t1 does not contain a column named 'friedrich' . 
  44. # --> ERROR 42S22: Unknown column 'friedrich' in 'field list and
  45. # --> 1054: Unknown column 'friedrich' in 'field list'
  46. # ----------------------------------------------------------------------------
  47. # expectation <> response
  48. #--error 0
  49. #select friedrich from (select 1 as otto) as t1
  50. --error 1
  51. --exec echo "select friedrich from (select 1 as otto) as t1;" | $MYSQL_TEST  2>&1
  52. # expectation = response
  53. --error 1054
  54. select friedrich from (select 1 as otto) as t1;
  55. # The following unmasked unsuccessful statement must give
  56. # 1. mysqltest gives a 'failed'
  57. # 2. does not produce a r/<test case>.reject file !!!
  58. # PLEASE uncomment it and check it's effect
  59. #select friedrich from (select 1 as otto) as t1;
  60. # ----------------------------------------------------------------------------
  61. # Tests for the new feature - SQLSTATE error code matching
  62. # Positive case(statement)
  63. # ----------------------------------------------------------------------------
  64. # This syntax not allowed anymore, use --error S00000, see below
  65. # expectation = response
  66. #!S00000 select otto from (select 1 as otto) as t1;
  67. --error S00000
  68. select otto from (select 1 as otto) as t1;
  69. # expectation <> response
  70. #!S42S22 select otto from (select 1 as otto) as t1;
  71. #--error S42S22
  72. #select otto from (select 1 as otto) as t1;
  73. --error 1
  74. --exec echo "error S42S22; select otto from (select 1 as otto) as t1;" | $MYSQL_TEST  2>&1
  75. # ----------------------------------------------------------------------------
  76. # Negative case(statement)
  77. # ----------------------------------------------------------------------------
  78. # This syntax not allowed anymore, use --error S42S22, see below
  79. # expectation = response
  80. #!S42S22 select friedrich from (select 1 as otto) as t1;
  81. --error S42S22
  82. select friedrich from (select 1 as otto) as t1;
  83. # expectation !=response
  84. #!S00000 select friedrich from (select 1 as otto) as t1;
  85. #--error S00000
  86. #select friedrich from (select 1 as otto) as t1;
  87. --error 1
  88. --exec echo "error S00000; select friedrich from (select 1 as otto) as t1;" | $MYSQL_TEST  2>&1
  89. # ----------------------------------------------------------------------------
  90. # test cases for $mysql_errno
  91. #
  92. # $mysql_errno is a builtin variable of mysqltest and contains the return code
  93. # of the last command send to the server.
  94. #
  95. #      The following test cases often initialize $mysql_errno to 1064 by 
  96. #      a command with wrong syntax.
  97. #      Example: --error 1064      To prevent the abort after the error.
  98. #               garbage ;
  99. # ----------------------------------------------------------------------------
  100. # ----------------------------------------------------------------------------
  101. # check mysql_errno = 0 after successful statement
  102. # ----------------------------------------------------------------------------
  103. select otto from (select 1 as otto) as t1;
  104. eval select $mysql_errno as "after_successful_stmt_errno" ;
  105. #----------------------------------------------------------------------------
  106. # check mysql_errno = 1064 after statement with wrong syntax
  107. # ----------------------------------------------------------------------------
  108. --error 1064
  109. garbage ;
  110. eval select $mysql_errno as "after_wrong_syntax_errno" ;
  111. # ----------------------------------------------------------------------------
  112. # check if let $my_var= 'abc' ; affects $mysql_errno
  113. # ----------------------------------------------------------------------------
  114. --error 1064
  115. garbage ;
  116. let $my_var= 'abc' ;
  117. eval select $mysql_errno as "after_let_var_equal_value" ;
  118. # ----------------------------------------------------------------------------
  119. # check if set @my_var= 'abc' ; affects $mysql_errno
  120. # ----------------------------------------------------------------------------
  121. --error 1064
  122. garbage ;
  123. set @my_var= 'abc' ;
  124. eval select $mysql_errno as "after_set_var_equal_value" ;
  125. # ----------------------------------------------------------------------------
  126. #  check if the setting of --disable-warnings itself affects $mysql_errno
  127. #  (May be --<whatever> modifies $mysql_errno.)
  128. # ----------------------------------------------------------------------------
  129. --error 1064
  130. garbage ;
  131. --disable_warnings
  132. eval select $mysql_errno as "after_disable_warnings_command" ;
  133. # ----------------------------------------------------------------------------
  134. # check if --disable-warnings + command with warning affects the errno
  135. # stored within $mysql_errno
  136. # (May be disabled warnings affect $mysql_errno.)
  137. # ----------------------------------------------------------------------------
  138. drop table if exists t1 ;
  139. --error 1064
  140. garbage ;
  141. drop table if exists t1 ;
  142. eval select $mysql_errno as "after_disable_warnings" ;
  143. --enable_warnings
  144. # ----------------------------------------------------------------------------
  145. # check if masked errors affect $mysql_errno
  146. # ----------------------------------------------------------------------------
  147. --error 1064
  148. garbage ;
  149. --error 1146
  150. select 3 from t1 ;
  151. eval select $mysql_errno as "after_minus_masked" ;
  152. --error 1064
  153. garbage ;
  154. --error 1146
  155. select 3 from t1 ;
  156. eval select $mysql_errno as "after_!_masked" ;
  157. # ----------------------------------------------------------------------------
  158. # Will manipulations of $mysql_errno be possible and visible ?
  159. # ----------------------------------------------------------------------------
  160. --error 1064
  161. garbage ;
  162. let $mysql_errno= -1;
  163. eval select $mysql_errno as "after_let_errno_equal_value" ;
  164. # ----------------------------------------------------------------------------
  165. # How affect actions on prepared statements $mysql_errno ?
  166. # ----------------------------------------------------------------------------
  167. # failing prepare
  168. --error 1064
  169. garbage ;
  170. --error 1146
  171. prepare stmt from "select 3 from t1" ;
  172. eval select $mysql_errno as "after_failing_prepare" ;
  173. create table t1 ( f1 char(10));
  174. # successful prepare
  175. --error 1064
  176. garbage ;
  177. prepare stmt from "select 3 from t1" ;
  178. eval select $mysql_errno as "after_successful_prepare" ;
  179. # successful execute
  180. --error 1064
  181. garbage ;
  182. execute stmt;
  183. eval select $mysql_errno as "after_successful_execute" ;
  184. # failing execute (table dropped)
  185. drop table t1;
  186. --error 1064
  187. garbage ;
  188. --error 1146
  189. execute stmt;
  190. eval select $mysql_errno as "after_failing_execute" ;
  191. # failing execute (unknown statement)
  192. --error 1064
  193. garbage ;
  194. --error 1243
  195. execute __stmt_;
  196. eval select $mysql_errno as "after_failing_execute" ;
  197. # successful deallocate
  198. --error 1064
  199. garbage ;
  200. deallocate prepare stmt;
  201. eval select $mysql_errno as "after_successful_deallocate" ;
  202. # failing deallocate ( statement handle does not exist )
  203. --error 1064
  204. garbage ;
  205. --error 1243
  206. deallocate prepare __stmt_;
  207. eval select $mysql_errno as "after_failing_deallocate" ;
  208. # ----------------------------------------------------------------------------
  209. # test cases for "--disable_abort_on_error"
  210. #
  211. # "--disable_abort_on_error" switches the abort of mysqltest
  212. # after "unmasked" failing statements off.
  213. #
  214. # The default is "--enable_abort_on_error".
  215. #
  216. # "Maskings" are
  217. #   --error <error number>  and  --error <error number>
  218. # in the line before the failing statement.
  219. #
  220. # There are some additional test case for $mysql_errno
  221. # because "--disable_abort_on_error" enables a new situation.
  222. # Example: "unmasked" statement fails + analysis of $mysql_errno
  223. # ----------------------------------------------------------------------------
  224. # ----------------------------------------------------------------------------
  225. # Switch the abort on error off and check the effect on $mysql_errno
  226. # ----------------------------------------------------------------------------
  227. --error 1064
  228. garbage ;
  229. --disable_abort_on_error
  230. eval select $mysql_errno as "after_--disable_abort_on_error" ;
  231. # ----------------------------------------------------------------------------
  232. # "unmasked" failing statement should not cause an abort
  233. # ----------------------------------------------------------------------------
  234. select 3 from t1 ;
  235. # ----------------------------------------------------------------------------
  236. # masked failing statements
  237. # ----------------------------------------------------------------------------
  238. # expected error = response
  239. --error 1146
  240. select 3 from t1 ;
  241. --error 1146
  242. select 3 from t1 ;
  243. eval select $mysql_errno as "after_!errno_masked_error" ;
  244. # expected error <> response
  245. # --error 1000
  246. # select 3 from t1 ;
  247. # --error 1000
  248. # select 3 from t1 ;
  249. --error 1
  250. --exec echo "disable_abort_on_error; error 1000; select 3 from t1; error 1000; select 3 from t1;" | $MYSQL_TEST  2>&1
  251. # ----------------------------------------------------------------------------
  252. # Switch the abort on error on and check the effect on $mysql_errno
  253. # ----------------------------------------------------------------------------
  254. --error 1064
  255. garbage ;
  256. --enable_abort_on_error
  257. eval select $mysql_errno as "after_--enable_abort_on_error" ;
  258. # ----------------------------------------------------------------------------
  259. # masked failing statements
  260. # ----------------------------------------------------------------------------
  261. # expected error = response
  262. --error 1146
  263. select 3 from t1 ;
  264. # ----------------------------------------------------------------------------
  265. # check that the old default behaviour is not changed
  266. # Please remove the '#' to get the abort on error
  267. # ----------------------------------------------------------------------------
  268. #--error 1064
  269. #select 3 from t1 ;
  270. #
  271. #select 3 from t1 ;
  272. # End of 4.1 tests
  273. --error 1
  274. --exec echo "disable_abort_on_error; enable_abort_on_error; error 1064; select 3 from t1; select 3 from t1;" | $MYSQL_TEST  2>&1
  275. # ----------------------------------------------------------------------------
  276. # Test comments
  277. # ----------------------------------------------------------------------------
  278. # This is a comment
  279. # This is a ;  comment
  280. # This is a -- comment
  281. -- This is also a comment
  282. -- # This is also a comment
  283. -- This is also a ; comment
  284. # ----------------------------------------------------------------------------
  285. # Test comments with embedded command
  286. # ----------------------------------------------------------------------------
  287. --echo hello
  288. --     echo hello
  289. --    echo ;;;;;;;;
  290. --echo # MySQL: -- The
  291. # ----------------------------------------------------------------------------
  292. # Test detect end of line "junk"
  293. # Most likely causes by a missing delimiter
  294. # ----------------------------------------------------------------------------
  295. # Too many parameters to function
  296. --error 1
  297. --exec echo "sleep 5 6;" | $MYSQL_TEST 2>&1
  298. # Too many parameters to function
  299. --error 1
  300. --exec echo "--sleep 5 6" | $MYSQL_TEST 2>&1
  301. #
  302. # Missing delimiter
  303. # The comment will be "sucked into" the sleep command since
  304. # delimiter is missing until after "show status"
  305. --system echo "sleep 4" > var/log/mysqltest.sql
  306. --system echo "# A comment" >> var/log/mysqltest.sql
  307. --system echo "show status;" >> var/log/mysqltest.sql
  308. --error 1
  309. --exec $MYSQL_TEST < var/log/mysqltest.sql 2>&1
  310. #
  311. # Extra delimiter
  312. #
  313. --error 1
  314. --exec echo "--sleep 4;" | $MYSQL_TEST 2>&1
  315. # Allow trailing # comment
  316. --sleep 1 # Wait for insert delayed to be executed.
  317. --sleep 1   # Wait for insert delayed to be executed.
  318. # ----------------------------------------------------------------------------
  319. # Test echo command
  320. # ----------------------------------------------------------------------------
  321. echo MySQL;
  322. echo "MySQL";
  323. echo MySQL: The world''s most popular open source database;
  324. echo "MySQL: The world's most popular open source database";
  325. echo MySQL: The world''s
  326.      most popular open
  327.      source database;
  328. echo # MySQL: The world''s
  329. # most popular open
  330. # source database;
  331. echo - MySQL: The world''s
  332. - most popular open
  333. - source database;
  334. echo - MySQL: The world''s
  335. -- most popular open
  336. -- source database;
  337. echo # MySQL: The
  338. --world''s
  339. # most popular
  340. -- open
  341. - source database;
  342. echo "MySQL: The world's most popular; open source database";
  343. echo "MySQL: The world's most popular ; open source database";
  344. echo "MySQL: The world's most popular ;open source database";
  345. echo echo message echo message;
  346. echo ;
  347. # Illegal use of echo
  348. --error 1
  349. --exec echo "echo $;" | $MYSQL_TEST 2>&1
  350. # ----------------------------------------------------------------------------
  351. # Test exec command
  352. # ----------------------------------------------------------------------------
  353. # Illegal use of exec
  354. --error 1
  355. --exec echo "--exec false" | $MYSQL_TEST 2>&1
  356. --error 1
  357. --exec echo "--exec " | $MYSQL_TEST 2>&1
  358. # ----------------------------------------------------------------------------
  359. # Test let command
  360. # ----------------------------------------------------------------------------
  361. let $message=MySQL;
  362. echo $message;
  363. let $message="MySQL";
  364. echo $message;
  365. let $message= MySQL: The
  366.  world''s most
  367.  popular open
  368.  source database;
  369. echo $message;
  370. let $message= # MySQL: The
  371. # world''s most
  372. # popular open
  373. # source database;
  374. echo $message;
  375. let $message=  -- MySQL: The
  376. -- world''s most
  377. -- popular open
  378. -- source database;
  379. echo $message;
  380. let $message=  # MySQL: The
  381. - world''s most
  382. -- popular open
  383. # source database;
  384. echo $message;
  385. echo '$message';
  386. echo "$message";
  387. let $1=hej;
  388. echo $1;
  389. let   $1   =hej ;
  390. echo $1;
  391. let $1 = hej;
  392. echo $1;
  393. let $1=1;
  394. let $2=$1;
  395. echo $2;
  396. let $5=$6;
  397. echo $5;
  398. echo $6;
  399. let $where=a long variable content;
  400. echo $where;
  401. let $where2= $where;
  402. echo $where2;
  403. let $where3=a long $where variable content;
  404. echo $where3;
  405. let $novar1= $novar2;
  406. echo $novar1;
  407. # Test illegal uses of let
  408. --error 1
  409. --exec echo "let ;" | $MYSQL_TEST 2>&1
  410. --error 1
  411. --exec echo "let $=hi;" | $MYSQL_TEST  2>&1
  412. --error 1
  413. --exec echo "let hi=hi;" | $MYSQL_TEST  2>&1
  414. --error 1
  415. --exec echo "let $1 hi;" | $MYSQL_TEST  2>&1
  416. --error 1
  417. --exec echo "let $m hi;" | $MYSQL_TEST  2>&1
  418. --error 1
  419. --exec echo "let $hi;" | $MYSQL_TEST  2>&1
  420. --error 1
  421. --exec echo "let $ hi;" | $MYSQL_TEST  2>&1
  422. --error 1
  423. --exec echo "let =hi;" | $MYSQL_TEST  2>&1
  424. --error 1
  425. --exec echo "let hi;" | $MYSQL_TEST  2>&1
  426. # ----------------------------------------------------------------------------
  427. # Test source command
  428. # ----------------------------------------------------------------------------
  429. # Test illegal uses of source
  430. --error 1
  431. --exec echo "source ;" | $MYSQL_TEST 2>&1
  432. --error 1
  433. --exec echo "source non_existingFile;" | $MYSQL_TEST 2>&1
  434. # Too many source
  435. --exec echo "source var/tmp/recursive.sql;" > var/tmp/recursive.sql
  436. --error 1
  437. --exec echo "source var/tmp/recursive.sql;" | $MYSQL_TEST 2>&1
  438. # Source a file with error
  439. --exec echo "garbage ;" > var/tmp/error.sql
  440. --error 1
  441. --exec echo "source var/tmp/error.sql;" | $MYSQL_TEST 2>&1
  442. # Test execution of source in a while loop
  443. --exec echo "echo here is the sourced script;" > var/tmp/sourced.sql
  444. --disable_query_log
  445. let $outer= 2; # Number of outer loops
  446. while ($outer)
  447. {
  448.   eval SELECT '$outer = outer loop variable after while' AS "";
  449.   --source var/tmp/sourced.sql
  450.   eval SELECT '$outer = outer loop variable before dec' AS "";
  451.   dec $outer;
  452.   eval SELECT '$outer = outer loop variable after dec' AS "";
  453. }
  454. let $outer= 2; # Number of outer loops
  455. while ($outer)
  456. {
  457.   eval SELECT '$outer = outer loop variable after while' AS "";
  458.   echo here is the sourced script;
  459.   eval SELECT '$outer = outer loop variable before dec' AS "";
  460.   dec $outer;
  461.   eval SELECT '$outer = outer loop variable after dec' AS "";
  462. }
  463. # Test execution of source in a while loop
  464. --exec echo "--source var/tmp/sourced.sql" > var/tmp/sourced1.sql
  465. --disable_abort_on_error
  466. # Sourcing of a file within while loop, sourced file will
  467. # source other file
  468. let $num= 9;
  469. while ($num)
  470. {
  471.    SELECT 'In loop' AS "";
  472.    --source var/tmp/sourced1.sql
  473.    dec $num;
  474. }
  475. --enable_abort_on_error
  476. --enable_query_log
  477. # ----------------------------------------------------------------------------
  478. # Test sleep command
  479. # ----------------------------------------------------------------------------
  480. sleep 0.5;
  481. sleep 1;
  482. real_sleep 1;
  483. # Missing parameter
  484. --error 1
  485. --exec echo "sleep ;" | $MYSQL_TEST 2>&1
  486. # Illegal parameter
  487. --error 1
  488. --exec echo "sleep abc;" | $MYSQL_TEST 2>&1
  489. # ----------------------------------------------------------------------------
  490. # Test inc
  491. # ----------------------------------------------------------------------------
  492. inc $i;
  493. echo $i;
  494. inc $i;
  495. echo $i;
  496. let $i=100;
  497. inc $i;
  498. echo $i;
  499. let $i=hej;
  500. echo $i;
  501. inc $i;
  502. echo $i;
  503. --error 1
  504. --exec echo "inc;" | $MYSQL_TEST 2>&1
  505. --error 1
  506. --exec echo "inc i;" | $MYSQL_TEST 2>&1
  507. --error 1
  508. --exec echo "let $i=100; inc $i 1000; echo $i;" | $MYSQL_TEST 2>&1
  509. inc $i; inc $i; inc $i; --echo $i
  510. echo $i;
  511. # ----------------------------------------------------------------------------
  512. # Test dec
  513. # ----------------------------------------------------------------------------
  514. dec $d;
  515. echo $d;
  516. dec $d;
  517. echo $d;
  518. let $d=100;
  519. dec $d;
  520. echo $d;
  521. let $d=hej;
  522. echo $d;
  523. dec $d;
  524. echo $d;
  525. --error 1
  526. --exec echo "dec;" | $MYSQL_TEST 2>&1
  527. --error 1
  528. --exec echo "dec i;" | $MYSQL_TEST 2>&1
  529. --error 1
  530. --exec echo "let $i=100; dec $i 1000; echo $i;" | $MYSQL_TEST 2>&1
  531. # ----------------------------------------------------------------------------
  532. # Test system
  533. # ----------------------------------------------------------------------------
  534. system ls > /dev/null;
  535. system echo "hej" > /dev/null;
  536. --system ls > /dev/null
  537. --system echo "hej" > /dev/null;
  538. --error 1
  539. --exec echo "system;" | $MYSQL_TEST 2>&1
  540. --error 1
  541. --exec echo "system $NONEXISTSINFVAREABLI;" | $MYSQL_TEST 2>&1
  542. --error 1
  543. --exec echo "system false;" | $MYSQL_TEST 2>&1
  544. --disable_abort_on_error
  545. system NonExistsinfComamdn;
  546. --enable_abort_on_error
  547. # ----------------------------------------------------------------------------
  548. # Test delimiter
  549. # ----------------------------------------------------------------------------
  550. delimiter stop;
  551. echo teststop
  552. delimiter ;stop
  553. echo test2;
  554. --delimiter stop
  555. echo test3stop
  556. --delimiter ;
  557. echo test4;
  558. # ----------------------------------------------------------------------------
  559. # Test while, { and }
  560. # ----------------------------------------------------------------------------
  561. let $i=1;
  562. while ($i)
  563. {
  564.   echo $i;
  565.   dec $i;
  566. }
  567. # One liner
  568. #let $i=1;while ($i){echo $i;dec $i;}
  569. # Exceed max nesting level
  570. --error 1
  571. --exec echo "source include/mysqltest_while.inc;" | $MYSQL_TEST 2>&1
  572. --error 1
  573. --exec echo "while $i;" | $MYSQL_TEST 2>&1
  574. --error 1
  575. --exec echo "while ($i;" | $MYSQL_TEST 2>&1
  576. --error 1
  577. --exec echo "let $i=1; while ($i) dec $i;" | $MYSQL_TEST 2>&1
  578. --error 1
  579. --exec echo "};" | $MYSQL_TEST 2>&1
  580. --error 1
  581. --exec echo "end;" | $MYSQL_TEST 2>&1
  582. --error 1
  583. --exec echo "{;" | $MYSQL_TEST 2>&1
  584. --system echo "while (0)" > var/log/mysqltest.sql
  585. --system echo "echo hej;" >> var/log/mysqltest.sql
  586. --error 1
  587. --exec $MYSQL_TEST < var/log/mysqltest.sql 2>&1
  588. --system echo "while (0)" > var/log/mysqltest.sql
  589. --system echo "{echo hej;" >> var/log/mysqltest.sql
  590. --error 1
  591. --exec $MYSQL_TEST < var/log/mysqltest.sql 2>&1
  592. --system echo "while (0){" > var/log/mysqltest.sql
  593. --system echo "echo hej;" >> var/log/mysqltest.sql
  594. --error 1
  595. --exec $MYSQL_TEST < var/log/mysqltest.sql 2>&1
  596. # ----------------------------------------------------------------------------
  597. # Test error messages returned from comments starting with a command
  598. # ----------------------------------------------------------------------------
  599. --error 1
  600. --exec echo "--if the other server is down" | $MYSQL_TEST 2>&1
  601. --error 1
  602. --exec echo "-- end when ..." | $MYSQL_TEST 2>&1
  603. # ----------------------------------------------------------------------------
  604. # Test replace
  605. # ----------------------------------------------------------------------------
  606. --replace_result a b
  607. select "a" as col1, "c" as col2;
  608. --replace_result a b c d
  609. select "a" as col1, "c" as col2;
  610. --error 1
  611. --exec echo "--replace_result a" | $MYSQL_TEST 2>&1
  612. --error 1
  613. --exec echo "--replace_result a;" | $MYSQL_TEST 2>&1
  614. --error 1
  615. --exec echo "replace_result a;" | $MYSQL_TEST 2>&1
  616. --error 1
  617. --exec echo "replace_result a ;" | $MYSQL_TEST 2>&1
  618. --exec echo "replace_result a b;" | $MYSQL_TEST 2>&1
  619. --error 1
  620. --exec echo "--replace_result a b c" | $MYSQL_TEST 2>&1
  621. --error 1
  622. --exec echo "replace_result a b c ;" | $MYSQL_TEST 2>&1
  623. --replace_column 1 b
  624. select "a" as col1, "c" as col2;
  625. --replace_column 1 b 2 d
  626. select "a" as col1, "c" as col2;
  627. --error 1
  628. --exec echo "--replace_column a" | $MYSQL_TEST 2>&1
  629. --error 1
  630. --exec echo "--replace_column 1" | $MYSQL_TEST 2>&1
  631. --error 1
  632. --exec echo "--replace_column a b" | $MYSQL_TEST 2>&1
  633. --error 1
  634. --exec echo "--replace_column a 1" | $MYSQL_TEST 2>&1
  635. --error 1
  636. --exec echo "--replace_column 1 b c " | $MYSQL_TEST 2>&1
  637. # ----------------------------------------------------------------------------
  638. # Test sync_with_master
  639. # ----------------------------------------------------------------------------
  640. --error 1
  641. --exec echo "save_master_pos; sync_with_master 10!;" | $MYSQL_TEST 2>&1
  642. --error 1
  643. --exec echo "save_master_pos; sync_with_master 10 !;" | $MYSQL_TEST 2>&1
  644. --error 1
  645. --exec echo "save_master_pos; sync_with_master a;" | $MYSQL_TEST 2>&1
  646. # ----------------------------------------------------------------------------
  647. # Test mysqltest arguments
  648. # ----------------------------------------------------------------------------
  649. # -x <file_name>, use the file specified after -x as the test file
  650. --exec $MYSQL_TEST < $MYSQL_TEST_DIR/include/mysqltest-x.inc
  651. --exec $MYSQL_TEST -x $MYSQL_TEST_DIR/include/mysqltest-x.inc
  652. --exec $MYSQL_TEST --test_file=$MYSQL_TEST_DIR/include/mysqltest-x.inc
  653. --error 1
  654. --exec $MYSQL_TEST -x non_existing_file.inc 2>&1
  655. # ----------------------------------------------------------------------------
  656. # TODO Test queries, especially their errormessages... so it's easy to debug 
  657. # new scripts and diagnose errors
  658. # ----------------------------------------------------------------------------
  659. # ----------------------------------------------------------------------------
  660. # Test bug#12386
  661. # ----------------------------------------------------------------------------
  662. let $num= 2;
  663. while ($num)
  664. {
  665.    --error 1064
  666.    failing_statement;
  667.    dec $num;
  668. }
  669. SELECT 1 as a;