14 unstable releases (5 breaking)

0.27.1 Apr 3, 2024
0.27.0 Mar 26, 2024
0.26.1 Jan 24, 2024
0.25.3 Dec 7, 2023
0.22.0 Dec 16, 2022

#164 in Testing

Download history 4877/week @ 2023-12-23 7342/week @ 2023-12-30 8577/week @ 2024-01-06 12106/week @ 2024-01-13 13585/week @ 2024-01-20 16986/week @ 2024-01-27 16487/week @ 2024-02-03 16539/week @ 2024-02-10 16171/week @ 2024-02-17 16705/week @ 2024-02-24 17515/week @ 2024-03-02 16721/week @ 2024-03-09 19507/week @ 2024-03-16 13835/week @ 2024-03-23 16260/week @ 2024-03-30 13726/week @ 2024-04-06

65,712 downloads per month
Used in 25 crates (2 directly)

MPL-2.0 license

9KB
125 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 the out_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.1–2MB
~41K SLoC