mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
all: ~500 more byte=>u8
This commit is contained in:
@ -1,31 +1,89 @@
|
||||
module main
|
||||
import forkedtest
|
||||
|
||||
import builtin.linux_bare.old..checks.forkedtest
|
||||
|
||||
const (
|
||||
sample_text_file1 = ""
|
||||
sample_text_file1 = ''
|
||||
)
|
||||
|
||||
fn check_fork_minimal () {
|
||||
fn check_fork_minimal() {
|
||||
child := sys_fork()
|
||||
ec := 100
|
||||
if child == 0 {
|
||||
println("child")
|
||||
println('child')
|
||||
sys_exit(ec)
|
||||
}
|
||||
siginfo := [
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0]
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
|
||||
e := sys_waitid(.p_pid, child, intptr(siginfo.data) , .wexited, 0)
|
||||
e := sys_waitid(.p_pid, child, intptr(siginfo.data), .wexited, 0)
|
||||
|
||||
assert e == .enoerror
|
||||
//println(i64_tos(buffer0,80,siginfo[Sig_index.si_code],16))
|
||||
// println(i64_tos(buffer0,80,siginfo[Sig_index.si_code],16))
|
||||
assert siginfo[Sig_index.si_code] == int(Wi_si_code.cld_exited)
|
||||
assert siginfo[Sig_index.si_pid] == child
|
||||
assert siginfo[Sig_index.si_status] == ec
|
||||
@ -40,7 +98,7 @@ fn check_read_write_pipe() {
|
||||
// sys_read
|
||||
// sys_close
|
||||
//
|
||||
buffer0 := []byte{len:(128)}
|
||||
buffer0 := []u8{len: (128)}
|
||||
buffer := byteptr(buffer0.data)
|
||||
|
||||
fd := [-1, -1]
|
||||
@ -55,9 +113,9 @@ fn check_read_write_pipe() {
|
||||
assert fd[0] != -1
|
||||
assert fd[1] != -1
|
||||
|
||||
test_data := "test_data"
|
||||
test_data := 'test_data'
|
||||
b := test_data.len + 1
|
||||
c1, e1 := sys_write (fd[1], test_data.str, u64(b))
|
||||
c1, e1 := sys_write(fd[1], test_data.str, u64(b))
|
||||
|
||||
assert e1 == .enoerror
|
||||
assert c1 == b
|
||||
@ -67,9 +125,9 @@ fn check_read_write_pipe() {
|
||||
assert e2 == .enoerror
|
||||
assert c2 == b
|
||||
|
||||
assert buffer[b-1] == 0
|
||||
assert buffer[b - 1] == 0
|
||||
|
||||
for i in 0..b {
|
||||
for i in 0 .. b {
|
||||
assert test_data[i] == buffer[i]
|
||||
}
|
||||
|
||||
@ -81,32 +139,32 @@ fn check_read_write_pipe() {
|
||||
|
||||
fn check_read_file() {
|
||||
/*
|
||||
Checks the following system calls:
|
||||
Checks the following system calls:
|
||||
sys_read
|
||||
sys_write
|
||||
sys_close
|
||||
sys_open
|
||||
*/
|
||||
buffer0 := []byte{len:(128)}
|
||||
buffer0 := []u8{len: (128)}
|
||||
buffer := byteptr(buffer0.data)
|
||||
|
||||
test_file := "sample_text1.txt"
|
||||
sample_text := "Do not change this text.\n"
|
||||
test_file := 'sample_text1.txt'
|
||||
sample_text := 'Do not change this text.\n'
|
||||
fd, ec := sys_open(test_file.str, .o_rdonly, 0)
|
||||
assert fd > 0
|
||||
assert ec == .enoerror
|
||||
n := sample_text.len
|
||||
c, e := sys_read(fd, buffer, u64(n*2))
|
||||
c, e := sys_read(fd, buffer, u64(n * 2))
|
||||
assert e == .enoerror
|
||||
assert c == n
|
||||
for i in 0..n {
|
||||
for i in 0 .. n {
|
||||
assert sample_text[i] == buffer[i]
|
||||
}
|
||||
assert sys_close(fd) == .enoerror
|
||||
}
|
||||
|
||||
fn check_open_file_fail() {
|
||||
fd1, ec1 := sys_open("./nofilehere".str, .o_rdonly, 0)
|
||||
fd1, ec1 := sys_open('./nofilehere'.str, .o_rdonly, 0)
|
||||
assert fd1 == -1
|
||||
assert ec1 == .enoent
|
||||
}
|
||||
@ -126,19 +184,20 @@ fn check_print() {
|
||||
*/
|
||||
|
||||
fn check_munmap_fail() {
|
||||
ec := sys_munmap(-16384,8192)
|
||||
ec := sys_munmap(-16384, 8192)
|
||||
assert ec == .einval
|
||||
}
|
||||
|
||||
fn check_mmap_one_page() {
|
||||
mp := int(Mm_prot.prot_read) | int(Mm_prot.prot_write)
|
||||
mf := int(Map_flags.map_private) | int(Map_flags.map_anonymous)
|
||||
mut a, e := sys_mmap(0, u64(Linux_mem.page_size), Mm_prot(mp), Map_flags(mf), -1, 0)
|
||||
mut a, e := sys_mmap(0, u64(Linux_mem.page_size), Mm_prot(mp), Map_flags(mf), -1,
|
||||
0)
|
||||
|
||||
assert e == .enoerror
|
||||
assert a != byteptr(-1)
|
||||
|
||||
for i in 0..int(Linux_mem.page_size) {
|
||||
for i in 0 .. int(Linux_mem.page_size) {
|
||||
b := i & 0xFF
|
||||
a[i] = b
|
||||
assert a[i] == b
|
||||
@ -149,32 +208,32 @@ fn check_mmap_one_page() {
|
||||
}
|
||||
|
||||
fn check_mm_pages() {
|
||||
for i in 0 .. int(Linux_mem.page_size)-4 {
|
||||
for i in 0 .. int(Linux_mem.page_size) - 4 {
|
||||
assert u32(1) == mm_pages(u64(i))
|
||||
}
|
||||
for i in int(Linux_mem.page_size)-3 .. (int(Linux_mem.page_size)*2)-4 {
|
||||
for i in int(Linux_mem.page_size) - 3 .. (int(Linux_mem.page_size) * 2) - 4 {
|
||||
assert u32(2) == mm_pages(u64(i))
|
||||
}
|
||||
for i in (int(Linux_mem.page_size)*2)-3 .. (int(Linux_mem.page_size)*3)-4 {
|
||||
for i in (int(Linux_mem.page_size) * 2) - 3 .. (int(Linux_mem.page_size) * 3) - 4 {
|
||||
assert u32(3) == mm_pages(u64(i))
|
||||
}
|
||||
}
|
||||
|
||||
//pub fn mm_alloc(size u64) (voidptr, Errno)
|
||||
// pub fn mm_alloc(size u64) (voidptr, Errno)
|
||||
|
||||
fn check_mm_alloc() {
|
||||
for i in 1 .. 2000 {
|
||||
size := u64(i*1000)
|
||||
size := u64(i * 1000)
|
||||
pages := mm_pages(size)
|
||||
mut a, e := mm_alloc(size)
|
||||
|
||||
assert e == .enoerror
|
||||
ap := intptr(a-4)
|
||||
ap := intptr(a - 4)
|
||||
assert *ap == int(pages)
|
||||
assert e == .enoerror
|
||||
assert !isnil(a)
|
||||
|
||||
if (i%111) == 0 {
|
||||
if (i % 111) == 0 {
|
||||
for j in 0 .. int(size) {
|
||||
b := j & 0xFF
|
||||
a[j] = b
|
||||
@ -189,7 +248,7 @@ fn check_mm_alloc() {
|
||||
}
|
||||
|
||||
fn check_int_array_ro() {
|
||||
a := [100,110,120,130]
|
||||
a := [100, 110, 120, 130]
|
||||
assert a.len == 4
|
||||
assert a[0] == 100
|
||||
assert a[1] == 110
|
||||
@ -198,13 +257,13 @@ fn check_int_array_ro() {
|
||||
}
|
||||
|
||||
fn check_int_array_rw() {
|
||||
mut a := [-10,-11,-12,-13]
|
||||
mut a := [-10, -11, -12, -13]
|
||||
assert a.len == 4
|
||||
assert a[0] == -10
|
||||
assert a[1] == -11
|
||||
assert a[2] == -12
|
||||
assert a[3] == -13
|
||||
for i in 0..a.len {
|
||||
for i in 0 .. a.len {
|
||||
b := -a[i] * 10
|
||||
a[i] = b
|
||||
assert a[i] == b
|
||||
@ -213,7 +272,7 @@ fn check_int_array_rw() {
|
||||
}
|
||||
|
||||
fn check_int64_array_ro() {
|
||||
a := [i64(1000),1100,1200,1300,1400]
|
||||
a := [i64(1000), 1100, 1200, 1300, 1400]
|
||||
assert a.len == 5
|
||||
assert a[0] == 1000
|
||||
assert a[1] == 1100
|
||||
@ -229,7 +288,7 @@ fn check_voidptr_array_ro() {
|
||||
voidptr(12000),
|
||||
voidptr(13000),
|
||||
voidptr(14000),
|
||||
voidptr(15000)
|
||||
voidptr(15000),
|
||||
]
|
||||
assert a.len == 6
|
||||
assert a[0] == voidptr(10000)
|
||||
@ -247,7 +306,7 @@ fn check_voidptr_array_rw() {
|
||||
voidptr(-1),
|
||||
voidptr(-1),
|
||||
voidptr(-1),
|
||||
voidptr(-1)
|
||||
voidptr(-1),
|
||||
]
|
||||
assert a.len == 6
|
||||
|
||||
@ -277,23 +336,22 @@ fn check_voidptr_array_rw() {
|
||||
assert a[5] == voidptr(150000)
|
||||
}
|
||||
|
||||
|
||||
fn main() {
|
||||
mut fails := 0
|
||||
fails += forkedtest.normal_run(check_fork_minimal, "check_fork_minimal")
|
||||
fails += forkedtest.normal_run(check_munmap_fail, "check_munmap_fail")
|
||||
fails += forkedtest.normal_run(check_mmap_one_page, "check_mmap_one_page")
|
||||
fails += forkedtest.normal_run(check_mm_pages, "check_mm_pages")
|
||||
fails += forkedtest.normal_run(check_mm_alloc, "check_mm_alloc")
|
||||
fails += forkedtest.normal_run(check_read_write_pipe, "check_read_write_pipe")
|
||||
fails += forkedtest.normal_run(check_read_file, "check_read_file")
|
||||
fails += forkedtest.normal_run(check_fork_minimal, 'check_fork_minimal')
|
||||
fails += forkedtest.normal_run(check_munmap_fail, 'check_munmap_fail')
|
||||
fails += forkedtest.normal_run(check_mmap_one_page, 'check_mmap_one_page')
|
||||
fails += forkedtest.normal_run(check_mm_pages, 'check_mm_pages')
|
||||
fails += forkedtest.normal_run(check_mm_alloc, 'check_mm_alloc')
|
||||
fails += forkedtest.normal_run(check_read_write_pipe, 'check_read_write_pipe')
|
||||
fails += forkedtest.normal_run(check_read_file, 'check_read_file')
|
||||
// check_print()
|
||||
fails += forkedtest.normal_run(check_open_file_fail, "check_open_file_fail")
|
||||
fails += forkedtest.normal_run(check_int_array_ro, "check_int_array_ro")
|
||||
fails += forkedtest.normal_run(check_int_array_rw, "check_int_array_rw")
|
||||
fails += forkedtest.normal_run(check_int64_array_ro, "check_int64_array_ro")
|
||||
fails += forkedtest.normal_run(check_voidptr_array_ro, "check_voidptr_array_ro")
|
||||
fails += forkedtest.normal_run(check_voidptr_array_rw, "check_voidptr_array_rw")
|
||||
fails += forkedtest.normal_run(check_open_file_fail, 'check_open_file_fail')
|
||||
fails += forkedtest.normal_run(check_int_array_ro, 'check_int_array_ro')
|
||||
fails += forkedtest.normal_run(check_int_array_rw, 'check_int_array_rw')
|
||||
fails += forkedtest.normal_run(check_int64_array_ro, 'check_int64_array_ro')
|
||||
fails += forkedtest.normal_run(check_voidptr_array_ro, 'check_voidptr_array_ro')
|
||||
fails += forkedtest.normal_run(check_voidptr_array_rw, 'check_voidptr_array_rw')
|
||||
|
||||
assert fails == 0
|
||||
sys_exit(0)
|
||||
|
@ -1,63 +1,63 @@
|
||||
module main
|
||||
import forkedtest
|
||||
|
||||
fn check_string_eq () {
|
||||
assert "monkey" != "rat"
|
||||
some_animal := "a bird"
|
||||
assert some_animal == "a bird"
|
||||
import builtin.linux_bare.old..checks.forkedtest
|
||||
|
||||
fn check_string_eq() {
|
||||
assert 'monkey' != 'rat'
|
||||
some_animal := 'a bird'
|
||||
assert some_animal == 'a bird'
|
||||
}
|
||||
|
||||
fn check_i64_tos() {
|
||||
buffer0 := []byte{len:(128)}
|
||||
buffer0 := []u8{len: (128)}
|
||||
buffer := byteptr(buffer0.data)
|
||||
|
||||
s0 := i64_tos(buffer, 70, 140, 10)
|
||||
assert s0 == "140"
|
||||
assert s0 == '140'
|
||||
|
||||
s1 := i64_tos(buffer, 70, -160, 10)
|
||||
assert s1 == "-160"
|
||||
assert s1 == '-160'
|
||||
|
||||
s2 := i64_tos(buffer, 70, 65537, 16)
|
||||
assert s2 == "10001"
|
||||
assert s2 == '10001'
|
||||
|
||||
s3 := i64_tos(buffer, 70, -160000, 10)
|
||||
assert s3 == "-160000"
|
||||
assert s3 == '-160000'
|
||||
}
|
||||
|
||||
fn check_i64_str() {
|
||||
assert "141" == i64_str(141, 10)
|
||||
assert "-161" == i64_str(-161, 10)
|
||||
assert "10002" == i64_str(65538, 16)
|
||||
assert "-160001" == i64_str(-160001, 10)
|
||||
assert '141' == i64_str(141, 10)
|
||||
assert '-161' == i64_str(-161, 10)
|
||||
assert '10002' == i64_str(65538, 16)
|
||||
assert '-160001' == i64_str(-160001, 10)
|
||||
}
|
||||
|
||||
fn check_str_clone() {
|
||||
a := i64_str(1234,10)
|
||||
a := i64_str(1234, 10)
|
||||
b := a.clone()
|
||||
assert a == b
|
||||
c := i64_str(-6789,10).clone()
|
||||
assert c == "-6789"
|
||||
c := i64_str(-6789, 10).clone()
|
||||
assert c == '-6789'
|
||||
}
|
||||
|
||||
fn check_string_add_works(){
|
||||
abc := 'abc'
|
||||
combined := 'a' + 'b' + 'c'
|
||||
assert abc.len == combined.len
|
||||
assert abc[0] == combined[0]
|
||||
assert abc[1] == combined[1]
|
||||
assert abc[2] == combined[2]
|
||||
assert abc[0] == `a`
|
||||
assert abc == combined
|
||||
}
|
||||
fn check_string_add_works() {
|
||||
abc := 'abc'
|
||||
combined := 'a' + 'b' + 'c'
|
||||
assert abc.len == combined.len
|
||||
assert abc[0] == combined[0]
|
||||
assert abc[1] == combined[1]
|
||||
assert abc[2] == combined[2]
|
||||
assert abc[0] == `a`
|
||||
assert abc == combined
|
||||
}
|
||||
|
||||
fn main () {
|
||||
fn main() {
|
||||
mut fails := 0
|
||||
fails += forkedtest.normal_run(check_string_eq, "check_string_eq")
|
||||
fails += forkedtest.normal_run(check_i64_tos, "check_i64_tos")
|
||||
fails += forkedtest.normal_run(check_i64_str, "check_i64_str")
|
||||
fails += forkedtest.normal_run(check_str_clone, "check_str_clone")
|
||||
fails += forkedtest.normal_run(check_string_add_works, "check_string_add_works")
|
||||
fails += forkedtest.normal_run(check_string_eq, 'check_string_eq')
|
||||
fails += forkedtest.normal_run(check_i64_tos, 'check_i64_tos')
|
||||
fails += forkedtest.normal_run(check_i64_str, 'check_i64_str')
|
||||
fails += forkedtest.normal_run(check_str_clone, 'check_str_clone')
|
||||
fails += forkedtest.normal_run(check_string_add_works, 'check_string_add_works')
|
||||
assert fails == 0
|
||||
sys_exit(0)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user