Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 147 additions & 0 deletions examples/all_checks_example.sv
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
// Example demonstrating all uvmkit_check macros with passing cases
// This example shows successful assertions for each macro type

module tb;

// Example class for object checks
class MyClass;
int value;
function new(int v);
value = v;
endfunction
endclass

// Example enum for enum checks
typedef enum {RED, GREEN, BLUE} color_e;

initial begin
MyClass obj1, obj2;
color_e color1, color2;
string str1, str2;
real r1, r2;

$display("=== uvmkit_check Examples ===\n");

// ========================================
// Basic Checks
// ========================================
$display("--- Basic Checks ---");

// check_true: passes when expression is true
`uvmkit_check_true(1)
`uvmkit_check_true(5 > 3)

// check_false: passes when expression is false
`uvmkit_check_false(0)
`uvmkit_check_false(2 < 1)

// ========================================
// Equality Checks
// ========================================
$display("--- Equality Checks ---");

// check_equals: passes when values are equal
`uvmkit_check_equals(1, 1)
`uvmkit_check_equals(8'hAA, 8'hAA)
`uvmkit_check_equals(1'bx, 1'bx)

// check_not_equals: passes when values are not equal
`uvmkit_check_not_equals(1, 0)
`uvmkit_check_not_equals(8'hAA, 8'h55)
`uvmkit_check_not_equals(1'bx, 1'b0)

// ========================================
// Null Checks
// ========================================
$display("--- Null Checks ---");

obj1 = null;
obj2 = new(42);

// check_null: passes when object is null
`uvmkit_check_null(obj1)

// check_not_null: passes when object is not null
`uvmkit_check_not_null(obj2)

// ========================================
// Object Identity Checks
// ========================================
$display("--- Object Identity Checks ---");

obj1 = new(10);
obj2 = obj1; // Same object reference

// check_same: passes when objects are the same reference
`uvmkit_check_same(obj1, obj2)

obj2 = new(10); // Different object

// check_not_same: passes when objects are different references
`uvmkit_check_not_same(obj1, obj2)

// ========================================
// Real Number Checks
// ========================================
$display("--- Real Number Checks ---");

r1 = 3.14159;
r2 = 3.14160;

// check_equals_real: passes when values are within delta
`uvmkit_check_equals_real(r1, r2, 0.001)
`uvmkit_check_equals_real(1.0, 1.0, 0.0)

// check_not_equals_real: passes when values differ by more than delta
`uvmkit_check_not_equals_real(r1, r2, 0.00001)
`uvmkit_check_not_equals_real(1.0, 2.0, 0.5)

// ========================================
// Enum Checks
// ========================================
$display("--- Enum Checks ---");

color1 = RED;
color2 = RED;

// check_equals_enum: passes when enum values are equal
`uvmkit_check_equals_enum(color_e, color1, color2)
`uvmkit_check_equals_enum(color_e, RED, RED)

color2 = BLUE;

// check_not_equals_enum: passes when enum values differ
`uvmkit_check_not_equals_enum(color_e, color1, color2)
`uvmkit_check_not_equals_enum(color_e, RED, BLUE)

// ========================================
// String Checks
// ========================================
$display("--- String Checks ---");

str1 = "hello";
str2 = "hello";

// check_equals_string: passes when strings are equal
`uvmkit_check_equals_string(str1, str2)
`uvmkit_check_equals_string("test", "test")

str2 = "world";

// check_not_equals_string: passes when strings differ
`uvmkit_check_not_equals_string(str1, str2)
`uvmkit_check_not_equals_string("hello", "world")

// ========================================
// Checks with Custom Messages
// ========================================
$display("--- Checks with Custom Messages ---");

`uvmkit_check_true(1, "This check should pass")
`uvmkit_check_equals(42, 42, "Answer to life")
`uvmkit_check_equals_string("pass", "pass", "String comparison")

$finish;
end

endmodule