1 | module main |
2 | |
3 | import os |
4 | import dl |
5 | |
6 | const ( |
7 | vexe = os.real_path(os.getenv('VEXE')) |
8 | cfolder = os.dir(@FILE) |
9 | so_ext = dl.dl_ext |
10 | library_file_name = os.join_path(cfolder, dl.get_libname('library')) |
11 | ) |
12 | |
13 | fn test_vexe() { |
14 | // dump(vexe) |
15 | assert vexe != '' |
16 | // dump(os.executable()) |
17 | // dump(@FILE) |
18 | // dump(cfolder) |
19 | // dump(so_ext) |
20 | // dump(library_file_name) |
21 | } |
22 | |
23 | fn test_can_compile_library() { |
24 | os.chdir(cfolder) or {} |
25 | os.rm(library_file_name) or {} |
26 | v_compile('-d no_backtrace -o library -shared modules/library/library.v') |
27 | assert os.is_file(library_file_name) |
28 | } |
29 | |
30 | fn test_can_compile_main_program() { |
31 | os.chdir(cfolder) or {} |
32 | assert os.is_file(library_file_name) |
33 | result := v_compile('run use.v') |
34 | // dump(result) |
35 | assert result.output.contains('res: 4') |
36 | os.rm(library_file_name) or {} |
37 | } |
38 | |
39 | fn test_can_compile_and_use_library_with_skip_unused() { |
40 | os.chdir(cfolder) or {} |
41 | os.rm(library_file_name) or {} |
42 | v_compile('-skip-unused -d no_backtrace -o library -shared modules/library/library.v') |
43 | assert os.is_file(library_file_name) |
44 | result := v_compile('run use.v') |
45 | assert result.output.contains('res: 4') |
46 | os.rm(library_file_name) or {} |
47 | } |
48 | |
49 | fn v_compile(vopts string) os.Result { |
50 | cmd := '${os.quoted_path(vexe)} -showcc ${vopts}' |
51 | // dump(cmd) |
52 | res := os.execute_or_exit(cmd) |
53 | // dump(res) |
54 | assert res.exit_code == 0 |
55 | return res |
56 | } |