From 3248801a925449644071671dcd85e370303071b4 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Fri, 23 Jan 2015 17:04:14 +0100 Subject: Improve version information Add version number and string as macros and symbols. Version numbers can be easily compared, for example in the C preprocessor: #include #if CMARK_VERSION < 0x020200 #error Requires libcmark 2.2.0 or higher #endif Storing the version in a global variable allows to check the library version at runtime. For example: if (CMARK_VERSION != cmark_version) { warn("Compiled against libcmark %s, but using %s", CMARK_VERSION_STRING, cmark_version_string); } The version should be updated whenever the public API is changed. --- api_test/main.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'api_test/main.c') diff --git a/api_test/main.c b/api_test/main.c index af40a9f..d341246 100644 --- a/api_test/main.c +++ b/api_test/main.c @@ -52,6 +52,14 @@ test_incomplete_char(test_batch_runner *runner, const char *utf8, static void test_continuation_byte(test_batch_runner *runner, const char *utf8); +static void +version(test_batch_runner *runner) +{ + INT_EQ(runner, cmark_version, CMARK_VERSION, "cmark_version"); + STR_EQ(runner, cmark_version_string, CMARK_VERSION_STRING, + "cmark_version_string"); +} + static void constructor(test_batch_runner *runner) { @@ -666,6 +674,7 @@ int main() { int retval; test_batch_runner *runner = test_batch_runner_new(); + version(runner); constructor(runner); accessors(runner); node_check(runner); -- cgit v1.2.3