mysql5/mysql-5.7.27/libmysql/api_test.c.in

66 lines
2.0 KiB
C

/* Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
/**
@file
Application for testing if all C API functions to be exported by the client
library (as declared by CLIENT_API_FUNCTIONS in libmysql/CMakeLists.txt) are
declared by <mysql.h> header and indeed exported.
This code should fail to compile if some API function is not declared in
<mysql.h>. Assuming dynamic linking, it should fail to run if some of the
functions is not exported by the shared library.
Note: this source is generated during build configuration process from
template in libmysql/api_test.c.in. Do not edit this file - edit the template
instead.
*/
#include <my_global.h>
#include <my_sys.h>
#include <mysql.h>
#include <stdio.h>
/*
An array of pointers to C API calls to test that all of them are
declared and exported by client library.
*/
static void const* api_calls[] = { @CLIENT_API_FUNCTION_LIST@ };
int main()
{
unsigned api_count= 0;
unsigned i;
for (i=0; i < sizeof(api_calls)/sizeof(void*); ++i)
{
if (api_calls[i])
api_count++;
}
printf("There are %u API functions\n", api_count);
if (mysql_library_init(0,NULL,NULL))
{
printf("Failed to initialize MySQL client library\n");
return 1;
}
printf("MySQL client library initialized: %s\n", mysql_get_client_info());
mysql_library_end();
printf("Done!\n");
return 0;
}