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