diff options
author | NagaChaitanya Vellanki <nagachaitanya.vellanki@gmail.com> | 2016-03-08 08:21:26 +0300 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-03-09 22:05:29 +0300 |
commit | 285fda093732a3dbb81c5bc35d49232febd0e0a9 (patch) | |
tree | e0ee983777fbaa5966c90884f53fb3679fe42023 /libavutil | |
parent | ad16eff64ba78d8dc98a8324640025c7cb2857f3 (diff) |
Add tests for functions in hash.c
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/Makefile | 1 | ||||
-rw-r--r-- | libavutil/hash.c | 42 |
2 files changed, 43 insertions, 0 deletions
diff --git a/libavutil/Makefile b/libavutil/Makefile index 934564fff0..58df75a94e 100644 --- a/libavutil/Makefile +++ b/libavutil/Makefile @@ -186,6 +186,7 @@ TESTPROGS = adler32 \ file \ fifo \ float_dsp \ + hash \ hmac \ lfg \ lls \ diff --git a/libavutil/hash.c b/libavutil/hash.c index 7037b0d6ff..e5452ba929 100644 --- a/libavutil/hash.c +++ b/libavutil/hash.c @@ -237,3 +237,45 @@ void av_hash_freep(AVHashContext **ctx) av_freep(&(*ctx)->ctx); av_freep(ctx); } + +#ifdef TEST +// LCOV_EXCL_START +#define SRC_BUF_SIZE 64 +#define DST_BUF_SIZE (AV_HASH_MAX_SIZE * 8) + +int main(void) +{ + struct AVHashContext *ctx = NULL; + int i, j; + static const uint8_t src[SRC_BUF_SIZE] = { 0 }; + uint8_t dst[DST_BUF_SIZE]; + for (i = 0; i < NUM_HASHES; i++) { + if (av_hash_alloc(&ctx, av_hash_names(i)) < 0) + return 1; + + av_hash_init(ctx); + av_hash_update(ctx, src, SRC_BUF_SIZE); + memset(dst, 0, DST_BUF_SIZE); + av_hash_final_hex(ctx, dst, DST_BUF_SIZE); + printf("%s hex: %s\n", av_hash_get_name(ctx), dst); + + av_hash_init(ctx); + av_hash_update(ctx, src, SRC_BUF_SIZE); + av_hash_final_bin(ctx, dst, DST_BUF_SIZE); + printf("%s bin: ", av_hash_get_name(ctx)); + for (j = 0; j < av_hash_get_size(ctx); j++) { + printf("%#x ", dst[j]); + } + printf("\n"); + + av_hash_init(ctx); + av_hash_update(ctx, src, SRC_BUF_SIZE); + av_hash_final_b64(ctx, dst, DST_BUF_SIZE); + printf("%s b64: %s\n", av_hash_get_name(ctx), dst); + av_hash_freep(&ctx); + } + return 0; +} + +// LCOV_EXCL_STOP +#endif |