2021-12-03 00:03:32 +00:00
|
|
|
#![cfg(feature = "macros")]
|
|
|
|
|
2022-06-08 04:59:18 +00:00
|
|
|
#[cfg(not(target_arch = "wasm32"))] // Not possible to invoke compiler from wasm
|
2019-06-04 05:17:07 +00:00
|
|
|
#[test]
|
|
|
|
fn test_compile_errors() {
|
|
|
|
let t = trybuild::TestCases::new();
|
2022-02-08 15:56:19 +00:00
|
|
|
|
2020-06-26 09:35:34 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_property_args.rs");
|
2022-11-15 20:10:19 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_proto_pymethods.rs");
|
2020-06-26 09:35:34 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pyclass_args.rs");
|
2021-11-16 19:31:30 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pyclass_enum.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_pyclass_item.rs");
|
2022-10-25 06:23:21 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pyfunction_signatures.rs");
|
2023-08-25 08:48:01 +00:00
|
|
|
#[cfg(any(not(Py_LIMITED_API), Py_3_11))]
|
2021-12-21 07:01:11 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pymethods_buffer.rs");
|
2024-05-03 07:42:30 +00:00
|
|
|
// The output is not stable across abi3 / not abi3 and features
|
2024-05-12 18:30:08 +00:00
|
|
|
#[cfg(all(not(Py_LIMITED_API), feature = "full", not(feature = "gil-refs")))]
|
2023-11-24 03:11:05 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pymethods_duplicates.rs");
|
2024-01-15 15:57:42 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pymethod_enum.rs");
|
2020-06-27 13:49:46 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pymethod_names.rs");
|
2021-11-19 13:33:56 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_pymodule_args.rs");
|
2020-06-26 09:35:34 +00:00
|
|
|
t.compile_fail("tests/ui/reject_generics.rs");
|
2024-05-09 22:21:48 +00:00
|
|
|
#[cfg(feature = "gil-refs")]
|
2023-05-21 16:15:10 +00:00
|
|
|
t.compile_fail("tests/ui/deprecations.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_closure.rs");
|
|
|
|
t.compile_fail("tests/ui/pyclass_send.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_argument_attributes.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_frompy_derive.rs");
|
|
|
|
t.compile_fail("tests/ui/static_ref.rs");
|
2024-05-12 18:30:08 +00:00
|
|
|
#[cfg(not(feature = "gil-refs"))]
|
2023-05-21 16:15:10 +00:00
|
|
|
t.compile_fail("tests/ui/wrong_aspyref_lifetimes.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_pyfunctions.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_pymethods.rs");
|
2024-03-06 00:54:45 +00:00
|
|
|
// output changes with async feature
|
|
|
|
#[cfg(all(Py_LIMITED_API, feature = "experimental-async"))]
|
2023-05-21 16:15:10 +00:00
|
|
|
t.compile_fail("tests/ui/abi3_nativetype_inheritance.rs");
|
2024-05-12 18:30:08 +00:00
|
|
|
#[cfg(not(feature = "gil-refs"))]
|
2023-05-21 16:15:10 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_intern_arg.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_frozen_pyclass_borrow.rs");
|
|
|
|
t.compile_fail("tests/ui/invalid_pymethod_receiver.rs");
|
|
|
|
t.compile_fail("tests/ui/missing_intopy.rs");
|
2023-08-25 08:48:01 +00:00
|
|
|
// adding extra error conversion impls changes the output
|
2024-05-09 22:21:48 +00:00
|
|
|
#[cfg(not(any(
|
|
|
|
windows,
|
|
|
|
feature = "eyre",
|
|
|
|
feature = "anyhow",
|
|
|
|
feature = "gil-refs",
|
|
|
|
Py_LIMITED_API
|
|
|
|
)))]
|
2023-05-21 16:15:10 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_result_conversion.rs");
|
|
|
|
t.compile_fail("tests/ui/not_send.rs");
|
|
|
|
t.compile_fail("tests/ui/not_send2.rs");
|
|
|
|
t.compile_fail("tests/ui/get_set_all.rs");
|
2023-06-19 21:25:51 +00:00
|
|
|
t.compile_fail("tests/ui/traverse.rs");
|
2024-02-24 13:50:18 +00:00
|
|
|
#[cfg(feature = "experimental-declarative-modules")]
|
|
|
|
t.compile_fail("tests/ui/invalid_pymodule_in_root.rs");
|
|
|
|
#[cfg(feature = "experimental-declarative-modules")]
|
|
|
|
t.compile_fail("tests/ui/invalid_pymodule_glob.rs");
|
|
|
|
#[cfg(feature = "experimental-declarative-modules")]
|
|
|
|
t.compile_fail("tests/ui/invalid_pymodule_trait.rs");
|
|
|
|
#[cfg(feature = "experimental-declarative-modules")]
|
|
|
|
t.compile_fail("tests/ui/invalid_pymodule_two_pymodule_init.rs");
|
2024-03-06 00:54:45 +00:00
|
|
|
#[cfg(feature = "experimental-async")]
|
2024-03-08 07:43:48 +00:00
|
|
|
#[cfg(any(not(Py_LIMITED_API), Py_3_10))] // to avoid PyFunctionArgument for &str
|
2024-03-06 00:54:45 +00:00
|
|
|
t.compile_fail("tests/ui/invalid_cancel_handle.rs");
|
2024-04-12 06:34:08 +00:00
|
|
|
t.pass("tests/ui/pymodule_missing_docs.rs");
|
2024-05-17 10:55:41 +00:00
|
|
|
#[cfg(all(Py_LIMITED_API, not(feature = "experimental-async")))]
|
|
|
|
// output changes with async feature
|
|
|
|
t.compile_fail("tests/ui/abi3_inheritance.rs");
|
2022-02-08 15:56:19 +00:00
|
|
|
}
|