What’s better than UnitTests almost being ready for deployment in TianoCore?
How about using those UnitTests to validate a native Rust port of one of our 
VarCheck libs?

Building upon Jiewen’s work (among others) I’ve finally managed to prototype a 
port of the UefiVariablePolicyLib to Rust, and have shown that it can build as 
part of our normal CI process and run the same UnitTests that are used for the 
C version…
https://github.com/corthon/edk2-staging/tree/rust_and_tests

There is a Readme.md in the root directory with a “Notes for this branch” 
section. All of those steps are important to get Rust set up correctly.
You can run a CI build of MdeModulePkg with the “-t NOOPT” target and it will 
build the UnitTests. It will build one version against the C library, and 
another against the Rust library.

You can also run native Rust test cases by going to 
https://github.com/corthon/edk2-staging/tree/rust_and_tests/MdeModulePkg/Library/UefiVariablePolicyLibRust
And running “cargo test”.

I acknowledge that this code is a little rough. It’s definitely a prototype, 
but one that I’m excited about and thing that it can be used as a pattern for 
interop with other core libraries.
I even found a couple small bugs in the original library through the process of 
porting to Rust, since Rust is so pedantic about covering all possible cases.

Anyway, super interested in any feedback or advice for improvement. 😊

- Bret

PS. Thanks again, Jiewen, for laying the groundwork. I’ve seen several of your 
contributions to Rust and the UEFI prototype while working on this.

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#53252): https://edk2.groups.io/g/devel/message/53252
Mute This Topic: https://groups.io/mt/69709533/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to