From bcfcb5fc0f325c89918833fa357944766261cfd3 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sun, 1 Mar 2026 21:24:32 +0100 Subject: [PATCH] Updating test data --- .../laybasic/gsiDeclLayLayoutViewBase.cc | 6 ------ ...ices_nets.gds => bipolar_devices_nets.gds.1} | Bin testdata/algo/bipolar_devices_nets.gds.2 | Bin 0 -> 18726 bytes testdata/algo/device_extract_au10.gds.2 | Bin 0 -> 9102 bytes testdata/algo/device_extract_au1_flat.gds.3 | Bin 0 -> 79170 bytes testdata/algo/device_extract_capres_nets.gds.2 | Bin 0 -> 13904 bytes ... device_extract_capres_with_bulk_nets.gds.1} | Bin .../device_extract_capres_with_bulk_nets.gds.2 | Bin 0 -> 14664 bytes testdata/drc/drcSimpleTests_au70.gds.3 | Bin 0 -> 91316 bytes testdata/drc/drcSimpleTests_au70d.gds.3 | Bin 0 -> 65378 bytes 10 files changed, 6 deletions(-) rename testdata/algo/{bipolar_devices_nets.gds => bipolar_devices_nets.gds.1} (100%) create mode 100644 testdata/algo/bipolar_devices_nets.gds.2 create mode 100644 testdata/algo/device_extract_au10.gds.2 create mode 100644 testdata/algo/device_extract_au1_flat.gds.3 create mode 100644 testdata/algo/device_extract_capres_nets.gds.2 rename testdata/algo/{device_extract_capres_with_bulk_nets.gds => device_extract_capres_with_bulk_nets.gds.1} (100%) create mode 100644 testdata/algo/device_extract_capres_with_bulk_nets.gds.2 create mode 100644 testdata/drc/drcSimpleTests_au70.gds.3 create mode 100644 testdata/drc/drcSimpleTests_au70d.gds.3 diff --git a/src/laybasic/laybasic/gsiDeclLayLayoutViewBase.cc b/src/laybasic/laybasic/gsiDeclLayLayoutViewBase.cc index 8c4307134..9e9372fb8 100644 --- a/src/laybasic/laybasic/gsiDeclLayLayoutViewBase.cc +++ b/src/laybasic/laybasic/gsiDeclLayLayoutViewBase.cc @@ -281,8 +281,6 @@ static void delete_layers1 (lay::LayoutViewBase *view, const std::vectorkeep (); lay::LayoutHandle *handle = lay::LayoutHandle::find_layout (layout); if (! handle) { handle = new lay::LayoutHandle (layout, std::string ()); @@ -292,8 +290,6 @@ static unsigned int show_layout1 (lay::LayoutViewBase *view, db::Layout *layout, static unsigned int show_layout2 (lay::LayoutViewBase *view, db::Layout *layout, std::string &tech, bool add_cellview) { - // the layout gets held by the LayoutHandle object - layout->keep (); lay::LayoutHandle *handle = lay::LayoutHandle::find_layout (layout); if (! handle) { handle = new lay::LayoutHandle (layout, std::string ()); @@ -304,8 +300,6 @@ static unsigned int show_layout2 (lay::LayoutViewBase *view, db::Layout *layout, static unsigned int show_layout3 (lay::LayoutViewBase *view, db::Layout *layout, std::string &tech, bool add_cellview, bool initialize_layers) { - // the layout gets held by the LayoutHandle object - layout->keep (); lay::LayoutHandle *handle = lay::LayoutHandle::find_layout (layout); if (! handle) { handle = new lay::LayoutHandle (layout, std::string ()); diff --git a/testdata/algo/bipolar_devices_nets.gds b/testdata/algo/bipolar_devices_nets.gds.1 similarity index 100% rename from testdata/algo/bipolar_devices_nets.gds rename to testdata/algo/bipolar_devices_nets.gds.1 diff --git a/testdata/algo/bipolar_devices_nets.gds.2 b/testdata/algo/bipolar_devices_nets.gds.2 new file mode 100644 index 0000000000000000000000000000000000000000..fdd11571f042f01e224c3ce0ae6b27f886ea5d53 GIT binary patch literal 18726 zcmeHPJB*#h6`p1!K|w)5LE!?C zRpi2vC|poj$`&px#f247P*6~y2%$uA5-TAQ1%(SFjIoGgOw7ah&-v!ecjwH1_rLq! zAx@fD!XKQO??3Z6GiPSbxwwYw??33q`uc}1xB=JaR=bDXkL`I^m?!KYeii(Eiz<9+3ZZgH7ieEBl@N zJ%Ya{M+fBZdVd-}24j4(G56$wxkIyipP1gTW%IU&w*Byt^;6T&?B6$iX#doDH@Mol z!6DbRZLLOQYGQ77Zep|44J~>B}aWR)I#(25 zT^9Z4M8`-`6x)fE1CteH__FSQ=gS4bllG4jDevI_!Rjxzqnvv2J>~0nA&>kzyNB=V zri#AGD*fgc($`nSP+nD?ij)Jp_f^V$8wX$2zAAd2ABz&dqp#49F$NEPRaE`xEBVXx z)muFJTG3OPRo~Nd6+QLkJ@i!eGv8C$-*g0GOT#{ULwh=Bd-@k^Ki7Kiso`S|*rU+H zaU$g%J*7txAF1|PcTR8cNR2icv(xj3=EVs=`t;1>ZgAMS;hWW?I@f|nAAKSAMoL?u zbV7WJFJG&p;eE9&7k})_@7<8_{nxz}`qGD=D~ih()T+o1>(Q70Hl?kgRfj>Nv`NVH2Iey&^TX5EFdxZU;IF9&-_>~Z@Z=lYI0 z2ONIQxt+%&QZDFQ*2&j>yziLe@N2r)5Gk+bJGVu2Lk|%8A3PtC@)G}VaXmUW@_~5r z#}r2gom>67SY1HM1#SDeo@TI~zWN#34iw%Q=k}f;YM&-A5}j*alR1=eQY6op+wY&T z?OP?^8yOWJEC@dg9Yo3nE&orEuev#ot%ahv{=O`YfRvZUr-P6B@VD^)#bQLtTMJeC zWnQj?`4NzYx`P&X_eIWFL zN5uC+c_lx?zW!|I@7q(b&!Pa1ysYy_q`YLGhOgrfJH|YWye#849+C2He2fq30m0w# zVnoWj@iXlAtnL37vOZyFz|~(mH+?iB<*i_U_4nWdPtTh@INKw1*`u4X)a8Df?3KGV zsLcVfSM3)2A;K0zxwWO_?7B<5*=I8Tz^g9^Uv4Nw$^|XotYzWJ{`%Qjpy-u0c>NwJ z_gKk)i;?L2C$@TT_`mh-U1qY=Q!nQeH=fdY24a5Y zG}1=Qb11jtY+enV!~N>Z2Nbbi-#Me}9!R-hCI9Y|S`P^R{ih>>AIdG?oQC1U)vn;n zdxq>=Q_k&?eTzuBU?m@RjdlXbBT`=Kf8sOOJ}-89(K+C? zHO{TW`63|Yf>wXR|G~S;2ZDF+rHJ5%a?Af?+_R+LCzTHbf5+K~;D>U{PuA(WNnK|^ ztgoG0BVwI}@=E@iMd4342ZZ1L{=tZp3s&;)xu$#|_!C&~0l^RDmHdsTq`vf<_P=RS z?SB*6#^%jTOa}$Am9 zvQH2x7qt32_&ATY#&n-r|1wd}srasxTRzY3lbE}k#I8SI0BYaYe?X+%qva?21p58O zsP_L~yX0InS`R)$7`9Sc;#v_6s$}9PI9acUN{JT#^1V5Bl^6$B(d?5JuZione zD6iz-x1f9=`1hZV2!1H9D7x`>L0FwE8RfV)rL>|0UMr%lOG3>c{?zb^s|CtkmBp`v%T4K%8@KIU132 z-Y1&szmoR%O%}zcGs2$~za?|;{g+3|J$n7i_<8$2_taD7ZWz6-J@xZWkbQHk*4hJM2ryF4fDKcaY5{Pp$s zF@B1aUpP{wUwCUYnhX5&4doFL<<;^kzRvqa*(clczctu_AmxIU{oi(2#~+CC$DM+R z@ek#d{5>D29$?vipg)v%_AWm=I%HAgWo1brA z=>}-puX=r(MgPEg^gkly{pqe?_^MaRz5apo=s)<1l#^f6QY7y|P8Un8InnZ4C%H>M zFI;1?fvg&2C^eU{s-d%LRf@e^Rr9!xsN(;vO0CUXmmPm&75`nU3iIEgA6ZOTRYOg+ zY9i&5?NrfzwPs{PVO0%@0$4JU@)Cd8?kd=ou&ZHLg56n1Hk==y&M)I0R9*V;b4lsQ&FvfyIcv0EEkyypJ{oI0gPYe< zb<9^Lwk%s?>ykB$9v}T%N{^}Ivow~ez&+zs2fbTtg z{~=OddL1!*dFwl=^VdTjN5i(im-s{&zl5KWua)rqTjk-N-i#A|#+$F5qu!{HF7@_enuXS;p_Q@u>r;kh?JLN28J(fzasW` zR1vRfHR59lKO;Vv@H6sw3?F-5&oK|f&pN*){EV1K!iW7cHi7eFjhIEk&&b0{_#w~A z=Qm(2)yTs#{J8GGt(m)R_=vITy6GYJI^k#JPAB|~-06fL?H_OXwc^_)zVm;2h;JLd z#t#@TVElkcIpYXR?f<>x+qTsIivHXC<@dMpDxtqkkmx~UZ3A&0ycT!X(ulCsYOZZ) zRFObZoA5Ita0x#n0+;YJPE!d#<1}UXa+*2S z^DhAmU%ePa^tGtO$8LrQYWxKO ze^EerYav-D!slwzEMoBnvQGRvrCm=+y*uCVr(M+Zzw|Qe>3gw1(iV9YV3uUf?8$_m zktLq+k!=V4z?xa&34fzR7mx`89KM8X?TC~M+Sd)km;FReG&msx!N+gViIkW4Cdwe= z*M41-SFAzZ-H8?1qaA!ibC!CYQ@OmnEhg%S-d0@M$M}4W}K@ zE<$uph(EvLD0GvY&*XVLu5!<5yA%Kf`{KC~b!QB>W8fN%$G| zBQeDIf4hnPuXc24Rl=8jugCL8!p}H=B>ar?$7s_2-u-_EzeoR{@O$yU66GHpbpHm* Cq=an% literal 0 HcmV?d00001 diff --git a/testdata/algo/device_extract_au10.gds.2 b/testdata/algo/device_extract_au10.gds.2 new file mode 100644 index 0000000000000000000000000000000000000000..34f447f3f0780805e2ce9572261159c1801239f0 GIT binary patch literal 9102 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 M{|?#5nv+`p53gICc>n+a literal 0 HcmV?d00001 diff --git a/testdata/algo/device_extract_capres_nets.gds.2 b/testdata/algo/device_extract_capres_nets.gds.2 new file mode 100644 index 0000000000000000000000000000000000000000..6fc46523c5b7132a4a2459430a452f3881646820 GIT binary patch literal 13904 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 Qe_rj8^2nF!da3084PeX9A^-pY literal 0 HcmV?d00001 diff --git a/testdata/drc/drcSimpleTests_au70.gds.3 b/testdata/drc/drcSimpleTests_au70.gds.3 new file mode 100644 index 0000000000000000000000000000000000000000..9c4d433dbc0eaaec8314746b4416eca8924d67a9 GIT binary patch literal 91316 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