Merge lp:~fourdollars/indicator-power/zesty into lp:indicator-power
- zesty
- Merge into trunk.16.10
Proposed by
Shih-Yuan Lee
Status: | Merged |
---|---|
Merge reported by: | Shih-Yuan Lee |
Merged at revision: | not available |
Proposed branch: | lp:~fourdollars/indicator-power/zesty |
Merge into: | lp:indicator-power |
Diff against target: |
528 lines (+134/-73) 7 files modified
src/device-provider-upower.c (+5/-1) src/device.c (+37/-5) src/device.h (+4/-1) src/service.c (+18/-6) src/testing.c (+2/-1) tests/test-device.cc (+62/-56) tests/test-notify.cc (+6/-3) |
To merge this branch: | bzr merge lp:~fourdollars/indicator-power/zesty |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sebastien Bacher | Needs Information | ||
unity-api-1-bot | continuous-integration | Needs Fixing | |
Review via email: mp+314124@code.launchpad.net |
Commit message
Description of the change
Make device with power supply has higher sorting priority. (LP: #1100546)
To post a comment you must log in.
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : | # |
review:
Needs Fixing
(continuous-integration)
Revision history for this message
Sebastien Bacher (seb128) wrote : | # |
that's superseeded by https:/
review:
Needs Information
Revision history for this message
Shih-Yuan Lee (fourdollars) wrote : | # |
> that's superseeded by https:/
> power/lp-
Yes
Revision history for this message
Shih-Yuan Lee (fourdollars) wrote : | # |
> > that's superseeded by https:/
> > power/lp-
> Yes
Sorry, I mean https:/
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'src/device-provider-upower.c' | |||
2 | --- src/device-provider-upower.c 2014-09-08 14:50:22 +0000 | |||
3 | +++ src/device-provider-upower.c 2017-01-05 04:40:17 +0000 | |||
4 | @@ -113,6 +113,7 @@ | |||
5 | 113 | gint64 time_to_empty = 0; | 113 | gint64 time_to_empty = 0; |
6 | 114 | gint64 time_to_full = 0; | 114 | gint64 time_to_full = 0; |
7 | 115 | gint64 time; | 115 | gint64 time; |
8 | 116 | gboolean power_supply = FALSE; | ||
9 | 116 | IndicatorPowerDevice * device; | 117 | IndicatorPowerDevice * device; |
10 | 117 | priv_t * p = get_priv(data->self); | 118 | priv_t * p = get_priv(data->self); |
11 | 118 | GVariant * dict = g_variant_get_child_value (response, 0); | 119 | GVariant * dict = g_variant_get_child_value (response, 0); |
12 | @@ -122,6 +123,7 @@ | |||
13 | 122 | g_variant_lookup (dict, "Percentage", "d", &percentage); | 123 | g_variant_lookup (dict, "Percentage", "d", &percentage); |
14 | 123 | g_variant_lookup (dict, "TimeToEmpty", "x", &time_to_empty); | 124 | g_variant_lookup (dict, "TimeToEmpty", "x", &time_to_empty); |
15 | 124 | g_variant_lookup (dict, "TimeToFull", "x", &time_to_full); | 125 | g_variant_lookup (dict, "TimeToFull", "x", &time_to_full); |
16 | 126 | g_variant_lookup (dict, "PowerSupply", "b", &power_supply); | ||
17 | 125 | time = time_to_empty ? time_to_empty : time_to_full; | 127 | time = time_to_empty ? time_to_empty : time_to_full; |
18 | 126 | 128 | ||
19 | 127 | if ((device = g_hash_table_lookup (p->devices, data->path))) | 129 | if ((device = g_hash_table_lookup (p->devices, data->path))) |
20 | @@ -131,6 +133,7 @@ | |||
21 | 131 | INDICATOR_POWER_DEVICE_OBJECT_PATH, data->path, | 133 | INDICATOR_POWER_DEVICE_OBJECT_PATH, data->path, |
22 | 132 | INDICATOR_POWER_DEVICE_PERCENTAGE, percentage, | 134 | INDICATOR_POWER_DEVICE_PERCENTAGE, percentage, |
23 | 133 | INDICATOR_POWER_DEVICE_TIME, time, | 135 | INDICATOR_POWER_DEVICE_TIME, time, |
24 | 136 | INDICATOR_POWER_DEVICE_POWER_SUPPLY, power_supply, | ||
25 | 134 | NULL); | 137 | NULL); |
26 | 135 | } | 138 | } |
27 | 136 | else | 139 | else |
28 | @@ -139,7 +142,8 @@ | |||
29 | 139 | kind, | 142 | kind, |
30 | 140 | percentage, | 143 | percentage, |
31 | 141 | state, | 144 | state, |
33 | 142 | (time_t)time); | 145 | (time_t)time, |
34 | 146 | power_supply); | ||
35 | 143 | 147 | ||
36 | 144 | g_hash_table_insert (p->devices, | 148 | g_hash_table_insert (p->devices, |
37 | 145 | g_strdup (data->path), | 149 | g_strdup (data->path), |
38 | 146 | 150 | ||
39 | === modified file 'src/device.c' | |||
40 | --- src/device.c 2016-05-26 18:32:08 +0000 | |||
41 | +++ src/device.c 2017-01-05 04:40:17 +0000 | |||
42 | @@ -42,6 +42,7 @@ | |||
43 | 42 | the time-remaining field for this device, or 0 if not applicable. | 42 | the time-remaining field for this device, or 0 if not applicable. |
44 | 43 | This is used when generating the time-remaining string. */ | 43 | This is used when generating the time-remaining string. */ |
45 | 44 | GTimer * inestimable; | 44 | GTimer * inestimable; |
46 | 45 | gboolean power_supply; | ||
47 | 45 | }; | 46 | }; |
48 | 46 | 47 | ||
49 | 47 | /* Properties */ | 48 | /* Properties */ |
50 | @@ -53,6 +54,7 @@ | |||
51 | 53 | PROP_OBJECT_PATH, | 54 | PROP_OBJECT_PATH, |
52 | 54 | PROP_PERCENTAGE, | 55 | PROP_PERCENTAGE, |
53 | 55 | PROP_TIME, | 56 | PROP_TIME, |
54 | 57 | PROP_POWER_SUPPLY, | ||
55 | 56 | N_PROPERTIES | 58 | N_PROPERTIES |
56 | 57 | }; | 59 | }; |
57 | 58 | 60 | ||
58 | @@ -116,6 +118,12 @@ | |||
59 | 116 | 0, | 118 | 0, |
60 | 117 | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); | 119 | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); |
61 | 118 | 120 | ||
62 | 121 | properties[PROP_POWER_SUPPLY] = g_param_spec_boolean (INDICATOR_POWER_DEVICE_POWER_SUPPLY, | ||
63 | 122 | "power supply", | ||
64 | 123 | "The device's power supply", | ||
65 | 124 | FALSE, | ||
66 | 125 | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); | ||
67 | 126 | |||
68 | 119 | g_object_class_install_properties (object_class, N_PROPERTIES, properties); | 127 | g_object_class_install_properties (object_class, N_PROPERTIES, properties); |
69 | 120 | } | 128 | } |
70 | 121 | 129 | ||
71 | @@ -132,6 +140,7 @@ | |||
72 | 132 | priv->object_path = NULL; | 140 | priv->object_path = NULL; |
73 | 133 | priv->percentage = 0.0; | 141 | priv->percentage = 0.0; |
74 | 134 | priv->time = 0; | 142 | priv->time = 0; |
75 | 143 | priv->power_supply = FALSE; | ||
76 | 135 | 144 | ||
77 | 136 | self->priv = priv; | 145 | self->priv = priv; |
78 | 137 | } | 146 | } |
79 | @@ -190,6 +199,10 @@ | |||
80 | 190 | g_value_set_uint64 (value, (guint64)priv->time); | 199 | g_value_set_uint64 (value, (guint64)priv->time); |
81 | 191 | break; | 200 | break; |
82 | 192 | 201 | ||
83 | 202 | case PROP_POWER_SUPPLY: | ||
84 | 203 | g_value_set_boolean (value, priv->power_supply); | ||
85 | 204 | break; | ||
86 | 205 | |||
87 | 193 | default: | 206 | default: |
88 | 194 | G_OBJECT_WARN_INVALID_PROPERTY_ID(o, prop_id, pspec); | 207 | G_OBJECT_WARN_INVALID_PROPERTY_ID(o, prop_id, pspec); |
89 | 195 | break; | 208 | break; |
90 | @@ -225,6 +238,10 @@ | |||
91 | 225 | p->time = (time_t) g_value_get_uint64(value); | 238 | p->time = (time_t) g_value_get_uint64(value); |
92 | 226 | break; | 239 | break; |
93 | 227 | 240 | ||
94 | 241 | case PROP_POWER_SUPPLY: | ||
95 | 242 | p->power_supply = g_value_get_boolean (value); | ||
96 | 243 | break; | ||
97 | 244 | |||
98 | 228 | default: | 245 | default: |
99 | 229 | G_OBJECT_WARN_INVALID_PROPERTY_ID(o, prop_id, pspec); | 246 | G_OBJECT_WARN_INVALID_PROPERTY_ID(o, prop_id, pspec); |
100 | 230 | break; | 247 | break; |
101 | @@ -304,6 +321,16 @@ | |||
102 | 304 | return device->priv->time; | 321 | return device->priv->time; |
103 | 305 | } | 322 | } |
104 | 306 | 323 | ||
105 | 324 | gboolean | ||
106 | 325 | indicator_power_device_get_power_supply (const IndicatorPowerDevice * device) | ||
107 | 326 | { | ||
108 | 327 | /* LCOV_EXCL_START */ | ||
109 | 328 | g_return_val_if_fail (INDICATOR_IS_POWER_DEVICE(device), FALSE); | ||
110 | 329 | /* LCOV_EXCL_STOP */ | ||
111 | 330 | |||
112 | 331 | return device->priv->power_supply; | ||
113 | 332 | } | ||
114 | 333 | |||
115 | 307 | /*** | 334 | /*** |
116 | 308 | **** | 335 | **** |
117 | 309 | **** | 336 | **** |
118 | @@ -867,7 +894,8 @@ | |||
119 | 867 | UpDeviceKind kind, | 894 | UpDeviceKind kind, |
120 | 868 | gdouble percentage, | 895 | gdouble percentage, |
121 | 869 | UpDeviceState state, | 896 | UpDeviceState state, |
123 | 870 | time_t timestamp) | 897 | time_t timestamp, |
124 | 898 | gboolean power_supply) | ||
125 | 871 | { | 899 | { |
126 | 872 | GObject * o = g_object_new (INDICATOR_POWER_DEVICE_TYPE, | 900 | GObject * o = g_object_new (INDICATOR_POWER_DEVICE_TYPE, |
127 | 873 | INDICATOR_POWER_DEVICE_KIND, kind, | 901 | INDICATOR_POWER_DEVICE_KIND, kind, |
128 | @@ -875,6 +903,7 @@ | |||
129 | 875 | INDICATOR_POWER_DEVICE_OBJECT_PATH, object_path, | 903 | INDICATOR_POWER_DEVICE_OBJECT_PATH, object_path, |
130 | 876 | INDICATOR_POWER_DEVICE_PERCENTAGE, percentage, | 904 | INDICATOR_POWER_DEVICE_PERCENTAGE, percentage, |
131 | 877 | INDICATOR_POWER_DEVICE_TIME, (guint64)timestamp, | 905 | INDICATOR_POWER_DEVICE_TIME, (guint64)timestamp, |
132 | 906 | INDICATOR_POWER_DEVICE_POWER_SUPPLY, power_supply, | ||
133 | 878 | NULL); | 907 | NULL); |
134 | 879 | return INDICATOR_POWER_DEVICE(o); | 908 | return INDICATOR_POWER_DEVICE(o); |
135 | 880 | } | 909 | } |
136 | @@ -882,7 +911,7 @@ | |||
137 | 882 | IndicatorPowerDevice * | 911 | IndicatorPowerDevice * |
138 | 883 | indicator_power_device_new_from_variant (GVariant * v) | 912 | indicator_power_device_new_from_variant (GVariant * v) |
139 | 884 | { | 913 | { |
141 | 885 | g_return_val_if_fail (g_variant_is_of_type (v, G_VARIANT_TYPE("(susdut)")), NULL); | 914 | g_return_val_if_fail (g_variant_is_of_type (v, G_VARIANT_TYPE("(susdutb)")), NULL); |
142 | 886 | 915 | ||
143 | 887 | UpDeviceKind kind = UP_DEVICE_KIND_UNKNOWN; | 916 | UpDeviceKind kind = UP_DEVICE_KIND_UNKNOWN; |
144 | 888 | UpDeviceState state = UP_DEVICE_STATE_UNKNOWN; | 917 | UpDeviceState state = UP_DEVICE_STATE_UNKNOWN; |
145 | @@ -890,18 +919,21 @@ | |||
146 | 890 | const gchar * object_path = NULL; | 919 | const gchar * object_path = NULL; |
147 | 891 | gdouble percentage = 0; | 920 | gdouble percentage = 0; |
148 | 892 | guint64 time = 0; | 921 | guint64 time = 0; |
149 | 922 | gboolean power_supply = FALSE; | ||
150 | 893 | 923 | ||
152 | 894 | g_variant_get (v, "(&su&sdut)", | 924 | g_variant_get (v, "(&su&sdutb)", |
153 | 895 | &object_path, | 925 | &object_path, |
154 | 896 | &kind, | 926 | &kind, |
155 | 897 | &icon, | 927 | &icon, |
156 | 898 | &percentage, | 928 | &percentage, |
157 | 899 | &state, | 929 | &state, |
159 | 900 | &time); | 930 | &time, |
160 | 931 | &power_supply); | ||
161 | 901 | 932 | ||
162 | 902 | return indicator_power_device_new (object_path, | 933 | return indicator_power_device_new (object_path, |
163 | 903 | kind, | 934 | kind, |
164 | 904 | percentage, | 935 | percentage, |
165 | 905 | state, | 936 | state, |
167 | 906 | (time_t)time); | 937 | (time_t)time, |
168 | 938 | power_supply); | ||
169 | 907 | } | 939 | } |
170 | 908 | 940 | ||
171 | === modified file 'src/device.h' | |||
172 | --- src/device.h 2014-07-24 20:20:16 +0000 | |||
173 | +++ src/device.h 2017-01-05 04:40:17 +0000 | |||
174 | @@ -44,6 +44,7 @@ | |||
175 | 44 | #define INDICATOR_POWER_DEVICE_OBJECT_PATH "object-path" | 44 | #define INDICATOR_POWER_DEVICE_OBJECT_PATH "object-path" |
176 | 45 | #define INDICATOR_POWER_DEVICE_PERCENTAGE "percentage" | 45 | #define INDICATOR_POWER_DEVICE_PERCENTAGE "percentage" |
177 | 46 | #define INDICATOR_POWER_DEVICE_TIME "time" | 46 | #define INDICATOR_POWER_DEVICE_TIME "time" |
178 | 47 | #define INDICATOR_POWER_DEVICE_POWER_SUPPLY "power-supply" | ||
179 | 47 | 48 | ||
180 | 48 | typedef enum | 49 | typedef enum |
181 | 49 | { | 50 | { |
182 | @@ -107,7 +108,8 @@ | |||
183 | 107 | UpDeviceKind kind, | 108 | UpDeviceKind kind, |
184 | 108 | gdouble percentage, | 109 | gdouble percentage, |
185 | 109 | UpDeviceState state, | 110 | UpDeviceState state, |
187 | 110 | time_t time); | 111 | time_t time, |
188 | 112 | gboolean power_supply); | ||
189 | 111 | 113 | ||
190 | 112 | /** | 114 | /** |
191 | 113 | * Convenience wrapper around indicator_power_device_new() | 115 | * Convenience wrapper around indicator_power_device_new() |
192 | @@ -121,6 +123,7 @@ | |||
193 | 121 | const gchar * indicator_power_device_get_object_path (const IndicatorPowerDevice * device); | 123 | const gchar * indicator_power_device_get_object_path (const IndicatorPowerDevice * device); |
194 | 122 | gdouble indicator_power_device_get_percentage (const IndicatorPowerDevice * device); | 124 | gdouble indicator_power_device_get_percentage (const IndicatorPowerDevice * device); |
195 | 123 | time_t indicator_power_device_get_time (const IndicatorPowerDevice * device); | 125 | time_t indicator_power_device_get_time (const IndicatorPowerDevice * device); |
196 | 126 | gboolean indicator_power_device_get_power_supply (const IndicatorPowerDevice * device); | ||
197 | 124 | 127 | ||
198 | 125 | GStrv indicator_power_device_get_icon_names (const IndicatorPowerDevice * device); | 128 | GStrv indicator_power_device_get_icon_names (const IndicatorPowerDevice * device); |
199 | 126 | GIcon * indicator_power_device_get_gicon (const IndicatorPowerDevice * device); | 129 | GIcon * indicator_power_device_get_gicon (const IndicatorPowerDevice * device); |
200 | 127 | 130 | ||
201 | === modified file 'src/service.c' | |||
202 | --- src/service.c 2016-05-26 18:21:09 +0000 | |||
203 | +++ src/service.c 2017-01-05 04:40:17 +0000 | |||
204 | @@ -162,11 +162,12 @@ | |||
205 | 162 | } | 162 | } |
206 | 163 | 163 | ||
207 | 164 | /* sort devices from most interesting to least interesting on this criteria: | 164 | /* sort devices from most interesting to least interesting on this criteria: |
213 | 165 | 1. discharging items from least time remaining until most time remaining | 165 | 1. device that supplied the power to the system |
214 | 166 | 2. charging items from most time left to charge to least time left to charge | 166 | 2. discharging items from least time remaining until most time remaining |
215 | 167 | 3. charging items with an unknown time remaining | 167 | 3. charging items from most time left to charge to least time left to charge |
216 | 168 | 4. discharging items with an unknown time remaining | 168 | 4. charging items with an unknown time remaining |
217 | 169 | 5. batteries, then non-line power, then line-power */ | 169 | 5. discharging items with an unknown time remaining |
218 | 170 | 6. batteries, then non-line power, then line-power */ | ||
219 | 170 | static gint | 171 | static gint |
220 | 171 | device_compare_func (gconstpointer ga, gconstpointer gb) | 172 | device_compare_func (gconstpointer ga, gconstpointer gb) |
221 | 172 | { | 173 | { |
222 | @@ -174,6 +175,8 @@ | |||
223 | 174 | int state; | 175 | int state; |
224 | 175 | const IndicatorPowerDevice * a = ga; | 176 | const IndicatorPowerDevice * a = ga; |
225 | 176 | const IndicatorPowerDevice * b = gb; | 177 | const IndicatorPowerDevice * b = gb; |
226 | 178 | const gboolean a_power_supply = indicator_power_device_get_power_supply (a); | ||
227 | 179 | const gboolean b_power_supply = indicator_power_device_get_power_supply (b); | ||
228 | 177 | const int a_state = indicator_power_device_get_state (a); | 180 | const int a_state = indicator_power_device_get_state (a); |
229 | 178 | const int b_state = indicator_power_device_get_state (b); | 181 | const int b_state = indicator_power_device_get_state (b); |
230 | 179 | const gdouble a_percentage = indicator_power_device_get_percentage (a); | 182 | const gdouble a_percentage = indicator_power_device_get_percentage (a); |
231 | @@ -183,6 +186,14 @@ | |||
232 | 183 | 186 | ||
233 | 184 | ret = 0; | 187 | ret = 0; |
234 | 185 | 188 | ||
235 | 189 | if (!ret) | ||
236 | 190 | { | ||
237 | 191 | if (a_power_supply == TRUE && b_power_supply == FALSE) | ||
238 | 192 | ret = -1; | ||
239 | 193 | else if (a_power_supply == FALSE && b_power_supply == TRUE) | ||
240 | 194 | ret = 1; | ||
241 | 195 | } | ||
242 | 196 | |||
243 | 186 | state = UP_DEVICE_STATE_DISCHARGING; | 197 | state = UP_DEVICE_STATE_DISCHARGING; |
244 | 187 | if (!ret && (((a_state == state) && a_time) || | 198 | if (!ret && (((a_state == state) && a_time) || |
245 | 188 | ((b_state == state) && b_time))) | 199 | ((b_state == state) && b_time))) |
246 | @@ -1436,7 +1447,8 @@ | |||
247 | 1436 | UP_DEVICE_KIND_BATTERY, | 1447 | UP_DEVICE_KIND_BATTERY, |
248 | 1437 | percent, | 1448 | percent, |
249 | 1438 | state, | 1449 | state, |
251 | 1439 | time_left); | 1450 | time_left, |
252 | 1451 | TRUE); | ||
253 | 1440 | } | 1452 | } |
254 | 1441 | 1453 | ||
255 | 1442 | return device; | 1454 | return device; |
256 | 1443 | 1455 | ||
257 | === modified file 'src/testing.c' | |||
258 | --- src/testing.c 2014-10-14 19:50:47 +0000 | |||
259 | +++ src/testing.c 2017-01-05 04:40:17 +0000 | |||
260 | @@ -301,7 +301,8 @@ | |||
261 | 301 | UP_DEVICE_KIND_BATTERY, | 301 | UP_DEVICE_KIND_BATTERY, |
262 | 302 | 50.0, | 302 | 50.0, |
263 | 303 | UP_DEVICE_STATE_DISCHARGING, | 303 | UP_DEVICE_STATE_DISCHARGING, |
265 | 304 | 60*30); | 304 | 60*30, |
266 | 305 | TRUE); | ||
267 | 305 | 306 | ||
268 | 306 | 307 | ||
269 | 307 | /* Mock Provider */ | 308 | /* Mock Provider */ |
270 | 308 | 309 | ||
271 | === modified file 'tests/test-device.cc' | |||
272 | --- tests/test-device.cc 2016-05-26 19:02:10 +0000 | |||
273 | +++ tests/test-device.cc 2017-01-05 04:40:17 +0000 | |||
274 | @@ -205,7 +205,8 @@ | |||
275 | 205 | UP_DEVICE_KIND_BATTERY, | 205 | UP_DEVICE_KIND_BATTERY, |
276 | 206 | 50.0, | 206 | 50.0, |
277 | 207 | UP_DEVICE_STATE_CHARGING, | 207 | UP_DEVICE_STATE_CHARGING, |
279 | 208 | 30); | 208 | 30, |
280 | 209 | TRUE); | ||
281 | 209 | ASSERT_TRUE (device != NULL); | 210 | ASSERT_TRUE (device != NULL); |
282 | 210 | ASSERT_TRUE (INDICATOR_IS_POWER_DEVICE(device)); | 211 | ASSERT_TRUE (INDICATOR_IS_POWER_DEVICE(device)); |
283 | 211 | ASSERT_EQ (UP_DEVICE_KIND_BATTERY, indicator_power_device_get_kind(device)); | 212 | ASSERT_EQ (UP_DEVICE_KIND_BATTERY, indicator_power_device_get_kind(device)); |
284 | @@ -213,6 +214,7 @@ | |||
285 | 213 | ASSERT_STREQ ("/object/path", indicator_power_device_get_object_path(device)); | 214 | ASSERT_STREQ ("/object/path", indicator_power_device_get_object_path(device)); |
286 | 214 | ASSERT_EQ (50, int(indicator_power_device_get_percentage(device))); | 215 | ASSERT_EQ (50, int(indicator_power_device_get_percentage(device))); |
287 | 215 | ASSERT_EQ (30, indicator_power_device_get_time(device)); | 216 | ASSERT_EQ (30, indicator_power_device_get_time(device)); |
288 | 217 | ASSERT_TRUE (indicator_power_device_get_power_supply(device)); | ||
289 | 216 | 218 | ||
290 | 217 | // cleanup | 219 | // cleanup |
291 | 218 | g_object_unref (device); | 220 | g_object_unref (device); |
292 | @@ -220,13 +222,14 @@ | |||
293 | 220 | 222 | ||
294 | 221 | TEST_F(DeviceTest, NewFromVariant) | 223 | TEST_F(DeviceTest, NewFromVariant) |
295 | 222 | { | 224 | { |
297 | 223 | auto variant = g_variant_new("(susdut)", | 225 | auto variant = g_variant_new("(susdutb)", |
298 | 224 | "/object/path", | 226 | "/object/path", |
299 | 225 | guint32(UP_DEVICE_KIND_BATTERY), | 227 | guint32(UP_DEVICE_KIND_BATTERY), |
300 | 226 | "icon", | 228 | "icon", |
301 | 227 | 50.0, | 229 | 50.0, |
302 | 228 | guint32(UP_DEVICE_STATE_CHARGING), | 230 | guint32(UP_DEVICE_STATE_CHARGING), |
304 | 229 | guint64(30)); | 231 | guint64(30), |
305 | 232 | TRUE); | ||
306 | 230 | IndicatorPowerDevice * device = indicator_power_device_new_from_variant (variant); | 233 | IndicatorPowerDevice * device = indicator_power_device_new_from_variant (variant); |
307 | 231 | ASSERT_TRUE (variant != NULL); | 234 | ASSERT_TRUE (variant != NULL); |
308 | 232 | ASSERT_TRUE (device != NULL); | 235 | ASSERT_TRUE (device != NULL); |
309 | @@ -236,6 +239,7 @@ | |||
310 | 236 | ASSERT_STREQ ("/object/path", indicator_power_device_get_object_path(device)); | 239 | ASSERT_STREQ ("/object/path", indicator_power_device_get_object_path(device)); |
311 | 237 | ASSERT_EQ (50, int(indicator_power_device_get_percentage(device))); | 240 | ASSERT_EQ (50, int(indicator_power_device_get_percentage(device))); |
312 | 238 | ASSERT_EQ (30, indicator_power_device_get_time(device)); | 241 | ASSERT_EQ (30, indicator_power_device_get_time(device)); |
313 | 242 | ASSERT_TRUE (indicator_power_device_get_power_supply(device)); | ||
314 | 239 | 243 | ||
315 | 240 | // cleanup | 244 | // cleanup |
316 | 241 | g_object_unref (device); | 245 | g_object_unref (device); |
317 | @@ -810,7 +814,8 @@ | |||
318 | 810 | << ' ' << state2str(indicator_power_device_get_state(device)) | 814 | << ' ' << state2str(indicator_power_device_get_state(device)) |
319 | 811 | << ' ' << indicator_power_device_get_time(device)<<'m' | 815 | << ' ' << indicator_power_device_get_time(device)<<'m' |
320 | 812 | << ' ' << int(ceil(indicator_power_device_get_percentage(device)))<<'%' | 816 | << ' ' << int(ceil(indicator_power_device_get_percentage(device)))<<'%' |
322 | 813 | << ' ' << (path ? path : "nopath"); | 817 | << ' ' << (path ? path : "nopath") |
323 | 818 | << ' ' << (indicator_power_device_get_power_supply(device) ? "1" : "0"); | ||
324 | 814 | 819 | ||
325 | 815 | return o.str(); | 820 | return o.str(); |
326 | 816 | } | 821 | } |
327 | @@ -818,13 +823,14 @@ | |||
328 | 818 | IndicatorPowerDevice* str2device(const std::string& str) | 823 | IndicatorPowerDevice* str2device(const std::string& str) |
329 | 819 | { | 824 | { |
330 | 820 | auto tokens = g_strsplit(str.c_str(), " ", 0); | 825 | auto tokens = g_strsplit(str.c_str(), " ", 0); |
332 | 821 | g_assert(5u == g_strv_length(tokens)); | 826 | g_assert(6u == g_strv_length(tokens)); |
333 | 822 | const auto kind = str2kind(tokens[0]); | 827 | const auto kind = str2kind(tokens[0]); |
334 | 823 | const auto state = str2state(tokens[1]); | 828 | const auto state = str2state(tokens[1]); |
335 | 824 | const time_t time = atoi(tokens[2]); | 829 | const time_t time = atoi(tokens[2]); |
336 | 825 | const double pct = strtod(tokens[3],nullptr); | 830 | const double pct = strtod(tokens[3],nullptr); |
337 | 826 | const char* path = !g_strcmp0(tokens[4],"nopath") ? nullptr : tokens[4]; | 831 | const char* path = !g_strcmp0(tokens[4],"nopath") ? nullptr : tokens[4]; |
339 | 827 | auto ret = indicator_power_device_new(path, kind, pct, state, time); | 832 | const gboolean power_supply = atoi(tokens[5]); |
340 | 833 | auto ret = indicator_power_device_new(path, kind, pct, state, time, power_supply); | ||
341 | 828 | g_strfreev(tokens); | 834 | g_strfreev(tokens); |
342 | 829 | return ret; | 835 | return ret; |
343 | 830 | } | 836 | } |
344 | @@ -847,100 +853,100 @@ | |||
345 | 847 | } tests[] = { | 853 | } tests[] = { |
346 | 848 | { | 854 | { |
347 | 849 | "one discharging battery", | 855 | "one discharging battery", |
350 | 850 | "battery discharging 10m 60% bat01", | 856 | "battery discharging 10m 60% bat01 1", |
351 | 851 | { "battery discharging 10m 60% bat01" } | 857 | { "battery discharging 10m 60% bat01 1" } |
352 | 852 | }, | 858 | }, |
353 | 853 | { | 859 | { |
354 | 854 | "merge two discharging batteries", | 860 | "merge two discharging batteries", |
357 | 855 | "battery discharging 20m 70% nopath", | 861 | "battery discharging 20m 70% nopath 1", |
358 | 856 | { "battery discharging 10m 60% bat01", "battery discharging 20m 80% bat02" } | 862 | { "battery discharging 10m 60% bat01 1", "battery discharging 20m 80% bat02 1" } |
359 | 857 | }, | 863 | }, |
360 | 858 | { | 864 | { |
361 | 859 | "merge two other discharging batteries", | 865 | "merge two other discharging batteries", |
364 | 860 | "battery discharging 30m 90% nopath", | 866 | "battery discharging 30m 90% nopath 1", |
365 | 861 | { "battery discharging 20m 80% bat01", "battery discharging 30m 100% bat02" } | 867 | { "battery discharging 20m 80% bat01 1", "battery discharging 30m 100% bat02 1" } |
366 | 862 | }, | 868 | }, |
367 | 863 | { | 869 | { |
368 | 864 | "merge three discharging batteries", | 870 | "merge three discharging batteries", |
371 | 865 | "battery discharging 30m 80% nopath", | 871 | "battery discharging 30m 80% nopath 1", |
372 | 866 | { "battery discharging 10m 60% bat01", "battery discharging 20m 80% bat02", "battery discharging 30m 100% bat03" } | 872 | { "battery discharging 10m 60% bat01 1", "battery discharging 20m 80% bat02 1", "battery discharging 30m 100% bat03 1" } |
373 | 867 | }, | 873 | }, |
374 | 868 | { | 874 | { |
375 | 869 | "one charging battery", | 875 | "one charging battery", |
378 | 870 | "battery charging 10m 60% bat01", | 876 | "battery charging 10m 60% bat01 1", |
379 | 871 | { "battery charging 10m 60% bat01" } | 877 | { "battery charging 10m 60% bat01 1" } |
380 | 872 | }, | 878 | }, |
381 | 873 | { | 879 | { |
382 | 874 | "merge two charging batteries", | 880 | "merge two charging batteries", |
385 | 875 | "battery charging 20m 70% nopath", | 881 | "battery charging 20m 70% nopath 1", |
386 | 876 | { "battery charging 10m 60% bat01", "battery charging 20m 80% bat02" } | 882 | { "battery charging 10m 60% bat01 1", "battery charging 20m 80% bat02 1" } |
387 | 877 | }, | 883 | }, |
388 | 878 | { | 884 | { |
389 | 879 | "merge two other charging batteries", | 885 | "merge two other charging batteries", |
392 | 880 | "battery charging 30m 90% nopath", | 886 | "battery charging 30m 90% nopath 1", |
393 | 881 | { "battery charging 20m 80% bat01", "battery charging 30m 100% bat02" } | 887 | { "battery charging 20m 80% bat01 1", "battery charging 30m 100% bat02 1" } |
394 | 882 | }, | 888 | }, |
395 | 883 | { | 889 | { |
396 | 884 | "merge three charging batteries", | 890 | "merge three charging batteries", |
399 | 885 | "battery charging 30m 80% nopath", | 891 | "battery charging 30m 80% nopath 1", |
400 | 886 | { "battery charging 10m 60% bat01", "battery charging 20m 80% bat02", "battery charging 30m 100% bat03" } | 892 | { "battery charging 10m 60% bat01 1", "battery charging 20m 80% bat02 1", "battery charging 30m 100% bat03 1" } |
401 | 887 | }, | 893 | }, |
402 | 888 | { | 894 | { |
403 | 889 | "one charged battery", | 895 | "one charged battery", |
406 | 890 | "battery charged 0m 100% bat01", | 896 | "battery charged 0m 100% bat01 1", |
407 | 891 | { "battery charged 0m 100% bat01" } | 897 | { "battery charged 0m 100% bat01 1" } |
408 | 892 | }, | 898 | }, |
409 | 893 | { | 899 | { |
410 | 894 | "merge one charged, one discharging", | 900 | "merge one charged, one discharging", |
413 | 895 | "battery discharging 10m 80% nopath", | 901 | "battery discharging 10m 80% nopath 1", |
414 | 896 | { "battery charged 0m 100% bat01", "battery discharging 10m 60% bat02" } | 902 | { "battery charged 0m 100% bat01 1", "battery discharging 10m 60% bat02 1" } |
415 | 897 | }, | 903 | }, |
416 | 898 | { | 904 | { |
417 | 899 | "merged one charged, one charging", | 905 | "merged one charged, one charging", |
420 | 900 | "battery charging 10m 80% nopath", | 906 | "battery charging 10m 80% nopath 1", |
421 | 901 | { "battery charged 0m 100% bat01", "battery charging 10m 60% bat02" } | 907 | { "battery charged 0m 100% bat01 1", "battery charging 10m 60% bat02 1" } |
422 | 902 | }, | 908 | }, |
423 | 903 | { | 909 | { |
424 | 904 | "merged one charged, one charging, one discharging", | 910 | "merged one charged, one charging, one discharging", |
437 | 905 | "battery discharging 10m 74% nopath", | 911 | "battery discharging 10m 74% nopath 1", |
438 | 906 | { "battery charged 0m 100% bat01", "battery charging 10m 60% bat02", "battery discharging 10m 60% bat03" } | 912 | { "battery charged 0m 100% bat01 1", "battery charging 10m 60% bat02 1", "battery discharging 10m 60% bat03 1" } |
439 | 907 | }, | 913 | }, |
440 | 908 | { | 914 | { |
441 | 909 | "one discharging mouse and one discharging battery. pick the one with the least time left", | 915 | "one discharging mouse and one discharging battery. ignore mouse because it doesn't supply the power", |
442 | 910 | "battery discharging 10m 60% bat01", | 916 | "battery discharging 10m 60% bat01 1", |
443 | 911 | { "battery discharging 10m 60% bat01", "mouse discharging 20m 80% mouse01" } | 917 | { "battery discharging 10m 60% bat01 1", "mouse discharging 20m 80% mouse01 0" } |
444 | 912 | }, | 918 | }, |
445 | 913 | { | 919 | { |
446 | 914 | "one discharging mouse and a different discharging battery. pick the one with the least time left", | 920 | "one discharging mouse and a different discharging battery. ignore mouse because it doesn't supply the power", |
447 | 915 | "mouse discharging 20m 80% mouse01", | 921 | "battery discharging 30m 100% bat01 1", |
448 | 916 | { "battery discharging 30m 100% bat01", "mouse discharging 20m 80% mouse01" } | 922 | { "battery discharging 30m 100% bat01 1", "mouse discharging 20m 80% mouse01 0" } |
449 | 917 | }, | 923 | }, |
450 | 918 | { | 924 | { |
451 | 919 | "everything comes before power lines #1", | 925 | "everything comes before power lines #1", |
464 | 920 | "battery discharging 10m 60% bat01", | 926 | "battery discharging 10m 60% bat01 1", |
465 | 921 | { "battery discharging 10m 60% bat01", "line-power unknown 0m 0% lp01" } | 927 | { "battery discharging 10m 60% bat01 1", "line-power unknown 0m 0% lp01 1" } |
466 | 922 | }, | 928 | }, |
467 | 923 | { | 929 | { |
468 | 924 | "everything comes before power lines #2", | 930 | "everything comes before power lines #2", |
469 | 925 | "battery charging 10m 60% bat01", | 931 | "battery charging 10m 60% bat01 1", |
470 | 926 | { "battery charging 10m 60% bat01", "line-power unknown 0m 0% lp01" } | 932 | { "battery charging 10m 60% bat01 1", "line-power unknown 0m 0% lp01 1" } |
471 | 927 | }, | 933 | }, |
472 | 928 | { | 934 | { |
473 | 929 | "everything comes before power lines #2", | 935 | "everything comes before power lines #3 except that the mouse doesn't supply the power", |
474 | 930 | "mouse discharging 20m 80% mouse01", | 936 | "line-power unknown 0m 0% lp01 1", |
475 | 931 | { "mouse discharging 20m 80% mouse01", "line-power unknown 0m 0% lp01" } | 937 | { "mouse discharging 20m 80% mouse01 0", "line-power unknown 0m 0% lp01 1" } |
476 | 932 | }, | 938 | }, |
477 | 933 | { | 939 | { |
478 | 934 | // https://bugs.launchpad.net/ubuntu/+source/indicator-power/+bug/1470080/comments/10 | 940 | // https://bugs.launchpad.net/ubuntu/+source/indicator-power/+bug/1470080/comments/10 |
479 | 935 | "don't select a device with unknown state when we have another device with a known state...", | 941 | "don't select a device with unknown state when we have another device with a known state...", |
482 | 936 | "battery charged 0m 100% bat01", | 942 | "battery charged 0m 100% bat01 1", |
483 | 937 | { "battery charged 0m 100% bat01", "phone unknown 0m 61% phone01" } | 943 | { "battery charged 0m 100% bat01 1", "phone unknown 0m 61% phone01 1" } |
484 | 938 | }, | 944 | }, |
485 | 939 | { | 945 | { |
486 | 940 | // https://bugs.launchpad.net/ubuntu/+source/indicator-power/+bug/1470080/comments/10 | 946 | // https://bugs.launchpad.net/ubuntu/+source/indicator-power/+bug/1470080/comments/10 |
487 | 941 | "...but do select the unknown state device if nothing else is available", | 947 | "...but do select the unknown state device if nothing else is available", |
490 | 942 | "phone unknown 0m 61% phone01", | 948 | "phone unknown 0m 61% phone01 1", |
491 | 943 | { "phone unknown 0m 61% phone01" } | 949 | { "phone unknown 0m 61% phone01 1" } |
492 | 944 | } | 950 | } |
493 | 945 | }; | 951 | }; |
494 | 946 | 952 | ||
495 | 947 | 953 | ||
496 | === modified file 'tests/test-notify.cc' | |||
497 | --- tests/test-notify.cc 2016-05-16 17:59:03 +0000 | |||
498 | +++ tests/test-notify.cc 2017-01-05 04:40:17 +0000 | |||
499 | @@ -235,7 +235,8 @@ | |||
500 | 235 | UP_DEVICE_KIND_BATTERY, | 235 | UP_DEVICE_KIND_BATTERY, |
501 | 236 | 50.0, | 236 | 50.0, |
502 | 237 | UP_DEVICE_STATE_DISCHARGING, | 237 | UP_DEVICE_STATE_DISCHARGING, |
504 | 238 | 30); | 238 | 30, |
505 | 239 | TRUE); | ||
506 | 239 | 240 | ||
507 | 240 | // confirm that the power levels trigger at the right percentages | 241 | // confirm that the power levels trigger at the right percentages |
508 | 241 | for (int i=100; i>=0; --i) | 242 | for (int i=100; i>=0; --i) |
509 | @@ -313,7 +314,8 @@ | |||
510 | 313 | UP_DEVICE_KIND_BATTERY, | 314 | UP_DEVICE_KIND_BATTERY, |
511 | 314 | 50.0, | 315 | 50.0, |
512 | 315 | UP_DEVICE_STATE_DISCHARGING, | 316 | UP_DEVICE_STATE_DISCHARGING, |
514 | 316 | 30); | 317 | 30, |
515 | 318 | TRUE); | ||
516 | 317 | 319 | ||
517 | 318 | // set up a notifier and give it the battery so changing the battery's | 320 | // set up a notifier and give it the battery so changing the battery's |
518 | 319 | // charge should show up on the bus. | 321 | // charge should show up on the bus. |
519 | @@ -385,7 +387,8 @@ | |||
520 | 385 | UP_DEVICE_KIND_BATTERY, | 387 | UP_DEVICE_KIND_BATTERY, |
521 | 386 | percent_low + 1.0, | 388 | percent_low + 1.0, |
522 | 387 | UP_DEVICE_STATE_DISCHARGING, | 389 | UP_DEVICE_STATE_DISCHARGING, |
524 | 388 | 30); | 390 | 30, |
525 | 391 | TRUE); | ||
526 | 389 | 392 | ||
527 | 390 | // the file we expect to play on a low battery notification... | 393 | // the file we expect to play on a low battery notification... |
528 | 391 | const char* expected_file = XDG_DATA_HOME "/" GETTEXT_PACKAGE "/sounds/" LOW_BATTERY_SOUND; | 394 | const char* expected_file = XDG_DATA_HOME "/" GETTEXT_PACKAGE "/sounds/" LOW_BATTERY_SOUND; |
FAILED: Continuous integration, rev:302 /code.launchpad .net/~fourdolla rs/indicator- power/zesty/ +merge/ 314124/ +edit-commit- message
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https:/
https:/ /jenkins. canonical. com/unity- api-1/job/ lp-indicator- power-ci/ 4/ /jenkins. canonical. com/unity- api-1/job/ build/1313/ console /jenkins. canonical. com/unity- api-1/job/ build-0- fetch/1320 /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 1097 /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 1097/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=amd64, release= zesty/1097 /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=amd64, release= zesty/1097/ artifact/ output/ *zip*/output. zip /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 1097/console /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=armhf, release= zesty/1097 /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=armhf, release= zesty/1097/ artifact/ output/ *zip*/output. zip /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 1097 /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 1097/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/unity- api-1/job/ build-2- binpkg/ arch=i386, release= zesty/1097/ console
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
Click here to trigger a rebuild: /jenkins. canonical. com/unity- api-1/job/ lp-indicator- power-ci/ 4/rebuild
https:/