From 57f0150a236979c9cffa728e02cb342c6cd192eb Mon Sep 17 00:00:00 2001 From: Seth Hillbrand Date: Tue, 9 May 2023 12:11:46 -0700 Subject: [PATCH] Ensure _changed_ netlist is propagated The propagation is currently (maybe not needed) limited to the global name that is the source of the change. We also need to propagate the global name that is changed in case the global is set in a tree leaf and not the root Fixes https://gitlab.com/kicad/code/kicad/issues/14657 (cherry picked from commit 6e4de18e155733bbb46a5f203221f5f95ec029f0) --- eeschema/connection_graph.cpp | 1 + .../netlists/issue14657/issue14657.kicad_pro | 560 ++++++++++++++++++ .../netlists/issue14657/issue14657.kicad_sch | 89 +++ .../netlists/issue14657/issue14657.net | 83 +++ .../issue14657/issue14657_1.kicad_sch | 30 + .../issue14657/issue14657_2.kicad_sch | 102 ++++ .../eeschema/test_netlist_exporter_kicad.cpp | 5 + qa/unittests/eeschema/test_netlists.cpp | 5 + 8 files changed, 875 insertions(+) create mode 100644 qa/data/eeschema/netlists/issue14657/issue14657.kicad_pro create mode 100644 qa/data/eeschema/netlists/issue14657/issue14657.kicad_sch create mode 100644 qa/data/eeschema/netlists/issue14657/issue14657.net create mode 100644 qa/data/eeschema/netlists/issue14657/issue14657_1.kicad_sch create mode 100644 qa/data/eeschema/netlists/issue14657/issue14657_2.kicad_sch diff --git a/eeschema/connection_graph.cpp b/eeschema/connection_graph.cpp index 7d60d7a0f8..24ec7ba863 100644 --- a/eeschema/connection_graph.cpp +++ b/eeschema/connection_graph.cpp @@ -1878,6 +1878,7 @@ void CONNECTION_GRAPH::buildConnectionGraph( std::function* a conn->Clone( *subgraph->m_driver_connection ); candidate->m_dirty = false; + propagateToNeighbors( candidate, false ); } } } diff --git a/qa/data/eeschema/netlists/issue14657/issue14657.kicad_pro b/qa/data/eeschema/netlists/issue14657/issue14657.kicad_pro new file mode 100644 index 0000000000..a9ed648521 --- /dev/null +++ b/qa/data/eeschema/netlists/issue14657/issue14657.kicad_pro @@ -0,0 +1,560 @@ +{ + "board": { + "3dviewports": [], + "design_settings": { + "defaults": { + "board_outline_line_width": 0.15239999999999998, + "copper_line_width": 0.0254, + "copper_text_italic": false, + "copper_text_size_h": 1.27, + "copper_text_size_v": 1.27, + "copper_text_thickness": 0.2032, + "copper_text_upright": false, + "courtyard_line_width": 0.049999999999999996, + "dimension_precision": 4, + "dimension_units": 3, + "dimensions": { + "arrow_length": 1270000, + "extension_offset": 500000, + "keep_text_aligned": true, + "suppress_zeroes": false, + "text_position": 0, + "units_format": 1 + }, + "fab_line_width": 0.09999999999999999, + "fab_text_italic": false, + "fab_text_size_h": 1.0, + "fab_text_size_v": 1.0, + "fab_text_thickness": 0.15, + "fab_text_upright": false, + "other_line_width": 0.09999999999999999, + "other_text_italic": false, + "other_text_size_h": 1.0, + "other_text_size_v": 1.0, + "other_text_thickness": 0.15, + "other_text_upright": false, + "pads": { + "drill": 0.0, + "height": 1.0, + "width": 1.0 + }, + "silk_line_width": 0.30479999999999996, + "silk_text_italic": false, + "silk_text_size_h": 1.27, + "silk_text_size_v": 1.27, + "silk_text_thickness": 0.2032, + "silk_text_upright": false, + "zones": { + "min_clearance": 0.508 + } + }, + "diff_pair_dimensions": [ + { + "gap": 0.0, + "via_gap": 0.0, + "width": 0.0 + } + ], + "drc_exclusions": [], + "meta": { + "filename": "board_design_settings.json", + "version": 2 + }, + "rule_severities": { + "annular_width": "error", + "clearance": "error", + "connection_width": "warning", + "copper_edge_clearance": "ignore", + "copper_sliver": "warning", + "courtyards_overlap": "ignore", + "diff_pair_gap_out_of_range": "error", + "diff_pair_uncoupled_length_too_long": "error", + "drill_out_of_range": "error", + "duplicate_footprints": "warning", + "extra_footprint": "warning", + "footprint": "error", + "footprint_type_mismatch": "ignore", + "hole_clearance": "error", + "hole_near_hole": "error", + "invalid_outline": "error", + "isolated_copper": "warning", + "item_on_disabled_layer": "error", + "items_not_allowed": "error", + "length_out_of_range": "error", + "lib_footprint_issues": "ignore", + "lib_footprint_mismatch": "ignore", + "malformed_courtyard": "ignore", + "microvia_drill_out_of_range": "error", + "missing_courtyard": "ignore", + "missing_footprint": "warning", + "net_conflict": "warning", + "npth_inside_courtyard": "ignore", + "padstack": "warning", + "pth_inside_courtyard": "ignore", + "shorting_items": "error", + "silk_edge_clearance": "warning", + "silk_over_copper": "warning", + "silk_overlap": "ignore", + "skew_out_of_range": "error", + "solder_mask_bridge": "ignore", + "starved_thermal": "error", + "text_height": "ignore", + "text_thickness": "warning", + "through_hole_pad_without_hole": "error", + "too_many_vias": "error", + "track_dangling": "ignore", + "track_width": "error", + "tracks_crossing": "error", + "unconnected_items": "error", + "unresolved_variable": "error", + "via_dangling": "ignore", + "zones_intersect": "error" + }, + "rule_severitieslegacy_courtyards_overlap": false, + "rule_severitieslegacy_no_courtyard_defined": false, + "rules": { + "max_error": 0.005, + "min_clearance": 0.0, + "min_connection": 0.0, + "min_copper_edge_clearance": 0.07619999999999999, + "min_hole_clearance": 0.25, + "min_hole_to_hole": 0.25, + "min_microvia_diameter": 0.19999999999999998, + "min_microvia_drill": 0.09999999999999999, + "min_resolved_spokes": 2, + "min_silk_clearance": 0.0, + "min_text_height": 0.7999999999999999, + "min_text_thickness": 0.08, + "min_through_hole_diameter": 0.3, + "min_track_width": 0.19999999999999998, + "min_via_annular_width": 0.09999999999999999, + "min_via_diameter": 0.39999999999999997, + "solder_mask_to_copper_clearance": 0.0, + "use_height_for_length_calcs": true + }, + "teardrop_options": [ + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 5, + "td_on_pad_in_zone": false, + "td_onpadsmd": true, + "td_onroundshapesonly": false, + "td_ontrackend": false, + "td_onviapad": true + } + ], + "teardrop_parameters": [ + { + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_target_name": "td_round_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_target_name": "td_rect_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_target_name": "td_track_end", + "td_width_to_size_filter_ratio": 0.9 + } + ], + "track_widths": [ + 0.0 + ], + "via_dimensions": [ + { + "diameter": 0.0, + "drill": 0.0 + } + ], + "zones_allow_external_fillets": false + }, + "layer_presets": [], + "viewports": [] + }, + "boards": [], + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "conflicting_netclasses": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "endpoint_off_grid": "warning", + "extra_units": "error", + "global_label_dangling": "warning", + "hier_label_mismatch": "error", + "label_dangling": "error", + "lib_symbol_issues": "warning", + "missing_bidi_pin": "warning", + "missing_input_pin": "warning", + "missing_power_pin": "error", + "missing_unit": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "ignore", + "power_pin_not_driven": "error", + "similar_labels": "warning", + "simulation_model_issue": "ignore", + "unannotated": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "issue14657.kicad_pro", + "version": 1 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.25, + "via_diameter": 0.6, + "via_drill": 0.4, + "wire_width": 6 + }, + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "GND", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.25, + "via_diameter": 0.6, + "via_drill": 0.4, + "wire_width": 6 + }, + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "MIRROR", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.4, + "via_diameter": 0.6, + "via_drill": 0.4, + "wire_width": 6 + }, + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "PWR", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.25, + "via_diameter": 0.6, + "via_drill": 0.4, + "wire_width": 6 + } + ], + "meta": { + "version": 3 + }, + "net_colors": null, + "netclass_assignments": null, + "netclass_patterns": [] + }, + "pcbnew": { + "last_paths": { + "gencad": "", + "idf": "", + "netlist": "", + "specctra_dsn": "qbone.dsn", + "step": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "drawing": { + "dashed_lines_dash_length_ratio": 12.0, + "dashed_lines_gap_length_ratio": 3.0, + "default_line_thickness": 6.0, + "default_text_size": 60.0, + "field_names": [], + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.25, + "pin_symbol_size": 0.0, + "text_offset_ratio": 0.08 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "net_format_name": "Pcbnew", + "ngspice": { + "fix_include_paths": true, + "fix_passive_vals": false, + "meta": { + "version": 0 + }, + "model_mode": 0, + "workbook_filename": "" + }, + "page_layout_descr_file": "", + "plot_directory": "./", + "spice_adjust_passive_values": false, + "spice_current_sheet_as_root": false, + "spice_external_command": "spice \"%I\"", + "spice_model_current_sheet_as_root": true, + "spice_save_all_currents": false, + "spice_save_all_voltages": false, + "subpart_first_id": 65, + "subpart_id_separator": 0 + }, + "sheets": [ + [ + "c559a370-1b70-4fd6-97f7-7b50807e9d63", + "" + ], + [ + "00000000-0000-0000-0000-00005adb3077", + "subsheet1" + ], + [ + "00000000-0000-0000-0000-000062a0fb2f", + "subsheet2" + ] + ], + "text_variables": {} +} diff --git a/qa/data/eeschema/netlists/issue14657/issue14657.kicad_sch b/qa/data/eeschema/netlists/issue14657/issue14657.kicad_sch new file mode 100644 index 0000000000..ecb7b1690f --- /dev/null +++ b/qa/data/eeschema/netlists/issue14657/issue14657.kicad_sch @@ -0,0 +1,89 @@ +(kicad_sch (version 20230121) (generator eeschema) + + (uuid c559a370-1b70-4fd6-97f7-7b50807e9d63) + + (paper "A3") + + (lib_symbols + ) + + (junction (at 162.56 43.18) (diameter 0) (color 0 0 0 0) + (uuid 78e891aa-f320-45f5-bbfd-84724edc0cc1) + ) + + (wire (pts (xy 162.56 43.18) (xy 162.56 46.99)) + (stroke (width 0) (type default)) + (uuid 7de0f5bf-b59f-4e49-bb11-03d743e4b5e8) + ) + (wire (pts (xy 143.51 43.18) (xy 162.56 43.18)) + (stroke (width 0) (type default)) + (uuid b203ef8f-8c85-46ab-9d6a-b879680a05a5) + ) + (wire (pts (xy 172.72 43.18) (xy 162.56 43.18)) + (stroke (width 0) (type default)) + (uuid d9e8e5a7-9094-4ca3-a654-7228ca35dbee) + ) + (wire (pts (xy 172.72 46.99) (xy 162.56 46.99)) + (stroke (width 0) (type default)) + (uuid dfc222de-5c5e-44e6-8fee-59b6608e7c28) + ) + + (text "Low: CPLD tristate and reset" (at 160.02 39.37 0) + (effects (font (size 1.524 1.524)) (justify right bottom)) + (uuid a020c284-00af-4fa9-87e3-bee3d21c9400) + ) + + (global_label "REG_ENABLE" (shape input) (at 143.51 43.18 180) + (effects (font (size 1.524 1.524)) (justify right)) + (uuid 2c0a5cdb-9772-4ba5-a787-71f4817b1e17) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 143.51 43.18 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + + (sheet (at 25.4 39.37) (size 25.4 33.02) (fields_autoplaced) + (stroke (width 0) (type solid)) + (fill (color 0 0 0 0.0000)) + (uuid 00000000-0000-0000-0000-00005adb3077) + (property "Sheetname" "subsheet1" (at 25.4 38.5314 0) + (effects (font (size 1.524 1.524)) (justify left bottom)) + ) + (property "Sheetfile" "issue14657_1.kicad_sch" (at 25.4 73.0762 0) + (effects (font (size 1.524 1.524)) (justify left top)) + ) + (instances + (project "issue14657" + (path "/c559a370-1b70-4fd6-97f7-7b50807e9d63" (page "2")) + ) + ) + ) + + (sheet (at 172.72 38.1) (size 26.67 29.21) (fields_autoplaced) + (stroke (width 0) (type solid)) + (fill (color 0 0 0 0.0000)) + (uuid 00000000-0000-0000-0000-000062a0fb2f) + (property "Sheetname" "subsheet2" (at 172.72 37.2614 0) + (effects (font (size 1.524 1.524)) (justify left bottom)) + ) + (property "Sheetfile" "issue14657_2.kicad_sch" (at 172.72 67.9962 0) + (effects (font (size 1.524 1.524)) (justify left top)) + ) + (pin "DEV_OE" input (at 172.72 43.18 180) + (effects (font (size 1.524 1.524)) (justify left)) + (uuid c87e9573-e811-44b1-99a7-05b54a8ac7d3) + ) + (pin "DEV_CLRn" input (at 172.72 46.99 180) + (effects (font (size 1.524 1.524)) (justify left)) + (uuid 7ea56b40-7e69-4f46-899d-916eb5319378) + ) + (instances + (project "issue14657" + (path "/c559a370-1b70-4fd6-97f7-7b50807e9d63" (page "4")) + ) + ) + ) + + (sheet_instances + (path "/" (page "1")) + ) +) diff --git a/qa/data/eeschema/netlists/issue14657/issue14657.net b/qa/data/eeschema/netlists/issue14657/issue14657.net new file mode 100644 index 0000000000..6b2137ed33 --- /dev/null +++ b/qa/data/eeschema/netlists/issue14657/issue14657.net @@ -0,0 +1,83 @@ +(export (version "E") + (design + (source "/home/seth/code/kicad/kicad-master/qa/data/eeschema/netlists/issue14657/issue14657.kicad_sch") + (date "Tue 09 May 2023 12:04:19 PM PDT") + (tool "Eeschema 7.99.0-1081-ge7d4b4aefc-dirty") + (sheet (number "1") (name "/") (tstamps "/") + (title_block + (title) + (company) + (rev) + (date) + (source "issue14657.kicad_sch") + (comment (number "1") (value "")) + (comment (number "2") (value "")) + (comment (number "3") (value "")) + (comment (number "4") (value "")) + (comment (number "5") (value "")) + (comment (number "6") (value "")) + (comment (number "7") (value "")) + (comment (number "8") (value "")) + (comment (number "9") (value "")))) + (sheet (number "2") (name "/subsheet1/") (tstamps "/00000000-0000-0000-0000-00005adb3077/") + (title_block + (title) + (company) + (rev) + (date) + (source "issue14657_1.kicad_sch") + (comment (number "1") (value "")) + (comment (number "2") (value "")) + (comment (number "3") (value "")) + (comment (number "4") (value "")) + (comment (number "5") (value "")) + (comment (number "6") (value "")) + (comment (number "7") (value "")) + (comment (number "8") (value "")) + (comment (number "9") (value "")))) + (sheet (number "3") (name "/subsheet2/") (tstamps "/00000000-0000-0000-0000-000062a0fb2f/") + (title_block + (title) + (company) + (rev) + (date) + (source "issue14657_2.kicad_sch") + (comment (number "1") (value "")) + (comment (number "2") (value "")) + (comment (number "3") (value "")) + (comment (number "4") (value "")) + (comment (number "5") (value "")) + (comment (number "6") (value "")) + (comment (number "7") (value "")) + (comment (number "8") (value "")) + (comment (number "9") (value ""))))) + (components + (comp (ref "R1") + (value "R") + (libsource (lib "Device") (part "R") (description "Resistor")) + (property (name "Sheetname") (value "subsheet2")) + (property (name "Sheetfile") (value "issue14657_2.kicad_sch")) + (property (name "ki_description") (value "Resistor")) + (property (name "ki_keywords") (value "R res resistor")) + (sheetpath (names "/subsheet2/") (tstamps "/00000000-0000-0000-0000-000062a0fb2f/")) + (tstamps "84d2640b-f140-48be-abf4-329ee34189c1"))) + (libparts + (libpart (lib "Device") (part "R") + (description "Resistor") + (docs "~") + (footprints + (fp "R_*")) + (fields + (field (name "Reference") "R") + (field (name "Value") "R") + (field (name "Datasheet") "~")) + (pins + (pin (num "1") (name "") (type "passive")) + (pin (num "2") (name "") (type "passive"))))) + (libraries + (library (logical "Device") + (uri "/usr/local/share/kicad/symbols//Device.kicad_sym"))) + (nets + (net (code "1") (name "GPIO1_14__46") + (node (ref "R1") (pin "1") (pintype "passive")) + (node (ref "R1") (pin "2") (pintype "passive"))))) \ No newline at end of file diff --git a/qa/data/eeschema/netlists/issue14657/issue14657_1.kicad_sch b/qa/data/eeschema/netlists/issue14657/issue14657_1.kicad_sch new file mode 100644 index 0000000000..37bc255cdf --- /dev/null +++ b/qa/data/eeschema/netlists/issue14657/issue14657_1.kicad_sch @@ -0,0 +1,30 @@ +(kicad_sch (version 20230121) (generator eeschema) + + (uuid 2186fe71-84c5-450d-a77b-2883d8c95cb3) + + (paper "A3") + + (lib_symbols + ) + + + (wire (pts (xy 95.25 229.87) (xy 101.6 229.87)) + (stroke (width 0) (type default)) + (uuid 7e736d0c-601c-4f96-b4d2-138dfebf5932) + ) + + (global_label "REG_ENABLE" (shape output) (at 101.6 229.87 0) + (effects (font (size 1.524 1.524)) (justify left)) + (uuid 24390c04-0f13-48b6-ae5a-ba48240c3289) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 101.6 229.87 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) + (global_label "GPIO1_14__46" (shape bidirectional) (at 95.25 229.87 180) + (effects (font (size 1.524 1.524)) (justify right)) + (uuid ab3b04ea-7320-437f-91d8-0dbd1001f3f9) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 95.25 229.87 0) + (effects (font (size 1.27 1.27)) hide) + ) + ) +) diff --git a/qa/data/eeschema/netlists/issue14657/issue14657_2.kicad_sch b/qa/data/eeschema/netlists/issue14657/issue14657_2.kicad_sch new file mode 100644 index 0000000000..d3d3de5b3f --- /dev/null +++ b/qa/data/eeschema/netlists/issue14657/issue14657_2.kicad_sch @@ -0,0 +1,102 @@ +(kicad_sch (version 20230121) (generator eeschema) + + (uuid 005b6a52-de84-4cc5-a076-6040e10a1d14) + + (paper "A4") + + (lib_symbols + (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "R" (at 2.032 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R" (at 0 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at -1.778 0 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "R res resistor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Resistor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "R_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "R_0_1" + (rectangle (start -1.016 -2.54) (end 1.016 2.54) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + ) + (symbol "R_1_1" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + ) + + + (wire (pts (xy 190.5 104.14) (xy 201.93 104.14)) + (stroke (width 0) (type default)) + (uuid 8f7026d5-7f42-4813-bf06-537e8782ec6f) + ) + (wire (pts (xy 190.5 111.76) (xy 201.93 111.76)) + (stroke (width 0) (type default)) + (uuid bfc75a54-f67d-4ca2-a460-6fa1736f24f5) + ) + + (label "DEV_OE" (at 191.77 104.14 0) (fields_autoplaced) + (effects (font (size 1.524 1.524)) (justify left bottom)) + (uuid 99485f8c-0ba9-43d6-9d05-1dcca3429df1) + ) + (label "DEV_CLRn" (at 191.77 111.76 0) (fields_autoplaced) + (effects (font (size 1.524 1.524)) (justify left bottom)) + (uuid ae234ded-563a-49e0-93a9-5a08c4ad60a6) + ) + + (hierarchical_label "DEV_CLRn" (shape input) (at 190.5 111.76 180) (fields_autoplaced) + (effects (font (size 1.524 1.524)) (justify right)) + (uuid 59996eb8-69ab-4ef2-9ed0-6da263326213) + ) + (hierarchical_label "DEV_OE" (shape input) (at 190.5 104.14 180) (fields_autoplaced) + (effects (font (size 1.524 1.524)) (justify right)) + (uuid 837954e7-e02c-47dc-b569-f7787b8dce47) + ) + + (symbol (lib_id "Device:R") (at 201.93 107.95 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 84d2640b-f140-48be-abf4-329ee34189c1) + (property "Reference" "R1" (at 204.47 106.68 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "R" (at 204.47 109.22 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 200.152 107.95 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 201.93 107.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c836a852-d408-4f5b-9d40-88c91302bb01)) + (pin "2" (uuid 6e69c8b0-e3b4-4882-ae1e-33126ecb39b0)) + (instances + (project "issue14657" + (path "/c559a370-1b70-4fd6-97f7-7b50807e9d63/00000000-0000-0000-0000-000062a0fb2f" + (reference "R1") (unit 1) + ) + ) + ) + ) +) diff --git a/qa/unittests/eeschema/test_netlist_exporter_kicad.cpp b/qa/unittests/eeschema/test_netlist_exporter_kicad.cpp index 21ad4decaa..6279436e95 100644 --- a/qa/unittests/eeschema/test_netlist_exporter_kicad.cpp +++ b/qa/unittests/eeschema/test_netlist_exporter_kicad.cpp @@ -184,5 +184,10 @@ BOOST_AUTO_TEST_CASE( BusConnection ) TestNetlist( "bus_connection" ); } +BOOST_AUTO_TEST_CASE( Issue14657 ) +{ + TestNetlist( "issue14657" ); +} + BOOST_AUTO_TEST_SUITE_END() diff --git a/qa/unittests/eeschema/test_netlists.cpp b/qa/unittests/eeschema/test_netlists.cpp index 8ed62ac3a2..e8cc3c6e55 100644 --- a/qa/unittests/eeschema/test_netlists.cpp +++ b/qa/unittests/eeschema/test_netlists.cpp @@ -175,4 +175,9 @@ BOOST_AUTO_TEST_CASE( BusConnections ) doNetlistTest( "bus_connection" ); } +BOOST_AUTO_TEST_CASE( Issue14657 ) +{ + doNetlistTest( "issue14657" ); +} + BOOST_AUTO_TEST_SUITE_END()