From 3200946bb95eb65e608bfa9558515f3eba05fe90 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Sun, 13 Sep 2026 13:17:15 -0400 Subject: [PATCH] Tests: Improve t_string_to_bit --- test_regress/t/t_string_to_bit.v | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/test_regress/t/t_string_to_bit.v b/test_regress/t/t_string_to_bit.v index 0e1f0cff4..4519ae27f 100644 --- a/test_regress/t/t_string_to_bit.v +++ b/test_regress/t/t_string_to_bit.v @@ -18,47 +18,57 @@ module t ( string str0; string str1; string str2; + string str3; typedef bit [31:0] bit_t; typedef logic [31:0] logic_t; typedef bit [55:0] quad_t; typedef bit [87:0] wide_t; - bit_t bdata[3]; - bit_t ldata[3]; - quad_t qdata[3]; - wide_t wdata[3]; + bit_t bdata[4]; + bit_t ldata[4]; + quad_t qdata[4]; + wide_t wdata[4]; initial begin str0 = "sm"; str1 = "medium"; str2 = "veryverylongwilltruncate"; + str3 = ""; bdata[0] = bit_t'(str0); bdata[1] = bit_t'(str1); bdata[2] = bit_t'(str2); + bdata[3] = bit_t'(str3); `checks(bdata[0], "sm"); `checks(bdata[1], "dium"); `checks(bdata[2], "cate"); + `checks(bdata[3], ""); if (bdata[0] != 32'h0000736d) $stop; if (bdata[1] != 32'h6469756d) $stop; ldata[0] = logic_t'(str0); ldata[1] = logic_t'(str1); ldata[2] = logic_t'(str2); + ldata[3] = logic_t'(str3); `checks(ldata[0], "sm"); `checks(ldata[1], "dium"); `checks(ldata[2], "cate"); + `checks(ldata[3], ""); qdata[0] = quad_t'(str0); qdata[1] = quad_t'(str1); qdata[2] = quad_t'(str2); + qdata[3] = quad_t'(str3); `checks(qdata[0], "sm"); `checks(qdata[1], "medium"); `checks(qdata[2], "runcate"); + `checks(qdata[3], ""); wdata[0] = wide_t'(str0); wdata[1] = wide_t'(str1); wdata[2] = wide_t'(str2); + wdata[3] = wide_t'(str3); `checks(wdata[0], "sm"); `checks(wdata[1], "medium"); `checks(wdata[2], "illtruncate"); + `checks(wdata[3], ""); end // Test loop @@ -68,34 +78,43 @@ module t ( str0 = "z"; str1 = "zmedi"; str2 = "ziggylonglonglongtruncate"; + str3 = ""; end else if (cyc == 2) begin bdata[0] = bit_t'(str0); bdata[1] = bit_t'(str1); bdata[2] = bit_t'(str2); + bdata[3] = bit_t'(str3); ldata[0] = logic_t'(str0); ldata[1] = logic_t'(str1); ldata[2] = logic_t'(str2); + ldata[3] = logic_t'(str3); qdata[0] = quad_t'(str0); qdata[1] = quad_t'(str1); qdata[2] = quad_t'(str2); + qdata[3] = quad_t'(str3); wdata[0] = wide_t'(str0); wdata[1] = wide_t'(str1); wdata[2] = wide_t'(str2); + wdata[3] = wide_t'(str3); end else if (cyc == 3) begin `checks(bdata[0], "z"); `checks(bdata[1], "medi"); `checks(bdata[2], "cate"); + `checks(bdata[3], ""); `checks(ldata[0], "z"); `checks(ldata[1], "medi"); `checks(ldata[2], "cate"); + `checks(ldata[3], ""); `checks(qdata[0], "z"); `checks(qdata[1], "zmedi"); `checks(qdata[2], "runcate"); + `checks(qdata[3], ""); `checks(wdata[0], "z"); `checks(wdata[1], "zmedi"); `checks(wdata[2], "ongtruncate"); + `checks(wdata[3], ""); end // else if (cyc == 99) begin