mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
6e10407c2b
for push in 5.1 (I will inform Trudy). Storage engines and plugins can now have unit tests to test their components; such test must be an executable C/C++ program which name ends with '-t' and which is obeys the mytap protocol, it must be stored in the storage engine's or plugin's source directory (storage/<engine> or plugin/<plugin>) or any subdirectories of this. The top-level Makefile target "test-unit" will run all unit tests: it will scan the engines' and plugins' directories, recursively, and execute all executable files which name ends with '-t'." Makefile.am: "unittest" directory must be built before "storage" and "plugin" because the unit tests in these directories may need libmytap.a which is in unittest/mytap. config/ac-macros/plugins.m4: When enabling engine "X", we add "../storage/X" to the unit tests directories which unittest/unit.pl should traverse looking for tests to execute. Same for plugins. unittest/Makefile.am: Those variables contain all enabled engines and plugins. |
||
---|---|---|
.. | ||
examples | ||
mysys | ||
mytap | ||
Makefile.am | ||
README.txt | ||
unit.pl |
Unit tests directory structure ------------------------------ This is the current structure of the unit tests. More directories will be added over time. mytap Source for the MyTAP library mysys Tests for mysys components bitmap-t.c Unit test for MY_BITMAP base64-t.c Unit test for base64 encoding functions examples Example unit tests. core-t.c Example of raising a signal in the middle of the test THIS TEST WILL STOP ALL FURTHER TESTING! simple-t.c Example of a standard TAP unit test skip-t.c Example where some test points are skipped skip_all-t.c Example of a test where the entire test is skipped todo-t.c Example where test contain test points that are TODO no_plan-t.c Example of a test with no plan (avoid this) Executing unit tests -------------------- To make and execute all unit tests in the directory: make test Observe that the tests in the examples/ directory are just various examples of tests and are not expected to pass. Adding unit tests ----------------- Add a file with a name of the format "foo-t.c" to the appropriate directory and add the following to the Makefile.am in that directory (where ... denotes stuff already there): noinst_PROGRAMS = ... foo-t Note, it's important to have "-t" at the end of the filename, otherwise the test won't be executed by 'make test' ! Documentation ------------- There is Doxygen-generated documentation available at: https://intranet.mysql.com/~mkindahl/mytap/html/