project('rust unit tests', 'rust', meson_version: '>=1.8.0') t = executable( 'rust_test', ['test.rs'], rust_args : ['--test'], ) test( 'rust test (should fail)', t, protocol : 'rust', suite : ['foo'], should_fail : true, ) test( 'rust test (should pass)', t, args : ['--skip', 'test_add_intentional_fail'], protocol : 'rust', suite : ['foo'], ) test( 'rust test (should skip)', t, args : ['--skip', 'test_add'], protocol : 'rust', suite : ['foo'], ) rust = import('rust') rustdoc = find_program('rustdoc', required: false) if rustdoc.found() doclib = static_library('rust_doc_lib', ['doctest1.rs'], build_by_default : false) rust.doctest('rust doctests', doclib, protocol : 'rust', suite : ['doctests'], ) doclib = shared_library('rust_doc_lib', ['doctest1.rs'], build_by_default : false) rust.doctest('rust shared doctests', doclib, protocol : 'rust', suite : ['doctests'], ) endif exe = executable('rust_exe', ['test2.rs', 'test.rs'], build_by_default : false) rust.test('rust_test_from_exe', exe, should_fail : true) lib = static_library('rust_static', ['test.rs'], build_by_default : false, rust_abi: 'c') rust.test('rust_test_from_static', lib, args: ['--skip', 'test_add_intentional_fail']) lib = shared_library('rust_shared', ['test.rs'], build_by_default : false) rust.test('rust_test_from_shared', lib, args: ['--skip', 'test_add_intentional_fail']) helper = static_library('helper', 'helper.rs') lib = static_library('rust_link_with', 'test3.rs', build_by_default : false) rust.test('rust_test_link_with', lib, link_with : helper, rust_args : ['--cfg', 'broken="false"'])