db88f7e3e5205b559811ede081d03ae061485e0d
[platform/core/system/dlog.git] / src / tests / libdlog_android_pos.c
1 /*
2  * Copyright (c) 2018-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 "libdlog_android_wrapper.c"
18
19 int main()
20 {
21         fail_open = false;
22         __dlog_init_android(&CONF);
23         assert(closed == 0);
24         assert(write_to_log);
25         assert(destroy_backend);
26
27         struct timespec tp;
28         int result = clock_gettime(CLOCK_MONOTONIC, &tp);
29         if (result < 0)
30                 return EXIT_FAILURE;
31
32         used_tag = "tag";
33         for (int i = 0; i < 4; ++i) {
34                 writev_called = false;
35                 writev_ret = i + 20;
36                 used_msg = LONG_TEXTS[i];
37                 assert(write_to_log(i, i + 3, "tag", LONG_TEXTS[i], &tp) == i + 20);
38                 assert(writev_called);
39         }
40
41         // NULL tag is also valid, in which case it's implicitly ""
42         used_tag = "";
43         used_msg = LONG_TEXTS[0];
44         writev_ret = 1234;
45         assert(write_to_log(0, 3, NULL, LONG_TEXTS[0], &tp) == 1234);
46
47         destroy_backend();
48         assert(closed + 1 == LOG_ID_MAX);
49 }