fix os_test.v

pull/3804/head
yuyi 2020-02-21 19:24:13 +08:00 committed by GitHub
parent d90a291c5e
commit 527377dc86
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 21 deletions

View File

@ -1069,6 +1069,12 @@ fn test_hello() {
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 test an entire module, do `v test mymodule`.

View File

@ -819,11 +819,28 @@ fn (t &Table) main_exists() bool {
}
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 {
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
}
@ -1142,4 +1159,3 @@ fn type_cat_str(tc TypeCategory) string {
'unknown'}}
return tc_str
}

View File

@ -624,7 +624,7 @@ pub fn rmdir(path string) {
pub fn rmdir_recursive(path string) {
items := os.ls(path) or {
panic(err)
return
}
for item in items {
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 {
items := os.ls(path) or {
panic(err)
return true
}
return items.len == 0
}

View File

@ -1,9 +1,14 @@
import os
import filepath
import (
os
filepath
)
fn test_aaa_setup(){
fn testsuite_begin() {
cleanup_leftovers()
}
fn testsuite_end() {
cleanup_leftovers()
assert true
}
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() {
$if windows { return }
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
// it ensures that os tests do not polute the filesystem with leftover
// files so that they can be run several times in a row.
fn cleanup_leftovers(){
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.rm('ex/ex2/ex2.txt')
os.rmdir('ex/ex2')
os.rm('ex/ex1.txt')
os.rmdir('ex')
os.rm('ex2/ex2.txt')
os.rmdir('ex2')
os.rmdir_recursive('ex')
os.rmdir_recursive('ex2')
os.rm('ex1.txt')
os.rm('ex2.txt')
}