Coverage Report

Created: 2026-07-14 06:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/mrfp_info.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "mrfp_info.h"
6
7
OpenAPI_mrfp_info_t *OpenAPI_mrfp_info_create(
8
    OpenAPI_list_t *media_capability_list
9
)
10
1.04k
{
11
1.04k
    OpenAPI_mrfp_info_t *mrfp_info_local_var = ogs_malloc(sizeof(OpenAPI_mrfp_info_t));
12
1.04k
    ogs_assert(mrfp_info_local_var);
13
14
1.04k
    mrfp_info_local_var->media_capability_list = media_capability_list;
15
16
1.04k
    return mrfp_info_local_var;
17
1.04k
}
18
19
void OpenAPI_mrfp_info_free(OpenAPI_mrfp_info_t *mrfp_info)
20
1.87k
{
21
1.87k
    OpenAPI_lnode_t *node = NULL;
22
23
1.87k
    if (NULL == mrfp_info) {
24
823
        return;
25
823
    }
26
1.04k
    if (mrfp_info->media_capability_list) {
27
149
        OpenAPI_list_for_each(mrfp_info->media_capability_list, node) {
28
149
            ogs_free(node->data);
29
149
        }
30
148
        OpenAPI_list_free(mrfp_info->media_capability_list);
31
148
        mrfp_info->media_capability_list = NULL;
32
148
    }
33
1.04k
    ogs_free(mrfp_info);
34
1.04k
}
35
36
cJSON *OpenAPI_mrfp_info_convertToJSON(OpenAPI_mrfp_info_t *mrfp_info)
37
0
{
38
0
    cJSON *item = NULL;
39
0
    OpenAPI_lnode_t *node = NULL;
40
41
0
    if (mrfp_info == NULL) {
42
0
        ogs_error("OpenAPI_mrfp_info_convertToJSON() failed [MrfpInfo]");
43
0
        return NULL;
44
0
    }
45
46
0
    item = cJSON_CreateObject();
47
0
    if (mrfp_info->media_capability_list) {
48
0
    cJSON *media_capability_listList = cJSON_AddArrayToObject(item, "mediaCapabilityList");
49
0
    if (media_capability_listList == NULL) {
50
0
        ogs_error("OpenAPI_mrfp_info_convertToJSON() failed [media_capability_list]");
51
0
        goto end;
52
0
    }
53
0
    OpenAPI_list_for_each(mrfp_info->media_capability_list, node) {
54
0
        if (cJSON_AddStringToObject(media_capability_listList, "", (char*)node->data) == NULL) {
55
0
            ogs_error("OpenAPI_mrfp_info_convertToJSON() failed [media_capability_list]");
56
0
            goto end;
57
0
        }
58
0
    }
59
0
    }
60
61
0
end:
62
0
    return item;
63
0
}
64
65
OpenAPI_mrfp_info_t *OpenAPI_mrfp_info_parseFromJSON(cJSON *mrfp_infoJSON)
66
1.30k
{
67
1.30k
    OpenAPI_mrfp_info_t *mrfp_info_local_var = NULL;
68
1.30k
    OpenAPI_lnode_t *node = NULL;
69
1.30k
    cJSON *media_capability_list = NULL;
70
1.30k
    OpenAPI_list_t *media_capability_listList = NULL;
71
1.30k
    media_capability_list = cJSON_GetObjectItemCaseSensitive(mrfp_infoJSON, "mediaCapabilityList");
72
1.30k
    if (media_capability_list) {
73
401
        cJSON *media_capability_list_local = NULL;
74
401
        if (!cJSON_IsArray(media_capability_list)) {
75
66
            ogs_error("OpenAPI_mrfp_info_parseFromJSON() failed [media_capability_list]");
76
66
            goto end;
77
66
        }
78
79
335
        media_capability_listList = OpenAPI_list_create();
80
81
500
        cJSON_ArrayForEach(media_capability_list_local, media_capability_list) {
82
500
            double *localDouble = NULL;
83
500
            int *localInt = NULL;
84
500
            if (!cJSON_IsString(media_capability_list_local)) {
85
187
                ogs_error("OpenAPI_mrfp_info_parseFromJSON() failed [media_capability_list]");
86
187
                goto end;
87
187
            }
88
313
            OpenAPI_list_add(media_capability_listList, ogs_strdup(media_capability_list_local->valuestring));
89
313
        }
90
335
    }
91
92
1.04k
    mrfp_info_local_var = OpenAPI_mrfp_info_create (
93
1.04k
        media_capability_list ? media_capability_listList : NULL
94
1.04k
    );
95
96
1.04k
    return mrfp_info_local_var;
97
253
end:
98
253
    if (media_capability_listList) {
99
187
        OpenAPI_list_for_each(media_capability_listList, node) {
100
164
            ogs_free(node->data);
101
164
        }
102
187
        OpenAPI_list_free(media_capability_listList);
103
187
        media_capability_listList = NULL;
104
187
    }
105
253
    return NULL;
106
1.30k
}
107
108
OpenAPI_mrfp_info_t *OpenAPI_mrfp_info_copy(OpenAPI_mrfp_info_t *dst, OpenAPI_mrfp_info_t *src)
109
0
{
110
0
    cJSON *item = NULL;
111
0
    char *content = NULL;
112
113
0
    ogs_assert(src);
114
0
    item = OpenAPI_mrfp_info_convertToJSON(src);
115
0
    if (!item) {
116
0
        ogs_error("OpenAPI_mrfp_info_convertToJSON() failed");
117
0
        return NULL;
118
0
    }
119
120
0
    content = cJSON_Print(item);
121
0
    cJSON_Delete(item);
122
123
0
    if (!content) {
124
0
        ogs_error("cJSON_Print() failed");
125
0
        return NULL;
126
0
    }
127
128
0
    item = cJSON_Parse(content);
129
0
    ogs_free(content);
130
0
    if (!item) {
131
0
        ogs_error("cJSON_Parse() failed");
132
0
        return NULL;
133
0
    }
134
135
0
    OpenAPI_mrfp_info_free(dst);
136
0
    dst = OpenAPI_mrfp_info_parseFromJSON(item);
137
0
    cJSON_Delete(item);
138
139
0
    return dst;
140
0
}
141