# ==========================================================
# dev-dependencies
# ==========================================================
+%if 0%{?run_tests}
# BuildRequires: rust-criterion
-# BuildRequires: rust-paste
-# BuildRequires: rust-permutohedron
-# BuildRequires: rust-quickcheck
-# BuildRequires: rust-rand
+BuildRequires: rust-paste
+BuildRequires: rust-permutohedron
+BuildRequires: rust-quickcheck
+BuildRequires: rust-rand
+%endif
%description
install -d -m 0755 %{buildroot}%{_rust_dylibdir}
install -m 0644 lib%{real_crate_name}.so %{buildroot}/%{_rust_dylibdir}/lib%{real_crate_name}.so
+%check
+%if 0%{?run_tests}
+
+# build failures: tests/quick.rs, test_std <- using lower version of quickcheck(0.9)
+export unit_test_list="adaptors_no_collect flatten_ok macros_hygiene merge_join peeking_take_while
+ specializations test_core tuples zip"
+
+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 either \
+ %rust_dylib_extern quickcheck \
+ %rust_dylib_extern rand \
+ %rust_dylib_extern paste \
+ %rust_dylib_extern permutohedron \
+ --cfg='feature="use_std"' \
+ --cfg='feature="use_alloc"' \
+ ./tests/${unit_test}.rs
+done
+
+for unit_test in ${unit_test_list}
+do
+./${unit_test}
+done
+%endif
+
+
%clean
%post -p /sbin/ldconfig