tests: fix three tests with address errors (#9441)

pull/9447/head weekly.2021.12
ka-weihe 2021-03-23 23:01:29 +01:00 committed by GitHub
parent 392666e475
commit f885c7cea9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 11 additions and 14 deletions

View File

@ -24,11 +24,8 @@ const (
'vlib/crypto/rand/crypto_rand_read_test.v', 'vlib/crypto/rand/crypto_rand_read_test.v',
] ]
skip_with_fsanitize_address = [ skip_with_fsanitize_address = [
'vlib/encoding/base64/base64_test.v',
'vlib/json/json_test.v', 'vlib/json/json_test.v',
'vlib/regex/regex_test.v', 'vlib/regex/regex_test.v',
'vlib/v/tests/ptr_arithmetic_test.v',
'vlib/v/tests/unsafe_test.v',
'vlib/x/websocket/websocket_test.v', 'vlib/x/websocket/websocket_test.v',
] ]
skip_with_fsanitize_undefined = []string{} skip_with_fsanitize_undefined = []string{}

View File

@ -18,7 +18,7 @@ const (
// Example: assert base64.decode('ViBpbiBiYXNlIDY0') == 'V in base 64' // Example: assert base64.decode('ViBpbiBiYXNlIDY0') == 'V in base 64'
pub fn decode(data string) []byte { pub fn decode(data string) []byte {
size := data.len * 3 / 4 size := data.len * 3 / 4
if size <= 0 { if size <= 0 || data.len % 4 != 0 {
return [] return []
} }
unsafe { unsafe {
@ -31,7 +31,7 @@ pub fn decode(data string) []byte {
// decode_str is the string variant of decode // decode_str is the string variant of decode
pub fn decode_str(data string) string { pub fn decode_str(data string) string {
size := data.len * 3 / 4 size := data.len * 3 / 4
if size <= 0 { if size <= 0 || data.len % 4 != 0 {
return '' return ''
} }
unsafe { unsafe {

View File

@ -43,9 +43,9 @@ fn test_decode() {
assert base64.decode(man_pair.encoded) == man_pair.decoded.bytes() assert base64.decode(man_pair.encoded) == man_pair.decoded.bytes()
// Test for incorrect padding. // Test for incorrect padding.
assert base64.decode('aGk') == 'hi'.bytes() assert base64.decode('aGk') == ''.bytes()
assert base64.decode('aGk=') == 'hi'.bytes() assert base64.decode('aGk=') == 'hi'.bytes()
assert base64.decode('aGk==') == 'hi'.bytes() assert base64.decode('aGk==') == ''.bytes()
for i, p in pairs { for i, p in pairs {
got := base64.decode(p.encoded) got := base64.decode(p.encoded)
@ -60,9 +60,9 @@ fn test_decode_str() {
assert base64.decode_str(man_pair.encoded) == man_pair.decoded assert base64.decode_str(man_pair.encoded) == man_pair.decoded
// Test for incorrect padding. // Test for incorrect padding.
assert base64.decode_str('aGk') == 'hi' assert base64.decode_str('aGk') == ''
assert base64.decode_str('aGk=') == 'hi' assert base64.decode_str('aGk=') == 'hi'
assert base64.decode_str('aGk==') == 'hi' assert base64.decode_str('aGk==') == ''
for i, p in pairs { for i, p in pairs {
got := base64.decode_str(p.encoded) got := base64.decode_str(p.encoded)

View File

@ -9,12 +9,12 @@ fn test_ptr_arithmetic() {
p++ p++
p += 2 p += 2
p = p - 1 p = p - 1
assert p == &v + 2 assert ptr_str(p) == ptr_str(&v + 2)
p = p + 1 p = p + 1
assert p == &v + 3 assert ptr_str(p) == ptr_str(&v + 3)
r := p++ r := p++
assert r == &v + 3 assert ptr_str(r) == ptr_str(&v + 3)
assert p == &v + 4 assert ptr_str(p) == ptr_str(&v + 4)
} }
} }

View File

@ -36,7 +36,7 @@ fn test_ptr_infix() {
v := 4 v := 4
mut q := unsafe {&v - 1} mut q := unsafe {&v - 1}
q = unsafe {q + 3} q = unsafe {q + 3}
assert q == unsafe {&v + 2} assert ptr_str(q) == ptr_str(unsafe {&v + 2})
} }
struct S1 { struct S1 {