• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

systemd / systemd / 14554080340

19 Apr 2025 11:46AM UTC coverage: 72.101% (-0.03%) from 72.13%
14554080340

push

github

web-flow
Add two new paragraphs to coding style about header files (#37188)

296880 of 411754 relevant lines covered (72.1%)

687547.52 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

44.83
/src/sysupdate/sysupdate-update-set-flags.c
1
/* SPDX-License-Identifier: LGPL-2.1-or-later */
2

3
#include "ansi-color.h"
4
#include "assert-util.h"
5
#include "glyph-util.h"
6
#include "sysupdate-update-set-flags.h"
7
#include "terminal-util.h"
8

9
const char* update_set_flags_to_color(UpdateSetFlags flags) {
52✔
10

11
        if (flags == 0 || (flags & UPDATE_OBSOLETE))
52✔
12
                return (flags & UPDATE_NEWEST) ? ansi_highlight_grey() : ansi_grey();
×
13

14
        if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_INCOMPLETE))
52✔
15
                return ansi_highlight_yellow();
18✔
16

17
        if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_NEWEST))
34✔
18
                return ansi_highlight();
56✔
19

20
        if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_PROTECTED))
6✔
21
                return ansi_highlight_magenta();
×
22

23
        if ((flags & (UPDATE_AVAILABLE|UPDATE_INSTALLED|UPDATE_NEWEST|UPDATE_OBSOLETE)) == (UPDATE_AVAILABLE|UPDATE_NEWEST))
6✔
24
                return ansi_highlight_green();
×
25

26
        return NULL;
27
}
28

29
const char* update_set_flags_to_glyph(UpdateSetFlags flags) {
32✔
30

31
        if (flags == 0 || (flags & UPDATE_OBSOLETE))
32✔
32
                return glyph(GLYPH_MULTIPLICATION_SIGN);
×
33

34
        if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_NEWEST))
32✔
35
                return glyph(GLYPH_BLACK_CIRCLE);
24✔
36

37
        if (FLAGS_SET(flags, UPDATE_INSTALLED|UPDATE_PROTECTED))
8✔
38
                return glyph(GLYPH_WHITE_CIRCLE);
×
39

40
        if ((flags & (UPDATE_AVAILABLE|UPDATE_INSTALLED|UPDATE_NEWEST|UPDATE_OBSOLETE)) == (UPDATE_AVAILABLE|UPDATE_NEWEST))
8✔
41
                return glyph(GLYPH_CIRCLE_ARROW);
×
42

43
        return " ";
44
}
45

46
const char* update_set_flags_to_string(UpdateSetFlags flags) {
32✔
47

48
        switch ((unsigned) flags) {
32✔
49

50
        case 0:
51
                return "n/a";
52

53
        case UPDATE_INSTALLED|UPDATE_NEWEST:
16✔
54
        case UPDATE_INSTALLED|UPDATE_NEWEST|UPDATE_PROTECTED:
55
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_NEWEST:
56
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_NEWEST|UPDATE_PROTECTED:
57
                return "current";
16✔
58

59
        case UPDATE_AVAILABLE|UPDATE_NEWEST:
×
60
        case UPDATE_AVAILABLE|UPDATE_NEWEST|UPDATE_PROTECTED:
61
                return "candidate";
×
62

63
        case UPDATE_INSTALLED:
2✔
64
        case UPDATE_INSTALLED|UPDATE_AVAILABLE:
65
                return "installed";
2✔
66

67
        case UPDATE_INSTALLED|UPDATE_PROTECTED:
×
68
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_PROTECTED:
69
                return "protected";
×
70

71
        case UPDATE_AVAILABLE:
4✔
72
        case UPDATE_AVAILABLE|UPDATE_PROTECTED:
73
                return "available";
4✔
74

75
        case UPDATE_INSTALLED|UPDATE_INCOMPLETE|UPDATE_NEWEST:
8✔
76
        case UPDATE_INSTALLED|UPDATE_INCOMPLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
77
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_INCOMPLETE|UPDATE_NEWEST:
78
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_INCOMPLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
79
                return "current+incomplete";
8✔
80

81
        case UPDATE_INSTALLED|UPDATE_INCOMPLETE:
2✔
82
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_INCOMPLETE:
83
                return "installed+incomplete";
2✔
84

85
        case UPDATE_INSTALLED|UPDATE_INCOMPLETE|UPDATE_PROTECTED:
×
86
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_INCOMPLETE|UPDATE_PROTECTED:
87
                return "protected+incomplete";
×
88

89
        case UPDATE_AVAILABLE|UPDATE_INCOMPLETE:
×
90
        case UPDATE_AVAILABLE|UPDATE_INCOMPLETE|UPDATE_PROTECTED:
91
        case UPDATE_AVAILABLE|UPDATE_INCOMPLETE|UPDATE_NEWEST:
92
        case UPDATE_AVAILABLE|UPDATE_INCOMPLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
93
                /* We must never offer an update as available for download if it's incomplete */
94
                assert_not_reached();
×
95

96
        case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_NEWEST:
×
97
        case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
98
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST:
99
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
100
                return "current+obsolete";
×
101

102
        case UPDATE_INSTALLED|UPDATE_OBSOLETE:
×
103
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE:
104
                return "installed+obsolete";
×
105

106
        case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_PROTECTED:
×
107
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_PROTECTED:
108
                return "protected+obsolete";
×
109

110
        case UPDATE_AVAILABLE|UPDATE_OBSOLETE:
×
111
        case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_PROTECTED:
112
        case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST:
113
        case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
114
                return "available+obsolete";
×
115

116
        case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_INCOMPLETE|UPDATE_NEWEST:
×
117
        case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_INCOMPLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
118
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_INCOMPLETE|UPDATE_NEWEST:
119
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_INCOMPLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
120
                return "current+obsolete+incomplete";
×
121

122
        case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_INCOMPLETE:
×
123
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_INCOMPLETE:
124
                return "installed+obsolete+incomplete";
×
125

126
        case UPDATE_INSTALLED|UPDATE_OBSOLETE|UPDATE_INCOMPLETE|UPDATE_PROTECTED:
×
127
        case UPDATE_INSTALLED|UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_INCOMPLETE|UPDATE_PROTECTED:
128
                return "protected+obsolete+incomplete";
×
129

130
        case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_INCOMPLETE:
×
131
        case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_INCOMPLETE|UPDATE_PROTECTED:
132
        case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_INCOMPLETE|UPDATE_NEWEST:
133
        case UPDATE_AVAILABLE|UPDATE_OBSOLETE|UPDATE_INCOMPLETE|UPDATE_NEWEST|UPDATE_PROTECTED:
134
                assert_not_reached();
×
135

136
        default:
×
137
                assert_not_reached();
×
138
        }
139
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc