1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/v/gen/native/tests/pointers.vv

69 lines
878 B
V

fn main() {
test_eq_ne()
test_lt_gt()
test_ref_deref()
println("ok")
}
fn test_eq_ne() {
unsafe {
mut a := voidptr(0)
mut b := voidptr(0)
assert a == a
assert !(a != a)
assert a == b
assert !(a != b)
a = voidptr(0xdeadbeef)
assert a != b
assert !(a == b)
b = voidptr(0xdeadbeef)
assert a == b
assert !(a != b)
}
}
fn test_lt_gt() {
unsafe {
mut a := voidptr(0)
mut b := voidptr(1)
assert !(a < a)
assert !(a > a)
assert a >= a
assert a <= a
assert a < b
assert !(a > b)
assert a <= b
assert !(a >= b)
a = voidptr(0x42)
assert a > b
assert a >= b
assert !(a < b)
assert !(a <= b)
b = voidptr(0x42)
assert a >= b
assert a <= b
assert !(a > b)
assert !(a < b)
}
}
fn test_ref_deref() {
mut a := 42
b := &a
c := &b
assert *b == 42
a = 50
assert *b == 50
assert *c == b
assert **c == *b
}