MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / batch_owner_rpc

Function batch_owner_rpc

atomic-cli/tests/database_owner_integration_test.rs:779–802  ·  view source on GitHub ↗
(repository: &std::path::Path, request: &Value)

Source from the content-addressed store, hash-verified

777
778#[cfg(unix)]
779fn batch_owner_rpc(repository: &std::path::Path, request: &Value) -> std::io::Result<Value> {
780 let dot = std::fs::canonicalize(Repository::canonical_dot_dir(repository).unwrap())?;
781 let digest = blake3::hash(dot.to_string_lossy().as_bytes())
782 .to_hex()
783 .to_string();
784 let mut stream = std::os::unix::net::UnixStream::connect(format!(
785 "/tmp/atomic-owner-{}.sock",
786 &digest[..24]
787 ))?;
788 stream.set_read_timeout(Some(Duration::from_secs(10)))?;
789 stream.set_write_timeout(Some(Duration::from_secs(10)))?;
790 let frame = serde_json::to_vec(
791 &serde_json::json!({"version":1,"request_id":"batch-regression","request":request}),
792 )?;
793 stream.write_all(&(frame.len() as u32).to_be_bytes())?;
794 stream.write_all(&frame)?;
795 let mut len = [0; 4];
796 stream.read_exact(&mut len)?;
797 let len = u32::from_be_bytes(len) as usize;
798 assert!(len <= 8 * 1024 * 1024);
799 let mut bytes = vec![0; len];
800 stream.read_exact(&mut bytes)?;
801 Ok(serde_json::from_slice(&bytes)?)
802}
803
804#[cfg(unix)]
805#[test]

Calls 7

canonicalizeFunction · 0.85
read_exactMethod · 0.80
hashFunction · 0.50
unwrapMethod · 0.45
to_hexMethod · 0.45
as_bytesMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected