From fe5c16450ce8a853a1b395153ecb9536811a3239 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Mon, 8 Jan 2024 00:16:29 +0800 Subject: [PATCH] feat: update tests --- __std/misc/src/bin/chain_test.rs | 30 ++++++++++++++++++++++++++++++ __std/misc/src/bin/move_test.rs | 4 ++-- __std/misc/src/bin/never_test.rs | 7 +++++++ __std/misc/src/bin/slice_test.rs | 8 ++++++++ 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 __std/misc/src/bin/chain_test.rs create mode 100644 __std/misc/src/bin/never_test.rs create mode 100644 __std/misc/src/bin/slice_test.rs diff --git a/__std/misc/src/bin/chain_test.rs b/__std/misc/src/bin/chain_test.rs new file mode 100644 index 0000000..90c911f --- /dev/null +++ b/__std/misc/src/bin/chain_test.rs @@ -0,0 +1,30 @@ +#[derive(Debug)] +struct Node { + value: i32, + next: Option>, +} + +fn build_chain() -> Option> { + let mut p = None; + for i in 0..3 { + p = Some(Box::new(Node { + value: i, + next: p, + })); + } + p +} + +fn print_chain(mut p: &Option>) { + let mut values = vec![]; + while let Some(node) = p { + values.push(node.value.to_string()); + p = &node.next; + } + println!("{}", values.join(" -> ")) +} + +fn main() { + let p = build_chain(); + print_chain(&p); +} \ No newline at end of file diff --git a/__std/misc/src/bin/move_test.rs b/__std/misc/src/bin/move_test.rs index eb94c78..0239eec 100644 --- a/__std/misc/src/bin/move_test.rs +++ b/__std/misc/src/bin/move_test.rs @@ -5,6 +5,6 @@ fn print_name(name: String) { fn main() { let name = String::from("Hatter"); print_name(name); - let name_ref = &name; - println!("Name: {}", name_ref); + // let name_ref = &name; + // println!("Name: {}", name_ref); } \ No newline at end of file diff --git a/__std/misc/src/bin/never_test.rs b/__std/misc/src/bin/never_test.rs new file mode 100644 index 0000000..48f2e1e --- /dev/null +++ b/__std/misc/src/bin/never_test.rs @@ -0,0 +1,7 @@ +fn fail_and_exit() -> ! { + panic!("failed."); +} + +fn main() { + fail_and_exit(); +} \ No newline at end of file diff --git a/__std/misc/src/bin/slice_test.rs b/__std/misc/src/bin/slice_test.rs new file mode 100644 index 0000000..a1516e9 --- /dev/null +++ b/__std/misc/src/bin/slice_test.rs @@ -0,0 +1,8 @@ +fn len(arr: &[u8]) -> usize { + arr.len() +} + +fn main() { + let a = "hello world".as_bytes(); + println!("{}", len(a)); +} \ No newline at end of file