/* 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 header and indeed exported. This code should fail to compile if some API function is not declared in . 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 #include #include #include /* 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; }