Tests: Additional display merge tests. No functional change.

This commit is contained in:
Wilson Snyder 2017-10-21 13:50:31 -04:00
parent 10e0d34140
commit eb65984368
5 changed files with 52 additions and 4 deletions

View File

@ -67,7 +67,7 @@ private:
timesp->unlinkFrBackWithNext();
timenewp->addNext(timesp);
}
nodep->fmtp()->exprsp(timenewp);
nodep->fmtp()->addExprsp(timenewp);
if (!nodep->fmtp()->scopeNamep() && nodep->fmtp()->formatScopeTracking()) {
nodep->fmtp()->scopeNamep(new AstScopeName(nodep->fileline()));
}

View File

@ -2397,7 +2397,7 @@ public:
virtual bool hasDType() const { return true; }
virtual bool same(AstNode* samep) const { return text()==samep->castSFormatF()->text(); }
virtual string verilogKwd() const { return "$sformatf"; }
void exprsp(AstNode* nodep) { addOp1p(nodep); } // op1 = Expressions to output
void addExprsp(AstNode* nodep) { addOp1p(nodep); } // op1 = Expressions to output
AstNode* exprsp() const { return op1p(); } // op1 = Expressions to output
string text() const { return m_text; } // * = Text to display
void text(const string& text) { m_text=text; }

View File

@ -1943,6 +1943,8 @@ private:
|| !prevp->filep()->sameTree(nodep->filep())) return false;
if (!prevp->fmtp() || prevp->fmtp()->nextp()
|| !nodep->fmtp() || nodep->fmtp()->nextp()) return false;
// We don't merge scopeNames as might be different scopes (late in process)
// We don't merge arguments as might need to later print warnings with right line numbers
AstSFormatF* pformatp = prevp->fmtp();
if (!pformatp || pformatp->exprsp() || pformatp->scopeNamep()) return false;
AstSFormatF* nformatp = nodep->fmtp();

View File

@ -16,12 +16,28 @@ execute (
expect=> (quotemeta(
'Merge:
This should merge
f
a=top.t
b=top.t
pre
t=0
t2=0
post
t3=0
t4=0 t5=00000000000000000
m
t=0 t2=0 t3=0 t4=0 t5=0
t=0 t2=0 t3=0 t4=0 t5=0
mm
f a=top.t b=top.t pre t=0 t2=0 post t3=0 t4=0 t5=00000000000000000m t=0 t2=0 t3=0 t4=0 t5=0 t=0 t2=0 t3=0 t4=0 t5=0mm
*-* All Finished *-*')
.'.*')
);
file_grep ("$Self->{obj_dir}/$Self->{VM_PREFIX}__stats.txt",
qr/Node count, DISPLAY \s+ 5 \s+ 1 \s+ 1 \s+ 1/);
qr/Node count, DISPLAY \s+ 32 \s+ 25 \s+ 25 \s+ 25/);
ok(1);
1;

View File

@ -9,7 +9,37 @@ module t (/*AUTOARG*/);
$write("This ");
$write("should ");
$display("merge");
$write("*-* All Finished *-*\n");
$display("f");
$display(" a=%m");
$display(" b=%m");
$display(" pre");
$display(" t=%0d",$time);
$display(" t2=%0d",$time);
$display(" post");
$display(" t3=%0d",$time);
$display(" t4=%0d t5=%0d",$time,$time,$time);
$display("m");
$display(" t=%0d t2=%0d t3=%0d t4=%0d t5=%0d",$time,$time,$time,$time,$time);
$display(" t=%0d t2=%0d t3=%0d t4=%0d t5=%0d",$time,$time,$time,$time,$time);
$display("mm");
$display("");
$write("f");
$write(" a=%m");
$write(" b=%m");
$write(" pre");
$write(" t=%0d",$time);
$write(" t2=%0d",$time);
$write(" post");
$write(" t3=%0d",$time);
$write(" t4=%0d t5=%0d",$time,$time,$time);
$write("m");
$write(" t=%0d t2=%0d t3=%0d t4=%0d t5=%0d",$time,$time,$time,$time,$time);
$write(" t=%0d t2=%0d t3=%0d t4=%0d t5=%0d",$time,$time,$time,$time,$time);
$display("mm");
$write("\n*-* All Finished *-*\n");
$finish;
end
endmodule