Skip to content

Commit 0a0f564

Browse files
committed
Minor code reuse in itest
1 parent f2ebc7c commit 0a0f564

File tree

3 files changed

+19
-21
lines changed

3 files changed

+19
-21
lines changed

itest/rust/src/builtin_tests/string/gstring_test.rs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use std::collections::HashSet;
99

1010
use godot::builtin::{Encoding, GString, PackedStringArray};
1111

12+
use super::string_test_macros::{APPLE_CHARS, APPLE_STR};
1213
use crate::framework::{expect_panic_or_nothing, itest};
1314

1415
// TODO use tests from godot-rust/gdnative
@@ -68,27 +69,19 @@ fn string_chars() {
6869
assert_eq!(string.chars(), empty_char_slice);
6970
assert_eq!(string, GString::from(empty_char_slice));
7071

71-
let string = String::from("ö🍎A💡");
72+
let string = String::from(APPLE_STR);
7273
let string_chars: Vec<char> = string.chars().collect();
7374
let gstring = GString::from(&string);
7475

7576
assert_eq!(gstring.chars(), string_chars.as_slice());
76-
assert_eq!(
77-
gstring.chars(),
78-
&[
79-
char::from_u32(0x00F6).unwrap(),
80-
char::from_u32(0x1F34E).unwrap(),
81-
char::from(65),
82-
char::from_u32(0x1F4A1).unwrap(),
83-
]
84-
);
77+
assert_eq!(gstring.chars(), APPLE_CHARS);
8578

8679
assert_eq!(gstring, GString::from(string_chars.as_slice()));
8780
}
8881

8982
#[itest]
9083
fn string_unicode_at() {
91-
let s = GString::from("ö🍎A💡");
84+
let s = GString::from(APPLE_STR);
9285
assert_eq!(s.unicode_at(0), 'ö');
9386
assert_eq!(s.unicode_at(1), '🍎');
9487
assert_eq!(s.unicode_at(2), 'A');

itest/rust/src/builtin_tests/string/string_name_test.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ use std::collections::HashSet;
99

1010
use godot::builtin::{static_sname, Encoding, GString, NodePath, StringName};
1111

12+
#[cfg(since_api = "4.5")]
13+
use super::string_test_macros::{APPLE_CHARS, APPLE_STR};
1214
use crate::framework::{assert_eq_self, itest};
1315

1416
#[itest]
@@ -186,16 +188,8 @@ fn string_name_chars() {
186188
assert_eq!(name.chars(), empty_char_slice);
187189

188190
// Unicode characters including emoji
189-
let name = StringName::from("ö🍎A💡");
190-
assert_eq!(
191-
name.chars(),
192-
&[
193-
char::from_u32(0x00F6).unwrap(), // ö
194-
char::from_u32(0x1F34E).unwrap(), // 🍎
195-
char::from(65), // A
196-
char::from_u32(0x1F4A1).unwrap(), // 💡
197-
]
198-
);
191+
let name = StringName::from(APPLE_STR);
192+
assert_eq!(name.chars(), APPLE_CHARS);
199193

200194
// Verify it matches GString::chars()
201195
let gstring = GString::from(&name);

itest/rust/src/builtin_tests/string/string_test_macros.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@
77

88
//! Byte and C-string conversions.
99
10+
/// Test string containing Unicode and emoji characters.
11+
pub(super) const APPLE_STR: &str = "ö🍎A💡";
12+
13+
/// Expected UTF-32 character array for `APPLE_STR`.
14+
pub(super) const APPLE_CHARS: &[char] = &[
15+
'\u{00F6}', // ö
16+
'\u{1F34E}', // 🍎
17+
'A',
18+
'\u{1F4A1}', // 💡
19+
];
20+
1021
#[macro_export]
1122
macro_rules! generate_string_bytes_and_cstr_tests {
1223
(

0 commit comments

Comments
 (0)