--- a/Cargo.toml
+++ b/Cargo.toml
@@ -31,6 +31,9 @@
 license = "MIT OR Apache-2.0"
 repository = "https://github.com/libseccomp-rs/libseccomp-rs"
 
+[lib]
+doctest = false
+
 [package.metadata.docs.rs]
 all-features = true
 rustc-args = [
--- a/tests/notify.rs
+++ b/tests/notify.rs
@@ -124,6 +124,7 @@
 }
 
 #[test]
+#[ignore = "known to be flaky"]
 fn test_error() {
     skip_if_not_supported!();
 
--- a/tests/tests.rs
+++ b/tests/tests.rs
@@ -21,6 +21,8 @@
 }
 
 #[test]
+#[ignore = "known to be flaky"
+]
 fn test_check_api() {
     assert!(check_api(3, ScmpVersion::from((2, 4, 0))).unwrap());
     assert!(!check_api(100, ScmpVersion::from((2, 4, 0))).unwrap());
@@ -266,6 +268,7 @@
 
 #[test]
 #[cfg(feature = "const-syscall")]
+#[cfg(not(target_arch = "s390x"))]
 fn test_syscall_new() {
     for name in known_syscall_names::KNOWN_SYSCALL_NAMES {
         if let Ok(nr) = ScmpSyscall::from_name(name) {
@@ -285,6 +288,7 @@
 }
 
 #[test]
+#[cfg(not(any(target_arch = "s390x", target_arch = "powerpc64", target_arch = "powerpc")))]
 fn test_builder_pattern() -> Result<(), Box<dyn std::error::Error>> {
     let mut ctx = ScmpFilterContext::new(ScmpAction::Allow)?;
     ctx.add_arch(ScmpArch::Arm)?;
@@ -330,6 +334,7 @@
 }
 
 #[test]
+#[cfg(not(target_endian = "big"))]
 fn test_arch_functions() {
     let mut ctx = ScmpFilterContext::new(ScmpAction::Allow).unwrap();
     ctx.add_arch(ScmpArch::X86).unwrap();
@@ -342,6 +347,7 @@
 }
 
 #[test]
+#[cfg(not(target_endian = "big"))]
 fn test_merge_filters() {
     let mut ctx1 = ScmpFilterContext::new(ScmpAction::Allow).unwrap();
     let mut ctx2 = ScmpFilterContext::new(ScmpAction::Allow).unwrap();
--- a/src/api.rs
+++ b/src/api.rs
@@ -129,6 +129,7 @@
     use super::*;
 
     #[test]
+    #[cfg(not(target_arch = "loong64"))]
     fn test_ensure_supported_api() {
         assert!(ensure_supported_api("test", 3, ScmpVersion::from((2, 4, 0))).is_ok());
         assert!(ensure_supported_api("test", 100, ScmpVersion::from((2, 4, 0))).is_err());
