Skip to content

Commit 8fd8403

Browse files
authored
Merge pull request #128 from per1234/handle-missing-report
Always add size summary report to sketches report
2 parents aed2333 + 935f8a9 commit 8fd8403

File tree

2 files changed

+80
-85
lines changed

2 files changed

+80
-85
lines changed

compilesketches/compilesketches.py

+47-83
Original file line numberDiff line numberDiff line change
@@ -1300,55 +1300,52 @@ def get_sizes_summary_report(self, sketch_report_list):
13001300
sizes_summary_report = []
13011301
for sketch_report in sketch_report_list:
13021302
for size_report in sketch_report[self.ReportKeys.sizes]:
1303-
if self.ReportKeys.delta in size_report:
1304-
# Determine the sizes_summary_report index for this memory type
1305-
size_summary_report_index_list = [
1306-
index
1307-
for index, size_summary in enumerate(sizes_summary_report)
1308-
if size_summary.get(self.ReportKeys.name) == size_report[self.ReportKeys.name]
1309-
]
1310-
if not size_summary_report_index_list:
1311-
# There is no existing entry in the summary list for this memory type, so create one
1312-
sizes_summary_report.append(
1313-
{
1314-
self.ReportKeys.name: size_report[self.ReportKeys.name],
1315-
self.ReportKeys.maximum: size_report[self.ReportKeys.maximum],
1316-
self.ReportKeys.delta: {
1317-
self.ReportKeys.absolute: {
1318-
self.ReportKeys.minimum: size_report[self.ReportKeys.delta][
1319-
self.ReportKeys.absolute
1320-
],
1321-
self.ReportKeys.maximum: size_report[self.ReportKeys.delta][
1322-
self.ReportKeys.absolute
1323-
],
1324-
},
1325-
self.ReportKeys.relative: {
1326-
self.ReportKeys.minimum: size_report[self.ReportKeys.delta][
1327-
self.ReportKeys.relative
1328-
],
1329-
self.ReportKeys.maximum: size_report[self.ReportKeys.delta][
1330-
self.ReportKeys.relative
1331-
],
1332-
},
1333-
},
1334-
}
1335-
)
1336-
else:
1337-
size_summary_report_index = size_summary_report_index_list[0]
1303+
# Determine the sizes_summary_report index for this memory type
1304+
size_summary_report_index_list = [
1305+
index
1306+
for index, size_summary in enumerate(sizes_summary_report)
1307+
if size_summary.get(self.ReportKeys.name) == size_report[self.ReportKeys.name]
1308+
]
1309+
if not size_summary_report_index_list:
1310+
# There is no existing entry in the summary list for this memory type, so create one
1311+
sizes_summary_report.append({self.ReportKeys.name: size_report[self.ReportKeys.name]})
1312+
size_summary_report_index = len(sizes_summary_report) - 1
1313+
else:
1314+
size_summary_report_index = size_summary_report_index_list[0]
13381315

1339-
if (
1340-
sizes_summary_report[size_summary_report_index][self.ReportKeys.maximum]
1341-
== self.not_applicable_indicator
1342-
):
1343-
sizes_summary_report[size_summary_report_index][self.ReportKeys.maximum] = size_report[
1344-
self.ReportKeys.maximum
1345-
]
1316+
if (
1317+
self.ReportKeys.maximum not in sizes_summary_report[size_summary_report_index]
1318+
or sizes_summary_report[size_summary_report_index][self.ReportKeys.maximum]
1319+
== self.not_applicable_indicator
1320+
):
1321+
sizes_summary_report[size_summary_report_index][self.ReportKeys.maximum] = size_report[
1322+
self.ReportKeys.maximum
1323+
]
13461324

1325+
if self.ReportKeys.delta in size_report:
1326+
if (
1327+
self.ReportKeys.delta not in sizes_summary_report[size_summary_report_index]
1328+
or sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1329+
self.ReportKeys.absolute
1330+
][self.ReportKeys.minimum]
1331+
== self.not_applicable_indicator
1332+
):
1333+
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta] = {
1334+
self.ReportKeys.absolute: {
1335+
self.ReportKeys.minimum: size_report[self.ReportKeys.delta][self.ReportKeys.absolute],
1336+
self.ReportKeys.maximum: size_report[self.ReportKeys.delta][self.ReportKeys.absolute],
1337+
},
1338+
self.ReportKeys.relative: {
1339+
self.ReportKeys.minimum: size_report[self.ReportKeys.delta][self.ReportKeys.relative],
1340+
self.ReportKeys.maximum: size_report[self.ReportKeys.delta][self.ReportKeys.relative],
1341+
},
1342+
}
1343+
elif size_report[self.ReportKeys.delta][self.ReportKeys.absolute] != self.not_applicable_indicator:
13471344
if (
1348-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1345+
size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
1346+
< sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
13491347
self.ReportKeys.absolute
13501348
][self.ReportKeys.minimum]
1351-
== self.not_applicable_indicator
13521349
):
13531350
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
13541351
self.ReportKeys.absolute
@@ -1358,6 +1355,12 @@ def get_sizes_summary_report(self, sketch_report_list):
13581355
self.ReportKeys.relative
13591356
][self.ReportKeys.minimum] = size_report[self.ReportKeys.delta][self.ReportKeys.relative]
13601357

1358+
if (
1359+
size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
1360+
> sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1361+
self.ReportKeys.absolute
1362+
][self.ReportKeys.maximum]
1363+
):
13611364
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
13621365
self.ReportKeys.absolute
13631366
][self.ReportKeys.maximum] = size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
@@ -1366,45 +1369,6 @@ def get_sizes_summary_report(self, sketch_report_list):
13661369
self.ReportKeys.relative
13671370
][self.ReportKeys.maximum] = size_report[self.ReportKeys.delta][self.ReportKeys.relative]
13681371

1369-
elif size_report[self.ReportKeys.delta][self.ReportKeys.absolute] != (
1370-
self.not_applicable_indicator
1371-
):
1372-
if (
1373-
size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
1374-
< sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1375-
self.ReportKeys.absolute
1376-
][self.ReportKeys.minimum]
1377-
):
1378-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1379-
self.ReportKeys.absolute
1380-
][self.ReportKeys.minimum] = size_report[self.ReportKeys.delta][
1381-
self.ReportKeys.absolute
1382-
]
1383-
1384-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1385-
self.ReportKeys.relative
1386-
][self.ReportKeys.minimum] = size_report[self.ReportKeys.delta][
1387-
self.ReportKeys.relative
1388-
]
1389-
1390-
if (
1391-
size_report[self.ReportKeys.delta][self.ReportKeys.absolute]
1392-
> sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1393-
self.ReportKeys.absolute
1394-
][self.ReportKeys.maximum]
1395-
):
1396-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1397-
self.ReportKeys.absolute
1398-
][self.ReportKeys.maximum] = size_report[self.ReportKeys.delta][
1399-
self.ReportKeys.absolute
1400-
]
1401-
1402-
sizes_summary_report[size_summary_report_index][self.ReportKeys.delta][
1403-
self.ReportKeys.relative
1404-
][self.ReportKeys.maximum] = size_report[self.ReportKeys.delta][
1405-
self.ReportKeys.relative
1406-
]
1407-
14081372
return sizes_summary_report
14091373

14101374
def get_warnings_summary_report(self, sketch_report_list):

compilesketches/tests/test_compilesketches.py

+33-2
Original file line numberDiff line numberDiff line change
@@ -1803,6 +1803,28 @@ def checkout(self):
18031803
" ^~~~~\n"
18041804
"Sketch uses {flash} bytes (4%) of program storage space. Maximum is {maximum_flash} bytes.\n",
18051805
12636,
1806+
25272,
1807+
50.0,
1808+
get_compilesketches_object().not_applicable_indicator,
1809+
get_compilesketches_object().not_applicable_indicator,
1810+
get_compilesketches_object().not_applicable_indicator,
1811+
),
1812+
(
1813+
True,
1814+
"/home/per/Arduino/libraries/Servo/src/samd/Servo.cpp: In function 'void _initISR(Tc*, uint8_t, uint32_t, IRQn_Ty"
1815+
"pe, uint8_t, uint8_t)':\n"
1816+
"/home/per/Arduino/libraries/Servo/src/samd/Servo.cpp:120:56: warning: unused parameter 'id' [-Wunused-parameter]"
1817+
"\n"
1818+
" static void _initISR(Tc *tc, uint8_t channel, uint32_t id, IRQn_Type irqn, uint8_t gcmForTimer, uint8_t intEnab"
1819+
" leBit)\n"
1820+
" ^~\n"
1821+
"/home/per/Arduino/libraries/Servo/src/samd/Servo.cpp: In function 'void finISR(timer16_Sequence_t)':\n"
1822+
"/home/per/Arduino/libraries/Servo/src/samd/Servo.cpp:174:39: warning: unused parameter 'timer' [-Wunused-paramet"
1823+
"er]\n"
1824+
" static void finISR(timer16_Sequence_t timer)\n"
1825+
" ^~~~~\n"
1826+
"Sketch uses {flash} bytes (4%) of program storage space.\n",
1827+
12636,
18061828
get_compilesketches_object().not_applicable_indicator,
18071829
get_compilesketches_object().not_applicable_indicator,
18081830
get_compilesketches_object().not_applicable_indicator,
@@ -2621,7 +2643,7 @@ def test_get_sizes_summary_report():
26212643
},
26222644
{
26232645
compilesketches.CompileSketches.ReportKeys.name: "Bar memory type",
2624-
compilesketches.CompileSketches.ReportKeys.maximum: 111,
2646+
compilesketches.CompileSketches.ReportKeys.maximum: 222,
26252647
compilesketches.CompileSketches.ReportKeys.current: {
26262648
compilesketches.CompileSketches.ReportKeys.absolute: 33,
26272649
compilesketches.CompileSketches.ReportKeys.relative: 3.342,
@@ -2631,7 +2653,16 @@ def test_get_sizes_summary_report():
26312653
},
26322654
]
26332655

2634-
expected_sizes_summary_report = []
2656+
expected_sizes_summary_report = [
2657+
{
2658+
compilesketches.CompileSketches.ReportKeys.name: "Foo memory type",
2659+
compilesketches.CompileSketches.ReportKeys.maximum: 111,
2660+
},
2661+
{
2662+
compilesketches.CompileSketches.ReportKeys.name: "Bar memory type",
2663+
compilesketches.CompileSketches.ReportKeys.maximum: 222,
2664+
},
2665+
]
26352666

26362667
assert compile_sketches.get_sizes_summary_report(sketch_report_list=sketch_report_list) == (
26372668
expected_sizes_summary_report

0 commit comments

Comments
 (0)