xref: /wasmtime-44.0.1/crates/test-programs/src/bin/p3_cli.rs (revision 4c01ee2f)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use test_programs::p3::wasi::cli::{
2     environment, stderr, stdin, stdout, terminal_stderr, terminal_stdin, terminal_stdout,
3 };
4 use test_programs::p3::wit_stream;
5 use wit_bindgen::StreamResult;
6 
7 struct Component;
8 
9 test_programs::p3::export!(Component);
10 
11 impl test_programs::p3::exports::wasi::cli::run::Guest for Component {
12     async fn run() -> Result<(), ()> {
13         assert_eq!(environment::get_arguments(), ["p3_cli.component", "."]);
14         assert_ne!(environment::get_environment(), []);
15         assert_eq!(environment::get_initial_cwd(), None);
16 
17         assert!(terminal_stdin::get_terminal_stdin().is_none());
18         assert!(terminal_stdout::get_terminal_stdout().is_none());
19         assert!(terminal_stderr::get_terminal_stderr().is_none());
20 
21         let mut stdin = stdin::get_stdin();
22         assert!(stdin.next().await.is_none());
23 
24         let (mut stdout_tx, stdout_rx) = wit_stream::new();
25         stdout::set_stdout(stdout_rx);
26         let (res, buf) = stdout_tx.write(b"hello stdout\n".into()).await;
27         assert_eq!(res, StreamResult::Complete(13));
28         assert_eq!(buf.into_vec(), []);
29 
30         let (mut stderr_tx, stderr_rx) = wit_stream::new();
31         stderr::set_stderr(stderr_rx);
32         let (res, buf) = stderr_tx.write(b"hello stderr\n".into()).await;
33         assert_eq!(res, StreamResult::Complete(13));
34         assert_eq!(buf.into_vec(), []);
35 
36         Ok(())
37     }
38 }
39 
40 fn main() {}
41 

served by {OpenGrok

Last Index Update: Fri May 15 20:09:11 GMT 2026