20 releases
new 0.28.3 | Nov 14, 2024 |
---|---|
0.28.1 | Aug 13, 2024 |
0.28.0 | Jun 11, 2024 |
0.27.0 | Mar 26, 2024 |
0.22.0 | Dec 16, 2022 |
#206 in Testing
106,622 downloads per month
Used in 33 crates
(2 directly)
10KB
131 lines
This crate contains helper code for testing bindings. Our general system is to generate bindings for the libraries from the examples and fixtures directories, then execute a script that tests the bindings.
Each bindings crate can do this in a different way, but the typical system is:
- Construct a
UniFFITestHelper
struct to assist the process - Call
UniFFITestHelper.create_out_dir()
to create a temp directory to store testing files - Call
UniFFITestHelper.copy_cdylibs_to_out_dir()
to copy the dylib artifacts for the example/fixture library to theout_dir
. This is needed because the bindings code dynamically links to or loads from this library. - Call
UniFFITestHelper.get_compile_sources()
to iterate over (udl_path
,uniffi_config_path
) pairs and generate the bindings from them. This step is specific to the bindings language, it may mean creating a .jar file, compiling a binary, or just copying script files over. - Execute the test script and check if it succeeds. This step is also specific to the bindings language.
Dependencies
~1.2–2.2MB
~43K SLoC