builtin: fix wide tests for big_endian systems (#24145)

This commit is contained in:
Mike 2025-04-07 12:42:23 +03:00 committed by GitHub
parent a9ff1a2624
commit 591e1964bb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 8 deletions

View File

@ -55,19 +55,31 @@ fn test_to_wide_cyrillic() {
}
}
const wide_serial_number = [u8(67), 0, 76, 0, 52, 0, 54, 0, 73, 0, 49, 0, 65, 0, 48, 0, 48, 0,
const little_serial_number = [u8(67), 0, 76, 0, 52, 0, 54, 0, 73, 0, 49, 0, 65, 0, 48, 0, 48, 0,
54, 0, 52, 0, 57, 0, 0, 0, 0]
const big_serial_number = [u8(0), 67, 0, 76, 0, 52, 0, 54, 0, 73, 0, 49, 0, 65, 0, 48, 0, 48, 0,
54, 0, 52, 0, 57, 0, 0, 0, 0]
const swide_serial_number = 'CL46I1A00649'
fn test_string_from_wide() {
z := unsafe { string_from_wide(wide_serial_number.data) }
assert z == swide_serial_number
$if little_endian {
z := unsafe { string_from_wide(little_serial_number.data) }
assert z == swide_serial_number
} $else {
z := unsafe { string_from_wide(big_serial_number.data) }
assert z == swide_serial_number
}
}
fn test_string_from_wide2() {
z := unsafe { string_from_wide2(wide_serial_number.data, 12) }
assert z == swide_serial_number
$if little_endian {
z := unsafe { string_from_wide2(little_serial_number.data, 12) }
assert z == swide_serial_number
} $else {
z := unsafe { string_from_wide2(big_serial_number.data, 12) }
assert z == swide_serial_number
}
}
fn test_reverse_cyrillic_with_string_from_wide() {

View File

@ -1,9 +1,11 @@
import builtin.wchar
const wide_serial_number_unix = [u16(67), 0, 76, 0, 52, 0, 54, 0, 73, 0, 49, 0, 65, 0, 48, 0, 48,
const little_serial_number = [u16(67), 0, 76, 0, 52, 0, 54, 0, 73, 0, 49, 0, 65, 0, 48, 0, 48,
0, 54, 0, 52, 0, 57, 0, 0, 0, 0]
const big_serial_number = [u16(0), 67, 0, 76, 0, 52, 0, 54, 0, 73, 0, 49, 0, 65, 0, 48, 0, 48,
0, 54, 0, 52, 0, 57, 0, 0, 0, 0]
const wide_serial_number_windows = wide_serial_number_unix.map(u8(it))
const wide_serial_number_windows = little_serial_number.map(u8(it))
const swide_serial_number = 'CL46I1A00649'
@ -16,7 +18,10 @@ fn test_from_to_rune() {
}
fn test_to_string() {
mut p := voidptr(wide_serial_number_unix.data)
mut p := voidptr(little_serial_number.data)
$if big_endian {
p = big_serial_number.data
}
$if windows {
p = wide_serial_number_windows.data
}