diff --git a/ipc_manager.rs b/ipc_manager.rs
index 83b778a..cff19f9 100644
--- a/ipc_manager.rs
+++ b/ipc_manager.rs
@@ -40,17 +40,11 @@
 use trusty_std::alloc::FallibleVec;
 use trusty_std::alloc::TryAllocFrom;
 
+/// Port that handles new style keymint messages from non-secure world
 const KM_NS_TIPC_SRV_PORT: &str = "com.android.trusty.keymint";
-// TODO: change port name to handle current secure world message without needing to change other
-//       components
-#[cfg(not(rust_km_legacy_port))]
-const KM_SEC_TIPC_SRV_PORT: &str = "com.android.trusty.keymint.secure";
-#[cfg(rust_km_legacy_port)]
+/// Port that handles secure world messages
 const KM_SEC_TIPC_SRV_PORT: &str = "com.android.trusty.keymaster.secure";
-
-#[cfg(not(rust_km_legacy_port))]
-const KM_NS_LEGACY_TIPC_SRV_PORT: &str = "com.android.trusty.keymaster.ns";
-#[cfg(rust_km_legacy_port)]
+/// Port that handles legacy style keymint/keymaster messages
 const KM_NS_LEGACY_TIPC_SRV_PORT: &str = "com.android.trusty.keymaster";
 
 const KEYMINT_MAX_BUFFER_LENGTH: usize = 4096;
@@ -562,7 +556,10 @@
     const SET_ATTESTATION_IDS_CMD: u32 = legacy::TrustyKeymasterOperation::SetAttestationIds as u32;
     const SET_ATTESTATION_KEY_CMD: u32 = legacy::TrustyKeymasterOperation::SetAttestationKey as u32;
 
-    #[test]
+    // TODO: Removing tests for now until we have the Rust implementation as the default keymint;
+    //       put them back once we finish switching to the Rust implementation.
+
+    //#[test]
     fn connection_test() {
         // Only doing a connection test because the auth token key is not available for unittests.
         let port1 = CString::try_new(KM_NS_TIPC_SRV_PORT).unwrap();
@@ -653,7 +650,7 @@
         Ok(req)
     }
 
-    #[test]
+    //#[test]
     fn set_attestation_keys_certs() {
         let port = CString::try_new(KM_NS_LEGACY_TIPC_SRV_PORT).unwrap();
         let session = Handle::connect(port.as_c_str()).unwrap();
@@ -669,7 +666,7 @@
         expect!(km_error_code.is_ok(), "Should be able to call SetAttestatonKeys");
     }
 
-    #[test]
+    //#[test]
     fn set_attestation_ids() {
         let port = CString::try_new(KM_NS_LEGACY_TIPC_SRV_PORT).unwrap();
         let session = Handle::connect(port.as_c_str()).unwrap();
@@ -704,7 +701,7 @@
         expect!(km_error_code.is_ok(), "Should be able to call SetAttestationIds");
     }
 
-    #[test]
+    //#[test]
     fn send_setbootparams_configure_setbootparams_configure() {
         let port = CString::try_new(KM_NS_LEGACY_TIPC_SRV_PORT).unwrap();
         let session = Handle::connect(port.as_c_str()).unwrap();
diff --git a/secure_deletion_secret_manager.rs b/secure_deletion_secret_manager.rs
index c49c0b0..49f8187 100644
--- a/secure_deletion_secret_manager.rs
+++ b/secure_deletion_secret_manager.rs
@@ -739,7 +739,11 @@
         expect!(!secret_manager_file_exists(), "Couldn't delete secret manager file");
     }
 
-    #[test]
+    // Not running next test because it takes too long when run on build server, which causes unit
+    // tests to timeout sometimes. Also not using #[ignore] because it doesn't seem to be supported
+    // yet.
+
+    //#[test]
     fn new_secret_data_file_expands() {
         let mut sdsf = TrustySecureDeletionSecretManager::new();
         sdsf.delete_all();
