2 * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 #include "tethering_file.h"
23 #define TETHERING_TEST_FILE_PATH "/lib/hostapd/"
24 #define TETHERING_TEST_FILE_PATH_LEN 13
26 static bool tethering_mock_file_result;
28 extern FILE *__real_fopen(const char *pathname, const char *mode);
29 extern int __real_rename(const char *old, const char *new);
31 void tethering_mock_set_file_result(bool result)
33 tethering_mock_file_result = result;
36 FILE *__wrap_fopen(const char *pathname, const char *mode)
38 if (!tethering_mock_file_result)
41 char *ptr = strstr(pathname, TETHERING_TEST_FILE_PATH);
44 return __real_fopen(pathname, mode);
46 return __real_fopen(ptr + TETHERING_TEST_FILE_PATH_LEN, mode);
49 FILE *__wrap_fopen64(const char *pathname, const char *mode)
51 if (!tethering_mock_file_result)
54 return __wrap_fopen(pathname, mode);
57 int __wrap_rename(const char *old, const char *new)
59 if (!tethering_mock_file_result)
62 char *p_old = strstr(old, TETHERING_TEST_FILE_PATH);
63 char *p_new = strstr(new, TETHERING_TEST_FILE_PATH);
66 return __real_rename(old, new);
68 return __real_rename(p_old + TETHERING_TEST_FILE_PATH_LEN,
69 p_new + TETHERING_TEST_FILE_PATH_LEN);