1/*
2 *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "webrtc/system_wrappers/source/data_log_c_helpers_unittest.h"
12
13#include <assert.h>
14#include <stdlib.h>
15#include <string.h>
16
17#include "webrtc/system_wrappers/interface/data_log_c.h"
18
19enum { kTestArrayLen = 4 };
20static const char kTableName[] = "c_wrapper_table";
21static const char kColumnName1[] = "Scalar";
22static const char kColumnName2[] = "Vector";
23
24int WebRtcDataLogCHelper_TestCreateLog() {
25  return WebRtcDataLog_CreateLog();
26}
27
28int WebRtcDataLogCHelper_TestReturnLog() {
29  WebRtcDataLog_ReturnLog();
30  return 0;
31}
32
33int WebRtcDataLogCHelper_TestCombine() {
34  const int kOutLen = strlen(kTableName) + 4;  // Room for "_17" + '\0'
35  char* combined_name = malloc(kOutLen * sizeof(char));
36  char* out_ptr = WebRtcDataLog_Combine(combined_name, kOutLen, kTableName, 17);
37  int return_code = 0;
38  if (!out_ptr) {
39    return_code = -1;
40  }
41  if (strcmp(combined_name, "c_wrapper_table_17") != 0) {
42    return_code = -2;
43  }
44  free(combined_name);
45  return return_code;
46}
47
48int WebRtcDataLogCHelper_TestAddTable() {
49  return WebRtcDataLog_AddTable(kTableName);
50}
51
52int WebRtcDataLogCHelper_TestAddColumn() {
53  if (WebRtcDataLog_AddColumn(kTableName, kColumnName1, 1) != 0) {
54    return -1;
55  }
56  if (WebRtcDataLog_AddColumn(kTableName, kColumnName2, kTestArrayLen) != 0) {
57    return -2;
58  }
59  return 0;
60}
61
62int WebRtcDataLogCHelper_TestNextRow() {
63  return WebRtcDataLog_NextRow(kTableName);
64}
65
66int WebRtcDataLogCHelper_TestInsertCell_int() {
67  return WebRtcDataLog_InsertCell_int(kTableName, kColumnName1, 17);
68}
69
70int WebRtcDataLogCHelper_TestInsertArray_int() {
71  int values[kTestArrayLen] = {1, 2, 3, 4};
72  return WebRtcDataLog_InsertArray_int(kTableName, kColumnName2, values,
73                                       kTestArrayLen);
74}
75
76int WebRtcDataLogCHelper_TestInsertCell_float() {
77  return WebRtcDataLog_InsertCell_float(kTableName, kColumnName1, 17.0f);
78}
79
80int WebRtcDataLogCHelper_TestInsertArray_float() {
81  float values[kTestArrayLen] = {1.0f, 2.0f, 3.0f, 4.0f};
82  return WebRtcDataLog_InsertArray_float(kTableName, kColumnName2, values,
83                                         kTestArrayLen);
84}
85
86int WebRtcDataLogCHelper_TestInsertCell_double() {
87  return WebRtcDataLog_InsertCell_int(kTableName, kColumnName1, 17.0);
88}
89
90int WebRtcDataLogCHelper_TestInsertArray_double() {
91  double values[kTestArrayLen] = {1.0, 2.0, 3.0, 4.0};
92  return WebRtcDataLog_InsertArray_double(kTableName, kColumnName2, values,
93                                          kTestArrayLen);
94}
95
96int WebRtcDataLogCHelper_TestInsertCell_int32() {
97  return WebRtcDataLog_InsertCell_int32(kTableName, kColumnName1, 17);
98}
99
100int WebRtcDataLogCHelper_TestInsertArray_int32() {
101  int32_t values[kTestArrayLen] = {1, 2, 3, 4};
102  return WebRtcDataLog_InsertArray_int32(kTableName, kColumnName2, values,
103                                         kTestArrayLen);
104}
105
106int WebRtcDataLogCHelper_TestInsertCell_uint32() {
107  return WebRtcDataLog_InsertCell_uint32(kTableName, kColumnName1, 17);
108}
109
110int WebRtcDataLogCHelper_TestInsertArray_uint32() {
111  uint32_t values[kTestArrayLen] = {1, 2, 3, 4};
112  return WebRtcDataLog_InsertArray_uint32(kTableName, kColumnName2, values,
113                                          kTestArrayLen);
114}
115
116int WebRtcDataLogCHelper_TestInsertCell_int64() {
117  return WebRtcDataLog_InsertCell_int64(kTableName, kColumnName1, 17);
118}
119
120int WebRtcDataLogCHelper_TestInsertArray_int64() {
121  int64_t values[kTestArrayLen] = {1, 2, 3, 4};
122  return WebRtcDataLog_InsertArray_int64(kTableName, kColumnName2, values,
123                                         kTestArrayLen);
124}
125