From d1cd99244f96bd95bbd67cc737248df346dec08b Mon Sep 17 00:00:00 2001 From: egor-tensin Date: Thu, 25 Apr 2024 03:50:51 +0000 Subject: =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20egor-tensin/cimp?= =?UTF-8?q?le@8e652dd2cb69928ea1596aa3e59845fef6854e2c=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html | 1816 ++++++++++++++++++++ 1 file changed, 1816 insertions(+) create mode 100644 coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html (limited to 'coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html') diff --git a/coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html b/coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html new file mode 100644 index 0000000..3b4a19b --- /dev/null +++ b/coverage/index.run_queue.c.fdfaa39d71447cf1e7d01ff206bd91e5.html @@ -0,0 +1,1816 @@ + + + + + + GCC Code Coverage Report + + + + + +

GCC Code Coverage Report

+ +
+ +
+
+ + + + + + + + + + + + + +
Directory:src/
File:src/run_queue.c
Date:2024-04-25 03:45:42
+
+
+ + + + + + + + + + + + + + + + + + + +
ExecTotalCoverage
Lines:8111073.6%
Branches:173647.2%
+
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LineBranchExecSource
1 + /*
2 + * Copyright (c) 2022 Egor Tensin <egor@tensin.name>
3 + * This file is part of the "cimple" project.
4 + * For details, see https://github.com/egor-tensin/cimple.
5 + * Distributed under the MIT License.
6 + */
7 +
8 + #include "run_queue.h"
9 + #include "json.h"
10 + #include "log.h"
11 +
12 + #include <json-c/json_object.h>
13 +
14 + #include <stdlib.h>
15 + #include <string.h>
16 + #include <sys/queue.h>
17 +
18 + struct run {
19 + int id;
20 + char *repo_url;
21 + char *repo_rev;
22 + int status;
23 + int exit_code;
24 +
25 + SIMPLEQ_ENTRY(run) entries;
26 + };
27 +
28 + 36720int run_new(struct run **_entry, int id, const char *_repo_url, const char *_repo_rev,
29 + enum run_status status, int exit_code)
30 + {
31 + 36720 struct run *entry = malloc(sizeof(struct run));
32 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 36720 times.
+
+
+
36720 if (!entry) {
33 + log_errno("malloc");
34 + goto fail;
35 + }
36 +
37 + 36720 char *repo_url = strdup(_repo_url);
38 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 36720 times.
+
+
+
36720 if (!repo_url) {
39 + log_errno("strdup");
40 + goto free_entry;
41 + }
42 +
43 + 36720 char *repo_rev = strdup(_repo_rev);
44 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 36720 times.
+
+
+
36720 if (!repo_rev) {
45 + log_errno("strdup");
46 + goto free_repo_url;
47 + }
48 +
49 + 36720 entry->id = id;
50 + 36720 entry->repo_url = repo_url;
51 + 36720 entry->repo_rev = repo_rev;
52 + 36720 entry->status = status;
53 + 36720 entry->exit_code = exit_code;
54 +
55 + 36720 *_entry = entry;
56 + 36720 return 0;
57 +
58 + free_repo_url:
59 + free(repo_url);
60 +
61 + free_entry:
62 + free(entry);
63 +
64 + fail:
65 + return -1;
66 + }
67 +
68 + 36720void run_destroy(struct run *entry)
69 + {
70 + 36720 free(entry->repo_rev);
71 + 36720 free(entry->repo_url);
72 + 36720 free(entry);
73 + 36720}
74 +
75 + 18360int run_queued(struct run **entry, const char *repo_url, const char *repo_rev)
76 + {
77 + 18360 return run_new(entry, -1, repo_url, repo_rev, RUN_STATUS_CREATED, -1);
78 + }
79 +
80 + 9180int run_created(struct run **entry, int id, const char *repo_url, const char *repo_rev)
81 + {
82 + 9180 return run_new(entry, id, repo_url, repo_rev, RUN_STATUS_CREATED, -1);
83 + }
84 +
85 + 9180int run_to_json(const struct run *entry, struct json_object **_json)
86 + {
87 + 9180 struct json_object *json = NULL;
88 + 9180 int ret = 0;
89 +
90 + 9180 ret = libjson_new_object(&json);
91 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 9180 times.
+
+
+
9180 if (ret < 0)
92 + return -1;
93 + 9180 ret = libjson_set_int_const_key(json, "id", entry->id);
94 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 9180 times.
+
+
+
9180 if (ret < 0)
95 + goto free;
96 + 9180 ret = libjson_set_int_const_key(json, "exit_code", entry->exit_code);
97 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 9180 times.
+
+
+
9180 if (ret < 0)
98 + goto free;
99 + 9180 ret = libjson_set_string_const_key(json, "repo_url", entry->repo_url);
100 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 9180 times.
+
+
+
9180 if (ret < 0)
101 + goto free;
102 + 9180 ret = libjson_set_string_const_key(json, "repo_rev", entry->repo_rev);
103 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 9180 times.
+
+
+
9180 if (ret < 0)
104 + goto free;
105 +
106 + 9180 *_json = json;
107 + 9180 return ret;
108 +
109 + free:
110 + libjson_free(json);
111 +
112 + return ret;
113 + }
114 +
115 + 45900int run_get_id(const struct run *entry)
116 + {
117 + 45900 return entry->id;
118 + }
119 +
120 + 64260const char *run_get_repo_url(const struct run *entry)
121 + {
122 + 64260 return entry->repo_url;
123 + }
124 +
125 + 36720const char *run_get_repo_rev(const struct run *entry)
126 + {
127 + 36720 return entry->repo_rev;
128 + }
129 +
130 + 9180void run_set_id(struct run *entry, int id)
131 + {
132 + 9180 entry->id = id;
133 + 9180}
134 +
135 + 55void run_queue_create(struct run_queue *queue)
136 + {
137 + 55 SIMPLEQ_INIT(queue);
138 + 55}
139 +
140 + 55void run_queue_destroy(struct run_queue *queue)
141 + {
142 + 55 struct run *entry1 = SIMPLEQ_FIRST(queue);
143 +
+ 2/2 +
+
✓ Branch 0 taken 9180 times.
+
✓ Branch 1 taken 55 times.
+
+
+
9235 while (entry1) {
144 + 9180 struct run *entry2 = SIMPLEQ_NEXT(entry1, entries);
145 + 9180 run_destroy(entry1);
146 + 9180 entry1 = entry2;
147 + }
148 + 55 SIMPLEQ_INIT(queue);
149 + 55}
150 +
151 + 26int run_queue_to_json(const struct run_queue *queue, struct json_object **_json)
152 + {
153 + 26 struct json_object *json = NULL;
154 + 26 int ret = 0;
155 +
156 + 26 ret = libjson_new_array(&json);
157 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 26 times.
+
+
+
26 if (ret < 0)
158 + return ret;
159 +
160 + 26 struct run *entry = NULL;
161 +
+ 2/2 +
+
✓ Branch 0 taken 9180 times.
+
✓ Branch 1 taken 26 times.
+
+
+
9206 SIMPLEQ_FOREACH(entry, queue, entries)
162 + {
163 + 9180 struct json_object *entry_json = NULL;
164 + 9180 ret = run_to_json(entry, &entry_json);
165 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 9180 times.
+
+
+
9180 if (ret < 0)
166 + goto free;
167 +
168 + 9180 ret = libjson_append(json, entry_json);
169 +
+ 1/2 +
+
✗ Branch 0 not taken.
+
✓ Branch 1 taken 9180 times.
+
+
+
9180 if (ret < 0) {
170 + libjson_free(entry_json);
171 + goto free;
172 + }
173 + }
174 +
175 + 26 *_json = json;
176 + 26 return ret;
177 +
178 + free:
179 + libjson_free(json);
180 +
181 + return ret;
182 + }
183 +
184 + 27472int run_queue_is_empty(const struct run_queue *queue)
185 + {
186 + 27472 return SIMPLEQ_EMPTY(queue);
187 + }
188 +
189 + void run_queue_add_first(struct run_queue *queue, struct run *entry)
190 + {
191 + SIMPLEQ_INSERT_HEAD(queue, entry, entries);
192 + }
193 +
194 + 18360void run_queue_add_last(struct run_queue *queue, struct run *entry)
195 + {
196 + 18360 SIMPLEQ_INSERT_TAIL(queue, entry, entries);
197 + 18360}
198 +
199 + 9180struct run *run_queue_remove_first(struct run_queue *queue)
200 + {
201 + 9180 struct run *entry = SIMPLEQ_FIRST(queue);
202 +
+ 2/2 +
+
✓ Branch 0 taken 78 times.
+
✓ Branch 1 taken 9102 times.
+
+
+
9180 SIMPLEQ_REMOVE_HEAD(queue, entries);
203 + 9180 return entry;
204 + }
205 +
+
+ +
+ + + + -- cgit v1.2.3