-
Notifications
You must be signed in to change notification settings - Fork 303
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add unit test discovery and execution tool #7685
Conversation
8537dce
to
c1c0372
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a great starting point!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, very exciting!!!
🔥🎉😎
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really cool! 🎉
//===----------------------------------------------------------------------===// | ||
|
||
def FormalOp : VerifOp<"formal", [ | ||
NoTerminator, RegionKindInterface, HasParent<"mlir::ModuleOp">, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was HasParent
dropped accidentally, or is there a motivation behind it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw that we don't really rely on this property anywhere. No passes or similar use this. So I thought drop this until it becomes necessary. Maybe we want to group formal tests? Not sure.
Add the `circt-test` tool. This tool is intended to be a driver for discovering and executing hardware unit tests in an MLIR input file. In this first draft circt-test simply parses an MLIR assembly or bytecode file and prints out a list of `verif.formal` operations. This is just a starting point. We'll want this tool to be able to also generate the Verilog code for one or more of the listed unit tests, run the tests through tools and collect results, and much more. From a user perspective, calling something like `circt-test design.mlirbc` should do a sane default run of all unit tests in the provided input. But the tool should also be useful for build systems to discover tests and run them individually.
c1c0372
to
ab4f0aa
Compare
Ooo exciting ! Looking forward to seeing where this goes! |
Add the
circt-test
tool. This tool is intended to be a driver for discovering and executing hardware unit tests in an MLIR input file. In this first draft circt-test simply parses an MLIR assembly or bytecode file and prints out a list ofverif.formal
operations.This is just a starting point. We'll want this tool to be able to also generate the Verilog code for one or more of the listed unit tests, run the tests through tools and collect results, and much more. From a user perspective, calling something like
circt-test design.mlirbc
should do a sane default run of all unit tests in the provided input. But the tool should also be useful for build systems to discover tests and run them individually.