v2 / vlib / v / tests / known_errors / known_errors_test.v
36 lines · 31 sloc · 860 bytes · 6a32c810703f4ec0c39fe18298ebe6c40acac8f1
Raw
1import os
2
3const vexe = @VEXE
4
5const vroot = os.dir(vexe)
6
7const testdata_folder = 'vlib/v/tests/known_errors/testdata'
8
9fn test_known_errors_testdata_folder_exists() {
10 os.chdir(vroot)!
11 assert os.is_dir(testdata_folder)
12}
13
14fn test_known_failures_are_still_failures() {
15 mut oks := []string{}
16 mut files := os.walk_ext(testdata_folder, '.v')
17 files << os.walk_ext(testdata_folder, '.vv')
18 for f in files {
19 cmd := '${os.quoted_path(vexe)} ${os.quoted_path(f)}'
20 println('known compilation failure: ${cmd}')
21 res := os.execute(cmd)
22 if res.exit_code == 0 {
23 oks << cmd
24 println(' unexpectedly COMPILED: ${cmd}')
25 } else {
26 assert true
27 }
28 }
29 println('Summary: ${files.len} files, ${oks.len} unexpectedly succeeded.')
30 if oks.len != 0 {
31 for cmd in oks {
32 println(' expected to fail, but SUCCEEDED command: ${cmd}')
33 }
34 assert false
35 }
36}
37