fix os_test.v
parent
d90a291c5e
commit
527377dc86
|
@ -1069,6 +1069,12 @@ fn test_hello() {
|
||||||
|
|
||||||
All test functions have to be placed in `*_test.v` files and begin with `test_`.
|
All test functions have to be placed in `*_test.v` files and begin with `test_`.
|
||||||
|
|
||||||
|
You can also define a special test function: `testsuite_begin`, which will be
|
||||||
|
run *before* all other test functions in a `_test.v` file.
|
||||||
|
|
||||||
|
You can also define a special test function: `testsuite_end`, which will be
|
||||||
|
run *after* all other test functions in a `_test.v` file.
|
||||||
|
|
||||||
To run the tests do `v hello_test.v`.
|
To run the tests do `v hello_test.v`.
|
||||||
|
|
||||||
To test an entire module, do `v test mymodule`.
|
To test an entire module, do `v test mymodule`.
|
||||||
|
|
|
@ -819,11 +819,28 @@ fn (t &Table) main_exists() bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (t &Table) all_test_function_names() []string {
|
fn (t &Table) all_test_function_names() []string {
|
||||||
mut res := []string
|
mut fn_begin_test_name := ''
|
||||||
|
mut fn_end_test_name := ''
|
||||||
|
|
||||||
|
mut fn_test_names := []string
|
||||||
for _, f in t.fns {
|
for _, f in t.fns {
|
||||||
if f.name.contains('__test_') {
|
if f.name.contains('__test_') {
|
||||||
res << f.name
|
fn_test_names << f.name
|
||||||
}
|
}
|
||||||
|
else if f.name.contains('__testsuite_begin') {
|
||||||
|
fn_begin_test_name = f.name
|
||||||
|
}
|
||||||
|
else if f.name.contains('__testsuite_end') {
|
||||||
|
fn_end_test_name = f.name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mut res := []string
|
||||||
|
if fn_begin_test_name.len > 0 {
|
||||||
|
res << fn_begin_test_name
|
||||||
|
}
|
||||||
|
res << fn_test_names
|
||||||
|
if fn_end_test_name.len > 0 {
|
||||||
|
res << fn_end_test_name
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
@ -1142,4 +1159,3 @@ fn type_cat_str(tc TypeCategory) string {
|
||||||
'unknown'}}
|
'unknown'}}
|
||||||
return tc_str
|
return tc_str
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -624,7 +624,7 @@ pub fn rmdir(path string) {
|
||||||
|
|
||||||
pub fn rmdir_recursive(path string) {
|
pub fn rmdir_recursive(path string) {
|
||||||
items := os.ls(path) or {
|
items := os.ls(path) or {
|
||||||
panic(err)
|
return
|
||||||
}
|
}
|
||||||
for item in items {
|
for item in items {
|
||||||
if os.is_dir(filepath.join(path,item)) {
|
if os.is_dir(filepath.join(path,item)) {
|
||||||
|
@ -637,7 +637,7 @@ pub fn rmdir_recursive(path string) {
|
||||||
|
|
||||||
pub fn is_dir_empty(path string) bool {
|
pub fn is_dir_empty(path string) bool {
|
||||||
items := os.ls(path) or {
|
items := os.ls(path) or {
|
||||||
panic(err)
|
return true
|
||||||
}
|
}
|
||||||
return items.len == 0
|
return items.len == 0
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
import os
|
import (
|
||||||
import filepath
|
os
|
||||||
|
filepath
|
||||||
|
)
|
||||||
|
|
||||||
fn test_aaa_setup(){
|
fn testsuite_begin() {
|
||||||
|
cleanup_leftovers()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn testsuite_end() {
|
||||||
cleanup_leftovers()
|
cleanup_leftovers()
|
||||||
assert true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_setenv() {
|
fn test_setenv() {
|
||||||
|
@ -240,11 +245,6 @@ fn test_make_symlink_check_is_link_and_remove_symlink() {
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
fn test_zzz_cleanup(){
|
|
||||||
cleanup_leftovers() assert true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fn test_symlink() {
|
fn test_symlink() {
|
||||||
$if windows { return }
|
$if windows { return }
|
||||||
os.mkdir('symlink') or { panic(err) }
|
os.mkdir('symlink') or { panic(err) }
|
||||||
|
@ -285,18 +285,14 @@ fn test_is_executable_writable_readable() {
|
||||||
// this function is called by both test_aaa_setup & test_zzz_cleanup
|
// this function is called by both test_aaa_setup & test_zzz_cleanup
|
||||||
// it ensures that os tests do not polute the filesystem with leftover
|
// it ensures that os tests do not polute the filesystem with leftover
|
||||||
// files so that they can be run several times in a row.
|
// files so that they can be run several times in a row.
|
||||||
fn cleanup_leftovers(){
|
fn cleanup_leftovers() {
|
||||||
// possible leftovers from test_cp
|
// possible leftovers from test_cp
|
||||||
os.rm('cp_example.txt')
|
os.rm('cp_example.txt')
|
||||||
os.rm('cp_new_example.txt')
|
os.rm('cp_new_example.txt')
|
||||||
|
|
||||||
// possible leftovers from test_cp_r
|
// possible leftovers from test_cp_r
|
||||||
os.rm('ex/ex2/ex2.txt')
|
os.rmdir_recursive('ex')
|
||||||
os.rmdir('ex/ex2')
|
os.rmdir_recursive('ex2')
|
||||||
os.rm('ex/ex1.txt')
|
|
||||||
os.rmdir('ex')
|
|
||||||
os.rm('ex2/ex2.txt')
|
|
||||||
os.rmdir('ex2')
|
|
||||||
os.rm('ex1.txt')
|
os.rm('ex1.txt')
|
||||||
os.rm('ex2.txt')
|
os.rm('ex2.txt')
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue