mariadb/unittest
guilhem@gbichot3.local 09c5a83416 WL#3504 "plugin actions for engines' and plugins' unit tests"
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'."
2006-09-15 15:15:24 +02:00
..
examples Adding missing file 2006-08-25 16:11:22 +02:00
mysys fixes for the my_atomic-t unit test: 2006-09-14 01:37:41 +02:00
mytap Various fixes to make MyTAP build on all platforms. 2006-08-29 22:23:56 +02:00
Makefile.am WL#3504 "plugin actions for engines' and plugins' unit tests" 2006-09-15 15:15:24 +02:00
README.txt Merge mysql.com:/users/lthalmann/bkroot/mysql-5.1-new-rpl 2006-09-11 13:34:44 +02:00
unit.pl Changes to make unit tests work on OS X and AIX 2006-08-30 14:10:53 +02:00

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/