mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	Changed header to GPL version 2 only client/mysqlslap.c: Changed header to GPL version 2 only include/atomic/nolock.h: Changed header to GPL version 2 only include/atomic/rwlock.h: Changed header to GPL version 2 only include/atomic/x86-gcc.h: Changed header to GPL version 2 only include/atomic/x86-msvc.h: Changed header to GPL version 2 only include/my_atomic.h: Changed header to GPL version 2 only include/my_trie.h: Changed header to GPL version 2 only include/my_vle.h: Changed header to GPL version 2 only include/mysql/plugin.h: Changed header to GPL version 2 only mysys/my_atomic.c: Changed header to GPL version 2 only mysys/my_getncpus.c: Changed header to GPL version 2 only mysys/my_memmem.c: Changed header to GPL version 2 only mysys/my_vle.c: Changed header to GPL version 2 only mysys/trie.c: Changed header to GPL version 2 only plugin/Makefile.am: Changed header to GPL version 2 only server-tools/instance-manager/IMService.h: Changed header to GPL version 2 only server-tools/instance-manager/WindowsService.h: Changed header to GPL version 2 only server-tools/instance-manager/exit_codes.h: Changed header to GPL version 2 only server-tools/instance-manager/user_management_commands.h: Changed header to GPL version 2 only sql/authors.h: Changed header to GPL version 2 only sql/contributors.h: Changed header to GPL version 2 only sql/event_data_objects.cc: Changed header to GPL version 2 only sql/event_data_objects.h: Changed header to GPL version 2 only sql/event_db_repository.cc: Changed header to GPL version 2 only sql/event_db_repository.h: Changed header to GPL version 2 only sql/event_queue.cc: Changed header to GPL version 2 only sql/event_queue.h: Changed header to GPL version 2 only sql/event_scheduler.cc: Changed header to GPL version 2 only sql/event_scheduler.h: Changed header to GPL version 2 only sql/events.cc: Changed header to GPL version 2 only sql/events.h: Changed header to GPL version 2 only sql/ha_ndbcluster_binlog.cc: Changed header to GPL version 2 only sql/ha_ndbcluster_binlog.h: Changed header to GPL version 2 only sql/ha_ndbcluster_tables.h: Changed header to GPL version 2 only sql/ha_partition.cc: Changed header to GPL version 2 only sql/ha_partition.h: Changed header to GPL version 2 only sql/item_xmlfunc.cc: Changed header to GPL version 2 only sql/item_xmlfunc.h: Changed header to GPL version 2 only sql/log.h: Changed header to GPL version 2 only sql/partition_element.h: Changed header to GPL version 2 only sql/partition_info.cc: Changed header to GPL version 2 only sql/partition_info.h: Changed header to GPL version 2 only sql/rpl_filter.cc: Changed header to GPL version 2 only sql/rpl_filter.h: Changed header to GPL version 2 only sql/rpl_injector.cc: Changed header to GPL version 2 only sql/rpl_injector.h: Changed header to GPL version 2 only sql/rpl_mi.cc: Changed header to GPL version 2 only sql/rpl_mi.h: Changed header to GPL version 2 only sql/rpl_rli.cc: Changed header to GPL version 2 only sql/rpl_rli.h: Changed header to GPL version 2 only sql/rpl_tblmap.cc: Changed header to GPL version 2 only sql/rpl_tblmap.h: Changed header to GPL version 2 only sql/rpl_utility.cc: Changed header to GPL version 2 only sql/rpl_utility.h: Changed header to GPL version 2 only sql/sql_binlog.cc: Changed header to GPL version 2 only sql/sql_partition.cc: Changed header to GPL version 2 only sql/sql_partition.h: Changed header to GPL version 2 only sql/sql_plugin.cc: Changed header to GPL version 2 only sql/sql_plugin.h: Changed header to GPL version 2 only sql/sql_servers.cc: Changed header to GPL version 2 only sql/sql_servers.h: Changed header to GPL version 2 only sql/sql_tablespace.cc: Changed header to GPL version 2 only sql/sql_yacc.yy.bak: Changed header to GPL version 2 only storage/Makefile.am: Changed header to GPL version 2 only storage/archive/Makefile.am: Changed header to GPL version 2 only storage/blackhole/Makefile.am: Changed header to GPL version 2 only storage/csv/Makefile.am: Changed header to GPL version 2 only storage/example/Makefile.am: Changed header to GPL version 2 only storage/federated/Makefile.am: Changed header to GPL version 2 only storage/innobase/handler/Makefile.am: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/AllocNodeId.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/CreateFilegroup.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/CreateFilegroupImpl.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/CreateObj.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/DictObjOp.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/DihFragCount.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/DropFilegroup.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/DropFilegroupImpl.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/DropObj.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/Extent.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/LgmanContinueB.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/PgmanContinueB.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/RestoreContinueB.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/RestoreImpl.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/RouteOrd.hpp: Changed header to GPL version 2 only storage/ndb/include/kernel/signaldata/TsmanContinueB.hpp: Changed header to GPL version 2 only storage/ndb/include/ndbapi/NdbIndexStat.hpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/mgmapi_logevent/mgmapi_logevent.cpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/mgmapi_logevent_dual/mgmapi_logevent_dual.cpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/ndbapi_async/ndbapi_async.cpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/ndbapi_async1/ndbapi_async1.cpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/ndbapi_event/ndbapi_event.cpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/ndbapi_retries/ndbapi_retries.cpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/ndbapi_scan/ndbapi_scan.cpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/ndbapi_simple/ndbapi_simple.cpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/ndbapi_simple_dual/ndbapi_simple_dual.cpp: Changed header to GPL version 2 only storage/ndb/ndbapi-examples/ndbapi_simple_index/ndbapi_simple_index.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/dbdih/printSysfile.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/dbtup/DbtupDiskAlloc.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/dbtup/DbtupVarAlloc.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/dbtup/Undo_buffer.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/dbtup/tuppage.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/dbtup/tuppage.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/dbtux/DbtuxStat.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/diskpage.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/lgman.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/lgman.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/pgman.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/pgman.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/print_file.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/record_types.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/restore.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/restore.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/tsman.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/blocks/tsman.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/DLCFifoList.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/DLCHashTable.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/DynArr256.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/DynArr256.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/KeyTable2Ref.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/LinearPool.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/NdbdSuperPool.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/NdbdSuperPool.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/Pool.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/Pool.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/RWPool.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/RWPool.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/Rope.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/SLFifoList.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/WOPool.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/WOPool.hpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/bench_pool.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp: Changed header to GPL version 2 only storage/ndb/src/kernel/vm/ndbd_malloc_impl.hpp: Changed header to GPL version 2 only storage/ndb/src/mgmsrv/ParamInfo.cpp: Changed header to GPL version 2 only storage/ndb/src/ndbapi/NdbIndexStat.cpp: Changed header to GPL version 2 only storage/ndb/test/ndbapi/testIndexStat.cpp: Changed header to GPL version 2 only storage/ndb/test/tools/listen.cpp: Changed header to GPL version 2 only storage/ndb/tools/restore/ndb_nodegroup_map.h: Changed header to GPL version 2 only strings/my_strchr.c: Changed header to GPL version 2 only unittest/mysys/base64-t.c: Changed header to GPL version 2 only unittest/mysys/bitmap-t.c: Changed header to GPL version 2 only unittest/mysys/my_atomic-t.c: Changed header to GPL version 2 only unittest/mytap/tap.c: Changed header to GPL version 2 only unittest/mytap/tap.h: Changed header to GPL version 2 only win/Makefile.am: Changed header to GPL version 2 only
		
			
				
	
	
		
			264 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			264 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Copyright (C) 2006 MySQL AB
 | |
| 
 | |
|    This program is free software; you can redistribute it and/or modify
 | |
|    it under the terms of the GNU General Public License as published by
 | |
|    the Free Software Foundation; version 2 of the License.
 | |
| 
 | |
|    This program is distributed in the hope that it will be useful,
 | |
|    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|    GNU General Public License for more details.
 | |
| 
 | |
|    You should have received a copy of the GNU General Public License
 | |
|    along with this program; if not, write to the Free Software
 | |
|    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | |
| 
 | |
|    Library for providing TAP support for testing C and C++ was written
 | |
|    by Mats Kindahl <mats@mysql.com>.
 | |
| */
 | |
| 
 | |
| #ifndef TAP_H
 | |
| #define TAP_H
 | |
| 
 | |
| #include "my_global.h"
 | |
| 
 | |
| /*
 | |
|   @defgroup MyTAP MySQL support for performing unit tests according to
 | |
|   the Test Anything Protocol (TAP).
 | |
| */
 | |
| 
 | |
| #define NO_PLAN  (0)
 | |
| 
 | |
| /**
 | |
|    Data about test plan.
 | |
| 
 | |
|    @ingroup MyTAP_Internal
 | |
| 
 | |
|    @internal We are using the "typedef struct X { ... } X" idiom to
 | |
|    create class/struct X both in C and C++.
 | |
|  */
 | |
| 
 | |
| typedef struct TEST_DATA {
 | |
|   /**
 | |
|      Number of tests that is planned to execute.
 | |
| 
 | |
|      Can be zero (<code>NO_PLAN</code>) meaning that the plan string
 | |
|      will be printed at the end of test instead.
 | |
|   */
 | |
|   int plan;
 | |
| 
 | |
|   /** Number of last test that was done or skipped. */
 | |
|   int last;
 | |
| 
 | |
|   /** Number of tests that failed. */
 | |
|   int failed;
 | |
| 
 | |
|   /** Todo reason. */
 | |
|   char todo[128];
 | |
| } TEST_DATA;
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /**
 | |
|   @defgroup MyTAP_API MyTAP API
 | |
| 
 | |
|   MySQL support for performing unit tests according to TAP.
 | |
| 
 | |
|   @{
 | |
| */
 | |
| 
 | |
| /**
 | |
|    Set number of tests that is planned to execute.
 | |
| 
 | |
|    The function also accepts the predefined constant
 | |
|    <code>NO_PLAN</code>.  If the function is not called, it is as if
 | |
|    it was called with <code>NO_PLAN</code>, i.e., the test plan will
 | |
|    be printed after all the test lines.
 | |
| 
 | |
|    The plan() function will install signal handlers for all signals
 | |
|    that generate a core, so if you want to override these signals, do
 | |
|    it <em>after</em> you have called the plan() function.
 | |
| 
 | |
|    @param count The planned number of tests to run. 
 | |
| */
 | |
| 
 | |
| void plan(int count);
 | |
| 
 | |
| 
 | |
| /**
 | |
|    Report test result as a TAP line.
 | |
| 
 | |
|    Function used to write status of an individual test.  Call this
 | |
|    function in the following manner:
 | |
| 
 | |
|    @code
 | |
|    ok(ducks == paddling,
 | |
|       "%d ducks did not paddle", ducks - paddling);
 | |
|    @endcode
 | |
| 
 | |
|    @param pass Zero if the test failed, non-zero if it passed.
 | |
|    @param fmt  Format string in printf() format. NULL is allowed, in
 | |
|                which case nothing is printed.
 | |
| */
 | |
| 
 | |
| void ok(int pass, char const *fmt, ...)
 | |
|   __attribute__((format(printf,2,3)));
 | |
| 
 | |
| 
 | |
| /**
 | |
|    Skip a determined number of tests.
 | |
| 
 | |
|    Function to print that <em>how_many</em> tests have been skipped.
 | |
|    The reason is printed for each skipped test.  Observe that this
 | |
|    function does not do the actual skipping for you, it just prints
 | |
|    information that tests have been skipped. This function is not
 | |
|    usually used, but rather the macro @c SKIP_BLOCK_IF, which does the
 | |
|    skipping for you.
 | |
| 
 | |
|    It shall be used in the following manner:
 | |
| 
 | |
|    @code
 | |
|    if (ducks == 0) {
 | |
|      skip(2, "No ducks in the pond");
 | |
|    } else {
 | |
|       int i;
 | |
|       for (i = 0 ; i < 2 ; ++i)
 | |
|         ok(duck[i] == paddling, "is duck %d paddling?", i);
 | |
|    }
 | |
|    @endcode
 | |
| 
 | |
|    @see SKIP_BLOCK_IF
 | |
| 
 | |
|    @param how_many   Number of tests that are to be skipped.
 | |
|    @param reason     A reason for skipping the tests
 | |
|  */
 | |
| 
 | |
| void skip(int how_many, char const *reason, ...)
 | |
|     __attribute__((format(printf,2,3)));
 | |
| 
 | |
| 
 | |
| /**
 | |
|    Helper macro to skip a block of code.  The macro can be used to
 | |
|    simplify conditionally skipping a block of code.  It is used in the
 | |
|    following manner:
 | |
| 
 | |
|    @code
 | |
|    SKIP_BLOCK_IF(ducks == 0, 2, "No ducks in the pond")
 | |
|    {
 | |
|      int i;
 | |
|      for (i = 0 ; i < 2 ; ++i)
 | |
|        ok(duck[i] == paddling, "is duck %d paddling?", i);
 | |
|    }
 | |
|    @endcode
 | |
| 
 | |
|    @see skip
 | |
|  */
 | |
| 
 | |
| #define SKIP_BLOCK_IF(SKIP_IF_TRUE, COUNT, REASON) \
 | |
|   if (SKIP_IF_TRUE) skip((COUNT),(REASON)); else
 | |
| 
 | |
| 
 | |
| /**
 | |
|    Print a diagnostics message.
 | |
| 
 | |
|    @param fmt  Diagnostics message in printf() format.
 | |
|  */
 | |
| 
 | |
| void diag(char const *fmt, ...)
 | |
|   __attribute__((format(printf,1,2)));
 | |
| 
 | |
| 
 | |
| /**
 | |
|    Print a bail out message.
 | |
| 
 | |
|    A bail out message can be issued when no further testing can be
 | |
|    done, e.g., when there are missing dependencies.
 | |
| 
 | |
|    The test will exit with status 255.  This function does not return.
 | |
| 
 | |
|    @code
 | |
|    BAIL_OUT("Lost connection to server %s", server_name);
 | |
|    @endcode
 | |
| 
 | |
|    @note A bail out message is printed if a signal that generates a
 | |
|    core is raised.
 | |
| 
 | |
|    @param fmt Bail out message in printf() format.
 | |
| */
 | |
| 
 | |
| void BAIL_OUT(char const *fmt, ...)
 | |
|   __attribute__((noreturn, format(printf,1,2)));
 | |
| 
 | |
| 
 | |
| /**
 | |
|    Print summary report and return exit status.
 | |
| 
 | |
|    This function will print a summary report of how many tests passed,
 | |
|    how many were skipped, and how many remains to do.  The function
 | |
|    should be called after all tests are executed in the following
 | |
|    manner:
 | |
| 
 | |
|    @code
 | |
|    return exit_status();
 | |
|    @endcode
 | |
| 
 | |
|    @returns @c EXIT_SUCCESS if all tests passed, @c EXIT_FAILURE if
 | |
|    one or more tests failed.
 | |
|  */
 | |
| 
 | |
| int exit_status(void);
 | |
| 
 | |
| 
 | |
| /**
 | |
|    Skip entire test suite.
 | |
| 
 | |
|    To skip the entire test suite, use this function. It will
 | |
|    automatically call exit(), so there is no need to have checks
 | |
|    around it.
 | |
|  */
 | |
| 
 | |
| void skip_all(char const *reason, ...)
 | |
|   __attribute__((noreturn, format(printf, 1, 2)));
 | |
| 
 | |
| 
 | |
| /**
 | |
|    Start section of tests that are not yet ready.
 | |
| 
 | |
|    To start a section of tests that are not ready and are expected to
 | |
|    fail, use this function and todo_end() in the following manner:
 | |
| 
 | |
|    @code
 | |
|    todo_start("Not ready yet");
 | |
|    ok(is_rocketeering(duck), "Rocket-propelled ducks");
 | |
|    ok(is_kamikaze(duck), "Kamikaze ducks");
 | |
|    todo_end();
 | |
|    @endcode
 | |
| 
 | |
|    @see todo_end
 | |
| 
 | |
|    @note
 | |
|    It is not possible to nest todo sections.
 | |
| 
 | |
|    @param message Message that will be printed before the todo tests.
 | |
| */
 | |
| 
 | |
| void todo_start(char const *message, ...)
 | |
|   __attribute__((format(printf, 1, 2)));
 | |
| 
 | |
| 
 | |
| /**
 | |
|    End a section of tests that are not yet ready.
 | |
| */
 | |
| 
 | |
| void todo_end();
 | |
| 
 | |
| /** @} */
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* TAP_H */
 |