diff options
author | NagaChaitanya Vellanki <nagachaitanya.vellanki@gmail.com> | 2016-03-07 21:21:26 -0800 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2016-03-09 20:05:29 +0100 |
commit | 285fda093732a3dbb81c5bc35d49232febd0e0a9 (patch) | |
tree | e0ee983777fbaa5966c90884f53fb3679fe42023 /libavutil/hash.c | |
parent | ad16eff64ba78d8dc98a8324640025c7cb2857f3 (diff) | |
download | ffmpeg-285fda093732a3dbb81c5bc35d49232febd0e0a9.tar.gz |
Add tests for functions in hash.c
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavutil/hash.c')
-rw-r--r-- | libavutil/hash.c | 42 |
1 files changed, 42 insertions, 0 deletions
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 |