mirror of
https://github.com/apple/foundationdb.git
synced 2025-05-14 09:58:50 +08:00
Merge pull request #4173 from sfc-gh-anoyes/anoyes/fdb-c89-test
Make sure that fdb_c.h is c90 compliant
This commit is contained in:
commit
b8ff724232
@ -111,6 +111,12 @@ if(NOT WIN32)
|
||||
set_property(TARGET mako PROPERTY SKIP_BUILD_RPATH TRUE)
|
||||
target_link_libraries(mako PRIVATE fdb_c)
|
||||
|
||||
# Make sure that fdb_c.h is compatible with c90
|
||||
add_executable(fdb_c90_test test/fdb_c90_test.c)
|
||||
set_property(TARGET fdb_c90_test PROPERTY C_STANDARD 90)
|
||||
target_compile_options(fdb_c90_test PRIVATE -Wall -Wextra -Wpedantic -Werror)
|
||||
target_link_libraries(fdb_c90_test PRIVATE fdb_c)
|
||||
|
||||
add_fdbclient_test(
|
||||
NAME fdb_c_setup_tests
|
||||
COMMAND $<TARGET_FILE:fdb_c_setup_tests>)
|
||||
|
@ -45,12 +45,17 @@
|
||||
#define WARN_UNUSED_RESULT
|
||||
#endif
|
||||
|
||||
// With default settings, gcc will not warn about unprototyped functions being called, so it
|
||||
// is easy to erroneously call a function which is not available at FDB_API_VERSION and then
|
||||
// get an error only at runtime. These macros ensure a compile error in such cases, and
|
||||
// attempt to make the compile error slightly informative.
|
||||
#define This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION() [=====]
|
||||
#define FDB_REMOVED_FUNCTION This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION(0)
|
||||
/*
|
||||
* With default settings, gcc will not warn about unprototyped functions being
|
||||
* called, so it is easy to erroneously call a function which is not available
|
||||
* at FDB_API_VERSION and then get an error only at runtime. These macros
|
||||
* ensure a compile error in such cases, and attempt to make the compile error
|
||||
* slightly informative.
|
||||
*/
|
||||
#define This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION() \
|
||||
[== == = ]
|
||||
#define FDB_REMOVED_FUNCTION \
|
||||
This_FoundationDB_API_function_is_removed_at_this_FDB_API_VERSION(0)
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
@ -248,10 +253,13 @@ extern "C" {
|
||||
fdb_transaction_get_committed_version( FDBTransaction* tr,
|
||||
int64_t* out_version );
|
||||
|
||||
// This function intentionally returns an FDBFuture instead of an integer directly,
|
||||
// so that calling this API can see the effect of previous mutations on the transaction.
|
||||
// Specifically, mutations are applied asynchronously by the main thread. In order to
|
||||
// see them, this call has to be serviced by the main thread too.
|
||||
/*
|
||||
* This function intentionally returns an FDBFuture instead of an integer
|
||||
* directly, so that calling this API can see the effect of previous
|
||||
* mutations on the transaction. Specifically, mutations are applied
|
||||
* asynchronously by the main thread. In order to see them, this call has to
|
||||
* be serviced by the main thread too.
|
||||
*/
|
||||
DLLEXPORT WARN_UNUSED_RESULT FDBFuture *
|
||||
fdb_transaction_get_approximate_size(FDBTransaction *tr);
|
||||
|
||||
@ -305,7 +313,7 @@ extern "C" {
|
||||
typedef struct FDB_cluster FDBCluster;
|
||||
|
||||
typedef enum {
|
||||
// This option is only a placeholder for C compatibility and should not be used
|
||||
/* This option is only a placeholder for C compatibility and should not be used */
|
||||
FDB_CLUSTER_OPTION_DUMMY_DO_NOT_USE=-1
|
||||
} FDBClusterOption;
|
||||
#endif
|
||||
|
9
bindings/c/test/fdb_c90_test.c
Normal file
9
bindings/c/test/fdb_c90_test.c
Normal file
@ -0,0 +1,9 @@
|
||||
#define FDB_API_VERSION 700
|
||||
#include <foundationdb/fdb_c.h>
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
fdb_select_api_version(700);
|
||||
return 0;
|
||||
}
|
@ -52,8 +52,8 @@ namespace vexillographer
|
||||
{
|
||||
string parameterComment = "";
|
||||
if (o.scope.ToString().EndsWith("Option"))
|
||||
parameterComment = String.Format("{0}// {1}\n", indent, "Parameter: " + o.getParameterComment());
|
||||
return String.Format("{0}// {2}\n{5}{0}{1}{3}={4}", indent, prefix, o.comment, o.name.ToUpper(), o.code, parameterComment);
|
||||
parameterComment = String.Format("{0}/* {1} */\n", indent, "Parameter: " + o.getParameterComment());
|
||||
return String.Format("{0}/* {2} */\n{5}{0}{1}{3}={4}", indent, prefix, o.comment, o.name.ToUpper(), o.code, parameterComment);
|
||||
}
|
||||
|
||||
private static void writeCEnum(TextWriter outFile, Scope scope, IEnumerable<Option> options)
|
||||
|
Loading…
x
Reference in New Issue
Block a user