# ==========================================================
# dev-dependencies
# ==========================================================
-# BuildRequires: rust-macrotest
-# BuildRequires: rust-rustversion
-# BuildRequires: rust-static_assertions
-# BuildRequires: rust-trybuild
-
+%if 0%{?run_tests}
+BuildRequires: rust-macrotest
+BuildRequires: rust-rustversion
+BuildRequires: rust-static_assertions
+BuildRequires: rust-trybuild
+%endif
%description
Crate for safe and ergonomic pin-projection.
# crate-type : dylib, proc-macro, cdylib, bin, etc.
# ==========================================================
%build
- %{rustc_std_build} --crate-type=dylib \
- --crate-name=%{real_crate_name} \
- %{?rustc_edition:--edition=%{rustc_edition}} \
- %rust_dylib_extern pin_project_internal \
- ./src/lib.rs
+%{rustc_std_build} --crate-type=dylib \
+ --crate-name=%{real_crate_name} \
+ %{?rustc_edition:--edition=%{rustc_edition}} \
+ %rust_dylib_extern pin_project_internal \
+ ./src/lib.rs
+
+%check
+%if 0%{?run_tests}
+export unit_test_list="expandtest compiletest pinned_drop cfg unsafe_unpin pin_project drop_order repr_packed"
+
+for unit_test in ${unit_test_list}
+do
+%{rustc_std_build} --test --crate-type=dylib \
+ --crate-name=${unit_test} \
+ %{?rustc_edition:--edition=%{rustc_edition}} \
+ --extern %{real_crate_name}=./lib%{real_crate_name}.so \
+ %rust_dylib_extern pin_project_internal \
+ %rust_dylib_extern macrotest \
+ %rust_dylib_extern rustversion \
+ %rust_dylib_extern static_assertions \
+ %rust_dylib_extern trybuild \
+ ./tests/${unit_test}.rs
+done
+
+for unit_test in ${unit_test_list}
+do
+./${unit_test}
+done
+%endif
# ==========================================================
# install section