v / vlib / v2 / ssa / skip_modules_test.v
36 lines · 31 sloc · 1.14 KB · a7153322629091f3f2d79f0bf318d0fb2c13c425
Raw
1// Copyright (c) 2026 Alexander Medvednikov. All rights reserved.
2// Use of this source code is governed by an MIT license
3// that can be found in the LICENSE file.
4module ssa
5
6import v2.ast
7
8fn test_skip_modules_with_file_fragment_does_not_drop_user_modules() {
9 mut mod := Module.new('skip_modules_test')
10 mut b := Builder.new(mod)
11 b.cur_module = 'c'
12 b.skip_modules['c'] = true
13 b.skip_module_file_fragments['c'] = '/vlib/v2/gen/c/'
14
15 decl := ast.FnDecl{
16 name: 'user_fn'
17 }
18 assert b.should_build_fn('/tmp/project/c/user.v', decl)
19 assert !b.should_build_fn('/Users/me/code/v/vlib/v2/gen/c/c.v', decl)
20 assert !b.should_build_fn('../../vlib/v2/gen/c/c.v', decl)
21}
22
23fn test_skip_modules_with_file_fragment_matches_eval_backend_path() {
24 mut mod := Module.new('skip_modules_eval_test')
25 mut b := Builder.new(mod)
26 b.cur_module = 'eval'
27 b.skip_modules['eval'] = true
28 b.skip_module_file_fragments['eval'] = '/vlib/v2/eval/'
29
30 decl := ast.FnDecl{
31 name: 'user_fn'
32 }
33 assert b.should_build_fn('/tmp/project/eval/user.v', decl)
34 assert !b.should_build_fn('/Users/me/code/v/vlib/v2/eval/eval.v', decl)
35 assert !b.should_build_fn('../../vlib/v2/eval/eval.v', decl)
36}
37