openh264/test/utils/HashFunctions.h
Sindre Aamås f14fb2cfbc [UT] Allow for different output depending on downsample average order
Avoid X86_ASM ifdef.

Ideally, we may want to update all routines to average vertically
first, which would make this unnecessary. In the interim, this
enables the tests to run successfully on x86 without SSSE3 support
again.
2016-06-16 22:07:58 +02:00

34 lines
1.0 KiB
C

#ifndef __HASHFUNCTIONS_H__
#define __HASHFUNCTIONS_H__
#include <stdio.h>
#include <string.h>
#include <gtest/gtest.h>
#include "../sha1.h"
static void ToHashStr (char* dst, const unsigned char* src, size_t src_len) {
for (size_t i = 0; i < src_len; ++i) {
sprintf (&dst[i * 2], "%.2x", src[i]);
}
dst[src_len * 2] = '\0';
}
inline void CompareHash (const unsigned char* digest, const char* hashStr) {
char hashStrCmp[SHA_DIGEST_LENGTH * 2 + 1];
ToHashStr (hashStrCmp, digest, SHA_DIGEST_LENGTH);
EXPECT_STREQ (hashStr, hashStrCmp);
}
inline void CompareHashAnyOf (const unsigned char* digest, const char* const hashStr[], size_t nHashStr) {
char hashStrCmp[SHA_DIGEST_LENGTH * 2 + 1];
ToHashStr (hashStrCmp, digest, SHA_DIGEST_LENGTH);
for (size_t i = 0; i < nHashStr && hashStr[i]; ++i) {
if (0 == strcmp (hashStr[i], hashStrCmp))
return;
}
// No match found. Compare to first hash so as to produce a grepable failure.
EXPECT_STREQ (hashStr[0], hashStrCmp);
}
#endif //__HASHFUNCTIONS_H__