From fefe731105e9c394a989c6105d501ba7733f3b24 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Sun, 23 Aug 2020 11:50:42 -0400 Subject: [PATCH] Tests: Better virtual test --- test_regress/t/t_class_virtual.out | 5 ++++- test_regress/t/t_class_virtual.v | 33 +++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/test_regress/t/t_class_virtual.out b/test_regress/t/t_class_virtual.out index 7dbccdbfd..e2cc22165 100644 --- a/test_regress/t/t_class_virtual.out +++ b/test_regress/t/t_class_virtual.out @@ -1,4 +1,7 @@ +%Error-UNSUPPORTED: t/t_class_virtual.v:8:25: Unsupported: 'virtual' class method + 8 | virtual function int hello; + | ^~~~~ %Error-UNSUPPORTED: t/t_class_virtual.v:7:9: Unsupported: virtual class - 7 | virtual class VC; + 7 | virtual class VBase; | ^~~~~ %Error: Exiting due to diff --git a/test_regress/t/t_class_virtual.v b/test_regress/t/t_class_virtual.v index b386c6b8b..6d438983b 100644 --- a/test_regress/t/t_class_virtual.v +++ b/test_regress/t/t_class_virtual.v @@ -4,5 +4,36 @@ // any use, without warranty, 2019 by Wilson Snyder. // SPDX-License-Identifier: CC0-1.0 -virtual class VC; +virtual class VBase; + virtual function int hello; + return 1; + endfunction endclass + +`ifndef VERILATOR +virtual class VA extends VBase; + virtual function int hello; + return 2; + endfunction +endclass + +virtual class VB extends VBase; + virtual function int hello; + return 3; + endfunction +endclass + +module t; + initial begin + VA va = new; + VB vb = new; + VBase b; + b = va; + if (b.hello() != 2) $stop; + b = vb; + if (b.hello() != 3) $stop; + $write("*-* All Finished *-*\n"); + $finish; + end +endmodule +`endif