Coverage Report

Created: 2026-08-17 06:12

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/sbi/openapi/model/snssai.c
Line
Count
Source
1
2
#include <stdlib.h>
3
#include <string.h>
4
#include <stdio.h>
5
#include "snssai.h"
6
7
OpenAPI_snssai_t *OpenAPI_snssai_create(
8
    int sst,
9
    char *sd
10
)
11
1.35k
{
12
1.35k
    OpenAPI_snssai_t *snssai_local_var = ogs_malloc(sizeof(OpenAPI_snssai_t));
13
1.35k
    ogs_assert(snssai_local_var);
14
15
1.35k
    snssai_local_var->sst = sst;
16
1.35k
    snssai_local_var->sd = sd;
17
18
1.35k
    return snssai_local_var;
19
1.35k
}
20
21
void OpenAPI_snssai_free(OpenAPI_snssai_t *snssai)
22
1.35k
{
23
1.35k
    OpenAPI_lnode_t *node = NULL;
24
25
1.35k
    if (NULL == snssai) {
26
0
        return;
27
0
    }
28
1.35k
    if (snssai->sd) {
29
80
        ogs_free(snssai->sd);
30
80
        snssai->sd = NULL;
31
80
    }
32
1.35k
    ogs_free(snssai);
33
1.35k
}
34
35
cJSON *OpenAPI_snssai_convertToJSON(OpenAPI_snssai_t *snssai)
36
0
{
37
0
    cJSON *item = NULL;
38
0
    OpenAPI_lnode_t *node = NULL;
39
40
0
    if (snssai == NULL) {
41
0
        ogs_error("OpenAPI_snssai_convertToJSON() failed [Snssai]");
42
0
        return NULL;
43
0
    }
44
45
0
    item = cJSON_CreateObject();
46
0
    if (cJSON_AddNumberToObject(item, "sst", snssai->sst) == NULL) {
47
0
        ogs_error("OpenAPI_snssai_convertToJSON() failed [sst]");
48
0
        goto end;
49
0
    }
50
51
0
    if (snssai->sd) {
52
0
    if (cJSON_AddStringToObject(item, "sd", snssai->sd) == NULL) {
53
0
        ogs_error("OpenAPI_snssai_convertToJSON() failed [sd]");
54
0
        goto end;
55
0
    }
56
0
    }
57
58
0
end:
59
0
    return item;
60
0
}
61
62
OpenAPI_snssai_t *OpenAPI_snssai_parseFromJSON(cJSON *snssaiJSON)
63
1.71k
{
64
1.71k
    OpenAPI_snssai_t *snssai_local_var = NULL;
65
1.71k
    OpenAPI_lnode_t *node = NULL;
66
1.71k
    cJSON *sst = NULL;
67
1.71k
    cJSON *sd = NULL;
68
1.71k
    sst = cJSON_GetObjectItemCaseSensitive(snssaiJSON, "sst");
69
1.71k
    if (!sst) {
70
198
        ogs_error("OpenAPI_snssai_parseFromJSON() failed [sst]");
71
198
        goto end;
72
198
    }
73
1.51k
    if (!cJSON_IsNumber(sst)) {
74
93
        ogs_error("OpenAPI_snssai_parseFromJSON() failed [sst]");
75
93
        goto end;
76
93
    }
77
78
1.42k
    sd = cJSON_GetObjectItemCaseSensitive(snssaiJSON, "sd");
79
1.42k
    if (sd) {
80
218
    if (!cJSON_IsString(sd) && !cJSON_IsNull(sd)) {
81
67
        ogs_error("OpenAPI_snssai_parseFromJSON() failed [sd]");
82
67
        goto end;
83
67
    }
84
218
    }
85
86
1.35k
    snssai_local_var = OpenAPI_snssai_create (
87
        
88
1.35k
        sst->valuedouble,
89
1.35k
        sd && !cJSON_IsNull(sd) ? ogs_strdup(sd->valuestring) : NULL
90
1.35k
    );
91
92
1.35k
    return snssai_local_var;
93
358
end:
94
358
    return NULL;
95
1.42k
}
96
97
OpenAPI_snssai_t *OpenAPI_snssai_copy(OpenAPI_snssai_t *dst, OpenAPI_snssai_t *src)
98
0
{
99
0
    cJSON *item = NULL;
100
0
    char *content = NULL;
101
102
0
    ogs_assert(src);
103
0
    item = OpenAPI_snssai_convertToJSON(src);
104
0
    if (!item) {
105
0
        ogs_error("OpenAPI_snssai_convertToJSON() failed");
106
0
        return NULL;
107
0
    }
108
109
0
    content = cJSON_Print(item);
110
0
    cJSON_Delete(item);
111
112
0
    if (!content) {
113
0
        ogs_error("cJSON_Print() failed");
114
0
        return NULL;
115
0
    }
116
117
0
    item = cJSON_Parse(content);
118
0
    ogs_free(content);
119
0
    if (!item) {
120
0
        ogs_error("cJSON_Parse() failed");
121
0
        return NULL;
122
0
    }
123
124
0
    OpenAPI_snssai_free(dst);
125
0
    dst = OpenAPI_snssai_parseFromJSON(item);
126
0
    cJSON_Delete(item);
127
128
0
    return dst;
129
0
}
130