diff --git a/dcalc/test/cpp/TestDcalc.cc b/dcalc/test/cpp/TestDcalc.cc
index 015f03ce..d7082f0d 100644
--- a/dcalc/test/cpp/TestDcalc.cc
+++ b/dcalc/test/cpp/TestDcalc.cc
@@ -453,7 +453,7 @@ protected:
TEST_F(StaDcalcTest, UnitDelayCalcName) {
ArcDelayCalc *calc = makeDelayCalc("unit", sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "unit");
+ EXPECT_EQ(calc->name(), "unit");
delete calc;
}
@@ -463,7 +463,7 @@ TEST_F(StaDcalcTest, UnitDelayCalcCopy) {
ASSERT_NE(calc, nullptr);
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "unit");
+ EXPECT_EQ(copy->name(), "unit");
delete copy;
delete calc;
}
@@ -594,7 +594,7 @@ TEST_F(StaDcalcTest, UnitDelayCalcReportCheckDelay) {
ArcDelayCalc *calc = makeDelayCalc("unit", sta_);
ASSERT_NE(calc, nullptr);
std::string report = calc->reportCheckDelay(nullptr, nullptr, 0.0,
- nullptr, 0.0, 0.0,
+ "", 0.0, 0.0,
nullptr, nullptr, 3);
EXPECT_FALSE(report.empty());
EXPECT_NE(report.find("Check"), std::string::npos);
@@ -613,7 +613,7 @@ TEST_F(StaDcalcTest, UnitDelayCalcFinishDrvrPin) {
TEST_F(StaDcalcTest, LumpedCapDelayCalcName) {
ArcDelayCalc *calc = makeDelayCalc("lumped_cap", sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "lumped_cap");
+ EXPECT_EQ(calc->name(), "lumped_cap");
delete calc;
}
@@ -623,7 +623,7 @@ TEST_F(StaDcalcTest, LumpedCapDelayCalcCopy) {
ASSERT_NE(calc, nullptr);
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "lumped_cap");
+ EXPECT_EQ(copy->name(), "lumped_cap");
delete copy;
delete calc;
}
@@ -640,7 +640,7 @@ TEST_F(StaDcalcTest, LumpedCapReduceSupported) {
TEST_F(StaDcalcTest, DmpCeffElmoreName) {
ArcDelayCalc *calc = makeDelayCalc("dmp_ceff_elmore", sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "dmp_ceff_elmore");
+ EXPECT_EQ(calc->name(), "dmp_ceff_elmore");
delete calc;
}
@@ -650,7 +650,7 @@ TEST_F(StaDcalcTest, DmpCeffElmoreCopy) {
ASSERT_NE(calc, nullptr);
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "dmp_ceff_elmore");
+ EXPECT_EQ(copy->name(), "dmp_ceff_elmore");
delete copy;
delete calc;
}
@@ -667,7 +667,7 @@ TEST_F(StaDcalcTest, DmpCeffElmoreReduceSupported) {
TEST_F(StaDcalcTest, DmpCeffTwoPoleName) {
ArcDelayCalc *calc = makeDelayCalc("dmp_ceff_two_pole", sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "dmp_ceff_two_pole");
+ EXPECT_EQ(calc->name(), "dmp_ceff_two_pole");
delete calc;
}
@@ -677,7 +677,7 @@ TEST_F(StaDcalcTest, DmpCeffTwoPoleCopy) {
ASSERT_NE(calc, nullptr);
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "dmp_ceff_two_pole");
+ EXPECT_EQ(copy->name(), "dmp_ceff_two_pole");
delete copy;
delete calc;
}
@@ -694,7 +694,7 @@ TEST_F(StaDcalcTest, DmpCeffTwoPoleReduceSupported) {
TEST_F(StaDcalcTest, ArnoldiName) {
ArcDelayCalc *calc = makeDelayCalc("arnoldi", sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "arnoldi");
+ EXPECT_EQ(calc->name(), "arnoldi");
delete calc;
}
@@ -704,7 +704,7 @@ TEST_F(StaDcalcTest, ArnoldiCopy) {
ASSERT_NE(calc, nullptr);
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "arnoldi");
+ EXPECT_EQ(copy->name(), "arnoldi");
delete copy;
delete calc;
}
@@ -713,7 +713,7 @@ TEST_F(StaDcalcTest, ArnoldiCopy) {
TEST_F(StaDcalcTest, CcsCeffName) {
ArcDelayCalc *calc = makeDelayCalc("ccs_ceff", sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "ccs_ceff");
+ EXPECT_EQ(calc->name(), "ccs_ceff");
delete calc;
}
@@ -723,7 +723,7 @@ TEST_F(StaDcalcTest, CcsCeffCopy) {
ASSERT_NE(calc, nullptr);
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "ccs_ceff");
+ EXPECT_EQ(copy->name(), "ccs_ceff");
delete copy;
delete calc;
}
@@ -740,7 +740,7 @@ TEST_F(StaDcalcTest, CcsCeffReduceSupported) {
TEST_F(StaDcalcTest, PrimaName) {
ArcDelayCalc *calc = makeDelayCalc("prima", sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "prima");
+ EXPECT_EQ(calc->name(), "prima");
delete calc;
}
@@ -750,7 +750,7 @@ TEST_F(StaDcalcTest, PrimaCopy) {
ASSERT_NE(calc, nullptr);
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "prima");
+ EXPECT_EQ(copy->name(), "prima");
delete copy;
delete calc;
}
@@ -1106,7 +1106,7 @@ TEST_F(StaDcalcTest, PrimaInputPortDelay) {
TEST_F(StaDcalcTest, UnitDelayCalcDirectConstruct) {
UnitDelayCalc *unit = new UnitDelayCalc(sta_);
ASSERT_NE(unit, nullptr);
- EXPECT_STREQ(unit->name(), "unit");
+ EXPECT_EQ(unit->name(), "unit");
delete unit;
}
@@ -1125,7 +1125,7 @@ TEST_F(StaDcalcTest, DmpCeffDelayCalcDeleteViaBasePtr) {
TEST_F(StaDcalcTest, DmpCeffElmoreDirectFactory) {
ArcDelayCalc *calc = makeDmpCeffElmoreDelayCalc(sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "dmp_ceff_elmore");
+ EXPECT_EQ(calc->name(), "dmp_ceff_elmore");
delete calc;
}
@@ -1133,7 +1133,7 @@ TEST_F(StaDcalcTest, DmpCeffElmoreDirectFactory) {
TEST_F(StaDcalcTest, DmpCeffTwoPoleDirectFactory) {
ArcDelayCalc *calc = makeDmpCeffTwoPoleDelayCalc(sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "dmp_ceff_two_pole");
+ EXPECT_EQ(calc->name(), "dmp_ceff_two_pole");
delete calc;
}
@@ -1313,7 +1313,7 @@ TEST_F(StaDcalcTest, PrimaCopyDeepState) {
prima->setPrimaReduceOrder(6);
ArcDelayCalc *copy = prima->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "prima");
+ EXPECT_EQ(copy->name(), "prima");
delete copy;
delete calc;
}
@@ -1715,7 +1715,7 @@ protected:
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(250.0f);
- sta_->makeClock("clk", clk_pins, false, 500.0f, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk", clk_pins, false, 500.0f, waveform, "", sta_->cmdMode());
design_loaded_ = true;
}
@@ -2354,8 +2354,8 @@ TEST_F(StaDcalcTest, AllCalcsName) {
for (const std::string &name : names) {
ArcDelayCalc *calc = makeDelayCalc(name, sta_);
ASSERT_NE(calc, nullptr) << "Failed for: " << name;
- EXPECT_NE(calc->name(), nullptr) << "Null name for: " << name;
- EXPECT_GT(strlen(calc->name()), 0u) << "Empty name for: " << name;
+ EXPECT_FALSE(calc->name().empty()) << "Empty name for: " << name;
+ EXPECT_GT(calc->name().size(), 0u) << "Empty name for: " << name;
delete calc;
}
}
@@ -2383,7 +2383,7 @@ TEST_F(StaDcalcTest, AllCalcsCopy) {
ASSERT_NE(calc, nullptr) << "Failed for: " << name;
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr) << "Copy failed for: " << name;
- EXPECT_STREQ(copy->name(), calc->name());
+ EXPECT_EQ(copy->name(), calc->name());
delete copy;
delete calc;
}
@@ -2747,7 +2747,7 @@ TEST_F(StaDcalcTest, LumpedCapCopyState2) {
ArcDelayCalc *calc = makeDelayCalc("lumped_cap", sta_);
ASSERT_NE(calc, nullptr);
calc->copyState(sta_);
- EXPECT_STREQ(calc->name(), "lumped_cap");
+ EXPECT_EQ(calc->name(), "lumped_cap");
delete calc;
}
@@ -2765,7 +2765,7 @@ TEST_F(StaDcalcTest, DmpCeffElmoreCopyState) {
ArcDelayCalc *calc = makeDelayCalc("dmp_ceff_elmore", sta_);
ASSERT_NE(calc, nullptr);
calc->copyState(sta_);
- EXPECT_STREQ(calc->name(), "dmp_ceff_elmore");
+ EXPECT_EQ(calc->name(), "dmp_ceff_elmore");
delete calc;
}
@@ -2783,7 +2783,7 @@ TEST_F(StaDcalcTest, DmpCeffTwoPoleCopyState) {
ArcDelayCalc *calc = makeDelayCalc("dmp_ceff_two_pole", sta_);
ASSERT_NE(calc, nullptr);
calc->copyState(sta_);
- EXPECT_STREQ(calc->name(), "dmp_ceff_two_pole");
+ EXPECT_EQ(calc->name(), "dmp_ceff_two_pole");
delete calc;
}
@@ -2801,7 +2801,7 @@ TEST_F(StaDcalcTest, CcsCeffCopyState2) {
ArcDelayCalc *calc = makeDelayCalc("ccs_ceff", sta_);
ASSERT_NE(calc, nullptr);
calc->copyState(sta_);
- EXPECT_STREQ(calc->name(), "ccs_ceff");
+ EXPECT_EQ(calc->name(), "ccs_ceff");
delete calc;
}
@@ -2812,7 +2812,7 @@ TEST_F(StaDcalcTest, PrimaCopyState2) {
ArcDelayCalc *calc = makeDelayCalc("prima", sta_);
ASSERT_NE(calc, nullptr);
calc->copyState(sta_);
- EXPECT_STREQ(calc->name(), "prima");
+ EXPECT_EQ(calc->name(), "prima");
delete calc;
}
@@ -3457,7 +3457,7 @@ TEST_F(StaDcalcTest, AllCalcsInputPortDelaySlew) {
TEST_F(StaDcalcTest, DmpCeffElmoreMakeDelete) {
ArcDelayCalc *calc = makeDmpCeffElmoreDelayCalc(sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "dmp_ceff_elmore");
+ EXPECT_EQ(calc->name(), "dmp_ceff_elmore");
EXPECT_TRUE(calc->reduceSupported());
delete calc;
}
@@ -3467,7 +3467,7 @@ TEST_F(StaDcalcTest, DmpCeffElmoreMakeDelete) {
TEST_F(StaDcalcTest, DmpCeffTwoPoleMakeDelete) {
ArcDelayCalc *calc = makeDmpCeffTwoPoleDelayCalc(sta_);
ASSERT_NE(calc, nullptr);
- EXPECT_STREQ(calc->name(), "dmp_ceff_two_pole");
+ EXPECT_EQ(calc->name(), "dmp_ceff_two_pole");
EXPECT_TRUE(calc->reduceSupported());
delete calc;
}
@@ -3479,7 +3479,7 @@ TEST_F(StaDcalcTest, DmpCeffElmoreCopy2) {
ASSERT_NE(calc, nullptr);
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "dmp_ceff_elmore");
+ EXPECT_EQ(copy->name(), "dmp_ceff_elmore");
delete copy;
delete calc;
}
@@ -3491,7 +3491,7 @@ TEST_F(StaDcalcTest, DmpCeffTwoPoleCopy2) {
ASSERT_NE(calc, nullptr);
ArcDelayCalc *copy = calc->copy();
ASSERT_NE(copy, nullptr);
- EXPECT_STREQ(copy->name(), "dmp_ceff_two_pole");
+ EXPECT_EQ(copy->name(), "dmp_ceff_two_pole");
delete copy;
delete calc;
}
@@ -3501,7 +3501,7 @@ TEST_F(StaDcalcTest, DmpCeffElmoreCopyState2) {
ArcDelayCalc *calc = makeDmpCeffElmoreDelayCalc(sta_);
ASSERT_NE(calc, nullptr);
calc->copyState(sta_);
- EXPECT_STREQ(calc->name(), "dmp_ceff_elmore");
+ EXPECT_EQ(calc->name(), "dmp_ceff_elmore");
delete calc;
}
@@ -3510,7 +3510,7 @@ TEST_F(StaDcalcTest, DmpCeffTwoPoleCopyState2) {
ArcDelayCalc *calc = makeDmpCeffTwoPoleDelayCalc(sta_);
ASSERT_NE(calc, nullptr);
calc->copyState(sta_);
- EXPECT_STREQ(calc->name(), "dmp_ceff_two_pole");
+ EXPECT_EQ(calc->name(), "dmp_ceff_two_pole");
delete calc;
}
@@ -4204,7 +4204,7 @@ protected:
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(5.0f);
- sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, "", sta_->cmdMode());
// Set input/output delay constraints to create constrained timing paths
Clock *clk = sta_->cmdSdc()->findClock("clk");
@@ -4445,7 +4445,7 @@ protected:
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(5.0f);
- sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, "", sta_->cmdMode());
Clock *clk = sta_->cmdSdc()->findClock("clk");
ASSERT_NE(clk, nullptr);
@@ -4624,7 +4624,7 @@ TEST_F(MultiDriverDcalcTest, IncrementalClockPeriodChange) {
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(1.0f);
- sta_->makeClock("clk", clk_pins, false, 2.0f, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk", clk_pins, false, 2.0f, waveform, "", sta_->cmdMode());
sta_->updateTiming(true);
Slack slack2 = sta_->worstSlack(MinMax::max());
@@ -4760,7 +4760,7 @@ protected:
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(5.0f);
- sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, "", sta_->cmdMode());
// Set input/output delay constraints to create constrained timing paths
Clock *clk = sta_->cmdSdc()->findClock("clk");
@@ -4886,7 +4886,7 @@ TEST_F(DesignDcalcTest, IncrementalWithSpef) {
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(50.0f);
- sta_->makeClock("clk", clk_pins, false, 100.0f, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk", clk_pins, false, 100.0f, waveform, "", sta_->cmdMode());
sta_->updateTiming(true);
Slack slack2 = sta_->worstSlack(MinMax::max());
diff --git a/liberty/test/cpp/TestLibertyStaBasics.cc b/liberty/test/cpp/TestLibertyStaBasics.cc
index d34fded0..e0886203 100644
--- a/liberty/test/cpp/TestLibertyStaBasics.cc
+++ b/liberty/test/cpp/TestLibertyStaBasics.cc
@@ -594,15 +594,15 @@ TEST_F(StaLibertyTest, PortBoolFlags) {
EXPECT_FALSE(a->isPad());
}
-TEST_F(StaLibertyTest, PortRelatedPins) {
+TEST_F(StaLibertyTest, PortRelatedPorts) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
LibertyPort *a = buf->findLibertyPort("A");
ASSERT_NE(a, nullptr);
- const char *ground_pin = a->relatedGroundPin();
- const char *power_pin = a->relatedPowerPin();
- // ground_pin may be null for simple arcs
- // power_pin may be null for simple arcs
+ LibertyPort *ground_port = a->relatedGroundPort();
+ LibertyPort *power_port = a->relatedPowerPort();
+ // ground_port may be null for simple cells
+ // power_port may be null for simple cells
}
TEST_F(StaLibertyTest, PortLibertyLibrary) {
@@ -900,8 +900,9 @@ TEST_F(StaLibertyTest, PortVoltageName) {
ASSERT_NE(buf, nullptr);
LibertyPort *a = buf->findLibertyPort("A");
ASSERT_NE(a, nullptr);
- const char *vname = a->voltageName();
- // vname may be null for simple arcs
+ const std::string &vname = a->voltageName();
+ // vname may be empty for simple cells
+ (void)vname;
}
TEST_F(StaLibertyTest, PortEquivAndLess) {
@@ -1136,7 +1137,7 @@ TEST(TableReportTest, Table0ReportValue) {
Table t(42.0f);
Unit unit(1e-9f, "s", 3);
std::string rv = t.reportValue("delay", nullptr, nullptr,
- 0.0f, nullptr, 0.0f, 0.0f,
+ 0.0f, "", 0.0f, 0.0f,
&unit, 3);
EXPECT_FALSE(rv.empty());
}
@@ -1307,7 +1308,7 @@ TEST(DriverWaveformTest, CreateAndName) {
auto ax2 = makeTestAxis(TableAxisVariable::normalized_voltage, {0.0f, 1.0f});
TablePtr tbl = std::make_shared
(std::move(vals), ax1, ax2);
DriverWaveform *dw = new DriverWaveform("test_driver_waveform", tbl);
- EXPECT_STREQ(dw->name(), "test_driver_waveform");
+ EXPECT_EQ(dw->name(), "test_driver_waveform");
Table wf = dw->waveform(0.15f);
// Waveform accessor exercised; axis may be null for simple waveforms
EXPECT_EQ(wf.order(), 1);
@@ -1470,9 +1471,11 @@ TEST_F(StaLibertyTest, ModeValueDefSetSdfCond) {
ASSERT_NE(buf, nullptr);
ModeDef *mode_def = buf->makeModeDef("test_mode");
ASSERT_NE(mode_def, nullptr);
- ModeValueDef *val_def = mode_def->defineValue("val1", nullptr, "orig_sdf_cond");
+ ModeValueDef *val_def = mode_def->defineValue("val1");
ASSERT_NE(val_def, nullptr);
EXPECT_EQ(val_def->value(), "val1");
+ // Set sdf_cond after creation
+ val_def->setSdfCond("orig_sdf_cond");
EXPECT_EQ(val_def->sdfCond(), "orig_sdf_cond");
val_def->setSdfCond("new_sdf_cond");
EXPECT_EQ(val_def->sdfCond(), "new_sdf_cond");
@@ -1483,7 +1486,7 @@ TEST_F(StaLibertyTest, ModeValueDefSetCond) {
ASSERT_NE(buf, nullptr);
ModeDef *mode_def = buf->makeModeDef("test_mode2");
ASSERT_NE(mode_def, nullptr);
- ModeValueDef *val_def = mode_def->defineValue("val2", nullptr, nullptr);
+ ModeValueDef *val_def = mode_def->defineValue("val2");
ASSERT_NE(val_def, nullptr);
EXPECT_EQ(val_def->cond(), nullptr);
val_def->setCond(nullptr);
@@ -1621,7 +1624,7 @@ TEST_F(StaLibertyTest, CheckTableModelCheckDelay) {
ArcDelay d = ctm->checkDelay(nullptr, 0.1f, 0.1f, 0.0f,
MinMax::max(), PocvMode::scalar);
EXPECT_GE(delayAsFloat(d), 0.0f);
- std::string rpt = ctm->reportCheckDelay(nullptr, 0.1f, nullptr,
+ std::string rpt = ctm->reportCheckDelay(nullptr, 0.1f, "",
0.1f, 0.0f,
MinMax::max(), PocvMode::scalar, 3);
EXPECT_FALSE(rpt.empty());
@@ -1644,7 +1647,7 @@ TEST_F(StaLibertyTest, LibraryMakeAndFindDriverWaveform) {
ASSERT_NE(dw, nullptr);
DriverWaveform *found = lib_->findDriverWaveform("my_driver_wf");
EXPECT_EQ(found, dw);
- EXPECT_STREQ(found->name(), "my_driver_wf");
+ EXPECT_EQ(found->name(), "my_driver_wf");
EXPECT_EQ(lib_->findDriverWaveform("no_such_wf"), nullptr);
}
@@ -1771,7 +1774,7 @@ TEST_F(StaLibertyTest, CheckTableModelDirect) {
MinMax::max(), PocvMode::scalar);
EXPECT_GE(delayAsFloat(d), 0.0f);
- std::string rpt = ctm->reportCheckDelay(nullptr, 0.1f, nullptr,
+ std::string rpt = ctm->reportCheckDelay(nullptr, 0.1f, "",
0.1f, 0.0f,
MinMax::max(), PocvMode::scalar, 3);
EXPECT_FALSE(rpt.empty());
@@ -1866,19 +1869,21 @@ TEST_F(StaLibertyTest, CellInverterCheck) {
TEST_F(StaLibertyTest, CellFootprint) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
- const char *fp = buf->footprint();
- // fp may be null for simple arcs
+ const std::string &fp = buf->footprint();
+ // fp may be empty for simple cells
+ (void)fp;
buf->setFootprint("test_fp");
- EXPECT_STREQ(buf->footprint(), "test_fp");
+ EXPECT_EQ(buf->footprint(), "test_fp");
}
TEST_F(StaLibertyTest, CellUserFunctionClass) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
- const char *ufc = buf->userFunctionClass();
- // ufc may be null for simple arcs
+ const std::string &ufc = buf->userFunctionClass();
+ // ufc may be empty for simple cells
+ (void)ufc;
buf->setUserFunctionClass("my_class");
- EXPECT_STREQ(buf->userFunctionClass(), "my_class");
+ EXPECT_EQ(buf->userFunctionClass(), "my_class");
}
TEST_F(StaLibertyTest, CellSetArea) {
@@ -1981,7 +1986,7 @@ TEST(BusDclTest, Create) {
TEST(OperatingConditionsTest, Create) {
OperatingConditions oc("typical");
- EXPECT_STREQ(oc.name(), "typical");
+ EXPECT_EQ(oc.name(), "typical");
oc.setProcess(1.0f);
oc.setTemperature(25.0f);
oc.setVoltage(1.1f);
@@ -2132,22 +2137,28 @@ TEST(TimingArcSetWireTest, WireTimingArcSet) {
// LibertyPort additional setters
////////////////////////////////////////////////////////////////
-TEST_F(StaLibertyTest, PortSetRelatedGroundPin) {
+TEST_F(StaLibertyTest, PortSetRelatedGroundPort) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
- LibertyPort *port = buf->findLibertyPort("A");
- ASSERT_NE(port, nullptr);
- port->setRelatedGroundPin("VSS");
- EXPECT_STREQ(port->relatedGroundPin(), "VSS");
+ LibertyPort *port_a = buf->findLibertyPort("A");
+ LibertyPort *port_z = buf->findLibertyPort("Z");
+ ASSERT_NE(port_a, nullptr);
+ ASSERT_NE(port_z, nullptr);
+ // Set and verify related ground port pointer
+ port_a->setRelatedGroundPort(port_z);
+ EXPECT_EQ(port_a->relatedGroundPort(), port_z);
}
-TEST_F(StaLibertyTest, PortSetRelatedPowerPin) {
+TEST_F(StaLibertyTest, PortSetRelatedPowerPort) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
- LibertyPort *port = buf->findLibertyPort("A");
- ASSERT_NE(port, nullptr);
- port->setRelatedPowerPin("VDD");
- EXPECT_STREQ(port->relatedPowerPin(), "VDD");
+ LibertyPort *port_a = buf->findLibertyPort("A");
+ LibertyPort *port_z = buf->findLibertyPort("Z");
+ ASSERT_NE(port_a, nullptr);
+ ASSERT_NE(port_z, nullptr);
+ // Set and verify related power port pointer
+ port_a->setRelatedPowerPort(port_z);
+ EXPECT_EQ(port_a->relatedPowerPort(), port_z);
}
// isDisabledConstraint has been moved from LibertyPort to Sdc.
@@ -2249,7 +2260,7 @@ TEST_F(StaLibertyTest, CellSetCornerCell) {
TEST_F(StaLibertyTest, LibraryOperatingConditions) {
OperatingConditions *nom = lib_->findOperatingConditions("typical");
if (nom) {
- EXPECT_STREQ(nom->name(), "typical");
+ EXPECT_EQ(nom->name(), "typical");
}
OperatingConditions *def = lib_->defaultOperatingConditions();
EXPECT_NE(def, nullptr);
@@ -2760,11 +2771,11 @@ TEST_F(UnitTest, AsStringDoubleZero) {
// to_string(TimingSense) exercise - ensure all senses
TEST(TimingArcTest, TimingSenseToStringAll) {
- EXPECT_NE(to_string(TimingSense::positive_unate), nullptr);
- EXPECT_NE(to_string(TimingSense::negative_unate), nullptr);
- EXPECT_NE(to_string(TimingSense::non_unate), nullptr);
- EXPECT_NE(to_string(TimingSense::none), nullptr);
- EXPECT_NE(to_string(TimingSense::unknown), nullptr);
+ EXPECT_FALSE(to_string(TimingSense::positive_unate).empty());
+ EXPECT_FALSE(to_string(TimingSense::negative_unate).empty());
+ EXPECT_FALSE(to_string(TimingSense::non_unate).empty());
+ EXPECT_FALSE(to_string(TimingSense::none).empty());
+ EXPECT_FALSE(to_string(TimingSense::unknown).empty());
}
// timingSenseOpposite - covers uncovered
@@ -2882,7 +2893,7 @@ TEST(TimingArcTest, TimingArcAttrsSetters) {
// ScaleFactors - covers ScaleFactors constructor and methods
TEST(LibertyTest, ScaleFactors) {
ScaleFactors sf("test_sf");
- EXPECT_STREQ(sf.name(), "test_sf");
+ EXPECT_EQ(sf.name(), "test_sf");
sf.setScale(ScaleFactorType::cell, ScaleFactorPvt::process,
RiseFall::rise(), 1.5f);
float v = sf.scale(ScaleFactorType::cell, ScaleFactorPvt::process,
@@ -2907,9 +2918,9 @@ TEST(LibertyTest, FindScaleFactorPvt) {
// scaleFactorPvtName
TEST(LibertyTest, ScaleFactorPvtName) {
- EXPECT_STREQ(scaleFactorPvtName(ScaleFactorPvt::process), "process");
- EXPECT_STREQ(scaleFactorPvtName(ScaleFactorPvt::volt), "volt");
- EXPECT_STREQ(scaleFactorPvtName(ScaleFactorPvt::temp), "temp");
+ EXPECT_EQ(scaleFactorPvtName(ScaleFactorPvt::process), "process");
+ EXPECT_EQ(scaleFactorPvtName(ScaleFactorPvt::volt), "volt");
+ EXPECT_EQ(scaleFactorPvtName(ScaleFactorPvt::temp), "temp");
}
// findScaleFactorType / scaleFactorTypeName
@@ -2921,11 +2932,11 @@ TEST(LibertyTest, FindScaleFactorType) {
}
TEST(LibertyTest, ScaleFactorTypeName) {
- EXPECT_STREQ(scaleFactorTypeName(ScaleFactorType::cell), "cell");
- EXPECT_STREQ(scaleFactorTypeName(ScaleFactorType::hold), "hold");
- EXPECT_STREQ(scaleFactorTypeName(ScaleFactorType::setup), "setup");
- EXPECT_STREQ(scaleFactorTypeName(ScaleFactorType::recovery), "recovery");
- EXPECT_STREQ(scaleFactorTypeName(ScaleFactorType::removal), "removal");
+ EXPECT_EQ(scaleFactorTypeName(ScaleFactorType::cell), "cell");
+ EXPECT_EQ(scaleFactorTypeName(ScaleFactorType::hold), "hold");
+ EXPECT_EQ(scaleFactorTypeName(ScaleFactorType::setup), "setup");
+ EXPECT_EQ(scaleFactorTypeName(ScaleFactorType::recovery), "recovery");
+ EXPECT_EQ(scaleFactorTypeName(ScaleFactorType::removal), "removal");
}
// scaleFactorTypeRiseFallSuffix, scaleFactorTypeRiseFallPrefix, scaleFactorTypeLowHighSuffix
@@ -2963,12 +2974,16 @@ TEST(LibertyTest, Pvt) {
// OperatingConditions
TEST(LibertyTest, OperatingConditionsNameOnly) {
OperatingConditions oc("typical");
- EXPECT_STREQ(oc.name(), "typical");
+ EXPECT_EQ(oc.name(), "typical");
}
TEST(LibertyTest, OperatingConditionsFull) {
- OperatingConditions oc("fast", 1.0f, 1.21f, 0.0f, WireloadTree::balanced);
- EXPECT_STREQ(oc.name(), "fast");
+ OperatingConditions oc("fast");
+ oc.setProcess(1.0f);
+ oc.setVoltage(1.21f);
+ oc.setTemperature(0.0f);
+ oc.setWireloadTree(WireloadTree::balanced);
+ EXPECT_EQ(oc.name(), "fast");
EXPECT_FLOAT_EQ(oc.process(), 1.0f);
EXPECT_FLOAT_EQ(oc.voltage(), 1.21f);
EXPECT_FLOAT_EQ(oc.temperature(), 0.0f);
@@ -3039,15 +3054,15 @@ TEST_F(Table1Test, TableAxisVariableString) {
FloatSeq vals({0.0f});
auto axis = std::make_shared(
TableAxisVariable::total_output_net_capacitance, std::move(vals));
- EXPECT_NE(axis->variableString(), nullptr);
+ EXPECT_FALSE(axis->variableString().empty());
}
// tableVariableString / stringTableAxisVariable
TEST_F(Table1Test, TableVariableString) {
- EXPECT_NE(tableVariableString(TableAxisVariable::total_output_net_capacitance), nullptr);
- EXPECT_NE(tableVariableString(TableAxisVariable::input_net_transition), nullptr);
- EXPECT_NE(tableVariableString(TableAxisVariable::related_pin_transition), nullptr);
- EXPECT_NE(tableVariableString(TableAxisVariable::constrained_pin_transition), nullptr);
+ EXPECT_FALSE(tableVariableString(TableAxisVariable::total_output_net_capacitance).empty());
+ EXPECT_FALSE(tableVariableString(TableAxisVariable::input_net_transition).empty());
+ EXPECT_FALSE(tableVariableString(TableAxisVariable::related_pin_transition).empty());
+ EXPECT_FALSE(tableVariableString(TableAxisVariable::constrained_pin_transition).empty());
}
TEST_F(Table1Test, StringTableAxisVariable) {
diff --git a/liberty/test/cpp/TestLibertyStaBasicsB.cc b/liberty/test/cpp/TestLibertyStaBasicsB.cc
index 372b8415..c74696f9 100644
--- a/liberty/test/cpp/TestLibertyStaBasicsB.cc
+++ b/liberty/test/cpp/TestLibertyStaBasicsB.cc
@@ -840,8 +840,8 @@ TEST_F(StaLibertyTest, PortRelatedPins2) {
LibertyPort *z = buf->findLibertyPort("Z");
ASSERT_NE(z, nullptr);
// May or may not have related ground/power pins
- z->relatedGroundPin();
- z->relatedPowerPin();
+ z->relatedGroundPort();
+ z->relatedPowerPort();
}
// LibertyPort receiverModel
@@ -859,8 +859,8 @@ TEST_F(StaLibertyTest, PortReceiverModel2) {
TEST_F(StaLibertyTest, CellFootprint2) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
- const char *fp = buf->footprint();
- // fp may be null for simple arcs
+ const std::string &fp = buf->footprint();
+ // fp may be empty for simple arcs
}
// LibertyCell ocv methods
@@ -1029,12 +1029,11 @@ TEST(R6_LibertyAttrValueTest, FloatValueAndQuotedStringParsing) {
LibertyAttrValue float_value(1.25f);
EXPECT_TRUE(float_value.isFloat());
EXPECT_FALSE(float_value.isString());
- EXPECT_FLOAT_EQ(float_value.floatValue(), 1.25f);
+ auto [fval, fexists] = float_value.floatValue();
+ EXPECT_FLOAT_EQ(fval, 1.25f);
LibertyAttrValue quoted_value(std::string("3.14"));
- float parsed = 0.0f;
- bool valid = false;
- quoted_value.floatValue(parsed, valid);
+ auto [parsed, valid] = quoted_value.floatValue();
EXPECT_TRUE(valid);
EXPECT_FLOAT_EQ(parsed, 3.14f);
EXPECT_TRUE(quoted_value.isString());
@@ -1047,10 +1046,10 @@ TEST(R6_LibertyGroupTest, Construction) {
LibertyGroup grp("scaled_cell", std::move(params), 10);
EXPECT_EQ(grp.type(), "scaled_cell");
EXPECT_EQ(grp.line(), 10);
- ASSERT_NE(grp.firstName(), nullptr);
- EXPECT_STREQ(grp.firstName(), "cell1");
- ASSERT_NE(grp.secondName(), nullptr);
- EXPECT_STREQ(grp.secondName(), "slow");
+ EXPECT_FALSE(grp.firstParam().empty());
+ EXPECT_EQ(grp.firstParam(), "cell1");
+ EXPECT_FALSE(grp.secondParam().empty());
+ EXPECT_EQ(grp.secondParam(), "slow");
}
TEST(R6_LibertyGroupTest, AddSubgroupAndIterate) {
@@ -1070,7 +1069,8 @@ TEST(R6_LibertyGroupTest, AddAttributeAndIterate) {
ASSERT_NE(attr, nullptr);
EXPECT_EQ(attr->line(), 5);
EXPECT_TRUE(attr->value().isFloat());
- EXPECT_FLOAT_EQ(attr->value().floatValue(), 3.14f);
+ auto [area_val, area_exists] = attr->value().floatValue();
+ EXPECT_FLOAT_EQ(area_val, 3.14f);
float area = 0.0f;
bool exists = false;
@@ -1083,8 +1083,8 @@ TEST(R6_LibertySimpleAttrTest, Construction) {
LibertySimpleAttr attr("name", LibertyAttrValue(std::string("test_value")), 7);
EXPECT_EQ(attr.name(), "name");
EXPECT_EQ(attr.line(), 7);
- ASSERT_NE(attr.stringValue(), nullptr);
- EXPECT_EQ(*attr.stringValue(), "test_value");
+ EXPECT_FALSE(attr.stringValue().empty());
+ EXPECT_EQ(attr.stringValue(), "test_value");
EXPECT_TRUE(attr.value().isString());
}
@@ -1108,7 +1108,8 @@ TEST(R6_LibertyComplexAttrTest, Construction) {
const LibertyAttrValue *first = attr.firstValue();
EXPECT_NE(first, nullptr);
EXPECT_TRUE(first->isFloat());
- EXPECT_FLOAT_EQ(first->floatValue(), 1.0f);
+ auto [first_fval, first_fexists] = first->floatValue();
+ EXPECT_FLOAT_EQ(first_fval, 1.0f);
EXPECT_EQ(attr.values().size(), 2u);
}
@@ -1129,7 +1130,8 @@ TEST(R6_LibertyAttrValueTest, FloatBasic) {
LibertyAttrValue fav(42.5f);
EXPECT_TRUE(fav.isFloat());
EXPECT_FALSE(fav.isString());
- EXPECT_FLOAT_EQ(fav.floatValue(), 42.5f);
+ auto [fav_val, fav_exists] = fav.floatValue();
+ EXPECT_FLOAT_EQ(fav_val, 42.5f);
}
TEST(R6_LibertyDefineTest, Construction) {
@@ -1374,7 +1376,7 @@ TEST(R6_TestCellTest, LibertyLibraryAccessor) {
LibertyLibrary lib1("lib1", "lib1.lib");
TestCell cell(&lib1, "CELL1", "lib1.lib");
EXPECT_EQ(cell.libertyLibrary(), &lib1);
- EXPECT_STREQ(cell.libertyLibrary()->name(), "lib1");
+ EXPECT_EQ(cell.libertyLibrary()->name(), "lib1");
}
////////////////////////////////////////////////////////////////
@@ -1388,33 +1390,33 @@ TEST(R6_TableVariableTest, EqualOrOppositeCapacitance) {
TEST(R6_TableVariableTest, AllVariableStrings) {
// Test that tableVariableString works for all known variables
- const char *s;
+ std::string_view s;
s = tableVariableString(TableAxisVariable::input_transition_time);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::constrained_pin_transition);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::output_pin_transition);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::connect_delay);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::related_out_total_output_net_capacitance);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::iv_output_voltage);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::input_noise_width);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::input_noise_height);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::input_voltage);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::output_voltage);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::path_depth);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::path_distance);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
s = tableVariableString(TableAxisVariable::normalized_voltage);
- EXPECT_NE(s, nullptr);
+ EXPECT_FALSE(s.empty());
}
////////////////////////////////////////////////////////////////
@@ -1704,7 +1706,7 @@ TEST_F(StaLibertyTest, CellPortIteration) {
while (port_iter.hasNext()) {
LibertyPort *port = port_iter.next();
EXPECT_NE(port, nullptr);
- EXPECT_NE(port->name(), nullptr);
+ EXPECT_FALSE(port->name().empty());
port_count++;
}
EXPECT_GT(port_count, 0);
@@ -1743,11 +1745,11 @@ TEST_F(StaLibertyTest, PatternMatchCells) {
}
TEST_F(StaLibertyTest, LibraryName) {
- EXPECT_NE(lib_->name(), nullptr);
+ EXPECT_FALSE(lib_->name().empty());
}
TEST_F(StaLibertyTest, LibraryFilename) {
- EXPECT_NE(lib_->filename(), nullptr);
+ EXPECT_FALSE(lib_->filename().empty());
}
////////////////////////////////////////////////////////////////
@@ -1776,8 +1778,8 @@ TEST(LibertyParserTest, LibertyGroupConstruction) {
EXPECT_EQ(group.type(), "library");
EXPECT_EQ(group.line(), 1);
- ASSERT_NE(group.findAttrString("name"), nullptr);
- EXPECT_EQ(*group.findAttrString("name"), "test_lib");
+ EXPECT_FALSE(group.findAttrString("name").empty());
+ EXPECT_EQ(group.findAttrString("name"), "test_lib");
float max_cap = 0.0f;
bool exists = false;
group.findAttrFloat("max_cap", max_cap, exists);
@@ -1924,12 +1926,12 @@ TEST_F(StaLibertyTest, InferLatchRolesAlreadyCalled) {
// Find a latch cell
LibertyCell *cell = lib_->findLibertyCell("DFFR_X1");
if (cell) {
- EXPECT_NE(cell->name(), nullptr);
+ EXPECT_FALSE(cell->name().empty());
}
// Also try DLATCH cells
LibertyCell *latch = lib_->findLibertyCell("DLH_X1");
if (latch) {
- EXPECT_NE(latch->name(), nullptr);
+ EXPECT_FALSE(latch->name().empty());
}
}
@@ -2252,9 +2254,8 @@ TEST_F(StaLibertyTest, CellOcvDerate3) {
TEST_F(StaLibertyTest, CellFootprint3) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
- const char *fp = buf->footprint();
- // May be null or empty
- // fp may be null for simple arcs
+ const std::string &fp = buf->footprint();
+ // May be empty for simple arcs
}
// LibertyCell::setFootprint
@@ -2262,15 +2263,15 @@ TEST_F(StaLibertyTest, CellSetFootprint) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
buf->setFootprint("test_footprint");
- EXPECT_STREQ(buf->footprint(), "test_footprint");
+ EXPECT_EQ(buf->footprint(), "test_footprint");
}
// LibertyCell::userFunctionClass
TEST_F(StaLibertyTest, CellUserFunctionClass2) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
- const char *ufc = buf->userFunctionClass();
- // ufc may be null for simple arcs
+ const std::string &ufc = buf->userFunctionClass();
+ // ufc may be empty for simple arcs
}
// LibertyCell::setUserFunctionClass
@@ -2278,7 +2279,7 @@ TEST_F(StaLibertyTest, CellSetUserFunctionClass) {
LibertyCell *buf = lib_->findLibertyCell("BUF_X1");
ASSERT_NE(buf, nullptr);
buf->setUserFunctionClass("my_class");
- EXPECT_STREQ(buf->userFunctionClass(), "my_class");
+ EXPECT_EQ(buf->userFunctionClass(), "my_class");
}
// LibertyCell::setSwitchCellType
@@ -2561,7 +2562,11 @@ TEST_F(StaLibertyTest, CellSetOcvDerateNull) {
// OperatingConditions construction
TEST_F(StaLibertyTest, OperatingConditionsConstruct) {
- OperatingConditions oc("typical", 1.0f, 1.1f, 25.0f, WireloadTree::balanced);
+ OperatingConditions oc("typical");
+ oc.setProcess(1.0f);
+ oc.setVoltage(1.1f);
+ oc.setTemperature(25.0f);
+ oc.setWireloadTree(WireloadTree::balanced);
EXPECT_EQ(oc.name(), std::string("typical"));
EXPECT_FLOAT_EQ(oc.process(), 1.0f);
EXPECT_FLOAT_EQ(oc.voltage(), 1.1f);
@@ -3083,12 +3088,12 @@ TEST_F(StaLibertyTest, TimingTypeIsCheck) {
// to_string(TimingSense)
TEST_F(StaLibertyTest, TimingSenseToString) {
- const char *s = to_string(TimingSense::positive_unate);
- EXPECT_NE(s, nullptr);
- s = to_string(TimingSense::negative_unate);
- EXPECT_NE(s, nullptr);
- s = to_string(TimingSense::non_unate);
- EXPECT_NE(s, nullptr);
+ const std::string &s1 = to_string(TimingSense::positive_unate);
+ EXPECT_FALSE(s1.empty());
+ const std::string &s2 = to_string(TimingSense::negative_unate);
+ EXPECT_FALSE(s2.empty());
+ const std::string &s3 = to_string(TimingSense::non_unate);
+ EXPECT_FALSE(s3.empty());
}
// timingSenseOpposite
@@ -3101,9 +3106,9 @@ TEST_F(StaLibertyTest, TimingSenseOpposite) {
// ScaleFactorPvt names
TEST_F(StaLibertyTest, ScaleFactorPvtNames) {
- EXPECT_STREQ(scaleFactorPvtName(ScaleFactorPvt::process), "process");
- EXPECT_STREQ(scaleFactorPvtName(ScaleFactorPvt::volt), "volt");
- EXPECT_STREQ(scaleFactorPvtName(ScaleFactorPvt::temp), "temp");
+ EXPECT_EQ(scaleFactorPvtName(ScaleFactorPvt::process), "process");
+ EXPECT_EQ(scaleFactorPvtName(ScaleFactorPvt::volt), "volt");
+ EXPECT_EQ(scaleFactorPvtName(ScaleFactorPvt::temp), "temp");
}
// findScaleFactorPvt
@@ -3115,8 +3120,8 @@ TEST_F(StaLibertyTest, FindScaleFactorPvt) {
// ScaleFactorType names
TEST_F(StaLibertyTest, ScaleFactorTypeNames) {
- const char *name = scaleFactorTypeName(ScaleFactorType::cell);
- EXPECT_NE(name, nullptr);
+ const std::string &name = scaleFactorTypeName(ScaleFactorType::cell);
+ EXPECT_FALSE(name.empty());
}
// findScaleFactorType
@@ -3397,16 +3402,16 @@ TEST_F(StaLibertyTest, PortScanSignalType2) {
// scanSignalTypeName
TEST_F(StaLibertyTest, ScanSignalTypeName) {
- const char *name = scanSignalTypeName(ScanSignalType::enable);
- EXPECT_NE(name, nullptr);
- name = scanSignalTypeName(ScanSignalType::clock);
- EXPECT_NE(name, nullptr);
+ const std::string &scan_name1 = scanSignalTypeName(ScanSignalType::enable);
+ EXPECT_FALSE(scan_name1.empty());
+ const std::string &scan_name2 = scanSignalTypeName(ScanSignalType::clock);
+ EXPECT_FALSE(scan_name2.empty());
}
// pwrGndTypeName and findPwrGndType
TEST_F(StaLibertyTest, PwrGndTypeName) {
- const char *name = pwrGndTypeName(PwrGndType::primary_power);
- EXPECT_NE(name, nullptr);
+ const std::string &pwr_name = pwrGndTypeName(PwrGndType::primary_power);
+ EXPECT_FALSE(pwr_name.empty());
PwrGndType t = findPwrGndType("primary_power");
EXPECT_EQ(t, PwrGndType::primary_power);
}
diff --git a/liberty/test/cpp/TestLibertyStaCallbacks.cc b/liberty/test/cpp/TestLibertyStaCallbacks.cc
index 4d05aaae..dc696358 100644
--- a/liberty/test/cpp/TestLibertyStaCallbacks.cc
+++ b/liberty/test/cpp/TestLibertyStaCallbacks.cc
@@ -1522,8 +1522,8 @@ TEST_F(StaLibertyTest, LibertyStmtTypes) {
LibertyGroup grp("cell", std::move(params), 1);
EXPECT_EQ(grp.type(), "cell");
EXPECT_EQ(grp.line(), 1);
- ASSERT_NE(grp.firstName(), nullptr);
- EXPECT_STREQ(grp.firstName(), "TEST");
+ EXPECT_FALSE(grp.firstParam().empty());
+ EXPECT_EQ(grp.firstParam(), "TEST");
EXPECT_TRUE(grp.subgroups().empty());
}
@@ -1532,8 +1532,8 @@ TEST_F(StaLibertyTest, LibertySimpleAttrIsComplex) {
LibertySimpleAttr attr("name", LibertyAttrValue(std::string("test")), 1);
EXPECT_EQ(attr.name(), "name");
EXPECT_EQ(attr.line(), 1);
- ASSERT_NE(attr.stringValue(), nullptr);
- EXPECT_EQ(*attr.stringValue(), "test");
+ EXPECT_FALSE(attr.stringValue().empty());
+ EXPECT_EQ(attr.stringValue(), "test");
EXPECT_TRUE(attr.value().isString());
}
@@ -1545,7 +1545,7 @@ TEST_F(StaLibertyTest, LibertyComplexAttrIsSimple) {
LibertyComplexAttr attr("name", std::move(values), 1);
ASSERT_NE(attr.firstValue(), nullptr);
EXPECT_TRUE(attr.firstValue()->isFloat());
- EXPECT_FLOAT_EQ(attr.firstValue()->floatValue(), 1.0f);
+ EXPECT_FLOAT_EQ(attr.firstValue()->floatValue().first, 1.0f);
EXPECT_EQ(attr.values().size(), 2u);
}
@@ -1555,15 +1555,13 @@ TEST_F(StaLibertyTest, AttrValueCrossType) {
EXPECT_TRUE(sval.isString());
EXPECT_FALSE(sval.isFloat());
EXPECT_EQ(sval.stringValue(), "hello");
- float parsed = 0.0f;
- bool valid = true;
- sval.floatValue(parsed, valid);
+ auto [parsed, valid] = sval.floatValue();
EXPECT_FALSE(valid);
LibertyAttrValue fval(3.14f);
EXPECT_FALSE(fval.isString());
EXPECT_TRUE(fval.isFloat());
- EXPECT_FLOAT_EQ(fval.floatValue(), 3.14f);
+ EXPECT_FLOAT_EQ(fval.floatValue().first, 3.14f);
}
// R9_46: LibertyDefine isDefine
@@ -3528,19 +3526,19 @@ TEST_F(StaLibertyTest, TimingGroupOutputWaveforms) {
// R11_1: timingTypeString - the free function in TimingArc.cc
// It is not declared in a public header, so we declare it extern here.
-extern const char *timingTypeString(TimingType type);
+extern std::string_view timingTypeString(TimingType type);
TEST_F(StaLibertyTest, TimingTypeString) {
// timingTypeString is defined in TimingArc.cc
// We test several timing types to cover the function
- EXPECT_STREQ(timingTypeString(TimingType::combinational), "combinational");
- EXPECT_STREQ(timingTypeString(TimingType::clear), "clear");
- EXPECT_STREQ(timingTypeString(TimingType::rising_edge), "rising_edge");
- EXPECT_STREQ(timingTypeString(TimingType::falling_edge), "falling_edge");
- EXPECT_STREQ(timingTypeString(TimingType::setup_rising), "setup_rising");
- EXPECT_STREQ(timingTypeString(TimingType::hold_falling), "hold_falling");
- EXPECT_STREQ(timingTypeString(TimingType::three_state_enable), "three_state_enable");
- EXPECT_STREQ(timingTypeString(TimingType::unknown), "unknown");
+ EXPECT_EQ(timingTypeString(TimingType::combinational), "combinational");
+ EXPECT_EQ(timingTypeString(TimingType::clear), "clear");
+ EXPECT_EQ(timingTypeString(TimingType::rising_edge), "rising_edge");
+ EXPECT_EQ(timingTypeString(TimingType::falling_edge), "falling_edge");
+ EXPECT_EQ(timingTypeString(TimingType::setup_rising), "setup_rising");
+ EXPECT_EQ(timingTypeString(TimingType::hold_falling), "hold_falling");
+ EXPECT_EQ(timingTypeString(TimingType::three_state_enable), "three_state_enable");
+ EXPECT_EQ(timingTypeString(TimingType::unknown), "unknown");
}
// R11_2: writeLiberty exercises LibertyWriter constructor, destructor,
@@ -3604,8 +3602,8 @@ TEST_F(StaLibertyTest, LibertyParserDirect) {
EXPECT_EQ(visitor.complex_attrs.size(), 1u);
EXPECT_EQ(visitor.variables.size(), 1u);
- ASSERT_NE(library->firstName(), nullptr);
- EXPECT_STREQ(library->firstName(), "test_r11_parser");
+ EXPECT_FALSE(library->firstParam().empty());
+ EXPECT_EQ(library->firstParam(), "test_r11_parser");
EXPECT_EQ(library->defineMap().size(), 1u);
EXPECT_EQ(library->findSubgroup("cell"), cell);
float area = 0.0f;
diff --git a/network/test/cpp/TestNetworkB.cc b/network/test/cpp/TestNetworkB.cc
index bfa8cc02..7a1203ce 100644
--- a/network/test/cpp/TestNetworkB.cc
+++ b/network/test/cpp/TestNetworkB.cc
@@ -140,7 +140,7 @@ TEST_F(NetworkAdapterTest, AdapterTopInstance) {
// NetworkNameAdapter: name(Library) forwarding
TEST_F(NetworkAdapterTest, AdapterLibraryName) {
- EXPECT_STREQ(sdc_net_->name(lib_), "adapter_lib");
+ EXPECT_EQ(sdc_net_->name(lib_), "adapter_lib");
}
// NetworkNameAdapter: id(Library) forwarding
@@ -198,7 +198,7 @@ TEST_F(NetworkAdapterTest, AdapterLibertyLibraryIterator) {
// NetworkNameAdapter: name(Cell) forwarding
TEST_F(NetworkAdapterTest, AdapterCellName) {
- EXPECT_STREQ(sdc_net_->name(inv_cell_), "BUF");
+ EXPECT_EQ(sdc_net_->name(inv_cell_), "BUF");
}
// NetworkNameAdapter: id(Cell) forwarding
@@ -229,8 +229,8 @@ TEST_F(NetworkAdapterTest, AdapterCellLibrary) {
// NetworkNameAdapter: filename(Cell) forwarding
TEST_F(NetworkAdapterTest, AdapterCellFilename) {
- const char *fn = sdc_net_->filename(inv_cell_);
- EXPECT_STREQ(fn, "adapter.lib");
+ std::string_view fn = sdc_net_->filename(inv_cell_);
+ EXPECT_EQ(fn, "adapter.lib");
}
// NetworkNameAdapter: findPort forwarding
@@ -285,7 +285,7 @@ TEST_F(NetworkAdapterTest, AdapterPortBitCount) {
// NetworkNameAdapter: name(Port) forwarding
TEST_F(NetworkAdapterTest, AdapterPortName) {
- EXPECT_STREQ(sdc_net_->name(port_a_), "A");
+ EXPECT_EQ(sdc_net_->name(port_a_), "A");
}
// NetworkNameAdapter: id(Port) forwarding
@@ -324,9 +324,9 @@ TEST_F(NetworkAdapterTest, AdapterPortSize) {
// NetworkNameAdapter: busName(Port) scalar forwarding
TEST_F(NetworkAdapterTest, AdapterPortBusName) {
- const char *bn = sdc_net_->busName(port_a_);
+ const std::string &bn = sdc_net_->busName(port_a_);
// Scalar port returns name (not nullptr) through SdcNetwork
- EXPECT_NE(bn, nullptr);
+ EXPECT_FALSE(bn.empty());
}
// NetworkNameAdapter: fromIndex(Port) forwarding (scalar ports return -1)
@@ -652,15 +652,15 @@ TEST_F(NetworkAdapterTest, SdcNetworkTopInstance) {
// SdcNetwork: name(Port) forwarding with sdc namespace
TEST_F(NetworkAdapterTest, SdcNetworkPortName) {
- const char *name = sdc_net_->name(port_a_);
- EXPECT_NE(name, nullptr);
+ const std::string &name = sdc_net_->name(port_a_);
+ EXPECT_FALSE(name.empty());
}
// SdcNetwork: busName(Port) forwarding
TEST_F(NetworkAdapterTest, SdcNetworkPortBusName) {
- const char *bn = sdc_net_->busName(port_a_);
+ const std::string &bn = sdc_net_->busName(port_a_);
// SdcNetwork busName returns name for scalar port
- EXPECT_NE(bn, nullptr);
+ EXPECT_FALSE(bn.empty());
}
// SdcNetwork: findPort forwarding
@@ -685,38 +685,38 @@ TEST_F(NetworkAdapterTest, SdcNetworkFindNet) {
// SdcNetwork: name(Instance) forwarding
TEST_F(NetworkAdapterTest, SdcNetworkInstanceName) {
- const char *name = sdc_net_->name(u1_);
- EXPECT_NE(name, nullptr);
+ const std::string &name = sdc_net_->name(u1_);
+ EXPECT_FALSE(name.empty());
}
// SdcNetwork: pathName(Instance) forwarding
TEST_F(NetworkAdapterTest, SdcNetworkInstancePathName) {
- const char *path = sdc_net_->pathName(u1_);
- EXPECT_NE(path, nullptr);
+ const std::string &path = sdc_net_->pathName(u1_);
+ EXPECT_FALSE(path.empty());
}
// SdcNetwork: pathName(Pin) forwarding
TEST_F(NetworkAdapterTest, SdcNetworkPinPathName) {
- const char *path = sdc_net_->pathName(pin_b1_a_);
- EXPECT_NE(path, nullptr);
+ const std::string &path = sdc_net_->pathName(pin_b1_a_);
+ EXPECT_FALSE(path.empty());
}
// SdcNetwork: portName(Pin) forwarding
TEST_F(NetworkAdapterTest, SdcNetworkPinPortName) {
- const char *port_name = sdc_net_->portName(pin_b1_a_);
- EXPECT_NE(port_name, nullptr);
+ const std::string &port_name = sdc_net_->portName(pin_b1_a_);
+ EXPECT_FALSE(port_name.empty());
}
// SdcNetwork: name(Net) forwarding
TEST_F(NetworkAdapterTest, SdcNetworkNetName) {
- const char *name = sdc_net_->name(net1_);
- EXPECT_NE(name, nullptr);
+ const std::string &name = sdc_net_->name(net1_);
+ EXPECT_FALSE(name.empty());
}
// SdcNetwork: pathName(Net) forwarding
TEST_F(NetworkAdapterTest, SdcNetworkNetPathName) {
- const char *path = sdc_net_->pathName(net1_);
- EXPECT_NE(path, nullptr);
+ const std::string &path = sdc_net_->pathName(net1_);
+ EXPECT_FALSE(path.empty());
}
// SdcNetwork: findChild forwarding
@@ -842,7 +842,7 @@ TEST_F(ConcreteNetworkLinkedTest, AddConstantAndIterate) {
TEST_F(ConcreteNetworkLinkedTest, ConcreteInstanceCell) {
Cell *cell = network_.cell(u1_);
EXPECT_NE(cell, nullptr);
- EXPECT_STREQ(network_.name(cell), "INV");
+ EXPECT_EQ(network_.name(cell), "INV");
}
// ConcreteInstance: findChild returns nullptr on leaf
@@ -894,17 +894,16 @@ TEST_F(ConcreteNetworkLinkedTest, SetCellViaReplace) {
network_.disconnectPin(pin_u1_y_);
network_.replaceCell(u1_, buf_cell);
Cell *new_cell = network_.cell(u1_);
- EXPECT_STREQ(network_.name(new_cell), "BUF_R6");
+ EXPECT_EQ(network_.name(new_cell), "BUF_R6");
}
// ConcretePin: name() via Network base class
TEST_F(ConcreteNetworkLinkedTest, ConcretePinName) {
const Network &net = network_;
- const char *name = net.name(pin_u1_a_);
- EXPECT_NE(name, nullptr);
+ const std::string &name = net.name(pin_u1_a_);
+ EXPECT_FALSE(name.empty());
// Pin name is instance/port
- std::string name_str(name);
- EXPECT_NE(name_str.find("A"), std::string::npos);
+ EXPECT_NE(name.find("A"), std::string::npos);
}
// ConcretePin: setVertexId
@@ -927,8 +926,8 @@ TEST_F(ConcreteNetworkLinkedTest, ConcreteTermName) {
Term *term = network_.makeTerm(pin, net);
EXPECT_NE(term, nullptr);
const Network &base_net = network_;
- const char *tname = base_net.name(term);
- EXPECT_NE(tname, nullptr);
+ const std::string &tname = base_net.name(term);
+ EXPECT_FALSE(tname.empty());
}
// Network: name(Term), pathName(Term), portName(Term)
@@ -942,14 +941,14 @@ TEST_F(ConcreteNetworkLinkedTest, TermPathAndPortName) {
EXPECT_NE(term, nullptr);
const Network &base_net = network_;
- const char *tname = base_net.name(term);
- EXPECT_NE(tname, nullptr);
+ const std::string &tname = base_net.name(term);
+ EXPECT_FALSE(tname.empty());
- const char *tpath = base_net.pathName(term);
- EXPECT_NE(tpath, nullptr);
+ const std::string &tpath = base_net.pathName(term);
+ EXPECT_FALSE(tpath.empty());
- const char *tport = base_net.portName(term);
- EXPECT_NE(tport, nullptr);
+ const std::string &tport = base_net.portName(term);
+ EXPECT_FALSE(tport.empty());
}
// Network: id(Term)
@@ -1480,9 +1479,9 @@ TEST_F(ConcreteNetworkLinkedTest, FindPinByPort3) {
// ConcretePin::name() - exercises the name() method on concrete pins
TEST_F(ConcreteNetworkLinkedTest, PinName2) {
- const char *name = network_.name(network_.port(pin_u1_a_));
- EXPECT_NE(name, nullptr);
- EXPECT_STREQ(name, "A");
+ const std::string &name = network_.name(network_.port(pin_u1_a_));
+ EXPECT_FALSE(name.empty());
+ EXPECT_EQ(name, "A");
}
// ConcretePin::setVertexId - exercises via Network::setVertexId
@@ -1635,9 +1634,9 @@ TEST_F(ConcreteNetworkLinkedTest, ReplaceCell2) {
network_.makePort(buf_cell, "A");
network_.makePort(buf_cell, "Y");
Instance *inst = network_.makeInstance(inv_cell, "r7_replace", network_.topInstance());
- EXPECT_STREQ(network_.name(network_.cell(inst)), "INV");
+ EXPECT_EQ(network_.name(network_.cell(inst)), "INV");
network_.replaceCell(inst, buf_cell);
- EXPECT_STREQ(network_.name(network_.cell(inst)), "R7_BUF");
+ EXPECT_EQ(network_.name(network_.cell(inst)), "R7_BUF");
}
// ConcreteInstance::addNet via makeNet and findNet on child instance
@@ -1668,15 +1667,15 @@ TEST_F(NetworkAdapterTest, AdapterFindPortsMatching2) {
// NetworkNameAdapter: name(Port) forwarding
TEST_F(NetworkAdapterTest, AdapterPortName2) {
- const char *name = sdc_net_->name(port_a_);
- EXPECT_NE(name, nullptr);
- EXPECT_STREQ(name, "A");
+ const std::string &name = sdc_net_->name(port_a_);
+ EXPECT_FALSE(name.empty());
+ EXPECT_EQ(name, "A");
}
// NetworkNameAdapter: busName(Port) forwarding
TEST_F(NetworkAdapterTest, AdapterPortBusName2) {
- const char *bname = sdc_net_->busName(port_a_);
- EXPECT_NE(bname, nullptr);
+ const std::string &bname = sdc_net_->busName(port_a_);
+ EXPECT_FALSE(bname.empty());
}
// R7_AdapterFindBusBit removed (segfault)
@@ -1829,8 +1828,8 @@ TEST_F(ConcreteNetworkLinkedTest, NetInstance2) {
// Network: cellName convenience
TEST_F(ConcreteNetworkLinkedTest, CellNameConvenience) {
- const char *name = network_.cellName(u2_);
- EXPECT_STREQ(name, "INV");
+ const std::string &name = network_.cellName(u2_);
+ EXPECT_EQ(name, "INV");
}
// ConcreteNetwork: pin direction
@@ -1972,7 +1971,7 @@ TEST_F(ConcreteNetworkLinkedTest, InstanceCell2) {
Cell *cell = network_.cell(u1_);
EXPECT_NE(cell, nullptr);
// Verify it's the INV cell
- EXPECT_STREQ(network_.name(cell), "INV");
+ EXPECT_EQ(network_.name(cell), "INV");
}
// ConcreteInstance::findChild - exercise child lookup
@@ -2331,14 +2330,14 @@ TEST_F(NetworkAdapterTest, AdapterFindPortsMatching3) {
// NetworkNameAdapter::name(Port*) forwarding
TEST_F(NetworkAdapterTest, AdapterPortNameForward) {
- const char *name = sdc_net_->name(port_a_);
- EXPECT_STREQ(name, "A");
+ const std::string &name = sdc_net_->name(port_a_);
+ EXPECT_EQ(name, "A");
}
// NetworkNameAdapter::busName(Port*) forwarding
TEST_F(NetworkAdapterTest, AdapterBusNameForward) {
- const char *bname = sdc_net_->busName(port_a_);
- EXPECT_STREQ(bname, "A"); // scalar port
+ const std::string &bname = sdc_net_->busName(port_a_);
+ EXPECT_EQ(bname, "A"); // scalar port
}
// R8_AdapterFindBusBit removed (segfault)
@@ -2352,7 +2351,7 @@ TEST_F(NetworkAdapterTest, AdapterMakeNetForward) {
Instance *top = sdc_net_->topInstance();
Net *net = sdc_net_->makeNet("adapter_net_r8", top);
EXPECT_NE(net, nullptr);
- EXPECT_STREQ(network_.name(net), "adapter_net_r8");
+ EXPECT_EQ(network_.name(net), "adapter_net_r8");
sdc_net_->deleteNet(net);
}
@@ -2521,8 +2520,8 @@ TEST_F(ConcreteNetworkLinkedTest, ConnectedPinIteratorMultiPin) {
// NetworkNameAdapter: various forwarding methods
TEST_F(NetworkAdapterTest, AdapterCellName2) {
- const char *name = sdc_net_->name(inv_cell_);
- EXPECT_STREQ(name, "BUF");
+ const std::string &name = sdc_net_->name(inv_cell_);
+ EXPECT_EQ(name, "BUF");
}
TEST_F(NetworkAdapterTest, AdapterCellId2) {
@@ -2665,11 +2664,11 @@ TEST_F(ConcreteNetworkLinkedTest, ClearAndRebuild) {
TEST_F(ConcreteNetworkLinkedTest, InstanceCellAccessor) {
Cell *cell = network_.cell(u1_);
ASSERT_NE(cell, nullptr);
- EXPECT_STREQ(network_.name(cell), "INV");
+ EXPECT_EQ(network_.name(cell), "INV");
// Also test on top instance
Cell *top_cell = network_.cell(network_.topInstance());
ASSERT_NE(top_cell, nullptr);
- EXPECT_STREQ(network_.name(top_cell), "TOP");
+ EXPECT_EQ(network_.name(top_cell), "TOP");
}
// R10_ ConcreteInstance: findChild via network interface
@@ -2754,7 +2753,7 @@ TEST_F(ConcreteNetworkLinkedTest, SetCellOnInstance) {
// Replace cell of u1
network_.replaceCell(u1_, buf_cell);
Cell *new_cell = network_.cell(u1_);
- EXPECT_STREQ(network_.name(new_cell), "BUF2");
+ EXPECT_EQ(network_.name(new_cell), "BUF2");
}
// R10_ ConcretePin: port name via port accessor
@@ -2762,8 +2761,8 @@ TEST_F(ConcreteNetworkLinkedTest, SetCellOnInstance) {
TEST_F(ConcreteNetworkLinkedTest, PinPortName2) {
Port *port = network_.port(pin_u1_a_);
ASSERT_NE(port, nullptr);
- const char *name = network_.name(port);
- EXPECT_STREQ(name, "A");
+ const std::string &name = network_.name(port);
+ EXPECT_EQ(name, "A");
}
// R10_ ConcretePin: setVertexId
@@ -3016,17 +3015,17 @@ TEST_F(NetworkAdapterTest, AdapterPortSize2) {
// R10_ NetworkAdapter: name(Port) forwarding
// Covers: NetworkNameAdapter::name(Port const*) const
TEST_F(NetworkAdapterTest, AdapterPortName3) {
- const char *name = sdc_net_->name(port_a_);
- EXPECT_STREQ(name, "A");
+ const std::string &name = sdc_net_->name(port_a_);
+ EXPECT_EQ(name, "A");
}
// R10_ NetworkAdapter: busName forwarding
// Covers: NetworkNameAdapter::busName(Port const*) const
TEST_F(NetworkAdapterTest, AdapterBusName) {
- const char *name = sdc_net_->busName(port_a_);
- // Scalar port busName may be nullptr or same as port name
- if (name != nullptr) {
- EXPECT_STREQ(name, "A");
+ const std::string &name = sdc_net_->busName(port_a_);
+ // Scalar port busName may be empty or same as port name
+ if (!name.empty()) {
+ EXPECT_EQ(name, "A");
}
}
diff --git a/sdc/test/cpp/TestSdcStaDesign.cc b/sdc/test/cpp/TestSdcStaDesign.cc
index 28848792..64603201 100644
--- a/sdc/test/cpp/TestSdcStaDesign.cc
+++ b/sdc/test/cpp/TestSdcStaDesign.cc
@@ -127,7 +127,7 @@ protected:
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(5.0f);
- sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, "", sta_->cmdMode());
Pin *in1 = network->findPin(top, "in1");
Clock *clk = sta_->cmdSdc()->findClock("clk");
@@ -173,7 +173,7 @@ TEST_F(SdcDesignTest, CycleAcctingSourceTargetCycle) {
FloatSeq *waveform2 = new FloatSeq;
waveform2->push_back(0.0f);
waveform2->push_back(2.5f);
- sta_->makeClock("clk2", clk2_pins, false, 5.0f, waveform2, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk2", clk2_pins, false, 5.0f, waveform2, "", sta_->cmdMode());
sta_->updateTiming(true);
// Forces CycleAccting to compute inter-clock accounting
}
@@ -231,14 +231,14 @@ TEST_F(SdcInitTest, ExceptionFromHash) {
TEST_F(SdcInitTest, ExceptionPathMergeable) {
Sdc *sdc = sta_->cmdSdc();
FalsePath *fp1 = new FalsePath(nullptr, nullptr, nullptr,
- MinMaxAll::all(), true, nullptr);
+ MinMaxAll::all(), true, "");
FalsePath *fp2 = new FalsePath(nullptr, nullptr, nullptr,
- MinMaxAll::all(), true, nullptr);
+ MinMaxAll::all(), true, "");
bool m = fp1->mergeable(fp2);
EXPECT_TRUE(m);
// Different type should not be mergeable
PathDelay *pd = new PathDelay(nullptr, nullptr, nullptr,
- MinMax::max(), false, false, 5.0, true, nullptr);
+ MinMax::max(), false, false, 5.0, true, "");
bool m2 = fp1->mergeable(pd);
EXPECT_FALSE(m2);
delete fp1;
@@ -276,7 +276,7 @@ TEST_F(SdcInitTest, ExceptionFromToDestructor) {
TEST_F(SdcInitTest, ExceptionPathDestructor) {
ASSERT_NO_THROW(( [&](){
FalsePath *fp = new FalsePath(nullptr, nullptr, nullptr,
- MinMaxAll::all(), true, nullptr);
+ MinMaxAll::all(), true, "");
delete fp;
}() ));
@@ -335,7 +335,7 @@ TEST_F(SdcInitTest, ClockEdgeAccessors) {
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(5.0f);
- sta_->makeClock("test_clk_edge", clk_pins, false, 10.0f, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("test_clk_edge", clk_pins, false, 10.0f, waveform, "", sta_->cmdMode());
Clock *clk = sdc->findClock("test_clk_edge");
ASSERT_NE(clk, nullptr);
ClockEdge *rise_edge = clk->edge(RiseFall::rise());
@@ -389,12 +389,12 @@ TEST_F(SdcInitTest, SdcInterClockUncertainty) {
FloatSeq *waveform1 = new FloatSeq;
waveform1->push_back(0.0f);
waveform1->push_back(5.0f);
- sta_->makeClock("clk_a", pins1, false, 10.0f, waveform1, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk_a", pins1, false, 10.0f, waveform1, "", sta_->cmdMode());
PinSet *pins2 = new PinSet(sta_->cmdNetwork());
FloatSeq *waveform2 = new FloatSeq;
waveform2->push_back(0.0f);
waveform2->push_back(2.5f);
- sta_->makeClock("clk_b", pins2, false, 5.0f, waveform2, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk_b", pins2, false, 5.0f, waveform2, "", sta_->cmdMode());
Clock *clk_a = sdc->findClock("clk_a");
Clock *clk_b = sdc->findClock("clk_b");
@@ -413,7 +413,7 @@ TEST_F(SdcInitTest, SdcInterClockUncertainty) {
// --- Sdc: clearClkGroupExclusions (via removeClockGroupsLogicallyExclusive) ---
TEST_F(SdcInitTest, SdcClearClkGroupExclusions) {
- ClockGroups *cg = sta_->makeClockGroups("grp_exc", true, false, false, false, nullptr, sta_->cmdSdc());
+ ClockGroups *cg = sta_->makeClockGroups("grp_exc", true, false, false, false, "", sta_->cmdSdc());
EXPECT_NE(cg, nullptr);
sta_->removeClockGroupsLogicallyExclusive("grp_exc", sta_->cmdSdc());
}
@@ -437,7 +437,7 @@ TEST_F(SdcDesignTest, SdcFalsePathExercise) {
ExceptionTo *to = sta_->makeExceptionTo(to_pins, nullptr, nullptr,
RiseFallBoth::riseFall(),
RiseFallBoth::riseFall(), sta_->cmdSdc());
- sta_->makeFalsePath(from, nullptr, to, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from, nullptr, to, MinMaxAll::all(), "", sta_->cmdSdc());
// Write SDC to exercise the path delay annotation
const char *fn = "/tmp/test_sdc_r10_falsepath_exercise.sdc";
sta_->writeSdc(sta_->cmdSdc(), fn, false, false, 4, false, true);
@@ -483,7 +483,7 @@ TEST_F(SdcDesignTest, WriteSdcNative) {
}
TEST_F(SdcDesignTest, WriteSdcWithFalsePath) {
- sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
const char *filename = "/tmp/test_write_sdc_sdc_r10_fp.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
FILE *f = fopen(filename, "r");
@@ -795,7 +795,7 @@ TEST_F(SdcDesignTest, WriteSdcWithClockInsertion) {
TEST_F(SdcDesignTest, WriteSdcWithMulticycle) {
sta_->makeMulticyclePath(nullptr, nullptr, nullptr,
- MinMaxAll::max(), true, 2, nullptr, sta_->cmdSdc());
+ MinMaxAll::max(), true, 2, "", sta_->cmdSdc());
const char *filename = "/tmp/test_write_sdc_sdc_r10_mcp.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
FILE *f = fopen(filename, "r");
@@ -845,7 +845,7 @@ TEST_F(SdcInitTest, SdcDeleteLatchBorrowLimits) {
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(5.0f);
- sta_->makeClock("clk_borrow", clk_pins, false, 10.0f, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk_borrow", clk_pins, false, 10.0f, waveform, "", sta_->cmdMode());
Clock *clk = sdc->findClock("clk_borrow");
ASSERT_NE(clk, nullptr);
// Set latch borrow limit on clock
@@ -1173,7 +1173,7 @@ TEST_F(SdcDesignTest, ClockAccessors) {
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("clk");
ASSERT_NE(clk, nullptr);
- EXPECT_STREQ(clk->name(), "clk");
+ EXPECT_EQ(clk->name(), "clk");
EXPECT_FLOAT_EQ(clk->period(), 10.0f);
const FloatSeq *wave = clk->waveform();
ASSERT_NE(wave, nullptr);
@@ -1351,7 +1351,7 @@ TEST_F(SdcDesignTest, SdcClocksList) {
const ClockSeq &clks = sdc->clocks();
EXPECT_GT(clks.size(), 0u);
for (Clock *c : clks) {
- EXPECT_NE(c->name(), nullptr);
+ EXPECT_FALSE(c->name().empty());
}
}
@@ -1515,11 +1515,11 @@ TEST_F(SdcDesignTest, WriteSdcWithClockGroupsMembers) {
FloatSeq *waveform2 = new FloatSeq;
waveform2->push_back(0.0f);
waveform2->push_back(2.5f);
- sta_->makeClock("clk2", clk2_pins, false, 5.0f, waveform2, nullptr, sta_->cmdMode());
+ sta_->makeClock("clk2", clk2_pins, false, 5.0f, waveform2, "", sta_->cmdMode());
Clock *clk2 = sdc->findClock("clk2");
if (clk2) {
ClockGroups *cg = sta_->makeClockGroups("grp1", true, false, false,
- false, nullptr, sta_->cmdSdc());
+ false, "", sta_->cmdSdc());
ClockSet *group1 = new ClockSet;
group1->insert(clk);
sta_->makeClockGroup(cg, group1, sta_->cmdSdc());
@@ -1568,7 +1568,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathFromThruTo) {
ExceptionTo *to = sta_->makeExceptionTo(to_pins, nullptr, nullptr,
RiseFallBoth::riseFall(),
RiseFallBoth::riseFall(), sta_->cmdSdc());
- sta_->makeFalsePath(from, thrus, to, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from, thrus, to, MinMaxAll::all(), "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_fp_fromthru.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -1591,7 +1591,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathThruNet) {
ExceptionThru *thru = sta_->makeExceptionThru(nullptr, nets, nullptr,
RiseFallBoth::riseFall(), sta_->cmdSdc());
thrus->push_back(thru);
- sta_->makeFalsePath(nullptr, thrus, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, thrus, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
delete net_iter;
const char *filename = "/tmp/test_sdc_r11_fp_thrunet.sdc";
@@ -1610,7 +1610,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathFromClock) {
from_clks->insert(clk);
ExceptionFrom *from = sta_->makeExceptionFrom(nullptr, from_clks, nullptr,
RiseFallBoth::riseFall(), sta_->cmdSdc());
- sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_fp_fromclk.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -1631,7 +1631,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathFromInstance) {
from_insts->insert(inst);
ExceptionFrom *from = sta_->makeExceptionFrom(nullptr, nullptr, from_insts,
RiseFallBoth::riseFall(), sta_->cmdSdc());
- sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
delete iter;
const char *filename = "/tmp/test_sdc_r11_fp_frominst.sdc";
@@ -1653,7 +1653,7 @@ TEST_F(SdcDesignTest, WriteSdcMulticycleWithFrom) {
ExceptionFrom *from = sta_->makeExceptionFrom(from_pins, nullptr, nullptr,
RiseFallBoth::riseFall(), sta_->cmdSdc());
sta_->makeMulticyclePath(from, nullptr, nullptr,
- MinMaxAll::max(), true, 3, nullptr, sta_->cmdSdc());
+ MinMaxAll::max(), true, 3, "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_mcp_from.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -1680,7 +1680,7 @@ TEST_F(SdcDesignTest, WriteSdcPathDelay) {
RiseFallBoth::riseFall(),
RiseFallBoth::riseFall(), sta_->cmdSdc());
sta_->makePathDelay(from, nullptr, to, MinMax::max(), false, false,
- 5.0f, nullptr, sta_->cmdSdc());
+ 5.0f, "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_pathdelay.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -1700,7 +1700,7 @@ TEST_F(SdcDesignTest, WriteSdcGroupPath) {
from_pins->insert(in1);
ExceptionFrom *from = sta_->makeExceptionFrom(from_pins, nullptr, nullptr,
RiseFallBoth::riseFall(), sta_->cmdSdc());
- sta_->makeGroupPath("mygroup", false, from, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ sta_->makeGroupPath("mygroup", false, from, nullptr, nullptr, "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_grouppath.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -1805,7 +1805,7 @@ TEST_F(SdcDesignTest, SdcConnectedCapNet) {
// --- ExceptionPath::mergeable ---
TEST_F(SdcDesignTest, ExceptionPathMergeable) {
// Create two false paths and check mergeability
- sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
Sdc *sdc = sta_->cmdSdc();
const ExceptionPathSet &exceptions = sdc->exceptions();
ExceptionPath *first = nullptr;
@@ -1855,7 +1855,7 @@ TEST_F(SdcDesignTest, WriteSdcMinDelay) {
RiseFallBoth::riseFall(),
RiseFallBoth::riseFall(), sta_->cmdSdc());
sta_->makePathDelay(from, nullptr, to, MinMax::min(), false, false,
- 1.0f, nullptr, sta_->cmdSdc());
+ 1.0f, "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_mindelay.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -1868,7 +1868,7 @@ TEST_F(SdcDesignTest, WriteSdcMinDelay) {
// (triggers the hold branch in writeExceptionCmd) ---
TEST_F(SdcDesignTest, WriteSdcMulticycleHold) {
sta_->makeMulticyclePath(nullptr, nullptr, nullptr,
- MinMaxAll::min(), true, 0, nullptr, sta_->cmdSdc());
+ MinMaxAll::min(), true, 0, "", sta_->cmdSdc());
const char *filename = "/tmp/test_sdc_r11_mcp_hold.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
FILE *f = fopen(filename, "r");
@@ -1880,7 +1880,7 @@ TEST_F(SdcDesignTest, WriteSdcMulticycleHold) {
// (triggers the start branch in writeExceptionCmd) ---
TEST_F(SdcDesignTest, WriteSdcMulticycleStart) {
sta_->makeMulticyclePath(nullptr, nullptr, nullptr,
- MinMaxAll::max(), false, 2, nullptr, sta_->cmdSdc());
+ MinMaxAll::max(), false, 2, "", sta_->cmdSdc());
const char *filename = "/tmp/test_sdc_r11_mcp_start.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
FILE *f = fopen(filename, "r");
@@ -1891,7 +1891,7 @@ TEST_F(SdcDesignTest, WriteSdcMulticycleStart) {
// --- WriteSdc with group path default
// (triggers isDefault branch in writeExceptionCmd) ---
TEST_F(SdcDesignTest, WriteSdcGroupPathDefault) {
- sta_->makeGroupPath("", true, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ sta_->makeGroupPath("", true, nullptr, nullptr, nullptr, "", sta_->cmdSdc());
const char *filename = "/tmp/test_sdc_r11_grppath_default.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
FILE *f = fopen(filename, "r");
@@ -1910,7 +1910,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathRiseFrom) {
from_pins->insert(in1);
ExceptionFrom *from = sta_->makeExceptionFrom(from_pins, nullptr, nullptr,
RiseFallBoth::rise(), sta_->cmdSdc());
- sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_fp_risefrom.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -1930,7 +1930,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathFallFrom) {
from_pins->insert(in1);
ExceptionFrom *from = sta_->makeExceptionFrom(from_pins, nullptr, nullptr,
RiseFallBoth::fall(), sta_->cmdSdc());
- sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_fp_fallfrom.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -1943,7 +1943,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathFallFrom) {
// (triggers the ignoreClkLatency branch) ---
TEST_F(SdcDesignTest, WriteSdcPathDelayIgnoreClkLat) {
sta_->makePathDelay(nullptr, nullptr, nullptr, MinMax::max(), true, false,
- 8.0f, nullptr, sta_->cmdSdc());
+ 8.0f, "", sta_->cmdSdc());
const char *filename = "/tmp/test_sdc_r11_pathdelay_ignoreclk.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
FILE *f = fopen(filename, "r");
@@ -1963,7 +1963,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathToRise) {
ExceptionTo *to = sta_->makeExceptionTo(to_pins, nullptr, nullptr,
RiseFallBoth::riseFall(),
RiseFallBoth::rise(), sta_->cmdSdc());
- sta_->makeFalsePath(nullptr, nullptr, to, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, nullptr, to, MinMaxAll::all(), "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_fp_torise.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -1984,7 +1984,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathMultiFrom) {
from_pins->insert(in2);
ExceptionFrom *from = sta_->makeExceptionFrom(from_pins, nullptr, nullptr,
RiseFallBoth::riseFall(), sta_->cmdSdc());
- sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_fp_multifrom.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
@@ -2242,7 +2242,7 @@ TEST_F(SdcDesignTest, WriteSdcMegaComprehensive) {
// Clock groups
if (clk) {
ClockGroups *cg = sta_->makeClockGroups("mega_grp", false, true, false,
- false, nullptr, sta_->cmdSdc());
+ false, "", sta_->cmdSdc());
ClockSet *g1 = new ClockSet;
g1->insert(clk);
sta_->makeClockGroup(cg, g1, sta_->cmdSdc());
@@ -2270,7 +2270,7 @@ TEST_F(SdcDesignTest, WriteSdcMegaComprehensive) {
ExceptionTo *to = sta_->makeExceptionTo(to_pins, nullptr, nullptr,
RiseFallBoth::riseFall(),
RiseFallBoth::rise(), sta_->cmdSdc());
- sta_->makeFalsePath(from, thrus, to, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from, thrus, to, MinMaxAll::all(), "", sta_->cmdSdc());
}
// Max/min delay
@@ -2285,15 +2285,15 @@ TEST_F(SdcDesignTest, WriteSdcMegaComprehensive) {
RiseFallBoth::riseFall(),
RiseFallBoth::riseFall(), sta_->cmdSdc());
sta_->makePathDelay(from, nullptr, to, MinMax::max(), true, false,
- 6.0f, nullptr, sta_->cmdSdc());
+ 6.0f, "", sta_->cmdSdc());
}
// Multicycle
sta_->makeMulticyclePath(nullptr, nullptr, nullptr,
- MinMaxAll::max(), false, 4, nullptr, sta_->cmdSdc());
+ MinMaxAll::max(), false, 4, "", sta_->cmdSdc());
// Group path
- sta_->makeGroupPath("mega", false, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ sta_->makeGroupPath("mega", false, nullptr, nullptr, nullptr, "", sta_->cmdSdc());
// Clock gating check
sta_->setClockGatingCheck(RiseFallBoth::riseFall(), MinMax::max(), 0.15f, sta_->cmdSdc());
@@ -2343,7 +2343,7 @@ TEST_F(SdcDesignTest, SdcRemoveClockGroups) {
Clock *clk = sdc->findClock("clk");
if (clk) {
ClockGroups *cg = sta_->makeClockGroups("rm_grp", true, false, false,
- false, nullptr, sta_->cmdSdc());
+ false, "", sta_->cmdSdc());
ClockSet *g1 = new ClockSet;
g1->insert(clk);
sta_->makeClockGroup(cg, g1, sta_->cmdSdc());
@@ -2361,7 +2361,7 @@ TEST_F(SdcDesignTest, SdcRemovePhysExclClkGroups) {
Clock *clk = sdc->findClock("clk");
if (clk) {
ClockGroups *cg = sta_->makeClockGroups("phys_grp", false, true, false,
- false, nullptr, sta_->cmdSdc());
+ false, "", sta_->cmdSdc());
ClockSet *g1 = new ClockSet;
g1->insert(clk);
sta_->makeClockGroup(cg, g1, sta_->cmdSdc());
@@ -2378,7 +2378,7 @@ TEST_F(SdcDesignTest, SdcRemoveAsyncClkGroups) {
Clock *clk = sdc->findClock("clk");
if (clk) {
ClockGroups *cg = sta_->makeClockGroups("async_grp", false, false, true,
- false, nullptr, sta_->cmdSdc());
+ false, "", sta_->cmdSdc());
ClockSet *g1 = new ClockSet;
g1->insert(clk);
sta_->makeClockGroup(cg, g1, sta_->cmdSdc());
@@ -2419,8 +2419,8 @@ TEST_F(SdcDesignTest, ExceptionFromMatching) {
ExceptionFrom *from2 = sta_->makeExceptionFrom(pins2, nullptr, nullptr,
RiseFallBoth::riseFall(), sta_->cmdSdc());
// Make false paths - internally triggers findHash
- sta_->makeFalsePath(from1, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
- sta_->makeFalsePath(from2, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from1, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
+ sta_->makeFalsePath(from2, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
}() ));
@@ -2581,7 +2581,7 @@ TEST_F(SdcDesignTest, SdcCapLimitPin) {
// --- WriteSdc with set_false_path -hold only
// (triggers writeSetupHoldFlag for hold) ---
TEST_F(SdcDesignTest, WriteSdcFalsePathHold) {
- sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::min(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::min(), "", sta_->cmdSdc());
const char *filename = "/tmp/test_sdc_r11_fp_hold.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
std::string text = readTextFile(filename);
@@ -2592,7 +2592,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathHold) {
// --- WriteSdc with set_false_path -setup only
// (triggers writeSetupHoldFlag for setup) ---
TEST_F(SdcDesignTest, WriteSdcFalsePathSetup) {
- sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::max(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::max(), "", sta_->cmdSdc());
const char *filename = "/tmp/test_sdc_r11_fp_setup.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
std::string text = readTextFile(filename);
@@ -2613,7 +2613,7 @@ TEST_F(SdcDesignTest, WriteSdcFalsePathRiseThru) {
ExceptionThru *thru = sta_->makeExceptionThru(thru_pins, nullptr, nullptr,
RiseFallBoth::rise(), sta_->cmdSdc());
thrus->push_back(thru);
- sta_->makeFalsePath(nullptr, thrus, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, thrus, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
const char *filename = "/tmp/test_sdc_r11_fp_risethru.sdc";
sta_->writeSdc(sta_->cmdSdc(), filename, false, false, 4, false, true);
diff --git a/sdc/test/cpp/TestSdcStaInit.cc b/sdc/test/cpp/TestSdcStaInit.cc
index 67eb6339..41ad4e3d 100644
--- a/sdc/test/cpp/TestSdcStaInit.cc
+++ b/sdc/test/cpp/TestSdcStaInit.cc
@@ -98,7 +98,7 @@ TEST_F(SdcInitTest, ClockAddPinNull) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_addpin", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
// addPin with nullptr - after adding null, isVirtual becomes false
// because the pins set becomes non-empty
@@ -113,7 +113,7 @@ TEST_F(SdcInitTest, ClockSetSlewRfMinMax) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_slew", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
clk->setSlew(RiseFall::rise(), MinMax::max(), 0.5f);
float slew;
@@ -131,7 +131,7 @@ TEST_F(SdcInitTest, ClockEdgeTime) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_edge", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
ClockEdge *rise_edge = clk->edge(RiseFall::rise());
ClockEdge *fall_edge = clk->edge(RiseFall::fall());
@@ -148,7 +148,7 @@ TEST_F(SdcInitTest, ClockEdgeOpposite) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_opp", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
ClockEdge *rise_edge = clk->edge(RiseFall::rise());
ClockEdge *fall_edge = clk->edge(RiseFall::fall());
@@ -165,7 +165,7 @@ TEST_F(SdcInitTest, ClockEdgePulseWidth) {
waveform->push_back(4.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_pw", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
ClockEdge *rise_edge = clk->edge(RiseFall::rise());
ASSERT_NE(rise_edge, nullptr);
@@ -180,7 +180,7 @@ TEST_F(SdcInitTest, ClockEdgeNameIndex) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_ni", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
ClockEdge *rise_edge = clk->edge(RiseFall::rise());
ASSERT_NE(rise_edge, nullptr);
@@ -246,19 +246,19 @@ TEST_F(SdcInitTest, DisabledCellPortsIsDisabled) {
// ExceptionPath::typeString via various subclasses
TEST_F(SdcInitTest, FalsePathTypeString) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
EXPECT_NE(fp.typeString(), nullptr);
}
TEST_F(SdcInitTest, PathDelayTypeString) {
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, true, nullptr);
+ false, false, 5.0f, true, "");
EXPECT_NE(pd.typeString(), nullptr);
}
TEST_F(SdcInitTest, MultiCyclePathTypeString) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, true, nullptr);
+ true, 3, true, "");
EXPECT_NE(mcp.typeString(), nullptr);
}
@@ -268,7 +268,7 @@ TEST_F(SdcInitTest, FilterPathTypeString) {
}
TEST_F(SdcInitTest, GroupPathTypeString) {
- GroupPath gp("grp1", false, nullptr, nullptr, nullptr, true, nullptr);
+ GroupPath gp("grp1", false, nullptr, nullptr, nullptr, true, "");
EXPECT_NE(gp.typeString(), nullptr);
}
@@ -279,44 +279,44 @@ TEST_F(SdcInitTest, LoopPathTypeString) {
// ExceptionPath::mergeable tests
TEST_F(SdcInitTest, FalsePathMergeable) {
- FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
- FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
+ FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
EXPECT_TRUE(fp1.mergeable(&fp2));
}
TEST_F(SdcInitTest, PathDelayMergeable) {
PathDelay pd1(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, true, nullptr);
+ false, false, 5.0f, true, "");
PathDelay pd2(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, true, nullptr);
+ false, false, 5.0f, true, "");
EXPECT_TRUE(pd1.mergeable(&pd2));
}
TEST_F(SdcInitTest, PathDelayMergeableDifferentDelay) {
PathDelay pd1(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, true, nullptr);
+ false, false, 5.0f, true, "");
PathDelay pd2(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 10.0f, true, nullptr);
+ false, false, 10.0f, true, "");
EXPECT_FALSE(pd1.mergeable(&pd2));
}
TEST_F(SdcInitTest, MultiCyclePathMergeable) {
MultiCyclePath mcp1(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, true, nullptr);
+ true, 3, true, "");
MultiCyclePath mcp2(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, true, nullptr);
+ true, 3, true, "");
EXPECT_TRUE(mcp1.mergeable(&mcp2));
}
TEST_F(SdcInitTest, GroupPathMergeable) {
- GroupPath gp1("grp1", false, nullptr, nullptr, nullptr, true, nullptr);
- GroupPath gp2("grp1", false, nullptr, nullptr, nullptr, true, nullptr);
+ GroupPath gp1("grp1", false, nullptr, nullptr, nullptr, true, "");
+ GroupPath gp2("grp1", false, nullptr, nullptr, nullptr, true, "");
EXPECT_TRUE(gp1.mergeable(&gp2));
}
TEST_F(SdcInitTest, GroupPathNotMergeable) {
- GroupPath gp1("grp1", false, nullptr, nullptr, nullptr, true, nullptr);
- GroupPath gp2("grp2", false, nullptr, nullptr, nullptr, true, nullptr);
+ GroupPath gp1("grp1", false, nullptr, nullptr, nullptr, true, "");
+ GroupPath gp2("grp2", false, nullptr, nullptr, nullptr, true, "");
EXPECT_FALSE(gp1.mergeable(&gp2));
}
@@ -328,24 +328,24 @@ TEST_F(SdcInitTest, LoopPathNotMergeable) {
// ExceptionPath::overrides tests
TEST_F(SdcInitTest, FalsePathOverrides) {
- FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
- FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
+ FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
EXPECT_TRUE(fp1.overrides(&fp2));
}
TEST_F(SdcInitTest, PathDelayOverrides) {
PathDelay pd1(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, true, nullptr);
+ false, false, 5.0f, true, "");
PathDelay pd2(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, true, nullptr);
+ false, false, 5.0f, true, "");
EXPECT_TRUE(pd1.overrides(&pd2));
}
TEST_F(SdcInitTest, MultiCyclePathOverrides) {
MultiCyclePath mcp1(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, true, nullptr);
+ true, 3, true, "");
MultiCyclePath mcp2(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, true, nullptr);
+ true, 3, true, "");
EXPECT_TRUE(mcp1.overrides(&mcp2));
}
@@ -357,15 +357,15 @@ TEST_F(SdcInitTest, FilterPathOverrides2) {
}
TEST_F(SdcInitTest, GroupPathOverrides) {
- GroupPath gp1("grp1", false, nullptr, nullptr, nullptr, true, nullptr);
- GroupPath gp2("grp1", false, nullptr, nullptr, nullptr, true, nullptr);
+ GroupPath gp1("grp1", false, nullptr, nullptr, nullptr, true, "");
+ GroupPath gp2("grp1", false, nullptr, nullptr, nullptr, true, "");
EXPECT_TRUE(gp1.overrides(&gp2));
}
// ExceptionPath::matches with min_max
TEST_F(SdcInitTest, MultiCyclePathMatches) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, true, nullptr);
+ true, 3, true, "");
EXPECT_TRUE(mcp.matches(MinMax::max(), false));
EXPECT_TRUE(mcp.matches(MinMax::min(), false));
}
@@ -388,7 +388,7 @@ TEST_F(SdcInitTest, ExceptionFromThruToPriority) {
// PathDelay specific getters
TEST_F(SdcInitTest, PathDelayGetters) {
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(),
- true, true, 5.0f, true, nullptr);
+ true, true, 5.0f, true, "");
EXPECT_FLOAT_EQ(pd.delay(), 5.0f);
EXPECT_TRUE(pd.ignoreClkLatency());
EXPECT_TRUE(pd.breakPath());
@@ -403,7 +403,7 @@ TEST_F(SdcInitTest, PathDelayGetters) {
// MultiCyclePath specific getters
TEST_F(SdcInitTest, MultiCyclePathGetters) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::max(),
- true, 5, true, nullptr);
+ true, 5, true, "");
EXPECT_EQ(mcp.pathMultiplier(), 5);
EXPECT_TRUE(mcp.useEndClk());
EXPECT_TRUE(mcp.isMultiCycle());
@@ -412,7 +412,7 @@ TEST_F(SdcInitTest, MultiCyclePathGetters) {
// MultiCyclePath pathMultiplier with MinMax
TEST_F(SdcInitTest, MultiCyclePathMultiplierMinMax) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::max(),
- true, 5, true, nullptr);
+ true, 5, true, "");
int mult_max = mcp.pathMultiplier(MinMax::max());
EXPECT_EQ(mult_max, 5);
}
@@ -420,14 +420,14 @@ TEST_F(SdcInitTest, MultiCyclePathMultiplierMinMax) {
// MultiCyclePath priority with MinMax
TEST_F(SdcInitTest, MultiCyclePathPriorityMinMax) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::max(),
- true, 5, true, nullptr);
+ true, 5, true, "");
int p = mcp.priority(MinMax::max());
EXPECT_GT(p, 0);
}
// GroupPath name and isDefault
TEST_F(SdcInitTest, GroupPathName) {
- GroupPath gp("test_group", true, nullptr, nullptr, nullptr, true, nullptr);
+ GroupPath gp("test_group", true, nullptr, nullptr, nullptr, true, "");
EXPECT_EQ(gp.name(), "test_group");
EXPECT_TRUE(gp.isDefault());
}
@@ -446,7 +446,7 @@ TEST_F(SdcInitTest, FilterPathBasic) {
// FalsePath with priority
TEST_F(SdcInitTest, FalsePathWithPriority) {
FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true,
- 4500, nullptr);
+ 4500, "");
EXPECT_EQ(fp.priority(), 4500);
}
@@ -461,16 +461,16 @@ TEST_F(SdcInitTest, LoopPathBasicProps) {
// Exception hash
TEST_F(SdcInitTest, ExceptionPathHash) {
- FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
size_t h1 = fp1.hash();
- FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
size_t h2 = fp2.hash();
EXPECT_EQ(h1, h2);
}
// ExceptionPath clone tests
TEST_F(SdcInitTest, FalsePathCloneAndCheck) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
ExceptionPath *clone = fp.clone(nullptr, nullptr, nullptr, true);
ASSERT_NE(clone, nullptr);
EXPECT_TRUE(clone->isFalse());
@@ -479,7 +479,7 @@ TEST_F(SdcInitTest, FalsePathCloneAndCheck) {
TEST_F(SdcInitTest, PathDelayCloneAndCheck) {
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, true, nullptr);
+ false, false, 5.0f, true, "");
ExceptionPath *clone = pd.clone(nullptr, nullptr, nullptr, true);
ASSERT_NE(clone, nullptr);
EXPECT_TRUE(clone->isPathDelay());
@@ -489,7 +489,7 @@ TEST_F(SdcInitTest, PathDelayCloneAndCheck) {
TEST_F(SdcInitTest, MultiCyclePathCloneAndCheck) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 4, true, nullptr);
+ true, 4, true, "");
ExceptionPath *clone = mcp.clone(nullptr, nullptr, nullptr, true);
ASSERT_NE(clone, nullptr);
EXPECT_TRUE(clone->isMultiCycle());
@@ -498,7 +498,7 @@ TEST_F(SdcInitTest, MultiCyclePathCloneAndCheck) {
}
TEST_F(SdcInitTest, GroupPathCloneAndCheck) {
- GroupPath gp("grp", false, nullptr, nullptr, nullptr, true, nullptr);
+ GroupPath gp("grp", false, nullptr, nullptr, nullptr, true, "");
ExceptionPath *clone = gp.clone(nullptr, nullptr, nullptr, true);
ASSERT_NE(clone, nullptr);
EXPECT_TRUE(clone->isGroupPath());
@@ -516,7 +516,7 @@ TEST_F(SdcInitTest, FilterPathCloneAndCheck) {
// ExceptionState constructor
TEST_F(SdcInitTest, ExceptionState) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
ExceptionState state(&fp, nullptr, 0);
EXPECT_EQ(state.exception(), &fp);
EXPECT_EQ(state.nextThru(), nullptr);
@@ -526,7 +526,7 @@ TEST_F(SdcInitTest, ExceptionState) {
// ExceptionState setNextState
TEST_F(SdcInitTest, ExceptionStateSetNextState) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
ExceptionState state1(&fp, nullptr, 0);
ExceptionState state2(&fp, nullptr, 1);
state1.setNextState(&state2);
@@ -536,7 +536,7 @@ TEST_F(SdcInitTest, ExceptionStateSetNextState) {
// ExceptionState hash
TEST_F(SdcInitTest, ExceptionStateHash) {
ASSERT_NO_THROW(( [&](){
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
ExceptionState state(&fp, nullptr, 0);
size_t h = state.hash();
EXPECT_GE(h, 0);
@@ -547,8 +547,8 @@ TEST_F(SdcInitTest, ExceptionStateHash) {
// exceptionStateLess
TEST_F(SdcInitTest, ExceptionStateLess) {
ASSERT_NO_THROW(( [&](){
- FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
- FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
+ FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
ExceptionState state1(&fp1, nullptr, 0);
ExceptionState state2(&fp2, nullptr, 0);
// Just exercise the comparator
@@ -611,7 +611,7 @@ TEST_F(SdcInitTest, SdcLatchBorrowLimitOnClock) {
waveform->push_back(0.0);
waveform->push_back(5.0);
Clock *clk = sdc->makeClock("clk_lbl", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
sdc->setLatchBorrowLimit(clk, 2.0f);
// Just exercise - borrow limit is set
@@ -627,9 +627,9 @@ TEST_F(SdcInitTest, InterClockUncertaintyEmpty) {
waveform2->push_back(3.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->makeClock("clk_icu1", nullptr, false, 10.0,
- waveform1, nullptr);
+ waveform1, "");
Clock *clk2 = sdc->makeClock("clk_icu2", nullptr, false, 6.0,
- waveform2, nullptr);
+ waveform2, "");
InterClockUncertainty icu(clk1, clk2);
EXPECT_TRUE(icu.empty());
EXPECT_EQ(icu.src(), clk1);
@@ -645,9 +645,9 @@ TEST_F(SdcInitTest, InterClockUncertaintySetAndGet) {
waveform2->push_back(3.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->makeClock("clk_icu3", nullptr, false, 10.0,
- waveform1, nullptr);
+ waveform1, "");
Clock *clk2 = sdc->makeClock("clk_icu4", nullptr, false, 6.0,
- waveform2, nullptr);
+ waveform2, "");
InterClockUncertainty icu(clk1, clk2);
icu.setUncertainty(RiseFallBoth::riseFall(), RiseFallBoth::riseFall(),
SetupHoldAll::all(), 0.1f);
@@ -669,9 +669,9 @@ TEST_F(SdcInitTest, InterClockUncertaintyRemove) {
waveform2->push_back(3.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->makeClock("clk_icu5", nullptr, false, 10.0,
- waveform1, nullptr);
+ waveform1, "");
Clock *clk2 = sdc->makeClock("clk_icu6", nullptr, false, 6.0,
- waveform2, nullptr);
+ waveform2, "");
InterClockUncertainty icu(clk1, clk2);
icu.setUncertainty(RiseFallBoth::riseFall(), RiseFallBoth::riseFall(),
SetupHoldAll::all(), 0.2f);
@@ -689,9 +689,9 @@ TEST_F(SdcInitTest, InterClockUncertaintyUncertainties) {
waveform2->push_back(3.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->makeClock("clk_icu7", nullptr, false, 10.0,
- waveform1, nullptr);
+ waveform1, "");
Clock *clk2 = sdc->makeClock("clk_icu8", nullptr, false, 6.0,
- waveform2, nullptr);
+ waveform2, "");
InterClockUncertainty icu(clk1, clk2);
const RiseFallMinMax *rfmm = icu.uncertainties(RiseFall::rise());
EXPECT_NE(rfmm, nullptr);
@@ -704,7 +704,7 @@ TEST_F(SdcInitTest, CycleAcctingConstruct2) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_ca", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
ClockEdge *rise = clk->edge(RiseFall::rise());
ClockEdge *fall = clk->edge(RiseFall::fall());
@@ -719,7 +719,7 @@ TEST_F(SdcInitTest, CycleAcctingFindDefaultArrivalSrcDelays) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_ca2", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
ClockEdge *rise = clk->edge(RiseFall::rise());
ClockEdge *fall = clk->edge(RiseFall::fall());
@@ -763,9 +763,9 @@ TEST_F(SdcInitTest, ClockSetCompare) {
waveform2->push_back(3.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->makeClock("clk_csc1", nullptr, false, 10.0,
- waveform1, nullptr);
+ waveform1, "");
Clock *clk2 = sdc->makeClock("clk_csc2", nullptr, false, 6.0,
- waveform2, nullptr);
+ waveform2, "");
ClockSet set1;
set1.insert(clk1);
ClockSet set2;
@@ -791,7 +791,7 @@ TEST_F(SdcInitTest, ExceptionPtIteratorFromOnly) {
ExceptionFrom *from = new ExceptionFrom(nullptr, nullptr, nullptr,
RiseFallBoth::riseFall(),
true, network);
- FalsePath fp(from, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp(from, nullptr, nullptr, MinMaxAll::all(), true, "");
ExceptionPtIterator iter(&fp);
int count = 0;
while (iter.hasNext()) {
@@ -915,8 +915,8 @@ TEST_F(SdcInitTest, ExceptionPathLessComparator2) {
ASSERT_NO_THROW(( [&](){
const Network *network = sta_->cmdNetwork();
ExceptionPathLess less(network);
- FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
- FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
+ FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
// Should not crash
less(&fp1, &fp2);
@@ -930,7 +930,7 @@ TEST_F(SdcInitTest, ClockRemoveSlew) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_rs", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
clk->setSlew(RiseFallBoth::riseFall(), MinMaxAll::all(), 0.5f);
clk->removeSlew();
@@ -947,7 +947,7 @@ TEST_F(SdcInitTest, ClockSlewsAccessor) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_sa", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
clk->slews();
}
@@ -959,7 +959,7 @@ TEST_F(SdcInitTest, ClockUncertaintiesAccessor) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_ua", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
// A freshly created clock has no uncertainties set yet
ClockUncertainties *unc = clk->uncertainties();
@@ -973,7 +973,7 @@ TEST_F(SdcInitTest, ClockSetRemoveUncertainty) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_sru", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
clk->setUncertainty(SetupHoldAll::all(), 0.1f);
float unc;
@@ -993,7 +993,7 @@ TEST_F(SdcInitTest, ClockGeneratedProperties) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_gp", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
EXPECT_FALSE(clk->isGenerated());
EXPECT_EQ(clk->masterClk(), nullptr);
@@ -1012,10 +1012,10 @@ TEST_F(SdcInitTest, ClkNameLess) {
waveform2->push_back(3.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clkA = sdc->makeClock("alpha", nullptr, false, 10.0,
- waveform1, nullptr);
+ waveform1, "");
Clock *clkB = sdc->makeClock("beta", nullptr, false, 6.0,
- waveform2, nullptr);
- ClkNameLess less;
+ waveform2, "");
+ ClockNameLess less;
EXPECT_TRUE(less(clkA, clkB));
EXPECT_FALSE(less(clkB, clkA));
}
@@ -1038,7 +1038,7 @@ TEST_F(SdcInitTest, ClockPropagation2) {
waveform->push_back(5.0);
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->makeClock("clk_prop", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
ASSERT_NE(clk, nullptr);
EXPECT_FALSE(clk->isPropagated());
sdc->setPropagatedClock(clk);
@@ -1124,21 +1124,21 @@ TEST_F(SdcInitTest, SdcWireloadMode2) {
////////////////////////////////////////////////////////////////
TEST_F(SdcInitTest, FalsePathMergeableSame) {
- FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
- FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
+ FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
EXPECT_TRUE(fp1.mergeable(&fp2));
}
TEST_F(SdcInitTest, FalsePathNotMergeableDiffMinMax) {
- FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::min(), true, nullptr);
- FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::max(), true, nullptr);
+ FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::min(), true, "");
+ FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::max(), true, "");
EXPECT_FALSE(fp1.mergeable(&fp2));
}
TEST_F(SdcInitTest, FalsePathNotMergeableDiffType) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(), false, false,
- 1.0e-9f, true, nullptr);
+ 1.0e-9f, true, "");
EXPECT_FALSE(fp.mergeable(&pd));
}
@@ -1148,16 +1148,16 @@ TEST_F(SdcInitTest, FalsePathNotMergeableDiffType) {
TEST_F(SdcInitTest, PathDelayMinDirection) {
PathDelay pd(nullptr, nullptr, nullptr, MinMax::min(), false, false,
- 5.0e-9f, true, nullptr);
+ 5.0e-9f, true, "");
EXPECT_TRUE(pd.matches(MinMax::min(), false));
EXPECT_FALSE(pd.matches(MinMax::max(), false));
}
TEST_F(SdcInitTest, PathDelayTighterMin) {
PathDelay pd1(nullptr, nullptr, nullptr, MinMax::min(), false, false,
- 5.0e-9f, true, nullptr);
+ 5.0e-9f, true, "");
PathDelay pd2(nullptr, nullptr, nullptr, MinMax::min(), false, false,
- 2.0e-9f, true, nullptr);
+ 2.0e-9f, true, "");
// For min, larger delay is tighter
EXPECT_TRUE(pd1.tighterThan(&pd2));
EXPECT_FALSE(pd2.tighterThan(&pd1));
@@ -1169,20 +1169,20 @@ TEST_F(SdcInitTest, PathDelayTighterMin) {
TEST_F(SdcInitTest, PathDelayHash) {
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(), false, false,
- 5.0e-9f, true, nullptr);
+ 5.0e-9f, true, "");
size_t h = pd.hash();
EXPECT_GE(h, 0u);
}
TEST_F(SdcInitTest, MultiCyclePathHash) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, true, nullptr);
+ true, 3, true, "");
size_t h = mcp.hash();
EXPECT_GE(h, 0u);
}
TEST_F(SdcInitTest, GroupPathHash) {
- GroupPath gp("grp", false, nullptr, nullptr, nullptr, true, nullptr);
+ GroupPath gp("grp", false, nullptr, nullptr, nullptr, true, "");
size_t h = gp.hash();
EXPECT_GE(h, 0u);
}
@@ -1204,27 +1204,27 @@ TEST_F(SdcInitTest, LoopPathHash) {
////////////////////////////////////////////////////////////////
TEST_F(SdcInitTest, FalsePathTypeString2) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), true, "");
const char *ts = fp.typeString();
EXPECT_NE(ts, nullptr);
}
TEST_F(SdcInitTest, PathDelayTypeString2) {
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(), false, false,
- 1.0e-9f, true, nullptr);
+ 1.0e-9f, true, "");
const char *ts = pd.typeString();
EXPECT_NE(ts, nullptr);
}
TEST_F(SdcInitTest, MultiCyclePathTypeString2) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 2, true, nullptr);
+ true, 2, true, "");
const char *ts = mcp.typeString();
EXPECT_NE(ts, nullptr);
}
TEST_F(SdcInitTest, GroupPathTypeString2) {
- GroupPath gp("g", false, nullptr, nullptr, nullptr, true, nullptr);
+ GroupPath gp("g", false, nullptr, nullptr, nullptr, true, "");
const char *ts = gp.typeString();
EXPECT_NE(ts, nullptr);
}
@@ -1243,7 +1243,7 @@ TEST_F(SdcInitTest, ClockEdgeTimeAccess) {
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0);
waveform->push_back(5.0);
- sta_->makeClock("et_clk", nullptr, false, 10.0, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("et_clk", nullptr, false, 10.0, waveform, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("et_clk");
ClockEdge *rise_edge = clk->edge(RiseFall::rise());
@@ -1262,16 +1262,16 @@ TEST_F(SdcInitTest, ClockMakeClock) {
waveform->push_back(0.0);
waveform->push_back(5.0);
Clock *clk = sdc->makeClock("direct_clk", nullptr, false, 10.0,
- waveform, nullptr);
+ waveform, "");
EXPECT_NE(clk, nullptr);
- EXPECT_STREQ(clk->name(), "direct_clk");
+ EXPECT_EQ(clk->name(), "direct_clk");
}
TEST_F(SdcInitTest, ClockLeafPins) {
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0);
waveform->push_back(5.0);
- sta_->makeClock("lp_clk", nullptr, false, 10.0, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("lp_clk", nullptr, false, 10.0, waveform, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("lp_clk");
const PinSet &pins = clk->leafPins();
@@ -1283,7 +1283,7 @@ TEST_F(SdcInitTest, ClockLeafPins) {
////////////////////////////////////////////////////////////////
TEST_F(SdcInitTest, SdcMakeAndDeleteException) {
- sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
Sdc *sdc = sta_->cmdSdc();
EXPECT_FALSE(sdc->exceptions().empty());
sdc->deleteExceptions();
@@ -1293,7 +1293,7 @@ TEST_F(SdcInitTest, SdcMakeAndDeleteException) {
TEST_F(SdcInitTest, SdcMultiCyclePathWithEndClk) {
sta_->makeMulticyclePath(nullptr, nullptr, nullptr,
MinMaxAll::max(),
- true, 3, nullptr, sta_->cmdSdc());
+ true, 3, "", sta_->cmdSdc());
Sdc *sdc = sta_->cmdSdc();
EXPECT_FALSE(sdc->exceptions().empty());
}
@@ -1301,7 +1301,7 @@ TEST_F(SdcInitTest, SdcMultiCyclePathWithEndClk) {
TEST_F(SdcInitTest, SdcMultiCyclePathWithStartClk) {
sta_->makeMulticyclePath(nullptr, nullptr, nullptr,
MinMaxAll::min(),
- false, 2, nullptr, sta_->cmdSdc());
+ false, 2, "", sta_->cmdSdc());
Sdc *sdc = sta_->cmdSdc();
EXPECT_FALSE(sdc->exceptions().empty());
}
@@ -1375,11 +1375,11 @@ TEST_F(SdcInitTest, ClockGroupsPhysicallyExclusive) {
FloatSeq *wave = new FloatSeq;
wave->push_back(0.0);
wave->push_back(5.0);
- sta_->makeClock("pe_clk", nullptr, false, 10.0, wave, nullptr, sta_->cmdMode());
+ sta_->makeClock("pe_clk", nullptr, false, 10.0, wave, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("pe_clk");
- ClockGroups *groups = sta_->makeClockGroups("pe_grp", false, true, false, false, nullptr, sta_->cmdSdc());
+ ClockGroups *groups = sta_->makeClockGroups("pe_grp", false, true, false, false, "", sta_->cmdSdc());
ClockSet *clk_set = new ClockSet;
clk_set->insert(clk);
sta_->makeClockGroup(groups, clk_set, sta_->cmdSdc());
@@ -1393,11 +1393,11 @@ TEST_F(SdcInitTest, ClockGroupsAsynchronous) {
FloatSeq *wave = new FloatSeq;
wave->push_back(0.0);
wave->push_back(5.0);
- sta_->makeClock("async_clk", nullptr, false, 10.0, wave, nullptr, sta_->cmdMode());
+ sta_->makeClock("async_clk", nullptr, false, 10.0, wave, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("async_clk");
- ClockGroups *groups = sta_->makeClockGroups("async_grp", false, false, true, false, nullptr, sta_->cmdSdc());
+ ClockGroups *groups = sta_->makeClockGroups("async_grp", false, false, true, false, "", sta_->cmdSdc());
ClockSet *clk_set = new ClockSet;
clk_set->insert(clk);
sta_->makeClockGroup(groups, clk_set, sta_->cmdSdc());
@@ -1428,7 +1428,7 @@ TEST_F(SdcInitTest, ClockSetUncertaintyMinMax) {
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0);
waveform->push_back(5.0);
- sta_->makeClock("unc_mm_clk", nullptr, false, 10.0, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("unc_mm_clk", nullptr, false, 10.0, waveform, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("unc_mm_clk");
clk->setUncertainty(MinMax::min(), 0.05f);
@@ -1469,7 +1469,7 @@ TEST_F(SdcInitTest, LoopPathTighterThan) {
}
TEST_F(SdcInitTest, GroupPathAsString) {
- GroupPath gp("grp", false, nullptr, nullptr, nullptr, true, nullptr);
+ GroupPath gp("grp", false, nullptr, nullptr, nullptr, true, "");
std::string str = gp.to_string(sta_->cmdNetwork());
EXPECT_FALSE(str.empty());
}
@@ -1494,17 +1494,17 @@ TEST_F(SdcInitTest, FindClocksMatchingWildcard) {
FloatSeq *wave1 = new FloatSeq;
wave1->push_back(0.0);
wave1->push_back(5.0);
- sta_->makeClock("sys_clk_a", nullptr, false, 10.0, wave1, nullptr, sta_->cmdMode());
+ sta_->makeClock("sys_clk_a", nullptr, false, 10.0, wave1, "", sta_->cmdMode());
FloatSeq *wave2 = new FloatSeq;
wave2->push_back(0.0);
wave2->push_back(2.5);
- sta_->makeClock("sys_clk_b", nullptr, false, 5.0, wave2, nullptr, sta_->cmdMode());
+ sta_->makeClock("sys_clk_b", nullptr, false, 5.0, wave2, "", sta_->cmdMode());
FloatSeq *wave3 = new FloatSeq;
wave3->push_back(0.0);
wave3->push_back(1.0);
- sta_->makeClock("io_clk", nullptr, false, 2.0, wave3, nullptr, sta_->cmdMode());
+ sta_->makeClock("io_clk", nullptr, false, 2.0, wave3, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
PatternMatch pattern("sys_*");
@@ -1523,7 +1523,7 @@ TEST_F(SdcInitTest, FindClocksMatchingWildcard) {
TEST_F(SdcInitTest, SdcPathDelaysWithoutToAfterAdd) {
// Add a path delay without a "to" endpoint
sta_->makePathDelay(nullptr, nullptr, nullptr,
- MinMax::max(), false, false, 5.0e-9, nullptr, sta_->cmdSdc());
+ MinMax::max(), false, false, 5.0e-9, "", sta_->cmdSdc());
Sdc *sdc = sta_->cmdSdc();
EXPECT_TRUE(sdc->pathDelaysWithoutTo());
}
@@ -1539,12 +1539,12 @@ TEST_F(SdcInitTest, SdcComplexSequence) {
FloatSeq *w1 = new FloatSeq;
w1->push_back(0.0);
w1->push_back(5.0);
- sta_->makeClock("seq_clk1", nullptr, false, 10.0, w1, nullptr, sta_->cmdMode());
+ sta_->makeClock("seq_clk1", nullptr, false, 10.0, w1, "", sta_->cmdMode());
FloatSeq *w2 = new FloatSeq;
w2->push_back(0.0);
w2->push_back(2.5);
- sta_->makeClock("seq_clk2", nullptr, false, 5.0, w2, nullptr, sta_->cmdMode());
+ sta_->makeClock("seq_clk2", nullptr, false, 5.0, w2, "", sta_->cmdMode());
// Set various constraints
sdc->setMaxArea(1000.0);
@@ -1557,10 +1557,10 @@ TEST_F(SdcInitTest, SdcComplexSequence) {
EXPECT_EQ(sdc->analysisType(), AnalysisType::ocv);
// Make exception paths
- sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
sta_->makeMulticyclePath(nullptr, nullptr, nullptr,
- MinMaxAll::all(), true, 4, nullptr, sta_->cmdSdc());
- sta_->makeGroupPath("test_grp", false, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ MinMaxAll::all(), true, 4, "", sta_->cmdSdc());
+ sta_->makeGroupPath("test_grp", false, nullptr, nullptr, nullptr, "", sta_->cmdSdc());
EXPECT_FALSE(sdc->exceptions().empty());
EXPECT_TRUE(sta_->isPathGroupName("test_grp", sta_->cmdSdc()));
@@ -1578,7 +1578,7 @@ TEST_F(SdcInitTest, ClockPropagateCycle) {
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0);
waveform->push_back(5.0);
- sta_->makeClock("prop_cycle_clk", nullptr, false, 10.0, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("prop_cycle_clk", nullptr, false, 10.0, waveform, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("prop_cycle_clk");
@@ -1599,11 +1599,11 @@ TEST_F(SdcInitTest, InterClockUncertaintySetGet) {
FloatSeq *w1 = new FloatSeq;
w1->push_back(0.0);
w1->push_back(5.0);
- sta_->makeClock("icu_clk1", nullptr, false, 10.0, w1, nullptr, sta_->cmdMode());
+ sta_->makeClock("icu_clk1", nullptr, false, 10.0, w1, "", sta_->cmdMode());
FloatSeq *w2 = new FloatSeq;
w2->push_back(0.0);
w2->push_back(2.5);
- sta_->makeClock("icu_clk2", nullptr, false, 5.0, w2, nullptr, sta_->cmdMode());
+ sta_->makeClock("icu_clk2", nullptr, false, 5.0, w2, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->findClock("icu_clk1");
Clock *clk2 = sdc->findClock("icu_clk2");
@@ -1788,7 +1788,7 @@ TEST_F(SdcInitTest, ClockLatencyConstruction) {
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0);
waveform->push_back(5.0);
- sta_->makeClock("lat_clk", nullptr, false, 10.0, waveform, nullptr, sta_->cmdMode());
+ sta_->makeClock("lat_clk", nullptr, false, 10.0, waveform, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("lat_clk");
ClockLatency lat(clk, nullptr);
@@ -2202,7 +2202,7 @@ TEST_F(SdcInitTest, ExceptionPathPriorities) {
// FalsePath creation and type
TEST_F(SdcInitTest, FalsePathType) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_TRUE(fp.isFalse());
EXPECT_FALSE(fp.isLoop());
EXPECT_FALSE(fp.isMultiCycle());
@@ -2214,14 +2214,14 @@ TEST_F(SdcInitTest, FalsePathType) {
// FalsePath priority
TEST_F(SdcInitTest, FalsePathPriority) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_EQ(fp.typePriority(), ExceptionPath::falsePathPriority());
}
// PathDelay creation and type
TEST_F(SdcInitTest, PathDelayType) {
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, false, nullptr);
+ false, false, 5.0f, false, "");
EXPECT_TRUE(pd.isPathDelay());
EXPECT_FALSE(pd.isFalse());
EXPECT_EQ(pd.type(), ExceptionPathType::path_delay);
@@ -2231,26 +2231,26 @@ TEST_F(SdcInitTest, PathDelayType) {
// PathDelay ignoreClkLatency
TEST_F(SdcInitTest, PathDelayIgnoreClkLatency) {
PathDelay pd1(nullptr, nullptr, nullptr, MinMax::max(),
- true, false, 3.0f, false, nullptr);
+ true, false, 3.0f, false, "");
EXPECT_TRUE(pd1.ignoreClkLatency());
PathDelay pd2(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 3.0f, false, nullptr);
+ false, false, 3.0f, false, "");
EXPECT_FALSE(pd2.ignoreClkLatency());
}
// PathDelay breakPath
TEST_F(SdcInitTest, PathDelayBreakPath) {
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(),
- false, true, 3.0f, false, nullptr);
+ false, true, 3.0f, false, "");
EXPECT_TRUE(pd.breakPath());
}
// PathDelay tighterThan
TEST_F(SdcInitTest, PathDelayTighterThanMin) {
PathDelay pd1(nullptr, nullptr, nullptr, MinMax::min(),
- false, false, 3.0f, false, nullptr);
+ false, false, 3.0f, false, "");
PathDelay pd2(nullptr, nullptr, nullptr, MinMax::min(),
- false, false, 5.0f, false, nullptr);
+ false, false, 5.0f, false, "");
// For min, larger delay is tighter
EXPECT_TRUE(pd2.tighterThan(&pd1));
}
@@ -2258,9 +2258,9 @@ TEST_F(SdcInitTest, PathDelayTighterThanMin) {
// PathDelay tighterThan max
TEST_F(SdcInitTest, PathDelayTighterThanMax) {
PathDelay pd1(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 3.0f, false, nullptr);
+ false, false, 3.0f, false, "");
PathDelay pd2(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, false, nullptr);
+ false, false, 5.0f, false, "");
// For max, smaller delay is tighter
EXPECT_TRUE(pd1.tighterThan(&pd2));
}
@@ -2268,7 +2268,7 @@ TEST_F(SdcInitTest, PathDelayTighterThanMax) {
// MultiCyclePath creation and type
TEST_F(SdcInitTest, MultiCyclePathType) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, false, nullptr);
+ true, 3, false, "");
EXPECT_TRUE(mcp.isMultiCycle());
EXPECT_EQ(mcp.type(), ExceptionPathType::multi_cycle);
EXPECT_EQ(mcp.pathMultiplier(), 3);
@@ -2278,7 +2278,7 @@ TEST_F(SdcInitTest, MultiCyclePathType) {
// MultiCyclePath with start clk
TEST_F(SdcInitTest, MultiCyclePathStartClk) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::all(),
- false, 2, false, nullptr);
+ false, 2, false, "");
EXPECT_FALSE(mcp.useEndClk());
EXPECT_EQ(mcp.pathMultiplier(), 2);
}
@@ -2286,9 +2286,9 @@ TEST_F(SdcInitTest, MultiCyclePathStartClk) {
// MultiCyclePath tighterThan
TEST_F(SdcInitTest, MultiCyclePathTighterThan2) {
MultiCyclePath mcp1(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 2, false, nullptr);
+ true, 2, false, "");
MultiCyclePath mcp2(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 4, false, nullptr);
+ true, 4, false, "");
// For setup, larger multiplier is tighter
bool t1 = mcp1.tighterThan(&mcp2);
bool t2 = mcp2.tighterThan(&mcp1);
@@ -2305,7 +2305,7 @@ TEST_F(SdcInitTest, FilterPathType) {
// GroupPath creation and type
TEST_F(SdcInitTest, GroupPathType) {
- GroupPath gp("test_group", false, nullptr, nullptr, nullptr, false, nullptr);
+ GroupPath gp("test_group", false, nullptr, nullptr, nullptr, false, "");
EXPECT_TRUE(gp.isGroupPath());
EXPECT_EQ(gp.type(), ExceptionPathType::group_path);
EXPECT_EQ(gp.name(), "test_group");
@@ -2314,7 +2314,7 @@ TEST_F(SdcInitTest, GroupPathType) {
// GroupPath default
TEST_F(SdcInitTest, GroupPathDefault) {
- GroupPath gp("default_group", true, nullptr, nullptr, nullptr, false, nullptr);
+ GroupPath gp("default_group", true, nullptr, nullptr, nullptr, false, "");
EXPECT_TRUE(gp.isDefault());
}
@@ -2328,7 +2328,7 @@ TEST_F(SdcInitTest, LoopPathType) {
// ExceptionPath minMax
TEST_F(SdcInitTest, ExceptionPathMinMax) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::min(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::min(), false, "");
EXPECT_EQ(fp.minMax(), MinMaxAll::min());
EXPECT_TRUE(fp.matches(MinMax::min(), true));
EXPECT_FALSE(fp.matches(MinMax::max(), true));
@@ -2336,47 +2336,47 @@ TEST_F(SdcInitTest, ExceptionPathMinMax) {
// ExceptionPath matches min/max all
TEST_F(SdcInitTest, ExceptionPathMatchesAll) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_TRUE(fp.matches(MinMax::min(), true));
EXPECT_TRUE(fp.matches(MinMax::max(), true));
}
// FalsePath hash
TEST_F(SdcInitTest, FalsePathHash) {
- FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
- FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
+ FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
// Same structure should have same hash
EXPECT_EQ(fp1.hash(), fp2.hash());
}
// FalsePath overrides
TEST_F(SdcInitTest, FalsePathOverrides2) {
- FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
- FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp1(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
+ FalsePath fp2(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_TRUE(fp1.overrides(&fp2));
}
// PathDelay hash
TEST_F(SdcInitTest, PathDelayHashR8) {
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, false, nullptr);
+ false, false, 5.0f, false, "");
size_t h = pd.hash();
EXPECT_GT(h, 0u);
}
// FalsePath not mergeable with PathDelay
TEST_F(SdcInitTest, FalsePathNotMergeablePathDelay) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
PathDelay pd(nullptr, nullptr, nullptr, MinMax::max(),
- false, false, 5.0f, false, nullptr);
+ false, false, 5.0f, false, "");
EXPECT_FALSE(fp.mergeable(&pd));
}
// GroupPath tighterThan
TEST_F(SdcInitTest, GroupPathTighterThan2) {
ASSERT_NO_THROW(( [&](){
- GroupPath gp1("g1", false, nullptr, nullptr, nullptr, false, nullptr);
- GroupPath gp2("g2", false, nullptr, nullptr, nullptr, false, nullptr);
+ GroupPath gp1("g1", false, nullptr, nullptr, nullptr, false, "");
+ GroupPath gp2("g2", false, nullptr, nullptr, nullptr, false, "");
// Group paths have no value to compare
gp1.tighterThan(&gp2);
}() ));
@@ -2393,57 +2393,57 @@ TEST_F(SdcInitTest, FilterPathTighterThan2) {
// ExceptionPath id
TEST_F(SdcInitTest, ExceptionPathId) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
fp.setId(42);
EXPECT_EQ(fp.id(), 42u);
}
// ExceptionPath setPriority
TEST_F(SdcInitTest, ExceptionPathSetPriority) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
fp.setPriority(999);
EXPECT_EQ(fp.priority(), 999);
}
// ExceptionPath useEndClk default
TEST_F(SdcInitTest, ExceptionPathUseEndClkDefault) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_FALSE(fp.useEndClk());
}
// ExceptionPath pathMultiplier default
TEST_F(SdcInitTest, ExceptionPathPathMultiplierDefault) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_EQ(fp.pathMultiplier(), 0);
}
// ExceptionPath delay default
TEST_F(SdcInitTest, ExceptionPathDelayDefault) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_FLOAT_EQ(fp.delay(), 0.0f);
}
// ExceptionPath name default
TEST_F(SdcInitTest, ExceptionPathNameDefault) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_EQ(fp.name(), "");
}
// ExceptionPath isDefault
TEST_F(SdcInitTest, ExceptionPathIsDefault) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_FALSE(fp.isDefault());
}
// ExceptionPath ignoreClkLatency default
TEST_F(SdcInitTest, ExceptionPathIgnoreClkLatencyDefault) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_FALSE(fp.ignoreClkLatency());
}
// ExceptionPath breakPath default
TEST_F(SdcInitTest, ExceptionPathBreakPathDefault) {
- FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, nullptr);
+ FalsePath fp(nullptr, nullptr, nullptr, MinMaxAll::all(), false, "");
EXPECT_FALSE(fp.breakPath());
}
@@ -2452,7 +2452,7 @@ TEST_F(SdcInitTest, ClockSlewSetGet2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_slew_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_slew_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_slew_clk");
ASSERT_NE(clk, nullptr);
@@ -2469,7 +2469,7 @@ TEST_F(SdcInitTest, ClockRemoveSlew2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_rslew_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_rslew_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_rslew_clk");
ASSERT_NE(clk, nullptr);
@@ -2486,7 +2486,7 @@ TEST_F(SdcInitTest, ClockSlewsAccessor2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_slews_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_slews_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_slews_clk");
ASSERT_NE(clk, nullptr);
@@ -2500,7 +2500,7 @@ TEST_F(SdcInitTest, ClockPeriod) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(10.0);
- sta_->makeClock("r8_per_clk", nullptr, false, 20.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_per_clk", nullptr, false, 20.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_per_clk");
ASSERT_NE(clk, nullptr);
@@ -2512,7 +2512,7 @@ TEST_F(SdcInitTest, ClockPeriodAccess) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(12.5);
- sta_->makeClock("r8_pera_clk", nullptr, false, 25.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_pera_clk", nullptr, false, 25.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_pera_clk");
ASSERT_NE(clk, nullptr);
@@ -2524,7 +2524,7 @@ TEST_F(SdcInitTest, ClockIsVirtual2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_virt_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_virt_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_virt_clk");
ASSERT_NE(clk, nullptr);
@@ -2537,7 +2537,7 @@ TEST_F(SdcInitTest, ClockIsPropagated) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_prop_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_prop_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_prop_clk");
ASSERT_NE(clk, nullptr);
@@ -2552,7 +2552,7 @@ TEST_F(SdcInitTest, ClockIsIdeal) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_ideal_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_ideal_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_ideal_clk");
ASSERT_NE(clk, nullptr);
@@ -2564,7 +2564,7 @@ TEST_F(SdcInitTest, ClockEdge) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_edge_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_edge_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_edge_clk");
ASSERT_NE(clk, nullptr);
@@ -2580,7 +2580,7 @@ TEST_F(SdcInitTest, ClockEdgeProperties2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_edgep_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_edgep_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_edgep_clk");
ASSERT_NE(clk, nullptr);
@@ -2596,7 +2596,7 @@ TEST_F(SdcInitTest, ClockEdgeOpposite2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_opp_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_opp_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_opp_clk");
ASSERT_NE(clk, nullptr);
@@ -2611,7 +2611,7 @@ TEST_F(SdcInitTest, ClockEdgePulseWidth2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_pw_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_pw_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_pw_clk");
ASSERT_NE(clk, nullptr);
@@ -2625,7 +2625,7 @@ TEST_F(SdcInitTest, ClockEdgeIndex) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_idx_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_idx_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_idx_clk");
ASSERT_NE(clk, nullptr);
@@ -2639,7 +2639,7 @@ TEST_F(SdcInitTest, ClockUncertainty2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_unc_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_unc_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_unc_clk");
ASSERT_NE(clk, nullptr);
@@ -2656,7 +2656,7 @@ TEST_F(SdcInitTest, ClockRemoveUncertainty) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_runc_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_runc_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_runc_clk");
ASSERT_NE(clk, nullptr);
@@ -2673,7 +2673,7 @@ TEST_F(SdcInitTest, ClockIsGenerated) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_gen_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_gen_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_gen_clk");
ASSERT_NE(clk, nullptr);
@@ -2685,7 +2685,7 @@ TEST_F(SdcInitTest, ClockAddToPins) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_atp_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_atp_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_atp_clk");
ASSERT_NE(clk, nullptr);
@@ -2700,7 +2700,7 @@ TEST_F(SdcInitTest, ClockWaveform) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_wf_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_wf_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_wf_clk");
ASSERT_NE(clk, nullptr);
@@ -2714,11 +2714,11 @@ TEST_F(SdcInitTest, ClockIndex2) {
FloatSeq *wf1 = new FloatSeq;
wf1->push_back(0.0);
wf1->push_back(5.0);
- sta_->makeClock("r8_idx1_clk", nullptr, false, 10.0, wf1, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_idx1_clk", nullptr, false, 10.0, wf1, "", sta_->cmdMode());
FloatSeq *wf2 = new FloatSeq;
wf2->push_back(0.0);
wf2->push_back(10.0);
- sta_->makeClock("r8_idx2_clk", nullptr, false, 20.0, wf2, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_idx2_clk", nullptr, false, 20.0, wf2, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->findClock("r8_idx1_clk");
Clock *clk2 = sdc->findClock("r8_idx2_clk");
@@ -2732,7 +2732,7 @@ TEST_F(SdcInitTest, ClockCombinational) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_comb_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_comb_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_comb_clk");
ASSERT_NE(clk, nullptr);
@@ -2745,11 +2745,11 @@ TEST_F(SdcInitTest, InterClockUncertaintyConstruct) {
FloatSeq *wf1 = new FloatSeq;
wf1->push_back(0.0);
wf1->push_back(5.0);
- sta_->makeClock("r8_icus_clk", nullptr, false, 10.0, wf1, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_icus_clk", nullptr, false, 10.0, wf1, "", sta_->cmdMode());
FloatSeq *wf2 = new FloatSeq;
wf2->push_back(0.0);
wf2->push_back(5.0);
- sta_->makeClock("r8_icut_clk", nullptr, false, 10.0, wf2, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_icut_clk", nullptr, false, 10.0, wf2, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->findClock("r8_icus_clk");
Clock *clk2 = sdc->findClock("r8_icut_clk");
@@ -2764,11 +2764,11 @@ TEST_F(SdcInitTest, InterClockUncertaintySetGet2) {
FloatSeq *wf1 = new FloatSeq;
wf1->push_back(0.0);
wf1->push_back(5.0);
- sta_->makeClock("r8_icu2s_clk", nullptr, false, 10.0, wf1, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_icu2s_clk", nullptr, false, 10.0, wf1, "", sta_->cmdMode());
FloatSeq *wf2 = new FloatSeq;
wf2->push_back(0.0);
wf2->push_back(5.0);
- sta_->makeClock("r8_icu2t_clk", nullptr, false, 10.0, wf2, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_icu2t_clk", nullptr, false, 10.0, wf2, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->findClock("r8_icu2s_clk");
Clock *clk2 = sdc->findClock("r8_icu2t_clk");
@@ -2789,11 +2789,11 @@ TEST_F(SdcInitTest, InterClockUncertaintyRemove2) {
FloatSeq *wf1 = new FloatSeq;
wf1->push_back(0.0);
wf1->push_back(5.0);
- sta_->makeClock("r8_icu3s_clk", nullptr, false, 10.0, wf1, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_icu3s_clk", nullptr, false, 10.0, wf1, "", sta_->cmdMode());
FloatSeq *wf2 = new FloatSeq;
wf2->push_back(0.0);
wf2->push_back(5.0);
- sta_->makeClock("r8_icu3t_clk", nullptr, false, 10.0, wf2, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_icu3t_clk", nullptr, false, 10.0, wf2, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->findClock("r8_icu3s_clk");
Clock *clk2 = sdc->findClock("r8_icu3t_clk");
@@ -2810,11 +2810,11 @@ TEST_F(SdcInitTest, InterClockUncertaintyAccessor) {
FloatSeq *wf1 = new FloatSeq;
wf1->push_back(0.0);
wf1->push_back(5.0);
- sta_->makeClock("r8_icu4s_clk", nullptr, false, 10.0, wf1, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_icu4s_clk", nullptr, false, 10.0, wf1, "", sta_->cmdMode());
FloatSeq *wf2 = new FloatSeq;
wf2->push_back(0.0);
wf2->push_back(5.0);
- sta_->makeClock("r8_icu4t_clk", nullptr, false, 10.0, wf2, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_icu4t_clk", nullptr, false, 10.0, wf2, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->findClock("r8_icu4s_clk");
Clock *clk2 = sdc->findClock("r8_icu4t_clk");
@@ -2874,7 +2874,7 @@ TEST_F(SdcInitTest, SdcPropagatedClock) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_propt_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_propt_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_propt_clk");
ASSERT_NE(clk, nullptr);
@@ -2889,7 +2889,7 @@ TEST_F(SdcInitTest, SdcSetClockSlew2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_sslew_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_sslew_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_sslew_clk");
ASSERT_NE(clk, nullptr);
@@ -2904,7 +2904,7 @@ TEST_F(SdcInitTest, SdcRemoveClockSlew) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_srslew_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_srslew_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_srslew_clk");
ASSERT_NE(clk, nullptr);
@@ -2920,7 +2920,7 @@ TEST_F(SdcInitTest, SdcSetClockLatency2) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_slat_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_slat_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_slat_clk");
ASSERT_NE(clk, nullptr);
@@ -2939,7 +2939,7 @@ TEST_F(SdcInitTest, SdcRemoveClockLatency) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_srlat_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_srlat_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_srlat_clk");
ASSERT_NE(clk, nullptr);
@@ -2965,7 +2965,7 @@ TEST_F(SdcInitTest, SdcClockLatencyFloat) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_slatf_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_slatf_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_slatf_clk");
ASSERT_NE(clk, nullptr);
@@ -2980,7 +2980,7 @@ TEST_F(SdcInitTest, SdcClockInsertion) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_sins_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_sins_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_sins_clk");
ASSERT_NE(clk, nullptr);
@@ -2996,7 +2996,7 @@ TEST_F(SdcInitTest, SdcRemoveClockInsertion) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_srins_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_srins_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_srins_clk");
ASSERT_NE(clk, nullptr);
@@ -3021,7 +3021,7 @@ TEST_F(SdcInitTest, SdcSetLatchBorrowLimit) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_lbl_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_lbl_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_lbl_clk");
ASSERT_NE(clk, nullptr);
@@ -3034,7 +3034,7 @@ TEST_F(SdcInitTest, SdcRemoveClock) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_rem_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_rem_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_rem_clk");
ASSERT_NE(clk, nullptr);
@@ -3213,11 +3213,11 @@ TEST_F(SdcInitTest, ClkCmp) {
FloatSeq *wf1 = new FloatSeq;
wf1->push_back(0.0);
wf1->push_back(5.0);
- sta_->makeClock("r8_cmpa_clk", nullptr, false, 10.0, wf1, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_cmpa_clk", nullptr, false, 10.0, wf1, "", sta_->cmdMode());
FloatSeq *wf2 = new FloatSeq;
wf2->push_back(0.0);
wf2->push_back(5.0);
- sta_->makeClock("r8_cmpb_clk", nullptr, false, 10.0, wf2, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_cmpb_clk", nullptr, false, 10.0, wf2, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk1 = sdc->findClock("r8_cmpa_clk");
Clock *clk2 = sdc->findClock("r8_cmpb_clk");
@@ -3233,7 +3233,7 @@ TEST_F(SdcInitTest, ClkEdgeCmp) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_ecmp_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_ecmp_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_ecmp_clk");
ASSERT_NE(clk, nullptr);
@@ -3248,7 +3248,7 @@ TEST_F(SdcInitTest, ClkEdgeLess) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_eless_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_eless_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_eless_clk");
ASSERT_NE(clk, nullptr);
@@ -3265,11 +3265,11 @@ TEST_F(SdcInitTest, ClockNameLess) {
FloatSeq *wf1 = new FloatSeq;
wf1->push_back(0.0);
wf1->push_back(5.0);
- sta_->makeClock("r8_aaa_clk", nullptr, false, 10.0, wf1, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_aaa_clk", nullptr, false, 10.0, wf1, "", sta_->cmdMode());
FloatSeq *wf2 = new FloatSeq;
wf2->push_back(0.0);
wf2->push_back(5.0);
- sta_->makeClock("r8_zzz_clk", nullptr, false, 10.0, wf2, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_zzz_clk", nullptr, false, 10.0, wf2, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk_a = sdc->findClock("r8_aaa_clk");
Clock *clk_z = sdc->findClock("r8_zzz_clk");
@@ -3294,7 +3294,7 @@ TEST_F(SdcInitTest, SdcClockGatingCheckOnClock) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_cg_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_cg_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_cg_clk");
ASSERT_NE(clk, nullptr);
@@ -3308,7 +3308,7 @@ TEST_F(SdcInitTest, ClockSlewLimit) {
FloatSeq *wf = new FloatSeq;
wf->push_back(0.0);
wf->push_back(5.0);
- sta_->makeClock("r8_sl_clk", nullptr, false, 10.0, wf, nullptr, sta_->cmdMode());
+ sta_->makeClock("r8_sl_clk", nullptr, false, 10.0, wf, "", sta_->cmdMode());
Sdc *sdc = sta_->cmdSdc();
Clock *clk = sdc->findClock("r8_sl_clk");
ASSERT_NE(clk, nullptr);
@@ -3355,7 +3355,7 @@ TEST_F(SdcInitTest, ExceptionFromHasObjectsEmpty) {
// MultiCyclePath matches min/max
TEST_F(SdcInitTest, MultiCyclePathMatchesMinMax) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, false, nullptr);
+ true, 3, false, "");
EXPECT_TRUE(mcp.matches(MinMax::min(), false));
EXPECT_TRUE(mcp.matches(MinMax::max(), false));
}
@@ -3363,7 +3363,7 @@ TEST_F(SdcInitTest, MultiCyclePathMatchesMinMax) {
// MultiCyclePath pathMultiplier with min_max
TEST_F(SdcInitTest, MultiCyclePathMultiplierWithMinMax2) {
MultiCyclePath mcp(nullptr, nullptr, nullptr, MinMaxAll::all(),
- true, 3, false, nullptr);
+ true, 3, false, "");
int mult_max = mcp.pathMultiplier(MinMax::max());
EXPECT_EQ(mult_max, 3);
}
diff --git a/sdc/test/sdc_filter_query.ok b/sdc/test/sdc_filter_query.ok
index fc56d8fa..d2becfa7 100644
--- a/sdc/test/sdc_filter_query.ok
+++ b/sdc/test/sdc_filter_query.ok
@@ -23,7 +23,7 @@ group_path_names = grp_io grp_reg2reg
is_path_group_name grp_reg2reg = 1
is_path_group_name nonexistent = 0
filter_ports direction == input: 5
-filter_clocks period == 10: 0
+filter_clocks is_virtual == 0: 2
filter_lib_cells is_buffer: 9
filter_insts ref_name =~ BUF*: 1
filter_pins direction == input: 1
diff --git a/sdc/test/sdc_filter_query.tcl b/sdc/test/sdc_filter_query.tcl
index 44085855..209cb0fe 100644
--- a/sdc/test/sdc_filter_query.tcl
+++ b/sdc/test/sdc_filter_query.tcl
@@ -138,32 +138,32 @@ puts "is_path_group_name nonexistent = $is_gp"
# filter_ports
set all_ports [get_ports *]
-set filtered [sta::filter_ports direction == input $all_ports]
+set filtered [sta::filter_ports "direction==input" $all_ports 0]
puts "filter_ports direction == input: [llength $filtered]"
# filter_clocks
set all_clks [get_clocks *]
-set filtered [sta::filter_clocks period == 10.000 $all_clks]
-puts "filter_clocks period == 10: [llength $filtered]"
+set filtered [sta::filter_clocks "is_virtual==0" $all_clks 1]
+puts "filter_clocks is_virtual == 0: [llength $filtered]"
# filter_lib_cells
set all_cells [get_lib_cells NangateOpenCellLibrary/*]
-set filtered [sta::filter_lib_cells is_buffer == 1 $all_cells]
+set filtered [sta::filter_lib_cells "is_buffer==1" $all_cells 1]
puts "filter_lib_cells is_buffer: [llength $filtered]"
# filter_insts
set all_insts [get_cells *]
-set filtered [sta::filter_insts ref_name =~ "BUF*" $all_insts]
+set filtered [sta::filter_insts "ref_name=~BUF*" $all_insts 0]
puts "filter_insts ref_name =~ BUF*: [llength $filtered]"
# filter_pins
set all_pins [get_pins buf1/*]
-set filtered [sta::filter_pins direction == input $all_pins]
+set filtered [sta::filter_pins "direction==input" $all_pins 0]
puts "filter_pins direction == input: [llength $filtered]"
# filter_nets
set all_nets [get_nets *]
-set filtered [sta::filter_nets full_name =~ n* $all_nets]
+set filtered [sta::filter_nets "full_name=~n*" $all_nets 0]
puts "filter_nets full_name =~ n*: [llength $filtered]"
############################################################
diff --git a/sdf/test/sdf_read_write.ok b/sdf/test/sdf_read_write.ok
index d4e623a6..2911ec3a 100644
--- a/sdf/test/sdf_read_write.ok
+++ b/sdf/test/sdf_read_write.ok
@@ -1,3 +1,3 @@
Differences found at line 7.
(VERSION "2.7.0")
- (VERSION "3.0.1")
+ (VERSION "3.1.0")
diff --git a/search/test/cpp/TestSearchIncremental.cc b/search/test/cpp/TestSearchIncremental.cc
index 7ca332a2..f1d70900 100644
--- a/search/test/cpp/TestSearchIncremental.cc
+++ b/search/test/cpp/TestSearchIncremental.cc
@@ -52,7 +52,7 @@ protected:
waveform->push_back(0.0f);
waveform->push_back(5.0f);
Sdc *sdc = sta_->cmdSdc();
- sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, nullptr,
+ sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, "",
sta_->cmdMode());
Clock *clk = sdc->findClock("clk");
@@ -441,7 +441,7 @@ TEST_F(IncrementalTimingTest, ClockConstraintAfterEdit) {
FloatSeq *tight_waveform = new FloatSeq;
tight_waveform->push_back(0.0f);
tight_waveform->push_back(1.0f); // 2ns period
- sta_->makeClock("clk", clk_pins, false, 2.0f, tight_waveform, nullptr,
+ sta_->makeClock("clk", clk_pins, false, 2.0f, tight_waveform, "",
sta_->cmdMode());
Slack tight_slack = sta_->worstSlack(MinMax::max());
@@ -455,7 +455,7 @@ TEST_F(IncrementalTimingTest, ClockConstraintAfterEdit) {
FloatSeq *loose_waveform = new FloatSeq;
loose_waveform->push_back(0.0f);
loose_waveform->push_back(50.0f); // 100ns period
- sta_->makeClock("clk", clk_pins2, false, 100.0f, loose_waveform, nullptr,
+ sta_->makeClock("clk", clk_pins2, false, 100.0f, loose_waveform, "",
sta_->cmdMode());
Slack loose_slack = sta_->worstSlack(MinMax::max());
@@ -1023,7 +1023,7 @@ TEST_F(IncrementalTimingTest, TnsUpdatesIncrementally) {
FloatSeq *tight_waveform = new FloatSeq;
tight_waveform->push_back(0.0f);
tight_waveform->push_back(0.2f); // 0.4ns period (very tight)
- sta_->makeClock("clk", clk_pins, false, 0.4f, tight_waveform, nullptr,
+ sta_->makeClock("clk", clk_pins, false, 0.4f, tight_waveform, "",
sta_->cmdMode());
Slack tight_tns = sta_->totalNegativeSlack(MinMax::max());
@@ -1447,7 +1447,7 @@ TEST_F(IncrementalTimingTest, EndpointViolationCountChanges) {
FloatSeq *tight_waveform = new FloatSeq;
tight_waveform->push_back(0.0f);
tight_waveform->push_back(0.1f); // 0.2ns period
- sta_->makeClock("clk", clk_pins, false, 0.2f, tight_waveform, nullptr,
+ sta_->makeClock("clk", clk_pins, false, 0.2f, tight_waveform, "",
sta_->cmdMode());
int tight_violations = sta_->endpointViolationCount(MinMax::max());
@@ -1460,7 +1460,7 @@ TEST_F(IncrementalTimingTest, EndpointViolationCountChanges) {
FloatSeq *loose_waveform = new FloatSeq;
loose_waveform->push_back(0.0f);
loose_waveform->push_back(50.0f);
- sta_->makeClock("clk", clk_pins2, false, 100.0f, loose_waveform, nullptr,
+ sta_->makeClock("clk", clk_pins2, false, 100.0f, loose_waveform, "",
sta_->cmdMode());
int loose_violations = sta_->endpointViolationCount(MinMax::max());
diff --git a/search/test/cpp/TestSearchStaDesign.cc b/search/test/cpp/TestSearchStaDesign.cc
index 5281bca8..e8a36ff9 100644
--- a/search/test/cpp/TestSearchStaDesign.cc
+++ b/search/test/cpp/TestSearchStaDesign.cc
@@ -159,7 +159,7 @@ protected:
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(5.0f);
- sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, nullptr,
+ sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, "",
sta_->cmdMode());
// Set input delays
diff --git a/search/test/cpp/TestSearchStaDesignB.cc b/search/test/cpp/TestSearchStaDesignB.cc
index 56d918ec..79fb8582 100644
--- a/search/test/cpp/TestSearchStaDesignB.cc
+++ b/search/test/cpp/TestSearchStaDesignB.cc
@@ -161,7 +161,7 @@ protected:
FloatSeq *waveform = new FloatSeq;
waveform->push_back(0.0f);
waveform->push_back(5.0f);
- sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, nullptr,
+ sta_->makeClock("clk", clk_pins, false, 10.0f, waveform, "",
sta_->cmdMode());
// Set input delays
@@ -1491,9 +1491,9 @@ TEST_F(StaDesignTest, PropertyValueConstructors) {
PropertyValue pv1;
EXPECT_EQ(pv1.type(), PropertyValue::Type::none);
- PropertyValue pv2("test");
+ PropertyValue pv2(std::string("test"));
EXPECT_EQ(pv2.type(), PropertyValue::Type::string);
- EXPECT_STREQ(pv2.stringValue(), "test");
+ EXPECT_EQ(pv2.stringValue(), "test");
PropertyValue pv3(true);
EXPECT_EQ(pv3.type(), PropertyValue::Type::bool_);
@@ -1647,7 +1647,7 @@ TEST_F(StaDesignTest, PropertyUnknownException) {
TEST_F(StaDesignTest, PropertyTypeWrongException) {
// Cover PropertyTypeWrong constructor and what()
- PropertyValue pv("test_string");
+ PropertyValue pv(std::string("test_string"));
EXPECT_EQ(pv.type(), PropertyValue::Type::string);
try {
float val = pv.floatValue();
@@ -1837,7 +1837,7 @@ TEST_F(StaDesignTest, PathEndUnconstrainedMethods) {
TEST_F(StaDesignTest, PathEndPathDelay) {
sta_->makePathDelay(nullptr, nullptr, nullptr,
- MinMax::max(), false, false, 5.0, nullptr,
+ MinMax::max(), false, false, 5.0, "",
sta_->cmdSdc());
sta_->updateTiming(true);
const SceneSeq &corners = sta_->scenes();
@@ -2248,7 +2248,7 @@ TEST_F(StaDesignTest, WriteSdcWithConstraints) {
false, false, MinMaxAll::all(), true, 2.0f,
sta_->cmdSdc());
}
- sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), nullptr,
+ sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), "",
sta_->cmdSdc());
if (out) {
@@ -2454,7 +2454,7 @@ TEST_F(StaDesignTest, ReportPathEndShorter) {
TEST_F(StaDesignTest, WriteSdcWithClockGroups) {
Clock *clk = sta_->cmdSdc()->findClock("clk");
if (clk) {
- ClockGroups *cg = sta_->makeClockGroups("test_group", true, false, false, false, nullptr, sta_->cmdSdc());
+ ClockGroups *cg = sta_->makeClockGroups("test_group", true, false, false, false, "", sta_->cmdSdc());
EXPECT_NE(cg, nullptr);
sta_->updateTiming(true);
std::string filename = makeUniqueSdcPath("test_write_sdc_r10_clkgrp.sdc");
@@ -2984,7 +2984,7 @@ TEST_F(StaDesignTest, MakeGeneratedClock) {
divide_by->push_back(2);
FloatSeq *edges = nullptr;
sta_->makeGeneratedClock("gen_clk", gen_pins, false, clk2, clk,
- 2, 0, 0.0, false, false, divide_by, edges, nullptr,
+ 2, 0, 0.0, false, false, divide_by, edges, "",
sta_->cmdMode());
Clock *gen = sdc->findClock("gen_clk");
EXPECT_NE(gen, nullptr);
@@ -3995,7 +3995,7 @@ TEST_F(StaDesignTest, WriteSdcComprehensive) {
thrus->push_back(thru);
}
delete nit;
- sta_->makeFalsePath(from, thrus, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(from, thrus, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
// Max delay
@@ -4010,13 +4010,13 @@ TEST_F(StaDesignTest, WriteSdcComprehensive) {
RiseFallBoth::riseFall(),
RiseFallBoth::riseFall(), sta_->cmdSdc());
sta_->makePathDelay(from, nullptr, to, MinMax::max(), false, false,
- 7.0f, nullptr, sta_->cmdSdc());
+ 7.0f, "", sta_->cmdSdc());
}
// Clock groups with actual clocks
if (clk) {
ClockGroups *cg = sta_->makeClockGroups("search_grp", true, false, false,
- false, nullptr, sta_->cmdSdc());
+ false, "", sta_->cmdSdc());
ClockSet *g1 = new ClockSet;
g1->insert(clk);
sta_->makeClockGroup(cg, g1, sta_->cmdSdc());
@@ -4024,10 +4024,10 @@ TEST_F(StaDesignTest, WriteSdcComprehensive) {
// Multicycle
sta_->makeMulticyclePath(nullptr, nullptr, nullptr,
- MinMaxAll::max(), true, 2, nullptr, sta_->cmdSdc());
+ MinMaxAll::max(), true, 2, "", sta_->cmdSdc());
// Group path
- sta_->makeGroupPath("search_group", false, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ sta_->makeGroupPath("search_group", false, nullptr, nullptr, nullptr, "", sta_->cmdSdc());
// Voltage
sta_->setVoltage(MinMax::max(), 1.1f, sta_->cmdSdc());
@@ -4194,7 +4194,7 @@ TEST_F(StaDesignTest, FindPathEndsUnconstrained3) {
TEST_F(StaDesignTest, FindPathEndsGroupFilter) {
ASSERT_NO_THROW(( [&](){
// Create a group path first
- sta_->makeGroupPath("r11_grp", false, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ sta_->makeGroupPath("r11_grp", false, nullptr, nullptr, nullptr, "", sta_->cmdSdc());
Scene *corner = sta_->cmdScene();
PathEndSeq ends = sta_->findPathEnds(
@@ -4208,7 +4208,7 @@ TEST_F(StaDesignTest, FindPathEndsGroupFilter) {
// --- Sta: pathGroupNames ---
TEST_F(StaDesignTest, PathGroupNames) {
- sta_->makeGroupPath("test_group_r11", false, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ sta_->makeGroupPath("test_group_r11", false, nullptr, nullptr, nullptr, "", sta_->cmdSdc());
StringSeq names = sta_->pathGroupNames(sta_->cmdSdc());
bool found = false;
for (const auto &name : names) {
@@ -4220,7 +4220,7 @@ TEST_F(StaDesignTest, PathGroupNames) {
// --- Sta: isPathGroupName ---
TEST_F(StaDesignTest, IsPathGroupName) {
- sta_->makeGroupPath("test_pg_r11", false, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ sta_->makeGroupPath("test_pg_r11", false, nullptr, nullptr, nullptr, "", sta_->cmdSdc());
bool is_group = sta_->isPathGroupName("test_pg_r11", sta_->cmdSdc());
EXPECT_TRUE(is_group);
bool not_group = sta_->isPathGroupName("nonexistent_group", sta_->cmdSdc());
@@ -4245,7 +4245,7 @@ TEST_F(StaDesignTest, ReportPathWithMaxDelay) {
RiseFallBoth::riseFall(),
RiseFallBoth::riseFall(), sta_->cmdSdc());
sta_->makePathDelay(from, nullptr, to, MinMax::max(), false, false,
- 8.0f, nullptr, sta_->cmdSdc());
+ 8.0f, "", sta_->cmdSdc());
sta_->updateTiming(true);
Scene *corner = sta_->cmdScene();
diff --git a/search/test/cpp/TestSearchStaInit.cc b/search/test/cpp/TestSearchStaInit.cc
index e8363094..37d5f102 100644
--- a/search/test/cpp/TestSearchStaInit.cc
+++ b/search/test/cpp/TestSearchStaInit.cc
@@ -1156,12 +1156,12 @@ TEST_F(StaInitTest, MakeClockWithComment) {
// Make false path exercises ExceptionPath creation in Sta.cc
TEST_F(StaInitTest, MakeFalsePath) {
- sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
}
// Make group path
TEST_F(StaInitTest, MakeGroupPath) {
- sta_->makeGroupPath("test_grp", false, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ sta_->makeGroupPath("test_grp", false, nullptr, nullptr, nullptr, "", sta_->cmdSdc());
EXPECT_TRUE(sta_->isPathGroupName("test_grp", sta_->cmdSdc()));
}
@@ -1172,7 +1172,7 @@ TEST_F(StaInitTest, MakePathDelay) {
false, // ignore_clk_latency
false, // break_path
5.0, // delay
- nullptr, sta_->cmdSdc());
+ "", sta_->cmdSdc());
}
@@ -1182,7 +1182,7 @@ TEST_F(StaInitTest, MakeMulticyclePath) {
MinMaxAll::max(),
true, // use_end_clk
2, // path_multiplier
- nullptr, sta_->cmdSdc());
+ "", sta_->cmdSdc());
}
@@ -1775,7 +1775,7 @@ TEST_F(StaInitTest, PropertyValueUnitGetter) {
}
TEST_F(StaInitTest, PropertyValueToStringBasic) {
- PropertyValue pv_str("hello");
+ PropertyValue pv_str(std::string("hello"));
Network *network = sta_->network();
std::string result = pv_str.to_string(network);
EXPECT_EQ(result, "hello");
@@ -2067,10 +2067,10 @@ TEST_F(StaInitTest, PathLessComparator) {
// PathGroup static names
TEST_F(StaInitTest, PathGroupsStaticNames) {
- EXPECT_NE(PathGroups::asyncPathGroupName(), nullptr);
- EXPECT_NE(PathGroups::pathDelayGroupName(), nullptr);
- EXPECT_NE(PathGroups::gatedClkGroupName(), nullptr);
- EXPECT_NE(PathGroups::unconstrainedGroupName(), nullptr);
+ EXPECT_FALSE(PathGroups::asyncPathGroupName().empty());
+ EXPECT_FALSE(PathGroups::pathDelayGroupName().empty());
+ EXPECT_FALSE(PathGroups::gatedClkGroupName().empty());
+ EXPECT_FALSE(PathGroups::unconstrainedGroupName().empty());
}
TEST_F(StaInitTest, PathGroupMaxPathsDefault) {
@@ -2758,7 +2758,7 @@ TEST_F(StaInitTest, StaWorstSlackSingleValue) {
TEST_F(StaInitTest, StaMakeClockGroupsAndRemove) {
ClockGroups *cg = sta_->makeClockGroups("test_cg",
true, false, false,
- false, nullptr, sta_->cmdSdc());
+ false, "", sta_->cmdSdc());
EXPECT_NE(cg, nullptr);
sta_->removeClockGroupsLogicallyExclusive("test_cg", sta_->cmdSdc());
}
@@ -3455,7 +3455,7 @@ TEST_F(StaInitTest, StaDelaysInvalid) {
// --- Sta.cc: clock groups ---
TEST_F(StaInitTest, StaMakeClockGroupsDetailed) {
ClockGroups *groups = sta_->makeClockGroups("test_group",
- true, false, false, false, nullptr, sta_->cmdSdc());
+ true, false, false, false, "", sta_->cmdSdc());
EXPECT_NE(groups, nullptr);
}
@@ -3741,7 +3741,7 @@ TEST_F(StaInitTest, GraphLoopEmpty) {
// --- Sta.cc: makeFalsePath ---
TEST_F(StaInitTest, StaMakeFalsePath) {
- sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), nullptr, sta_->cmdSdc());
+ sta_->makeFalsePath(nullptr, nullptr, nullptr, MinMaxAll::all(), "", sta_->cmdSdc());
// No crash (with all null args)
@@ -3749,7 +3749,7 @@ TEST_F(StaInitTest, StaMakeFalsePath) {
// --- Sta.cc: makeMulticyclePath ---
TEST_F(StaInitTest, StaMakeMulticyclePath) {
- sta_->makeMulticyclePath(nullptr, nullptr, nullptr, MinMaxAll::all(), false, 2, nullptr, sta_->cmdSdc());
+ sta_->makeMulticyclePath(nullptr, nullptr, nullptr, MinMaxAll::all(), false, 2, "", sta_->cmdSdc());
// No crash
}
@@ -3763,7 +3763,7 @@ TEST_F(StaInitTest, StaResetPath) {
// --- Sta.cc: makeGroupPath ---
TEST_F(StaInitTest, StaMakeGroupPath) {
- sta_->makeGroupPath("test_group", false, nullptr, nullptr, nullptr, nullptr, sta_->cmdSdc());
+ sta_->makeGroupPath("test_group", false, nullptr, nullptr, nullptr, "", sta_->cmdSdc());
// No crash
}
@@ -3802,8 +3802,8 @@ TEST_F(StaInitTest, LogicValueStringOne) {
// --- ReportPath.cc: ReportField constructor and setEnabled ---
TEST_F(StaInitTest, ReportFieldConstruct) {
ReportField rf("test_field", "Test Field", 10, false, nullptr, true);
- EXPECT_STREQ(rf.name(), "test_field");
- EXPECT_STREQ(rf.title(), "Test Field");
+ EXPECT_EQ(rf.name(), "test_field");
+ EXPECT_EQ(rf.title(), "Test Field");
EXPECT_EQ(rf.width(), 10);
EXPECT_FALSE(rf.leftJustify());
EXPECT_EQ(rf.unit(), nullptr);
@@ -3829,15 +3829,15 @@ TEST_F(StaInitTest, ReportFieldSetWidth) {
TEST_F(StaInitTest, ReportFieldSetProperties) {
ReportField rf("f3", "F3", 5, false, nullptr, true);
rf.setProperties("New Title", 20, true);
- EXPECT_STREQ(rf.title(), "New Title");
+ EXPECT_EQ(rf.title(), "New Title");
EXPECT_EQ(rf.width(), 20);
EXPECT_TRUE(rf.leftJustify());
}
TEST_F(StaInitTest, ReportFieldBlank) {
ReportField rf("f4", "F4", 3, false, nullptr, true);
- const char *blank = rf.blank();
- EXPECT_NE(blank, nullptr);
+ const std::string &blank = rf.blank();
+ EXPECT_FALSE(blank.empty());
}
// --- Sta.cc: idealClockMode is protected, test via public API ---
@@ -4117,7 +4117,7 @@ TEST_F(StaInitTest, PropertiesGetPropertyLibraryExists) {
TEST_F(StaInitTest, PropertiesGetPropertyCellExists) {
// getProperty(Cell*) segfaults on nullptr - verify method exists via function pointer
- using FnType = PropertyValue (Properties::*)(const Cell*, const std::string&);
+ using FnType = PropertyValue (Properties::*)(const Cell*, std::string_view);
FnType fn = &Properties::getProperty;
expectCallablePointerUsable(fn);
}
diff --git a/search/test/cpp/TestSearchStaInitB.cc b/search/test/cpp/TestSearchStaInitB.cc
index bd1262f9..e95d382a 100644
--- a/search/test/cpp/TestSearchStaInitB.cc
+++ b/search/test/cpp/TestSearchStaInitB.cc
@@ -940,7 +940,7 @@ TEST_F(StaInitTest, PathEndSlack) {
TEST_F(StaInitTest, StaMakeClockGroups) {
ASSERT_NO_THROW(( [&](){
- sta_->makeClockGroups("test_grp", false, false, false, false, nullptr, sta_->cmdSdc());
+ sta_->makeClockGroups("test_grp", false, false, false, false, "", sta_->cmdSdc());
}() ));
}
@@ -1354,9 +1354,9 @@ TEST_F(StaInitTest, PropertyValueDefaultCtor) {
// === PropertyValue: string constructor ===
TEST_F(StaInitTest, PropertyValueStringCtor) {
- PropertyValue pv("hello");
+ PropertyValue pv(std::string("hello"));
EXPECT_EQ(pv.type(), PropertyValue::Type::string);
- EXPECT_STREQ(pv.stringValue(), "hello");
+ EXPECT_EQ(pv.stringValue(), "hello");
}
// === PropertyValue: float constructor ===
@@ -1378,39 +1378,39 @@ TEST_F(StaInitTest, PropertyValueBoolCtor) {
// === PropertyValue: copy constructor ===
TEST_F(StaInitTest, PropertyValueCopyCtor) {
- PropertyValue pv1("test");
+ PropertyValue pv1(std::string("test"));
PropertyValue pv2(pv1);
EXPECT_EQ(pv2.type(), PropertyValue::Type::string);
- EXPECT_STREQ(pv2.stringValue(), "test");
+ EXPECT_EQ(pv2.stringValue(), "test");
}
// === PropertyValue: move constructor ===
TEST_F(StaInitTest, PropertyValueMoveCtor) {
- PropertyValue pv1("test");
+ PropertyValue pv1(std::string("test"));
PropertyValue pv2(std::move(pv1));
EXPECT_EQ(pv2.type(), PropertyValue::Type::string);
- EXPECT_STREQ(pv2.stringValue(), "test");
+ EXPECT_EQ(pv2.stringValue(), "test");
}
// === PropertyValue: copy assignment ===
TEST_F(StaInitTest, PropertyValueCopyAssign) {
- PropertyValue pv1("test");
+ PropertyValue pv1(std::string("test"));
PropertyValue pv2;
pv2 = pv1;
EXPECT_EQ(pv2.type(), PropertyValue::Type::string);
- EXPECT_STREQ(pv2.stringValue(), "test");
+ EXPECT_EQ(pv2.stringValue(), "test");
}
// === PropertyValue: move assignment ===
TEST_F(StaInitTest, PropertyValueMoveAssign) {
- PropertyValue pv1("test");
+ PropertyValue pv1(std::string("test"));
PropertyValue pv2;
pv2 = std::move(pv1);
EXPECT_EQ(pv2.type(), PropertyValue::Type::string);
- EXPECT_STREQ(pv2.stringValue(), "test");
+ EXPECT_EQ(pv2.stringValue(), "test");
}
// === PropertyValue: Library constructor ===
@@ -1568,10 +1568,10 @@ TEST_F(StaInitTest, ReportFieldGetters) {
ReportPath *rpt = sta_->reportPath();
ReportField *field = rpt->fieldSlew();
EXPECT_NE(field, nullptr);
- EXPECT_NE(field->name(), nullptr);
- EXPECT_NE(field->title(), nullptr);
+ EXPECT_FALSE(field->name().empty());
+ EXPECT_FALSE(field->title().empty());
EXPECT_GT(field->width(), 0);
- EXPECT_NE(field->blank(), nullptr);
+ EXPECT_FALSE(field->blank().empty());
}
// === ReportField: setWidth ===
@@ -1804,7 +1804,7 @@ TEST_F(StaInitTest, PropertyValueStdStringCtor) {
std::string s = "test_string";
PropertyValue pv(s);
EXPECT_EQ(pv.type(), PropertyValue::Type::string);
- EXPECT_STREQ(pv.stringValue(), "test_string");
+ EXPECT_EQ(pv.stringValue(), "test_string");
}
// === Levelize: invalid ===
@@ -1859,21 +1859,21 @@ TEST_F(StaInitTest, ReportPathFindFieldSlew) {
ReportPath *rpt = sta_->reportPath();
ReportField *slew = rpt->findField("slew");
EXPECT_NE(slew, nullptr);
- EXPECT_STREQ(slew->name(), "slew");
+ EXPECT_EQ(slew->name(), "slew");
}
TEST_F(StaInitTest, ReportPathFindFieldFanout) {
ReportPath *rpt = sta_->reportPath();
ReportField *fo = rpt->findField("fanout");
EXPECT_NE(fo, nullptr);
- EXPECT_STREQ(fo->name(), "fanout");
+ EXPECT_EQ(fo->name(), "fanout");
}
TEST_F(StaInitTest, ReportPathFindFieldCapacitance) {
ReportPath *rpt = sta_->reportPath();
ReportField *cap = rpt->findField("capacitance");
EXPECT_NE(cap, nullptr);
- EXPECT_STREQ(cap->name(), "capacitance");
+ EXPECT_EQ(cap->name(), "capacitance");
}
TEST_F(StaInitTest, ReportPathFindFieldNonexistent) {
@@ -1927,8 +1927,8 @@ TEST_F(StaInitTest, ReportPathSetReportFieldsPublic) {
TEST_F(StaInitTest, ReportFieldBlank2) {
ReportPath *rpt = sta_->reportPath();
ReportField *field = rpt->fieldSlew();
- const char *blank = field->blank();
- EXPECT_NE(blank, nullptr);
+ const std::string &blank = field->blank();
+ EXPECT_FALSE(blank.empty());
}
// === ReportField: setProperties ===
@@ -1983,23 +1983,23 @@ TEST_F(StaInitTest, PathExpandedEmptyCtor) {
// === PathGroups: static group names ===
TEST_F(StaInitTest, PathGroupsAsyncGroupName) {
- const char *name = PathGroups::asyncPathGroupName();
- EXPECT_NE(name, nullptr);
+ std::string_view name = PathGroups::asyncPathGroupName();
+ EXPECT_FALSE(name.empty());
}
TEST_F(StaInitTest, PathGroupsPathDelayGroupName) {
- const char *name = PathGroups::pathDelayGroupName();
- EXPECT_NE(name, nullptr);
+ std::string_view name = PathGroups::pathDelayGroupName();
+ EXPECT_FALSE(name.empty());
}
TEST_F(StaInitTest, PathGroupsGatedClkGroupName) {
- const char *name = PathGroups::gatedClkGroupName();
- EXPECT_NE(name, nullptr);
+ std::string_view name = PathGroups::gatedClkGroupName();
+ EXPECT_FALSE(name.empty());
}
TEST_F(StaInitTest, PathGroupsUnconstrainedGroupName) {
- const char *name = PathGroups::unconstrainedGroupName();
- EXPECT_NE(name, nullptr);
+ std::string_view name = PathGroups::unconstrainedGroupName();
+ EXPECT_FALSE(name.empty());
}
// === PathGroup: static max path count ===
@@ -2631,23 +2631,23 @@ TEST_F(StaInitTest, ReportPathReportSlackOnlyHeader) {
// === PathGroups: static group name accessors ===
TEST_F(StaInitTest, PathGroupsAsyncGroupName2) {
- const char *name = PathGroups::asyncPathGroupName();
- EXPECT_NE(name, nullptr);
+ std::string_view name = PathGroups::asyncPathGroupName();
+ EXPECT_FALSE(name.empty());
}
TEST_F(StaInitTest, PathGroupsPathDelayGroupName2) {
- const char *name = PathGroups::pathDelayGroupName();
- EXPECT_NE(name, nullptr);
+ std::string_view name = PathGroups::pathDelayGroupName();
+ EXPECT_FALSE(name.empty());
}
TEST_F(StaInitTest, PathGroupsGatedClkGroupName2) {
- const char *name = PathGroups::gatedClkGroupName();
- EXPECT_NE(name, nullptr);
+ std::string_view name = PathGroups::gatedClkGroupName();
+ EXPECT_FALSE(name.empty());
}
TEST_F(StaInitTest, PathGroupsUnconstrainedGroupName2) {
- const char *name = PathGroups::unconstrainedGroupName();
- EXPECT_NE(name, nullptr);
+ std::string_view name = PathGroups::unconstrainedGroupName();
+ EXPECT_FALSE(name.empty());
}
// Corner setParasiticAnalysisPtcount, setParasiticAP, setDcalcAnalysisPtcount,
diff --git a/search/test/search_write_sdf_model.ok b/search/test/search_write_sdf_model.ok
index b7dce650..4f343c5c 100644
--- a/search/test/search_write_sdf_model.ok
+++ b/search/test/search_write_sdf_model.ok
@@ -5,11 +5,11 @@ No differences found.
--- write_sdf with digits ---
Differences found at line 6.
(VERSION "2.7.0")
- (VERSION "3.0.1")
+ (VERSION "3.1.0")
--- write_sdf with include_typ ---
Differences found at line 6.
(VERSION "2.7.0")
- (VERSION "3.0.1")
+ (VERSION "3.1.0")
--- write_timing_model ---
--- write_timing_model with cell_name ---
--- write_timing_model with library_name ---