Skip to content

Commit fdef3dd

Browse files
committed
feat: relay tests added
1 parent e5f27bf commit fdef3dd

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

tests/cli.rs

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,3 +488,78 @@ mod unix_socket_tests {
488488
connect_stderr_thread.join().ok();
489489
}
490490
}
491+
492+
#[test]
493+
#[ignore = "flaky"]
494+
fn connect_listen_relay_disabled() {
495+
let listen_to_connect = b"hello from listen";
496+
let connect_to_listen = b"hello from connect";
497+
let mut listen = duct::cmd(dumbpipe_bin(), ["listen", "--relay", "disabled"])
498+
.env_remove("RUST_LOG")
499+
.stdin_bytes(listen_to_connect)
500+
.stderr_to_stdout()
501+
.reader()
502+
.unwrap();
503+
let header = read_ascii_lines(3, &mut listen).unwrap();
504+
let header = String::from_utf8(header).unwrap();
505+
let ticket = header.split_ascii_whitespace().last().unwrap();
506+
let ticket = NodeTicket::from_str(ticket).unwrap();
507+
508+
let connect = duct::cmd(dumbpipe_bin(), ["connect", &ticket.to_string(), "--relay", "disabled"])
509+
.env_remove("RUST_LOG")
510+
.stdin_bytes(connect_to_listen)
511+
.stderr_null()
512+
.stdout_capture()
513+
.run()
514+
.unwrap();
515+
516+
assert!(connect.status.success());
517+
assert_eq!(&connect.stdout, listen_to_connect);
518+
519+
let mut listen_stdout = Vec::new();
520+
listen.read_to_end(&mut listen_stdout).unwrap();
521+
assert_eq!(&listen_stdout, connect_to_listen);
522+
}
523+
524+
#[test]
525+
#[ignore = "flaky"]
526+
fn connect_listen_relay_default() {
527+
let listen_to_connect = b"hello from listen";
528+
let connect_to_listen = b"hello from connect";
529+
let mut listen = duct::cmd(dumbpipe_bin(), ["listen", "--relay", "default"])
530+
.env_remove("RUST_LOG")
531+
.stdin_bytes(listen_to_connect)
532+
.stderr_to_stdout()
533+
.reader()
534+
.unwrap();
535+
let header = read_ascii_lines(3, &mut listen).unwrap();
536+
let header = String::from_utf8(header).unwrap();
537+
let ticket = header.split_ascii_whitespace().last().unwrap();
538+
let ticket = NodeTicket::from_str(ticket).unwrap();
539+
540+
let connect = duct::cmd(dumbpipe_bin(), ["connect", &ticket.to_string(), "--relay", "default"])
541+
.env_remove("RUST_LOG")
542+
.stdin_bytes(connect_to_listen)
543+
.stderr_null()
544+
.stdout_capture()
545+
.run()
546+
.unwrap();
547+
548+
assert!(connect.status.success());
549+
assert_eq!(&connect.stdout, listen_to_connect);
550+
551+
let mut listen_stdout = Vec::new();
552+
listen.read_to_end(&mut listen_stdout).unwrap();
553+
assert_eq!(&listen_stdout, connect_to_listen);
554+
}
555+
556+
#[test]
557+
fn relay_option_invalid() {
558+
let output = duct::cmd(dumbpipe_bin(), ["listen", "--relay", "invalid-relay-url"])
559+
.env_remove("RUST_LOG")
560+
.stderr_capture()
561+
.stdout_capture()
562+
.run();
563+
564+
assert!(output.is_err() || !output.unwrap().status.success());
565+
}

0 commit comments

Comments
 (0)