diff options
author | Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp> | 2016-12-01 21:35:31 -0800 |
---|---|---|
committer | Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp> | 2016-12-04 20:56:24 -0800 |
commit | 09d8bbf361955b986fbcbf172dfbef2ed78d5f24 (patch) | |
tree | f673bdc2dd0652402afa074c375e02dfdb71798f | |
parent | 0a2c06b8b446cbe4fda89c18c20b069728c70323 (diff) | |
download | liberasurecode-09d8bbf361955b986fbcbf172dfbef2ed78d5f24.tar.gz |
Add get_version functionality to liberasurecode lib
Currently, we have liberasurecode version info in the header and pyeclib
is using the info to detect the version. However it's a bit painful
because it requires to rebuild pyeclib c code for you to see the actual
installed version.
This addition for liberasurecode_get_version enables caller to get the
version integer from compiled shared library file (.so) and it will
rescure to re-compiled operation from pyeclib.
Change-Id: I8161ea7da3b069e83c93e11cb41ce12fa60c6f32
-rw-r--r-- | include/erasurecode/erasurecode.h | 8 | ||||
-rw-r--r-- | src/erasurecode.c | 10 | ||||
-rw-r--r-- | test/liberasurecode_test.c | 9 |
3 files changed, 27 insertions, 0 deletions
diff --git a/include/erasurecode/erasurecode.h b/include/erasurecode/erasurecode.h index a17c45c..e5a6c93 100644 --- a/include/erasurecode/erasurecode.h +++ b/include/erasurecode/erasurecode.h @@ -375,6 +375,14 @@ int liberasurecode_get_minimum_encode_size(int desc); */ int liberasurecode_get_fragment_size(int desc, int data_len); +/** + * This will return the liberasurecode version for the descriptor + * + * @return version uint32_t - from erasurecode_version.h + */ + +uint32_t liberasurecode_get_version(); + /* ==~=*=~===~=*=~==~=*=~== liberasurecode Error codes =~=*=~==~=~=*=~==~== */ /* Error codes */ diff --git a/src/erasurecode.c b/src/erasurecode.c index d3b3cea..4f3419c 100644 --- a/src/erasurecode.c +++ b/src/erasurecode.c @@ -1232,6 +1232,16 @@ int liberasurecode_get_fragment_size(int desc, int data_len) return size; } + +/** + * This will return the liberasurecode version for the descriptor + */ + +uint32_t liberasurecode_get_version() +{ + return LIBERASURECODE_VERSION; +} + /* ==~=*=~==~=*=~==~=*=~==~=*=~==~=* misc *=~==~=*=~==~=*=~==~=*=~==~=*=~== */ #if 0 diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c index 386d49f..3a6cf36 100644 --- a/test/liberasurecode_test.c +++ b/test/liberasurecode_test.c @@ -903,6 +903,11 @@ static void test_get_fragment_partition() free(orig_data); } +static void test_liberasurecode_get_version(){ + uint32_t version = liberasurecode_get_version(); + assert(version == LIBERASURECODE_VERSION); +} + static void encode_decode_test_impl(const ec_backend_id_t be_id, struct ec_args *args, int *skip) @@ -1694,6 +1699,10 @@ struct testcase testcases[] = { test_get_fragment_partition, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX, .skip = false}, + {"test_liberasurecode_get_version", + test_liberasurecode_get_version, + EC_BACKENDS_MAX, CHKSUM_TYPES_MAX, + .skip = false}, // NULL backend test {"create_and_destroy_backend", test_create_and_destroy_backend, |