mirror of https://github.com/KLayout/klayout.git
DSS now keeps layouts (avoids excessive cell mapping), frequent GC in DRC tests for heavy GC load testing
This commit is contained in:
parent
e04875b4e0
commit
53d6e8d3cb
|
|
@ -707,7 +707,6 @@ bool run_deep_xor (const XORData &xor_data)
|
|||
{
|
||||
db::DeepShapeStore dss;
|
||||
dss.set_threads (xor_data.threads);
|
||||
dss.set_keep_layouts (true); // avoids excessive cell mapping
|
||||
|
||||
double dbu = std::min (xor_data.layout_a->dbu (), xor_data.layout_b->dbu ());
|
||||
|
||||
|
|
|
|||
|
|
@ -426,13 +426,13 @@ static unsigned int init_layer (db::Layout &layout, const db::RecursiveShapeIter
|
|||
}
|
||||
|
||||
DeepShapeStore::DeepShapeStore ()
|
||||
: m_keep_layouts (false)
|
||||
: m_keep_layouts (true)
|
||||
{
|
||||
++s_instance_count;
|
||||
}
|
||||
|
||||
DeepShapeStore::DeepShapeStore (const std::string &topcell_name, double dbu)
|
||||
: m_keep_layouts (false)
|
||||
: m_keep_layouts (true)
|
||||
{
|
||||
++s_instance_count;
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@ module DRC
|
|||
|
||||
cv = RBA::CellView::active
|
||||
|
||||
@time = Time::now
|
||||
@force_gc = ($drc_force_gc == true) # for testing, $drc_force_gc can be set to true
|
||||
@generator = ""
|
||||
@rdb_index = nil
|
||||
@l2ndb_index = nil
|
||||
|
|
@ -73,6 +75,11 @@ module DRC
|
|||
|
||||
end
|
||||
|
||||
# for testing
|
||||
def force_gc(f)
|
||||
@force_gc = f
|
||||
end
|
||||
|
||||
def both
|
||||
DRCBothEdges::new
|
||||
end
|
||||
|
|
@ -2125,7 +2132,10 @@ CODE
|
|||
t = RBA::Timer::new
|
||||
t.start
|
||||
self._process_events
|
||||
GC.start # force a garbage collection before the operation to free unused memory
|
||||
if @force_gc || Time::now - @time > 0.5
|
||||
GC.start # force a garbage collection before the operation to free unused memory
|
||||
@time = Time::now
|
||||
end
|
||||
res = yield
|
||||
t.stop
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ TEST(1)
|
|||
|
||||
lym::Macro drc;
|
||||
drc.set_text (tl::sprintf (
|
||||
"force_gc true\n"
|
||||
"source('%s', \"TOP\")\n"
|
||||
"target('%s', \"TOP\")\n"
|
||||
"l1 = input(1, 0)\n"
|
||||
|
|
@ -70,6 +71,7 @@ TEST(2)
|
|||
{
|
||||
lym::Macro drc;
|
||||
drc.set_text (
|
||||
"force_gc true\n"
|
||||
"dbu 0.001\n"
|
||||
"def compare(a, b, ex)\n"
|
||||
" a = a.to_s\n"
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@
|
|||
|
||||
static void run_test (tl::TestBase *_this, const std::string &number, bool deep)
|
||||
{
|
||||
std::string force_gc = "true";
|
||||
|
||||
std::string rs = tl::testdata ();
|
||||
rs += "/drc/drcGenericTests_" + number + ".drc";
|
||||
|
||||
|
|
@ -45,10 +47,11 @@ static void run_test (tl::TestBase *_this, const std::string &number, bool deep)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = %s\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
"$drc_test_deep = %s\n"
|
||||
, input, output, deep ? "true" : "false")
|
||||
, force_gc, input, output, deep ? "true" : "false")
|
||||
);
|
||||
config.set_interpreter (lym::Macro::Ruby);
|
||||
EXPECT_EQ (config.run (), 0);
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ TEST(1)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = nil\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, output)
|
||||
|
|
@ -82,6 +83,7 @@ TEST(2)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -122,6 +124,7 @@ TEST(3_Flat)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -162,6 +165,7 @@ TEST(4_Hierarchical)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -202,6 +206,7 @@ TEST(5_FlatAntenna)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -242,6 +247,7 @@ TEST(5_FlatAntennaIncremental)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -282,6 +288,7 @@ TEST(6_HierarchicalAntenna)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -322,6 +329,7 @@ TEST(7_AntennaWithDiodes)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -362,6 +370,7 @@ TEST(8_TextsAndPolygons)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -427,6 +436,7 @@ TEST(9_NetlistExtraction)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
"$drc_test_target_simplified = '%s'\n"
|
||||
|
|
@ -471,6 +481,7 @@ TEST(10_NetlistExtractionFlat)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
"$drc_test_target_simplified = '%s'\n"
|
||||
|
|
@ -515,6 +526,7 @@ TEST(11_CustomDevices)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
"$drc_test_target_simplified = '%s'\n"
|
||||
|
|
@ -555,6 +567,7 @@ TEST(12_NetlistJoinLabels)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
"$drc_test_target_simplified = nil\n"
|
||||
|
|
@ -591,6 +604,7 @@ TEST(13a_KissingCorners)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -634,6 +648,7 @@ TEST(13b_KissingCornersDeep)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -681,6 +696,7 @@ TEST(14_SwitchingTargets)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
"$drc_test_target2 = '%s'\n"
|
||||
|
|
@ -732,6 +748,7 @@ TEST(15_issue548)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -773,6 +790,7 @@ TEST(16_issue570)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -814,6 +832,7 @@ TEST(17_issue570)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -854,6 +873,7 @@ TEST(18_forget)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -894,6 +914,7 @@ TEST(19_shielding)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -934,6 +955,7 @@ TEST(20_interact_with_count)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -974,6 +996,7 @@ TEST(21_breaking)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -1014,6 +1037,7 @@ TEST(22_opposite_filter)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -1054,6 +1078,7 @@ TEST(23_rect_filter)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -1094,6 +1119,7 @@ TEST(24_enclosing)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = true\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
, input, output)
|
||||
|
|
@ -1119,6 +1145,8 @@ TEST(24_enclosing)
|
|||
|
||||
static void run_test (tl::TestBase *_this, const std::string &number, bool deep, bool oasis = false)
|
||||
{
|
||||
std::string force_gc = "true";
|
||||
|
||||
std::string rs = tl::testdata ();
|
||||
rs += "/drc/drcSimpleTests_" + number + ".drc";
|
||||
|
||||
|
|
@ -1134,10 +1162,11 @@ static void run_test (tl::TestBase *_this, const std::string &number, bool deep,
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = '%s'\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
"$drc_test_deep = %s\n"
|
||||
, input, output, deep ? "true" : "false")
|
||||
, force_gc, input, output, deep ? "true" : "false")
|
||||
);
|
||||
config.set_interpreter (lym::Macro::Ruby);
|
||||
EXPECT_EQ (config.run (), 0);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
void runtest (tl::TestBase *_this, int mode)
|
||||
{
|
||||
std::string force_gc = "true";
|
||||
|
||||
std::string rs = tl::testdata ();
|
||||
rs += "/drc/drcSuiteTests.drc";
|
||||
|
||||
|
|
@ -44,10 +46,11 @@ void runtest (tl::TestBase *_this, int mode)
|
|||
// Set some variables
|
||||
lym::Macro config;
|
||||
config.set_text (tl::sprintf (
|
||||
"$drc_force_gc = %s\n"
|
||||
"$drc_test_source = '%s'\n"
|
||||
"$drc_test_target = '%s'\n"
|
||||
"$drc_test_mode = %d\n"
|
||||
, input, output, mode)
|
||||
, force_gc, input, output, mode)
|
||||
);
|
||||
config.set_interpreter (lym::Macro::Ruby);
|
||||
EXPECT_EQ (config.run (), 0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue