diff --git a/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/artifact/arduino-avr-leonardo.json b/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/artifact/arduino-avr-leonardo.json new file mode 100644 index 0000000..86ea1a0 --- /dev/null +++ b/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/artifact/arduino-avr-leonardo.json @@ -0,0 +1,117 @@ +{ + "commit_hash": "d8fd302", + "commit_url": "https://example.com/foo", + "boards": [ + { + "board": "arduino:avr:leonardo", + "sketches": [ + { + "name": "examples/Bar", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "maximum": 28672, + "current": { + "absolute": 3494, + "relative": 12.19 + }, + "previous": { + "absolute": "N/A", + "relative": "N/A" + }, + "delta": { + "absolute": "N/A", + "relative": "N/A" + } + }, + { + "name": "RAM for global variables", + "maximum": 2560, + "current": { + "absolute": 153, + "relative": 5.97 + }, + "previous": { + "absolute": "N/A", + "relative": "N/A" + }, + "delta": { + "absolute": "N/A", + "relative": "N/A" + } + } + ] + }, + { + "name": "examples/Foo", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "maximum": 28672, + "current": { + "absolute": 3462, + "relative": 12.07 + }, + "previous": { + "absolute": 3474, + "relative": 12.12 + }, + "delta": { + "absolute": -12, + "relative": -0.05 + } + }, + { + "name": "RAM for global variables", + "maximum": 2560, + "current": { + "absolute": 149, + "relative": 5.82 + }, + "previous": { + "absolute": 149, + "relative": 5.82 + }, + "delta": { + "absolute": 0, + "relative": 0.0 + } + } + ] + } + ], + "sizes": [ + { + "name": "flash", + "maximum": 28672, + "delta": { + "absolute": { + "minimum": -12, + "maximum": -12 + }, + "relative": { + "minimum": -0.05, + "maximum": -0.05 + } + } + }, + { + "name": "RAM for global variables", + "maximum": 2560, + "delta": { + "absolute": { + "minimum": 0, + "maximum": 0 + }, + "relative": { + "minimum": 0.0, + "maximum": 0.0 + } + } + } + ] + } + ] +} diff --git a/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/artifact/arduino-avr-uno.json b/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/artifact/arduino-avr-uno.json new file mode 100644 index 0000000..41efb08 --- /dev/null +++ b/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/artifact/arduino-avr-uno.json @@ -0,0 +1,117 @@ +{ + "commit_hash": "d8fd302", + "commit_url": "https://example.com/foo", + "boards": [ + { + "board": "arduino:avr:uno", + "sketches": [ + { + "name": "examples/Bar", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "maximum": 32256, + "current": { + "absolute": 1460, + "relative": 4.53 + }, + "previous": { + "absolute": "N/A", + "relative": "N/A" + }, + "delta": { + "absolute": "N/A", + "relative": "N/A" + } + }, + { + "name": "RAM for global variables", + "maximum": 2048, + "current": { + "absolute": 190, + "relative": 9.28 + }, + "previous": { + "absolute": "N/A", + "relative": "N/A" + }, + "delta": { + "absolute": "N/A", + "relative": "N/A" + } + } + ] + }, + { + "name": "examples/Foo", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "maximum": 32256, + "current": { + "absolute": 444, + "relative": 1.38 + }, + "previous": { + "absolute": 1438, + "relative": 4.46 + }, + "delta": { + "absolute": -994, + "relative": -3.08 + } + }, + { + "name": "RAM for global variables", + "maximum": 2048, + "current": { + "absolute": 9, + "relative": 0.44 + }, + "previous": { + "absolute": 184, + "relative": 8.98 + }, + "delta": { + "absolute": -175, + "relative": -8.54 + } + } + ] + } + ], + "sizes": [ + { + "name": "flash", + "maximum": 32256, + "delta": { + "absolute": { + "minimum": -994, + "maximum": -994 + }, + "relative": { + "minimum": -3.08, + "maximum": -3.08 + } + } + }, + { + "name": "RAM for global variables", + "maximum": 2048, + "delta": { + "absolute": { + "minimum": -175, + "maximum": -175 + }, + "relative": { + "minimum": -8.54, + "maximum": -8.54 + } + } + } + ] + } + ] +} diff --git a/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/artifact/arduino-mbed_portenta-envie_m7.json b/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/artifact/arduino-mbed_portenta-envie_m7.json new file mode 100644 index 0000000..d5dd9e4 --- /dev/null +++ b/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/artifact/arduino-mbed_portenta-envie_m7.json @@ -0,0 +1,65 @@ +{ + "commit_hash": "54815a7d1a30fcb0d77d98242b158e7845c0516d", + "commit_url": "https://example.com/foo", + "boards": [ + { + "board": "arduino:mbed_portenta:envie_m7", + "sketches": [ + { + "name": "examples/Bar", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "maximum": "N/A", + "current": { + "absolute": "N/A", + "relative": "N/A" + } + }, + { + "name": "RAM for global variables", + "maximum": "N/A", + "current": { + "absolute": "N/A", + "relative": "N/A" + } + } + ] + }, + { + "name": "examples/Foo", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "maximum": "N/A", + "current": { + "absolute": "N/A", + "relative": "N/A" + } + }, + { + "name": "RAM for global variables", + "maximum": "N/A", + "current": { + "absolute": "N/A", + "relative": "N/A" + } + } + ] + } + ], + "sizes": [ + { + "name": "flash", + "maximum": "N/A" + }, + { + "name": "RAM for global variables", + "maximum": "N/A" + } + ] + } + ] +} diff --git a/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/golden-sketches-reports.json b/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/golden-sketches-reports.json new file mode 100644 index 0000000..c75596f --- /dev/null +++ b/reportsizedeltas/tests/data/test_get_sketches_reports/new-report-format/golden-sketches-reports.json @@ -0,0 +1,301 @@ +[ + { + "commit_hash": "d8fd302", + "commit_url": "https://example.com/foo", + "boards": [ + { + "board": "arduino:avr:leonardo", + "sizes": [ + { + "delta": { + "absolute": { + "maximum": -12, + "minimum": -12 + }, + "relative": { + "maximum": -0.05, + "minimum": -0.05 + } + }, + "name": "flash", + "maximum": 28672 + }, + { + "delta": { + "absolute": { + "maximum": 0, + "minimum": 0 + }, + "relative": { + "maximum": 0.0, + "minimum": 0.0 + } + }, + "name": "RAM for global variables", + "maximum": 2560 + } + ], + "sketches": [ + { + "compilation_success": true, + "name": "examples/Bar", + "sizes": [ + { + "current": { + "absolute": 3494, + "relative": 12.19 + }, + "delta": { + "absolute": "N/A", + "relative": "N/A" + }, + "name": "flash", + "maximum": 28672, + "previous": { + "absolute": "N/A", + "relative": "N/A" + } + }, + { + "current": { + "absolute": 153, + "relative": 5.97 + }, + "delta": { + "absolute": "N/A", + "relative": "N/A" + }, + "name": "RAM for global variables", + "maximum": 2560, + "previous": { + "absolute": "N/A", + "relative": "N/A" + } + } + ] + }, + { + "compilation_success": true, + "name": "examples/Foo", + "sizes": [ + { + "current": { + "absolute": 3462, + "relative": 12.07 + }, + "delta": { + "absolute": -12, + "relative": -0.05 + }, + "name": "flash", + "maximum": 28672, + "previous": { + "absolute": 3474, + "relative": 12.12 + } + }, + { + "current": { + "absolute": 149, + "relative": 5.82 + }, + "delta": { + "absolute": 0, + "relative": -0.0 + }, + "name": "RAM for global variables", + "maximum": 2560, + "previous": { + "absolute": 149, + "relative": 5.82 + } + } + ] + } + ] + } + ] + }, + { + "commit_hash": "d8fd302", + "commit_url": "https://example.com/foo", + "boards": [ + { + "board": "arduino:avr:uno", + "sizes": [ + { + "delta": { + "absolute": { + "maximum": -994, + "minimum": -994 + }, + "relative": { + "maximum": -3.08, + "minimum": -3.08 + } + }, + "name": "flash", + "maximum": 32256 + }, + { + "delta": { + "absolute": { + "maximum": -175, + "minimum": -175 + }, + "relative": { + "maximum": -8.54, + "minimum": -8.54 + } + }, + "name": "RAM for global variables", + "maximum": 2048 + } + ], + "sketches": [ + { + "compilation_success": true, + "name": "examples/Bar", + "sizes": [ + { + "current": { + "absolute": 1460, + "relative": 4.53 + }, + "delta": { + "absolute": "N/A", + "relative": "N/A" + }, + "name": "flash", + "maximum": 32256, + "previous": { + "absolute": "N/A", + "relative": "N/A" + } + }, + { + "current": { + "absolute": 190, + "relative": 9.28 + }, + "delta": { + "absolute": "N/A", + "relative": "N/A" + }, + "name": "RAM for global variables", + "maximum": 2048, + "previous": { + "absolute": "N/A", + "relative": "N/A" + } + } + ] + }, + { + "compilation_success": true, + "name": "examples/Foo", + "sizes": [ + { + "current": { + "absolute": 444, + "relative": 1.38 + }, + "delta": { + "absolute": -994, + "relative": -3.08 + }, + "name": "flash", + "maximum": 32256, + "previous": { + "absolute": 1438, + "relative": 4.46 + } + }, + { + "current": { + "absolute": 9, + "relative": 0.44 + }, + "delta": { + "absolute": -175, + "relative": -8.54 + }, + "name": "RAM for global variables", + "maximum": 2048, + "previous": { + "absolute": 184, + "relative": 8.98 + } + } + ] + } + ] + } + ] + }, + { + "commit_hash": "54815a7d1a30fcb0d77d98242b158e7845c0516d", + "commit_url": "https://example.com/foo", + "boards": [ + { + "board": "arduino:mbed_portenta:envie_m7", + "sizes": [ + { + "name": "flash", + "maximum": "N/A" + }, + { + "name": "RAM for global variables", + "maximum": "N/A" + } + ], + "sketches": [ + { + "compilation_success": true, + "name": "examples/Bar", + "sizes": [ + { + "current": { + "absolute": "N/A", + "relative": "N/A" + }, + "name": "flash", + "maximum": "N/A" + }, + { + "current": { + "absolute": "N/A", + "relative": "N/A" + }, + "name": "RAM for global variables", + "maximum": "N/A" + } + ] + }, + { + "compilation_success": true, + "name": "examples/Foo", + "sizes": [ + { + "current": { + "absolute": "N/A", + "relative": "N/A" + }, + "name": "flash", + "maximum": "N/A" + }, + { + "current": { + "absolute": "N/A", + "relative": "N/A" + }, + "name": "RAM for global variables", + "maximum": "N/A" + } + ] + } + ] + } + ] + } +] diff --git a/reportsizedeltas/tests/data/test_get_sketches_reports/old-report-format/artifact/arduino-mbed_portenta-envie_m7.json b/reportsizedeltas/tests/data/test_get_sketches_reports/old-report-format/artifact/arduino-mbed_portenta-envie_m7.json new file mode 100644 index 0000000..0d3069b --- /dev/null +++ b/reportsizedeltas/tests/data/test_get_sketches_reports/old-report-format/artifact/arduino-mbed_portenta-envie_m7.json @@ -0,0 +1,55 @@ +{ + "commit_hash": "54815a7d1a30fcb0d77d98242b158e7845c0516d", + "commit_url": "https://example.com/foo", + "boards": [ + { + "board": "arduino:mbed_portenta:envie_m7", + "sketches": [ + { + "name": "examples/Bar", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "maximum": "N/A", + "current": { + "absolute": "N/A", + "relative": "N/A" + } + }, + { + "name": "RAM for global variables", + "maximum": "N/A", + "current": { + "absolute": "N/A", + "relative": "N/A" + } + } + ] + }, + { + "name": "examples/Foo", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "maximum": "N/A", + "current": { + "absolute": "N/A", + "relative": "N/A" + } + }, + { + "name": "RAM for global variables", + "maximum": "N/A", + "current": { + "absolute": "N/A", + "relative": "N/A" + } + } + ] + } + ] + } + ] +} diff --git a/reportsizedeltas/tests/data/test_get_sketches_reports/old-report-format/artifact/arduino-samd-mkrgsm1400.json b/reportsizedeltas/tests/data/test_get_sketches_reports/old-report-format/artifact/arduino-samd-mkrgsm1400.json new file mode 100644 index 0000000..ae2435b --- /dev/null +++ b/reportsizedeltas/tests/data/test_get_sketches_reports/old-report-format/artifact/arduino-samd-mkrgsm1400.json @@ -0,0 +1,87 @@ +{ + "board": "arduino:samd:mkrgsm1400", + "commit_hash": "d8fd302", + "commit_url": "https://example.com/foo", + "sketches": [ + { + "name": "examples/ConnectionHandlerDemo", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "current": { + "absolute": 1460 + }, + "previous": { + "absolute": "N/A" + }, + "delta": { + "absolute": "N/A" + } + }, + { + "name": "RAM for global variables", + "current": { + "absolute": 190 + }, + "previous": { + "absolute": "N/A" + }, + "delta": { + "absolute": "N/A" + } + } + ] + }, + { + "name": "examples/Foo", + "compilation_success": true, + "sizes": [ + { + "name": "flash", + "current": { + "absolute": 444 + }, + "previous": { + "absolute": 1438 + }, + "delta": { + "absolute": -994 + } + }, + { + "name": "RAM for global variables", + "current": { + "absolute": 9 + }, + "previous": { + "absolute": 184 + }, + "delta": { + "absolute": -175 + } + } + ] + } + ], + "sizes": [ + { + "name": "flash", + "delta": { + "absolute": { + "minimum": -994, + "maximum": -994 + } + } + }, + { + "name": "RAM for global variables", + "delta": { + "absolute": { + "minimum": -175, + "maximum": -175 + } + } + } + ] +} diff --git a/reportsizedeltas/tests/data/test_get_sketches_reports/old-report-format/golden-sketches-reports.json b/reportsizedeltas/tests/data/test_get_sketches_reports/old-report-format/golden-sketches-reports.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/reportsizedeltas/tests/data/test_get_sketches_reports/old-report-format/golden-sketches-reports.json @@ -0,0 +1 @@ +[] diff --git a/reportsizedeltas/tests/test_reportsizedeltas.py b/reportsizedeltas/tests/test_reportsizedeltas.py index 0a55847..4411019 100644 --- a/reportsizedeltas/tests/test_reportsizedeltas.py +++ b/reportsizedeltas/tests/test_reportsizedeltas.py @@ -493,294 +493,25 @@ def test_get_artifact(tmp_path, test_artifact_name, expected_success): @pytest.mark.parametrize( - "sketches_reports_path, expected_sketches_reports", - [ - (test_data_path.joinpath("size-deltas-reports-old"), []), - ( - test_data_path.joinpath("size-deltas-reports-new"), - [ - { - report_keys.commit_hash: "d8fd302", - report_keys.commit_url: "https://example.com/foo", - report_keys.boards: [ - { - report_keys.board: "arduino:avr:leonardo", - report_keys.sizes: [ - { - report_keys.delta: { - report_keys.absolute: {report_keys.maximum: -12, report_keys.minimum: -12}, - report_keys.relative: {report_keys.maximum: -0.05, report_keys.minimum: -0.05}, - }, - report_keys.name: "flash", - report_keys.maximum: 28672, - }, - { - report_keys.delta: { - report_keys.absolute: {report_keys.maximum: 0, report_keys.minimum: 0}, - report_keys.relative: {report_keys.maximum: 0.00, report_keys.minimum: 0.00}, - }, - report_keys.name: "RAM for global variables", - report_keys.maximum: 2560, - }, - ], - report_keys.sketches: [ - { - report_keys.compilation_success: True, - report_keys.name: "examples/Bar", - report_keys.sizes: [ - { - report_keys.current: { - report_keys.absolute: 3494, - report_keys.relative: 12.19, - }, - report_keys.delta: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - report_keys.name: "flash", - report_keys.maximum: 28672, - report_keys.previous: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - }, - { - report_keys.current: { - report_keys.absolute: 153, - report_keys.relative: 5.97, - }, - report_keys.delta: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - report_keys.name: "RAM for global variables", - report_keys.maximum: 2560, - report_keys.previous: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - }, - ], - }, - { - report_keys.compilation_success: True, - report_keys.name: "examples/Foo", - report_keys.sizes: [ - { - report_keys.current: { - report_keys.absolute: 3462, - report_keys.relative: 12.07, - }, - report_keys.delta: {report_keys.absolute: -12, report_keys.relative: -0.05}, - report_keys.name: "flash", - report_keys.maximum: 28672, - report_keys.previous: { - report_keys.absolute: 3474, - report_keys.relative: 12.12, - }, - }, - { - report_keys.current: { - report_keys.absolute: 149, - report_keys.relative: 5.82, - }, - report_keys.delta: {report_keys.absolute: 0, report_keys.relative: -0.00}, - report_keys.name: "RAM for global variables", - report_keys.maximum: 2560, - report_keys.previous: { - report_keys.absolute: 149, - report_keys.relative: 5.82, - }, - }, - ], - }, - ], - } - ], - }, - { - report_keys.commit_hash: "d8fd302", - report_keys.commit_url: "https://example.com/foo", - report_keys.boards: [ - { - report_keys.board: "arduino:avr:uno", - report_keys.sizes: [ - { - report_keys.delta: { - report_keys.absolute: {report_keys.maximum: -994, report_keys.minimum: -994}, - report_keys.relative: {report_keys.maximum: -3.08, report_keys.minimum: -3.08}, - }, - report_keys.name: "flash", - report_keys.maximum: 32256, - }, - { - report_keys.delta: { - report_keys.absolute: {report_keys.maximum: -175, report_keys.minimum: -175}, - report_keys.relative: {report_keys.maximum: -8.54, report_keys.minimum: -8.54}, - }, - report_keys.name: "RAM for global variables", - report_keys.maximum: 2048, - }, - ], - report_keys.sketches: [ - { - report_keys.compilation_success: True, - report_keys.name: "examples/Bar", - report_keys.sizes: [ - { - report_keys.current: { - report_keys.absolute: 1460, - report_keys.relative: 4.53, - }, - report_keys.delta: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - report_keys.name: "flash", - report_keys.maximum: 32256, - report_keys.previous: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - }, - { - report_keys.current: { - report_keys.absolute: 190, - report_keys.relative: 9.28, - }, - report_keys.delta: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - report_keys.name: "RAM for global variables", - report_keys.maximum: 2048, - report_keys.previous: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - }, - ], - }, - { - report_keys.compilation_success: True, - report_keys.name: "examples/Foo", - report_keys.sizes: [ - { - report_keys.current: { - report_keys.absolute: 444, - report_keys.relative: 1.38, - }, - report_keys.delta: { - report_keys.absolute: -994, - report_keys.relative: -3.08, - }, - report_keys.name: "flash", - report_keys.maximum: 32256, - report_keys.previous: { - report_keys.absolute: 1438, - report_keys.relative: 4.46, - }, - }, - { - report_keys.current: {report_keys.absolute: 9, report_keys.relative: 0.44}, - report_keys.delta: { - report_keys.absolute: -175, - report_keys.relative: -8.54, - }, - report_keys.name: "RAM for global variables", - report_keys.maximum: 2048, - report_keys.previous: { - report_keys.absolute: 184, - report_keys.relative: 8.98, - }, - }, - ], - }, - ], - } - ], - }, - { - report_keys.commit_hash: "54815a7d1a30fcb0d77d98242b158e7845c0516d", - report_keys.commit_url: "https://example.com/foo", - report_keys.boards: [ - { - report_keys.board: "arduino:mbed_portenta:envie_m7", - report_keys.sizes: [ - { - report_keys.name: "flash", - report_keys.maximum: "N/A", - }, - { - report_keys.name: "RAM for global variables", - report_keys.maximum: "N/A", - }, - ], - report_keys.sketches: [ - { - report_keys.compilation_success: True, - report_keys.name: "examples/Bar", - report_keys.sizes: [ - { - report_keys.current: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - report_keys.name: "flash", - report_keys.maximum: "N/A", - }, - { - report_keys.current: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - report_keys.name: "RAM for global variables", - report_keys.maximum: "N/A", - }, - ], - }, - { - report_keys.compilation_success: True, - report_keys.name: "examples/Foo", - report_keys.sizes: [ - { - report_keys.current: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - report_keys.name: "flash", - report_keys.maximum: "N/A", - }, - { - report_keys.current: { - report_keys.absolute: "N/A", - report_keys.relative: "N/A", - }, - report_keys.name: "RAM for global variables", - report_keys.maximum: "N/A", - }, - ], - }, - ], - } - ], - }, - ], - ), - ], + "test_data_folder_name", + ["old-report-format", "new-report-format"], ) -def test_get_sketches_reports(sketches_reports_path, expected_sketches_reports): +def test_get_sketches_reports(test_data_folder_name): + current_test_data_path = test_data_path.joinpath("test_get_sketches_reports", test_data_folder_name) report_size_deltas = get_reportsizedeltas_object() artifact_folder_object = tempfile.TemporaryDirectory(prefix="test_reportsizedeltas-") try: - distutils.dir_util.copy_tree(src=str(sketches_reports_path), dst=artifact_folder_object.name) + distutils.dir_util.copy_tree( + src=str(current_test_data_path.joinpath("artifact")), dst=artifact_folder_object.name + ) except Exception: # pragma: no cover artifact_folder_object.cleanup() raise sketches_reports = report_size_deltas.get_sketches_reports(artifact_folder_object=artifact_folder_object) - assert sketches_reports == expected_sketches_reports + with open(file=current_test_data_path.joinpath("golden-sketches-reports.json")) as golden_sketches_reports_file: + assert sketches_reports == json.load(golden_sketches_reports_file) @pytest.mark.parametrize(