| #include "IntelMetadataBuffer.h" |
| #include <stdio.h> |
| #include <string.h> |
| #include <stdlib.h> |
| |
| #define SUCCESS "PASS IntelMetadataBuffer Unit Test\n" |
| #define FAIL "Fail IntelMetadataBuffer Unit Test\n" |
| |
| int main(int argc, char* argv[]) |
| { |
| IntelMetadataBuffer *mb1, *mb2; |
| uint8_t* bytes; |
| uint32_t size; |
| IMB_Result ret; |
| |
| IntelMetadataBufferType t1 = IntelMetadataBufferTypeCameraSource; |
| IntelMetadataBufferType t2; |
| int32_t v1 = 0x00000010; |
| int32_t v2 = 0; |
| ValueInfo vi1, *vi2 = NULL; |
| int32_t ev1[10]; |
| int32_t *ev2 = NULL; |
| unsigned int count; |
| |
| if (argc > 1) |
| t1 = (IntelMetadataBufferType) atoi(argv[1]); |
| |
| if (argc > 2) |
| v1 = atoi(argv[2]); |
| |
| memset(&vi1, 0, sizeof(ValueInfo)); |
| |
| mb1 = new IntelMetadataBuffer(); |
| ret = mb1->SetType(t1); |
| ret = mb1->SetValue(v1); |
| mb1->GetMaxBufferSize(); |
| if (t1 != IntelMetadataBufferTypeGrallocSource) { |
| ret = mb1->SetValueInfo(&vi1); |
| ret = mb1->SetExtraValues(ev1, 10); |
| ret = mb1->SetExtraValues(ev1, 10); |
| } |
| // ret = mb1->GetBytes(bytes, size); |
| ret = mb1->Serialize(bytes, size); |
| printf("assembling IntelMetadataBuffer %s, ret = %d\n", (ret == IMB_SUCCESS)?"Success":"Fail", ret ); |
| |
| printf("size = %d, bytes = ", size); |
| for(int i=0; i<size; i++) |
| { |
| printf("%02x ", bytes[i]); |
| } |
| printf("\n"); |
| |
| mb2 = new IntelMetadataBuffer(); |
| // ret = mb2->SetBytes(bytes, size); |
| ret = mb2->UnSerialize(bytes, size); |
| printf("parsing IntelMetadataBuffer %s, ret = %d\n", (ret == IMB_SUCCESS)?"Success":"Fail", ret ); |
| |
| ret = mb2->GetType(t2); |
| ret = mb2->GetValue(v2); |
| ret = mb2->GetValueInfo(vi2); |
| ret = mb1->SetExtraValues(ev1, 10); |
| ret = mb2->GetExtraValues(ev2, count); |
| |
| IntelMetadataBuffer mb3;; |
| // mb3 = new IntelMetadataBuffer(); |
| ret = mb3.SetType(t1); |
| ret = mb3.SetValue(v1); |
| ret = mb3.SetExtraValues(ev1, 10); |
| ret = mb3.SetValueInfo(&vi1); |
| ret = mb3.UnSerialize(bytes, size); |
| |
| IntelMetadataBuffer *mb4 = new IntelMetadataBuffer(mb3); |
| IntelMetadataBuffer *mb5; |
| mb5 = mb4; |
| |
| printf("t2=%d, v2=%d, vi2=%x, ev2=%x\n", t2, v2, vi2, ev2); |
| if (v1 == v2 && t1 == t2 ) { |
| if (vi2) { |
| if (memcmp(&vi1, vi2, sizeof(ValueInfo)) == 0) { |
| if (ev2) { |
| if (memcmp(ev1, ev2, count) == 0) |
| printf(SUCCESS); |
| else |
| printf(FAIL); |
| }else |
| printf(SUCCESS); |
| }else |
| printf(FAIL); |
| }else |
| printf(SUCCESS); |
| }else |
| printf(SUCCESS); |
| |
| return 1; |
| } |