Disable lto option when building gtest
[platform/core/api/tethering.git] / tests / tethering-gtest-util.cpp
1 /*
2 * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #include "tethering-gtest-util.h"
18
19 #include <glib.h>
20
21 extern "C" {
22 #include "mocks/tethering_gdbus.h"
23 };
24
25 TetheringTestUtil::TetheringTestUtil(void) : testType(TETHERING_TEST_UTIL_MAX), mainLoop(NULL), timeoutId(0)
26 {
27 }
28
29 TetheringTestUtil::~TetheringTestUtil(void)
30 {
31 }
32
33 void TetheringTestUtil::setTestType(int type)
34 {
35         testType = type;
36 }
37
38 int TetheringTestUtil::getTestType(void)
39 {
40         return testType;
41 }
42
43 void TetheringTestUtil::runMainLoop(void)
44 {
45         mainLoop = g_main_loop_new(NULL, false);
46         timeoutId = g_timeout_add(10, TetheringTestUtil::timeoutCallback, this);
47         g_main_loop_run(mainLoop);
48 }
49
50 void TetheringTestUtil::stopMainLoop(void)
51 {
52         if (mainLoop)
53                 g_main_loop_quit(mainLoop);
54
55         if (timeoutId)
56                 g_source_remove(timeoutId);
57 }
58
59 gboolean TetheringTestUtil::timeoutCallback(gpointer user_data)
60 {
61         TetheringTestUtil *util = (TetheringTestUtil *)user_data;
62         int type = util->getTestType();
63
64         switch(type) {
65         case TETHERING_TEST_UTIL_TYPE_ENABLE:
66         case TETHERING_TEST_UTIL_TYPE_DISABLE:
67         case TETHERING_TEST_UTIL_TYPE_RELOAD:
68         case TETHERING_TEST_UTIL_TYPE_DATA_USAGE:
69                 tethering_mock_invoke_gdbus_async_callback();
70                 break;
71         case TETHERING_TEST_UTIL_TYPE_WIFI_ENABLE_EVENT:
72                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_WIFI_TETHER_ON);
73                 break;
74         case TETHERING_TEST_UTIL_TYPE_WIFI_DISABLE_EVENT:
75                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_WIFI_TETHER_OFF);
76                 break;
77         case TETHERING_TEST_UTIL_TYPE_USB_ENABLE_EVENT:
78                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_USB_TETHER_ON);
79                 break;
80         case TETHERING_TEST_UTIL_TYPE_USB_DISABLE_EVENT:
81                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_USB_TETHER_OFF);
82                 break;
83         case TETHERING_TEST_UTIL_TYPE_BT_ENABLE_EVENT:
84                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_BT_TETHER_ON);
85                 break;
86         case TETHERING_TEST_UTIL_TYPE_BT_DISABLE_EVENT:
87                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_BT_TETHER_OFF);
88                 break;
89         case TETHERING_TEST_UTIL_TYPE_NO_DATA_TIMEOUT:
90                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_NO_DATA_TIMEOUT);
91                 break;
92         case TETHERING_TEST_UTIL_TYPE_LOW_BATTERY_MODE:
93                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_LOW_BATTERY_MODE);
94                 break;
95         case TETHERING_TEST_UTIL_TYPE_FLIGHT_MODE:
96                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_FLIGHT_MODE);
97                 break;
98         case TETHERING_TEST_UTIL_TYPE_NET_CLOSED:
99                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_NET_CLOSED);
100                 break;
101         case TETHERING_TEST_UTIL_TYPE_SECURITY_TYPE_CHANGED:
102                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_SECURITY_TYPE_CHANGED);
103                 break;
104         case TETHERING_TEST_UTIL_TYPE_SSID_VISIBILITY_CHANGED:
105                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_SSID_VISIBILITY_CHANGED);
106                 break;
107         case TETHERING_TEST_UTIL_TYPE_PASSPHRASE_CHANGED:
108                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_PASSPHRASE_CHANGED);
109                 break;
110         case TETHERING_TEST_UTIL_TYPE_CONNECTION_CHANGED:
111                 tethering_mock_emit_gdbus_signal(TETHERING_MOCK_GDBUS_SIGNAL_DHCP_STATUS);
112                 break;
113         case TETHERING_TEST_UTIL_MAX:
114         default:
115                 // Do Nothing.
116                 break;
117         }
118
119         util->stopMainLoop();
120
121     return FALSE;
122 }