summaryrefslogtreecommitdiff
path: root/libavutil/hash.c
diff options
context:
space:
mode:
authorNagaChaitanya Vellanki <nagachaitanya.vellanki@gmail.com>2016-03-07 21:21:26 -0800
committerMichael Niedermayer <michael@niedermayer.cc>2016-03-09 20:05:29 +0100
commit285fda093732a3dbb81c5bc35d49232febd0e0a9 (patch)
treee0ee983777fbaa5966c90884f53fb3679fe42023 /libavutil/hash.c
parentad16eff64ba78d8dc98a8324640025c7cb2857f3 (diff)
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.c42
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