Coverage Report

Created: 2026-06-30 06:14

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/periodicity_range.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "periodicity_range.h"
6
7
OpenAPI_periodicity_range_t *OpenAPI_periodicity_range_create(
8
    bool is_lower_bound,
9
    int lower_bound,
10
    bool is_upper_bound,
11
    int upper_bound,
12
    OpenAPI_list_t *periodic_vals,
13
    OpenAPI_list_t *add_periodic_vals
14
)
15
0
{
16
0
    OpenAPI_periodicity_range_t *periodicity_range_local_var = ogs_malloc(sizeof(OpenAPI_periodicity_range_t));
17
0
    ogs_assert(periodicity_range_local_var);
18
19
0
    periodicity_range_local_var->is_lower_bound = is_lower_bound;
20
0
    periodicity_range_local_var->lower_bound = lower_bound;
21
0
    periodicity_range_local_var->is_upper_bound = is_upper_bound;
22
0
    periodicity_range_local_var->upper_bound = upper_bound;
23
0
    periodicity_range_local_var->periodic_vals = periodic_vals;
24
0
    periodicity_range_local_var->add_periodic_vals = add_periodic_vals;
25
26
0
    return periodicity_range_local_var;
27
0
}
28
29
void OpenAPI_periodicity_range_free(OpenAPI_periodicity_range_t *periodicity_range)
30
0
{
31
0
    OpenAPI_lnode_t *node = NULL;
32
33
0
    if (NULL == periodicity_range) {
34
0
        return;
35
0
    }
36
0
    if (periodicity_range->periodic_vals) {
37
0
        OpenAPI_list_for_each(periodicity_range->periodic_vals, node) {
38
0
            ogs_free(node->data);
39
0
        }
40
0
        OpenAPI_list_free(periodicity_range->periodic_vals);
41
0
        periodicity_range->periodic_vals = NULL;
42
0
    }
43
0
    if (periodicity_range->add_periodic_vals) {
44
0
        OpenAPI_list_for_each(periodicity_range->add_periodic_vals, node) {
45
0
            ogs_free(node->data);
46
0
        }
47
0
        OpenAPI_list_free(periodicity_range->add_periodic_vals);
48
0
        periodicity_range->add_periodic_vals = NULL;
49
0
    }
50
0
    ogs_free(periodicity_range);
51
0
}
52
53
cJSON *OpenAPI_periodicity_range_convertToJSON(OpenAPI_periodicity_range_t *periodicity_range)
54
0
{
55
0
    cJSON *item = NULL;
56
0
    OpenAPI_lnode_t *node = NULL;
57
58
0
    if (periodicity_range == NULL) {
59
0
        ogs_error("OpenAPI_periodicity_range_convertToJSON() failed [PeriodicityRange]");
60
0
        return NULL;
61
0
    }
62
63
0
    item = cJSON_CreateObject();
64
0
    if (periodicity_range->is_lower_bound) {
65
0
    if (cJSON_AddNumberToObject(item, "lowerBound", periodicity_range->lower_bound) == NULL) {
66
0
        ogs_error("OpenAPI_periodicity_range_convertToJSON() failed [lower_bound]");
67
0
        goto end;
68
0
    }
69
0
    }
70
71
0
    if (periodicity_range->is_upper_bound) {
72
0
    if (cJSON_AddNumberToObject(item, "upperBound", periodicity_range->upper_bound) == NULL) {
73
0
        ogs_error("OpenAPI_periodicity_range_convertToJSON() failed [upper_bound]");
74
0
        goto end;
75
0
    }
76
0
    }
77
78
0
    if (periodicity_range->periodic_vals) {
79
0
    cJSON *periodic_valsList = cJSON_AddArrayToObject(item, "periodicVals");
80
0
    if (periodic_valsList == NULL) {
81
0
        ogs_error("OpenAPI_periodicity_range_convertToJSON() failed [periodic_vals]");
82
0
        goto end;
83
0
    }
84
0
    OpenAPI_list_for_each(periodicity_range->periodic_vals, node) {
85
0
        if (node->data == NULL) {
86
0
            ogs_error("OpenAPI_periodicity_range_convertToJSON() failed [periodic_vals]");
87
0
            goto end;
88
0
        }
89
0
        if (cJSON_AddNumberToObject(periodic_valsList, "", *(double *)node->data) == NULL) {
90
0
            ogs_error("OpenAPI_periodicity_range_convertToJSON() failed [periodic_vals]");
91
0
            goto end;
92
0
        }
93
0
    }
94
0
    }
95
96
0
    if (periodicity_range->add_periodic_vals) {
97
0
    cJSON *add_periodic_valsList = cJSON_AddArrayToObject(item, "addPeriodicVals");
98
0
    if (add_periodic_valsList == NULL) {
99
0
        ogs_error("OpenAPI_periodicity_range_convertToJSON() failed [add_periodic_vals]");
100
0
        goto end;
101
0
    }
102
0
    OpenAPI_list_for_each(periodicity_range->add_periodic_vals, node) {
103
0
        if (node->data == NULL) {
104
0
            ogs_error("OpenAPI_periodicity_range_convertToJSON() failed [add_periodic_vals]");
105
0
            goto end;
106
0
        }
107
0
        if (cJSON_AddNumberToObject(add_periodic_valsList, "", *(double *)node->data) == NULL) {
108
0
            ogs_error("OpenAPI_periodicity_range_convertToJSON() failed [add_periodic_vals]");
109
0
            goto end;
110
0
        }
111
0
    }
112
0
    }
113
114
0
end:
115
0
    return item;
116
0
}
117
118
OpenAPI_periodicity_range_t *OpenAPI_periodicity_range_parseFromJSON(cJSON *periodicity_rangeJSON)
119
0
{
120
0
    OpenAPI_periodicity_range_t *periodicity_range_local_var = NULL;
121
0
    OpenAPI_lnode_t *node = NULL;
122
0
    cJSON *lower_bound = NULL;
123
0
    cJSON *upper_bound = NULL;
124
0
    cJSON *periodic_vals = NULL;
125
0
    OpenAPI_list_t *periodic_valsList = NULL;
126
0
    cJSON *add_periodic_vals = NULL;
127
0
    OpenAPI_list_t *add_periodic_valsList = NULL;
128
0
    lower_bound = cJSON_GetObjectItemCaseSensitive(periodicity_rangeJSON, "lowerBound");
129
0
    if (lower_bound) {
130
0
    if (!cJSON_IsNumber(lower_bound)) {
131
0
        ogs_error("OpenAPI_periodicity_range_parseFromJSON() failed [lower_bound]");
132
0
        goto end;
133
0
    }
134
0
    }
135
136
0
    upper_bound = cJSON_GetObjectItemCaseSensitive(periodicity_rangeJSON, "upperBound");
137
0
    if (upper_bound) {
138
0
    if (!cJSON_IsNumber(upper_bound)) {
139
0
        ogs_error("OpenAPI_periodicity_range_parseFromJSON() failed [upper_bound]");
140
0
        goto end;
141
0
    }
142
0
    }
143
144
0
    periodic_vals = cJSON_GetObjectItemCaseSensitive(periodicity_rangeJSON, "periodicVals");
145
0
    if (periodic_vals) {
146
0
        cJSON *periodic_vals_local = NULL;
147
0
        if (!cJSON_IsArray(periodic_vals)) {
148
0
            ogs_error("OpenAPI_periodicity_range_parseFromJSON() failed [periodic_vals]");
149
0
            goto end;
150
0
        }
151
152
0
        periodic_valsList = OpenAPI_list_create();
153
154
0
        cJSON_ArrayForEach(periodic_vals_local, periodic_vals) {
155
0
            double *localDouble = NULL;
156
0
            int *localInt = NULL;
157
0
            if (!cJSON_IsNumber(periodic_vals_local)) {
158
0
                ogs_error("OpenAPI_periodicity_range_parseFromJSON() failed [periodic_vals]");
159
0
                goto end;
160
0
            }
161
0
            localDouble = (double *)ogs_calloc(1, sizeof(double));
162
0
            if (!localDouble) {
163
0
                ogs_error("OpenAPI_periodicity_range_parseFromJSON() failed [periodic_vals]");
164
0
                goto end;
165
0
            }
166
0
            *localDouble = periodic_vals_local->valuedouble;
167
0
            OpenAPI_list_add(periodic_valsList, localDouble);
168
0
        }
169
0
    }
170
171
0
    add_periodic_vals = cJSON_GetObjectItemCaseSensitive(periodicity_rangeJSON, "addPeriodicVals");
172
0
    if (add_periodic_vals) {
173
0
        cJSON *add_periodic_vals_local = NULL;
174
0
        if (!cJSON_IsArray(add_periodic_vals)) {
175
0
            ogs_error("OpenAPI_periodicity_range_parseFromJSON() failed [add_periodic_vals]");
176
0
            goto end;
177
0
        }
178
179
0
        add_periodic_valsList = OpenAPI_list_create();
180
181
0
        cJSON_ArrayForEach(add_periodic_vals_local, add_periodic_vals) {
182
0
            double *localDouble = NULL;
183
0
            int *localInt = NULL;
184
0
            if (!cJSON_IsNumber(add_periodic_vals_local)) {
185
0
                ogs_error("OpenAPI_periodicity_range_parseFromJSON() failed [add_periodic_vals]");
186
0
                goto end;
187
0
            }
188
0
            localDouble = (double *)ogs_calloc(1, sizeof(double));
189
0
            if (!localDouble) {
190
0
                ogs_error("OpenAPI_periodicity_range_parseFromJSON() failed [add_periodic_vals]");
191
0
                goto end;
192
0
            }
193
0
            *localDouble = add_periodic_vals_local->valuedouble;
194
0
            OpenAPI_list_add(add_periodic_valsList, localDouble);
195
0
        }
196
0
    }
197
198
0
    periodicity_range_local_var = OpenAPI_periodicity_range_create (
199
0
        lower_bound ? true : false,
200
0
        lower_bound ? lower_bound->valuedouble : 0,
201
0
        upper_bound ? true : false,
202
0
        upper_bound ? upper_bound->valuedouble : 0,
203
0
        periodic_vals ? periodic_valsList : NULL,
204
0
        add_periodic_vals ? add_periodic_valsList : NULL
205
0
    );
206
207
0
    return periodicity_range_local_var;
208
0
end:
209
0
    if (periodic_valsList) {
210
0
        OpenAPI_list_for_each(periodic_valsList, node) {
211
0
            ogs_free(node->data);
212
0
        }
213
0
        OpenAPI_list_free(periodic_valsList);
214
0
        periodic_valsList = NULL;
215
0
    }
216
0
    if (add_periodic_valsList) {
217
0
        OpenAPI_list_for_each(add_periodic_valsList, node) {
218
0
            ogs_free(node->data);
219
0
        }
220
0
        OpenAPI_list_free(add_periodic_valsList);
221
0
        add_periodic_valsList = NULL;
222
0
    }
223
0
    return NULL;
224
0
}
225
226
OpenAPI_periodicity_range_t *OpenAPI_periodicity_range_copy(OpenAPI_periodicity_range_t *dst, OpenAPI_periodicity_range_t *src)
227
0
{
228
0
    cJSON *item = NULL;
229
0
    char *content = NULL;
230
231
0
    ogs_assert(src);
232
0
    item = OpenAPI_periodicity_range_convertToJSON(src);
233
0
    if (!item) {
234
0
        ogs_error("OpenAPI_periodicity_range_convertToJSON() failed");
235
0
        return NULL;
236
0
    }
237
238
0
    content = cJSON_Print(item);
239
0
    cJSON_Delete(item);
240
241
0
    if (!content) {
242
0
        ogs_error("cJSON_Print() failed");
243
0
        return NULL;
244
0
    }
245
246
0
    item = cJSON_Parse(content);
247
0
    ogs_free(content);
248
0
    if (!item) {
249
0
        ogs_error("cJSON_Parse() failed");
250
0
        return NULL;
251
0
    }
252
253
0
    OpenAPI_periodicity_range_free(dst);
254
0
    dst = OpenAPI_periodicity_range_parseFromJSON(item);
255
0
    cJSON_Delete(item);
256
257
0
    return dst;
258
0
}
259