434336b072
In addition to allowing tests to use the RTCD-enabled functions (perhaps transitively) without having run a full encode/decode test yet, this fixes a linking issue with Apple's G++ whereby the Common symbols (the function pointers themselves) wouldn't be resolved. Fixing this linking issue is the primary impetus for this patch, as none of the tests exercise the RTCD functionality except through the main API. Change-Id: I12aed91ca37a707e5309aa6cb9c38a649c06bc6a
59 lines
1.5 KiB
C++
59 lines
1.5 KiB
C++
/*
|
|
* Copyright (c) 2012 The WebM project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
#include <string>
|
|
#include "vpx_config.h"
|
|
#if ARCH_X86 || ARCH_X86_64
|
|
extern "C" {
|
|
#include "vpx_ports/x86.h"
|
|
#if CONFIG_VP8
|
|
extern void vp8_rtcd();
|
|
#endif
|
|
#if CONFIG_VP9
|
|
extern void vp9_rtcd();
|
|
#endif
|
|
}
|
|
#endif
|
|
#include "third_party/googletest/src/include/gtest/gtest.h"
|
|
|
|
static void append_gtest_filter(const char *str) {
|
|
std::string filter = ::testing::FLAGS_gtest_filter;
|
|
filter += str;
|
|
::testing::FLAGS_gtest_filter = filter;
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
::testing::InitGoogleTest(&argc, argv);
|
|
|
|
#if ARCH_X86 || ARCH_X86_64
|
|
const int simd_caps = x86_simd_caps();
|
|
if (!(simd_caps & HAS_MMX))
|
|
append_gtest_filter(":-MMX/*");
|
|
if (!(simd_caps & HAS_SSE))
|
|
append_gtest_filter(":-SSE/*");
|
|
if (!(simd_caps & HAS_SSE2))
|
|
append_gtest_filter(":-SSE2/*");
|
|
if (!(simd_caps & HAS_SSE3))
|
|
append_gtest_filter(":-SSE3/*");
|
|
if (!(simd_caps & HAS_SSSE3))
|
|
append_gtest_filter(":-SSSE3/*");
|
|
if (!(simd_caps & HAS_SSE4_1))
|
|
append_gtest_filter(":-SSE4_1/*");
|
|
#endif
|
|
|
|
#if CONFIG_VP8
|
|
vp8_rtcd();
|
|
#endif
|
|
#if CONFIG_VP9
|
|
vp9_rtcd();
|
|
#endif
|
|
|
|
return RUN_ALL_TESTS();
|
|
}
|