v2 / vlib / v / cflag / cflags_test.v
41 lines · 37 sloc · 1.11 KB · bb90b74e2c14f64595e388496a1781ddf925a74c
Raw
1module cflag
2
3import os
4
5fn test_format_keeps_include_and_library_paths_with_spaces_in_one_argument() {
6 test_root := os.join_path(os.vtmp_dir(), 'v_cflag_spaces')
7 include_dir := os.join_path(test_root, 'include dir')
8 library_dir := os.join_path(test_root, 'library dir')
9 os.mkdir_all(include_dir) or { panic(err) }
10 os.mkdir_all(library_dir) or { panic(err) }
11 defer {
12 os.rmdir_all(test_root) or {}
13 }
14 assert CFlag{
15 name: '-I'
16 value: include_dir
17 }.format() or { panic(err) } == '-I"${os.real_path(include_dir)}"'
18 assert CFlag{
19 name: '-L'
20 value: library_dir
21 }.format() or { panic(err) } == '-L"${os.real_path(library_dir)}"'
22}
23
24fn test_defines_others_libs_splits_bare_windows_import_lib_names() {
25 _, _, libs := [
26 CFlag{
27 value: 'Version.lib Advapi32.lib Shell32.lib'
28 },
29 ].defines_others_libs()
30 assert libs == ['-lVersion', '-lAdvapi32', '-lShell32']
31}
32
33fn test_defines_others_libs_keeps_direct_windows_import_lib_paths() {
34 direct_path := 'C:/Program Files/Windows Kits/10/Lib/Version.lib'
35 _, _, libs := [
36 CFlag{
37 value: direct_path
38 },
39 ].defines_others_libs()
40 assert libs == ['"${direct_path}"']
41}
42