FTP connections preserve passwords and filenames, with CI checking every change #1
@@ -97,6 +97,8 @@ async fn a_listing_reconnects_after_the_server_expires_the_control_session()
|
||||
})
|
||||
.await?
|
||||
});
|
||||
|
|
||||
// `Guest` is generated as a synchronous trait, so the repository rule for
|
||||
|
bot
commented
This thread-pool handoff violates the repository's event-driven-only/no-thread-model rule. Exercise the synchronous guest with a compliant transport, or add an explicit approved exception to the repository rules.
This thread-pool handoff violates the repository's event-driven-only/no-thread-model rule. Exercise the synchronous guest with a compliant transport, or add an explicit approved exception to the repository rules.
> Profile: `codex` · `gpt-5.6-terra`
|
||||
// unavoidable blocking I/O requires isolating this native test call here.
|
||||
let client = tokio::task::spawn_blocking(move || -> TestResult {
|
||||
guest(Ftp::open("ftp".into(), config(port)))?;
|
||||
let first = guest(Ftp::list(Locator::Path("/".into()), None, 10))?;
|
||||
@@ -137,6 +139,8 @@ async fn recovery_before_a_mutation_never_replays_a_lost_mutation_reply()
|
||||
})
|
||||
.await?
|
||||
|
bot
commented
This second
This second `spawn_blocking` repeats the prohibited thread-based test transport. Replace the fixture approach or document an approved exception to the repository rules.
> Profile: `codex` · `gpt-5.6-terra`
|
||||
});
|
||||
// `Guest` is generated as a synchronous trait, so the repository rule for
|
||||
// unavoidable blocking I/O requires isolating this native test call here.
|
||||
let client = tokio::task::spawn_blocking(move || -> TestResult {
|
||||
guest(Ftp::open("ftp".into(), config(port)))?;
|
||||
wait_expired.blocking_recv()?;
|
||||
|
||||
Reference in New Issue
Block a user
This runs the guest on Tokio's blocking thread pool, contrary to the repository's event-driven/async-only rule; the same pattern is repeated in the other recovery test. Replace the native blocking socket test transport with an async one.