From 32c8eb6490cade963ccc66bf42edef96ec44b730 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Tue, 24 Mar 2020 16:18:37 +0100 Subject: [PATCH] os: vfmt os_test.v --- vlib/builtin/array_test.v | 2 +- vlib/os/os_test.v | 363 +++++++++++++++++++------------------- vlib/v/checker/checker.v | 1 + 3 files changed, 186 insertions(+), 180 deletions(-) diff --git a/vlib/builtin/array_test.v b/vlib/builtin/array_test.v index 1f07207a3c..685cfddd1d 100644 --- a/vlib/builtin/array_test.v +++ b/vlib/builtin/array_test.v @@ -278,7 +278,7 @@ const ( ) struct Foooj { - a [N]int + a [5]int // N } fn test_fixed() { diff --git a/vlib/os/os_test.v b/vlib/os/os_test.v index 35f8202113..9bfc199959 100644 --- a/vlib/os/os_test.v +++ b/vlib/os/os_test.v @@ -9,50 +9,46 @@ fn testsuite_end() { } fn test_open_file() { - filename := './test1.txt' - hello := 'hello world!' - os.open_file(filename, "r+", 0o666) or { - assert err == "No such file or directory" - } - - mut file := os.open_file(filename, "w+", 0o666) or { panic(err) } - file.write(hello) - file.close() - - assert hello.len == os.file_size(filename) - - read_hello := os.read_file(filename) or { - panic('error reading file $filename') - } - assert hello == read_hello - - os.rm(filename) + filename := './test1.txt' + hello := 'hello world!' + os.open_file(filename, 'r+',0666) or { + assert err == 'No such file or directory' + } + mut file := os.open_file(filename, 'w+',0666) or { + panic(err) + } + file.write(hello) + file.close() + assert hello.len == os.file_size(filename) + read_hello := os.read_file(filename) or { + panic('error reading file $filename') + } + assert hello == read_hello + os.rm(filename) } fn test_create_file() { filename := './test1.txt' hello := 'hello world!' - mut f := os.create(filename) or { panic(err)} + mut f := os.create(filename) or { + panic(err) + } f.write(hello) f.close() - assert hello.len == os.file_size(filename) - os.rm(filename) } fn test_write_and_read_string_to_file() { - filename := './test1.txt' - hello := 'hello world!' - os.write_file(filename, hello) - assert hello.len == os.file_size(filename) - - read_hello := os.read_file(filename) or { - panic('error reading file $filename') - } - assert hello == read_hello - - os.rm(filename) + filename := './test1.txt' + hello := 'hello world!' + os.write_file(filename, hello) + assert hello.len == os.file_size(filename) + read_hello := os.read_file(filename) or { + panic('error reading file $filename') + } + assert hello == read_hello + os.rm(filename) } // test_write_and_read_bytes checks for regressions made in the functions @@ -93,183 +89,196 @@ fn test_write_and_read_bytes() { } */ + fn test_create_and_delete_folder() { - folder := './test1' - os.mkdir(folder) or { panic(err) } + folder := './test1' + os.mkdir(folder) or { + panic(err) + } assert os.is_dir(folder) - - folder_contents := os.ls(folder) or { panic(err) } - assert folder_contents.len == 0 - - os.rmdir(folder) - - folder_exists := os.is_dir(folder) - - assert folder_exists == false + folder_contents := os.ls(folder) or { + panic(err) + } + assert folder_contents.len == 0 + os.rmdir(folder) + folder_exists := os.is_dir(folder) + assert folder_exists == false } fn walk_callback(file string) { - if file == '.' || file == '..' { - return - } - assert file == 'test_walk' + os.path_separator + 'test1' + if file == '.' || file == '..' { + return + } + assert file == 'test_walk' + os.path_separator + 'test1' } fn test_walk() { - folder := 'test_walk' - os.mkdir(folder) or { panic(err) } - - file1 := folder + os.path_separator + 'test1' - - os.write_file(file1,'test-1') - - os.walk(folder, walk_callback) - + folder := 'test_walk' + os.mkdir(folder) or { + panic(err) + } + file1 := folder + os.path_separator + 'test1' + os.write_file(file1, 'test-1') + os.walk(folder, walk_callback) os.rm(file1) os.rmdir(folder) } fn test_cp() { - old_file_name := 'cp_example.txt' - new_file_name := 'cp_new_example.txt' - - os.write_file(old_file_name, 'Test data 1 2 3, V is awesome #$%^[]!~⭐') - os.cp(old_file_name, new_file_name) or { panic('$err: errcode: $errcode') } - - old_file := os.read_file(old_file_name) or { panic(err) } - new_file := os.read_file(new_file_name) or { panic(err) } - assert old_file == new_file - - os.rm(old_file_name) - os.rm(new_file_name) + old_file_name := 'cp_example.txt' + new_file_name := 'cp_new_example.txt' + os.write_file(old_file_name, 'Test data 1 2 3, V is awesome #$%^[]!~⭐') + os.cp(old_file_name, new_file_name) or { + panic('$err: errcode: $errcode') + } + old_file := os.read_file(old_file_name) or { + panic(err) + } + new_file := os.read_file(new_file_name) or { + panic(err) + } + assert old_file == new_file + os.rm(old_file_name) + os.rm(new_file_name) } fn test_cp_r() { - //fileX -> dir/fileX - // NB: clean up of the files happens inside the cleanup_leftovers function - os.write_file('ex1.txt', 'wow!') - os.mkdir('ex') or { panic(err) } - os.cp_all('ex1.txt', 'ex', false) or { panic(err) } - old := os.read_file('ex1.txt') or { panic(err) } - new := os.read_file('ex/ex1.txt') or { panic(err) } - assert old == new - os.mkdir('ex/ex2') or { panic(err) } - os.write_file('ex2.txt', 'great!') - os.cp_all('ex2.txt', 'ex/ex2', false) or { panic(err) } - old2 := os.read_file('ex2.txt') or { panic(err) } - new2 := os.read_file('ex/ex2/ex2.txt') or { panic(err) } - assert old2 == new2 - //recurring on dir -> local dir - os.cp_all('ex', './', true) or { panic(err) } + // fileX -> dir/fileX + // NB: clean up of the files happens inside the cleanup_leftovers function + os.write_file('ex1.txt', 'wow!') + os.mkdir('ex') or { + panic(err) + } + os.cp_all('ex1.txt', 'ex', false) or { + panic(err) + } + old := os.read_file('ex1.txt') or { + panic(err) + } + new := os.read_file('ex/ex1.txt') or { + panic(err) + } + assert old == new + os.mkdir('ex/ex2') or { + panic(err) + } + os.write_file('ex2.txt', 'great!') + os.cp_all('ex2.txt', 'ex/ex2', false) or { + panic(err) + } + old2 := os.read_file('ex2.txt') or { + panic(err) + } + new2 := os.read_file('ex/ex2/ex2.txt') or { + panic(err) + } + assert old2 == new2 + // recurring on dir -> local dir + os.cp_all('ex', './', true) or { + panic(err) + } } -fn test_tmpdir(){ +fn test_tmpdir() { t := os.temp_dir() assert t.len > 0 assert os.is_dir(t) - tfile := t + os.path_separator + 'tmpfile.txt' - os.rm(tfile) // just in case - tfile_content := 'this is a temporary file' os.write_file(tfile, tfile_content) - - tfile_content_read := os.read_file(tfile) or { panic(err) } + tfile_content_read := os.read_file(tfile) or { + panic(err) + } assert tfile_content_read == tfile_content - os.rm(tfile) } - fn test_make_symlink_check_is_link_and_remove_symlink() { - $if windows { - // TODO - assert true - return - } - - folder := 'tfolder' - symlink := 'tsymlink' - - os.rm(symlink) - os.rm(folder) - - os.mkdir(folder) or { panic(err) } - folder_contents := os.ls(folder) or { panic(err) } - assert folder_contents.len == 0 - - os.system('ln -s $folder $symlink') - assert os.is_link(symlink) == true - - os.rm(symlink) - os.rm(folder) - - folder_exists := os.is_dir(folder) - assert folder_exists == false - - symlink_exists := os.is_link(symlink) - assert symlink_exists == false + $if windows { + // TODO + assert true + return + } + folder := 'tfolder' + symlink := 'tsymlink' + os.rm(symlink) + os.rm(folder) + os.mkdir(folder) or { + panic(err) + } + folder_contents := os.ls(folder) or { + panic(err) + } + assert folder_contents.len == 0 + os.system('ln -s $folder $symlink') + assert os.is_link(symlink) == true + os.rm(symlink) + os.rm(folder) + folder_exists := os.is_dir(folder) + assert folder_exists == false + symlink_exists := os.is_link(symlink) + assert symlink_exists == false } -//fn test_fork() { -// pid := os.fork() -// if pid == 0 { -// println('Child') -// } -// else { -// println('Parent') -// } -//} - -//fn test_wait() { -// pid := os.fork() -// if pid == 0 { -// println('Child') -// exit(0) -// } -// else { -// cpid := os.wait() -// println('Parent') -// println(cpid) -// } -//} - +// fn test_fork() { +// pid := os.fork() +// if pid == 0 { +// println('Child') +// } +// else { +// println('Parent') +// } +// } +// fn test_wait() { +// pid := os.fork() +// if pid == 0 { +// println('Child') +// exit(0) +// } +// else { +// cpid := os.wait() +// println('Parent') +// println(cpid) +// } +// } fn test_symlink() { - $if windows { return } - os.mkdir('symlink') or { panic(err) } - os.symlink('symlink', 'symlink2') or { panic(err) } - assert os.exists('symlink2') - - // cleanup - os.rm('symlink') - os.rm('symlink2') + $if windows { + return + } + os.mkdir('symlink') or { + panic(err) + } + os.symlink('symlink', 'symlink2') or { + panic(err) + } + assert os.exists('symlink2') + // cleanup + os.rm('symlink') + os.rm('symlink2') } fn test_is_executable_writable_readable() { - file_name := os.temp_dir() + os.path_separator + 'rwxfile.exe' - - mut f := os.create(file_name) or { - eprintln('failed to create file $file_name') - return - } - f.close() - - $if !windows { - os.chmod(file_name, 0o600) // mark as readable && writable, but NOT executable - assert os.is_writable(file_name) - assert os.is_readable(file_name) - assert !os.is_executable(file_name) - os.chmod(file_name, 0o700) // mark as executable too - assert os.is_executable(file_name) - } $else { - assert os.is_writable(file_name) - assert os.is_readable(file_name) - assert os.is_executable(file_name) - } - - // We finally delete the test file. - os.rm(file_name) + file_name := os.temp_dir() + os.path_separator + 'rwxfile.exe' + mut f := os.create(file_name) or { + eprintln('failed to create file $file_name') + return + } + f.close() + $if !windows { + os.chmod(file_name, 0600) // mark as readable && writable, but NOT executable + assert os.is_writable(file_name) + assert os.is_readable(file_name) + assert !os.is_executable(file_name) + os.chmod(file_name, 0700) // mark as executable too + assert os.is_executable(file_name) + } $else { + assert os.is_writable(file_name) + assert os.is_readable(file_name) + assert os.is_executable(file_name) + } + // We finally delete the test file. + os.rm(file_name) } fn test_ext() { @@ -280,7 +289,6 @@ fn test_ext() { fn test_is_abs() { assert os.is_abs_path('/home/user') == true assert os.is_abs_path('v/vlib') == false - $if windows { assert os.is_abs_path('C:\\Windows\\') == true } @@ -288,9 +296,9 @@ fn test_is_abs() { fn test_join() { $if windows { - assert os.join_path('v', 'vlib', 'os') == 'v\\vlib\\os' + assert os.join_path('v','vlib','os') == 'v\\vlib\\os' } $else { - assert os.join_path('v', 'vlib', 'os') == 'v/vlib/os' + assert os.join_path('v','vlib','os') == 'v/vlib/os' } } @@ -300,7 +308,6 @@ fn test_dir() { } $else { assert os.dir('/var/tmp/foo') == '/var/tmp' } - assert os.dir('os') == '.' } @@ -310,7 +317,6 @@ fn test_basedir() { } $else { assert os.base_dir('v/vlib/os') == 'v/vlib' } - assert os.base_dir('filename') == 'filename' } @@ -321,7 +327,6 @@ fn cleanup_leftovers() { // possible leftovers from test_cp os.rm('cp_example.txt') os.rm('cp_new_example.txt') - // possible leftovers from test_cp_r os.rmdir_all('ex') os.rmdir_all('ex2') diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v index 9c32cd8d43..2618a80818 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -474,6 +474,7 @@ pub fn (c mut Checker) assign_stmt(assign_stmt mut ast.AssignStmt) { } pub fn (c mut Checker) array_init(array_init mut ast.ArrayInit) table.Type { + // println('checker: array init $array_init.pos.line_nr $c.file.path') mut elem_type := table.void_type // []string - was set in parser if array_init.typ != table.void_type {