Index: gimli/src/read/cfi.rs
===================================================================
--- gimli.orig/src/read/cfi.rs
+++ gimli/src/read/cfi.rs
@@ -3492,3 +3492,3 @@
 
-#[cfg(test)]
+#[cfg(all(test,feature = "read"))]
 mod tests {
Index: gimli/src/read/value.rs
===================================================================
--- gimli.orig/src/read/value.rs
+++ gimli/src/read/value.rs
@@ -904,7 +904,7 @@ impl Value {
     }
 }
 
-#[cfg(test)]
+#[cfg(all(test,feature = "read"))]
 mod tests {
     use super::*;
     use crate::common::{DebugAbbrevOffset, DebugInfoOffset, Encoding, Format};
Index: gimli/src/read/addr.rs
===================================================================
--- gimli.orig/src/read/addr.rs
+++ gimli/src/read/addr.rs
@@ -80,7 +80,7 @@ impl<R> From<R> for DebugAddr<R> {
     }
 }
 
-#[cfg(test)]
+#[cfg(all(test,feature = "read"))]
 mod tests {
     use super::*;
     use crate::read::EndianSlice;
Index: gimli/src/read/loclists.rs
===================================================================
--- gimli.orig/src/read/loclists.rs
+++ gimli/src/read/loclists.rs
@@ -665,7 +665,7 @@ pub struct LocationListEntry<R: Reader>
     pub data: Expression<R>,
 }
 
-#[cfg(test)]
+#[cfg(all(test,feature = "read"))]
 mod tests {
     use super::*;
     use crate::common::Format;
Index: gimli/src/read/rnglists.rs
===================================================================
--- gimli.orig/src/read/rnglists.rs
+++ gimli/src/read/rnglists.rs
@@ -630,7 +630,7 @@ impl Range {
     }
 }
 
-#[cfg(test)]
+#[cfg(all(test,feature = "read"))]
 mod tests {
     use super::*;
     use crate::common::Format;
Index: gimli/src/read/str.rs
===================================================================
--- gimli.orig/src/read/str.rs
+++ gimli/src/read/str.rs
@@ -277,7 +277,7 @@ impl<R> From<R> for DebugLineStr<R> {
     }
 }
 
-#[cfg(test)]
+#[cfg(all(test,feature = "read"))]
 mod tests {
     use super::*;
     use crate::test_util::GimliSectionMethods;
