vvet: fix false positive, add test (#14403)

Larpon 2022-05-16 11:24:21 +02:00 committed by Jef Roosens
parent 9eba367a46
commit f1b35aff22
Signed by: Jef Roosens
GPG Key ID: B75D4F293C7052DB
8 changed files with 18 additions and 5 deletions

View File

@ -8,6 +8,8 @@ const github_job = os.getenv('GITHUB_JOB')
const ( const (
skip_test_files = [ skip_test_files = [
'cmd/tools/vdoc/html_tag_escape_test.v', /* can't locate local module: markdown */
'cmd/tools/vdoc/tests/vdoc_file_test.v', /* fails on Windows; order of output is not as expected */
'vlib/context/onecontext/onecontext_test.v', 'vlib/context/onecontext/onecontext_test.v',
'vlib/context/deadline_test.v' /* sometimes blocks */, 'vlib/context/deadline_test.v' /* sometimes blocks */,
'vlib/mysql/mysql_orm_test.v' /* mysql not installed */, 'vlib/mysql/mysql_orm_test.v' /* mysql not installed */,
@ -164,6 +166,7 @@ fn main() {
cmd_prefix := args_string.all_before('test-self') cmd_prefix := args_string.all_before('test-self')
title := 'testing vlib' title := 'testing vlib'
mut all_test_files := os.walk_ext(os.join_path(vroot, 'vlib'), '_test.v') mut all_test_files := os.walk_ext(os.join_path(vroot, 'vlib'), '_test.v')
all_test_files << os.walk_ext(os.join_path(vroot, 'cmd'), '_test.v')
test_js_files := os.walk_ext(os.join_path(vroot, 'vlib'), '_test.js.v') test_js_files := os.walk_ext(os.join_path(vroot, 'vlib'), '_test.js.v')
all_test_files << test_js_files all_test_files << test_js_files
testing.eheader(title) testing.eheader(title)

View File

@ -1,2 +1,2 @@
cmd/tools/vvet/tests/array_init_one_val.vv:2: error: Use `var == value` instead of `var in [value]` cmd/tools/vvet/tests/array_init_one_val.vv:2: error: Use `var == value` instead of `var in [value]`
NB: You can run `v fmt -w file.v` to fix these errors automatically Note: You can run `v fmt -w file.v` to fix these errors automatically

View File

@ -3,4 +3,4 @@ cmd/tools/vvet/tests/indent_with_space.vv:10: error: Looks like you are using sp
cmd/tools/vvet/tests/indent_with_space.vv:17: error: Looks like you are using spaces for indentation. cmd/tools/vvet/tests/indent_with_space.vv:17: error: Looks like you are using spaces for indentation.
cmd/tools/vvet/tests/indent_with_space.vv:20: error: Looks like you are using spaces for indentation. cmd/tools/vvet/tests/indent_with_space.vv:20: error: Looks like you are using spaces for indentation.
cmd/tools/vvet/tests/indent_with_space.vv:22: error: Looks like you are using spaces for indentation. cmd/tools/vvet/tests/indent_with_space.vv:22: error: Looks like you are using spaces for indentation.
NB: You can run `v fmt -w file.v` to fix these errors automatically Note: You can run `v fmt -w file.v` to fix these errors automatically

View File

@ -0,0 +1,6 @@
// Some header comment
// read_response is a carefully constructed comment.
// read_response_body. <-- this would earlier trigger a false
// postive.
pub fn read_response() ?(string, string) {}

View File

@ -1,2 +1,2 @@
cmd/tools/vvet/tests/parens_space_a.vv:1: error: Looks like you are adding a space after `(` cmd/tools/vvet/tests/parens_space_a.vv:1: error: Looks like you are adding a space after `(`
NB: You can run `v fmt -w file.v` to fix these errors automatically Note: You can run `v fmt -w file.v` to fix these errors automatically

View File

@ -1,2 +1,2 @@
cmd/tools/vvet/tests/parens_space_b.vv:1: error: Looks like you are adding a space before `)` cmd/tools/vvet/tests/parens_space_b.vv:1: error: Looks like you are adding a space before `)`
NB: You can run `v fmt -w file.v` to fix these errors automatically Note: You can run `v fmt -w file.v` to fix these errors automatically

View File

@ -182,13 +182,17 @@ fn (mut vt Vet) vet_fn_documentation(lines []string, line string, lnumber int) {
fn_name := ident_fn_name(line) fn_name := ident_fn_name(line)
mut grab := true mut grab := true
for j := lnumber - 1; j >= 0; j-- { for j := lnumber - 1; j >= 0; j-- {
mut prev_prev_line := ''
if j - 1 >= 0 {
prev_prev_line = lines[j - 1]
}
prev_line := lines[j] prev_line := lines[j]
if prev_line.contains('}') { // We've looked back to the above scope, stop here if prev_line.contains('}') { // We've looked back to the above scope, stop here
break break
} else if prev_line.starts_with('// $fn_name ') { } else if prev_line.starts_with('// $fn_name ') {
grab = false grab = false
break break
} else if prev_line.starts_with('// $fn_name') { } else if prev_line.starts_with('// $fn_name') && !prev_prev_line.starts_with('//') {
grab = false grab = false
clean_line := line.all_before_last('{').trim(' ') clean_line := line.all_before_last('{').trim(' ')
vt.warn('The documentation for "$clean_line" seems incomplete.', lnumber, vt.warn('The documentation for "$clean_line" seems incomplete.', lnumber,