History

reorganize tests

Licai Guo committed 12 years ago

Commit f26bb571 parent 667bfe223 files · +68 −43Browse files

Showing the changes to test/api/cpp_interface_test.cpp (1 of 23 files). Show all

Unified · Split

test/api/cpp_interface_test.cpp+129−0
@@ -0,0 +1,129 @@
1#include <gtest/gtest.h>
2#include "codec_api.h"
3#include <stddef.h>
4
5static void CheckFunctionOrder(int expect, int actual, const char* name) {
6 EXPECT_EQ(expect, actual) << "Wrong function order: " << name;
7}
8
9typedef void(*CheckFunc)(int, int, const char*);
10extern "C" void CheckEncoderInterface(ISVCEncoder* p, CheckFunc);
11extern "C" void CheckDecoderInterface(ISVCDecoder* p, CheckFunc);
12extern "C" size_t GetBoolSize(void);
13extern "C" size_t GetBoolOffset(void);
14extern "C" size_t GetBoolStructSize(void);
15
16// Store the 'this' pointer to verify 'this' is received as expected from C code.
17static void* gThis;
18
19/**
20 * Return a unique number for each virtual function so that we are able to
21 * check if the order of functions in the virtual table is as expected.
22 */
23struct SVCEncoderImpl : public ISVCEncoder {
24 virtual ~SVCEncoderImpl() {}
25 virtual int EXTAPI Initialize(const SEncParamBase* pParam) {
26 EXPECT_TRUE(gThis == this);
27 return 1;
28 }
29 virtual int EXTAPI InitializeExt(const SEncParamExt* pParam) {
30 EXPECT_TRUE(gThis == this);
31 return 2;
32 }
33 virtual int EXTAPI GetDefaultParams(SEncParamExt* pParam) {
34 EXPECT_TRUE(gThis == this);
35 return 3;
36 }
37 virtual int EXTAPI Uninitialize() {
38 EXPECT_TRUE(gThis == this);
39 return 4;
40 }
41 virtual int EXTAPI EncodeFrame(const SSourcePicture* kpSrcPic,
42 SFrameBSInfo* pBsInfo) {
43 EXPECT_TRUE(gThis == this);
44 return 5;
45 }
46 virtual int EXTAPI EncodeParameterSets(SFrameBSInfo* pBsInfo) {
47 EXPECT_TRUE(gThis == this);
48 return 6;
49 }
50 virtual int EXTAPI PauseFrame(const SSourcePicture* kpSrcPic,
51 SFrameBSInfo* pBsInfo) {
52 EXPECT_TRUE(gThis == this);
53 return 7;
54 }
55 virtual int EXTAPI ForceIntraFrame(bool bIDR) {
56 EXPECT_TRUE(gThis == this);
57 return 8;
58 }
59 virtual int EXTAPI SetOption(ENCODER_OPTION eOptionId, void* pOption) {
60 EXPECT_TRUE(gThis == this);
61 return 9;
62 }
63 virtual int EXTAPI GetOption(ENCODER_OPTION eOptionId, void* pOption) {
64 EXPECT_TRUE(gThis == this);
65 return 10;
66 }
67};
68
69struct SVCDecoderImpl : public ISVCDecoder {
70 virtual ~SVCDecoderImpl() {}
71 virtual long EXTAPI Initialize(const SDecodingParam* pParam) {
72 EXPECT_TRUE(gThis == this);
73 return 1;
74 }
75 virtual long EXTAPI Uninitialize() {
76 EXPECT_TRUE(gThis == this);
77 return 2;
78 }
79 virtual DECODING_STATE EXTAPI DecodeFrame(const unsigned char* pSrc,
80 const int iSrcLen, unsigned char** ppDst, int* pStride,
81 int& iWidth, int& iHeight) {
82 EXPECT_TRUE(gThis == this);
83 return static_cast<DECODING_STATE>(3);
84 }
85 virtual DECODING_STATE EXTAPI DecodeFrame2(const unsigned char* pSrc,
86 const int iSrcLen, void** ppDst, SBufferInfo* pDstInfo) {
87 EXPECT_TRUE(gThis == this);
88 return static_cast<DECODING_STATE>(4);
89 }
90 virtual DECODING_STATE EXTAPI DecodeFrameEx(const unsigned char* pSrc,
91 const int iSrcLen, unsigned char* pDst, int iDstStride,
92 int& iDstLen, int& iWidth, int& iHeight, int& iColorFormat) {
93 EXPECT_TRUE(gThis == this);
94 return static_cast<DECODING_STATE>(5);
95 }
96 virtual long EXTAPI SetOption (DECODER_OPTION eOptionId, void* pOption) {
97 EXPECT_TRUE(gThis == this);
98 return 6;
99 }
100 virtual long EXTAPI GetOption (DECODER_OPTION eOptionId, void* pOption) {
101 EXPECT_TRUE(gThis == this);
102 return 7;
103 }
104};
105
106TEST(ISVCEncoderTest, CheckFunctionOrder) {
107 SVCEncoderImpl* p = new SVCEncoderImpl;
108 gThis = p;
109 CheckEncoderInterface(p, CheckFunctionOrder);
110 delete p;
111}
112
113TEST(ISVCDecoderTest, CheckFunctionOrder) {
114 SVCDecoderImpl* p = new SVCDecoderImpl;
115 gThis = p;
116 CheckDecoderInterface(p, CheckFunctionOrder);
117 delete p;
118}
119
120struct bool_test_struct {
121 char c;
122 bool b;
123};
124
125TEST(ISVCDecoderEncoderTest, CheckCAbi) {
126 EXPECT_EQ(sizeof(bool), GetBoolSize()) << "Wrong size of bool type";
127 EXPECT_EQ(offsetof(bool_test_struct, b), GetBoolOffset()) << "Wrong alignment of bool in a struct";
128 EXPECT_EQ(sizeof(bool_test_struct), GetBoolStructSize()) << "Wrong size of struct with a bool";
129}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t