mirror of https://github.com/tinygo-org/tinygo.git
Browse Source
compileopts: Filter target build-tags if user specified an overriding optionpull/3405/merge
Anuraag Agrawal
2 years ago
committed by
GitHub
2 changed files with 158 additions and 1 deletions
@ -0,0 +1,132 @@ |
|||
package compileopts |
|||
|
|||
import ( |
|||
"fmt" |
|||
"strings" |
|||
"testing" |
|||
) |
|||
|
|||
func TestBuildTags(t *testing.T) { |
|||
tests := []struct { |
|||
targetTags []string |
|||
userTags []string |
|||
result []string |
|||
}{ |
|||
{ |
|||
targetTags: []string{}, |
|||
userTags: []string{}, |
|||
result: []string{ |
|||
"tinygo", |
|||
"math_big_pure_go", |
|||
"gc.conservative", |
|||
"scheduler.none", |
|||
"serial.none", |
|||
}, |
|||
}, |
|||
{ |
|||
targetTags: []string{"bear"}, |
|||
userTags: []string{}, |
|||
result: []string{ |
|||
"bear", |
|||
"tinygo", |
|||
"math_big_pure_go", |
|||
"gc.conservative", |
|||
"scheduler.none", |
|||
"serial.none", |
|||
}, |
|||
}, |
|||
{ |
|||
targetTags: []string{}, |
|||
userTags: []string{"cat"}, |
|||
result: []string{ |
|||
"tinygo", |
|||
"math_big_pure_go", |
|||
"gc.conservative", |
|||
"scheduler.none", |
|||
"serial.none", |
|||
"cat", |
|||
}, |
|||
}, |
|||
{ |
|||
targetTags: []string{"bear"}, |
|||
userTags: []string{"cat"}, |
|||
result: []string{ |
|||
"bear", |
|||
"tinygo", |
|||
"math_big_pure_go", |
|||
"gc.conservative", |
|||
"scheduler.none", |
|||
"serial.none", |
|||
"cat", |
|||
}, |
|||
}, |
|||
{ |
|||
targetTags: []string{"bear", "runtime_memhash_leveldb"}, |
|||
userTags: []string{"cat"}, |
|||
result: []string{ |
|||
"bear", |
|||
"runtime_memhash_leveldb", |
|||
"tinygo", |
|||
"math_big_pure_go", |
|||
"gc.conservative", |
|||
"scheduler.none", |
|||
"serial.none", |
|||
"cat", |
|||
}, |
|||
}, |
|||
{ |
|||
targetTags: []string{"bear", "runtime_memhash_leveldb"}, |
|||
userTags: []string{"cat", "runtime_memhash_leveldb"}, |
|||
result: []string{ |
|||
"bear", |
|||
"tinygo", |
|||
"math_big_pure_go", |
|||
"gc.conservative", |
|||
"scheduler.none", |
|||
"serial.none", |
|||
"cat", |
|||
"runtime_memhash_leveldb", |
|||
}, |
|||
}, |
|||
{ |
|||
targetTags: []string{"bear", "runtime_memhash_leveldb"}, |
|||
userTags: []string{"cat", "runtime_memhash_sip"}, |
|||
result: []string{ |
|||
"bear", |
|||
"tinygo", |
|||
"math_big_pure_go", |
|||
"gc.conservative", |
|||
"scheduler.none", |
|||
"serial.none", |
|||
"cat", |
|||
"runtime_memhash_sip", |
|||
}, |
|||
}, |
|||
} |
|||
|
|||
for _, tc := range tests { |
|||
tt := tc |
|||
t.Run(fmt.Sprintf("%s+%s", strings.Join(tt.targetTags, ","), strings.Join(tt.userTags, ",")), func(t *testing.T) { |
|||
c := &Config{ |
|||
Target: &TargetSpec{ |
|||
BuildTags: tt.targetTags, |
|||
}, |
|||
Options: &Options{ |
|||
Tags: tt.userTags, |
|||
}, |
|||
} |
|||
|
|||
res := c.BuildTags() |
|||
|
|||
if len(res) != len(tt.result) { |
|||
t.Errorf("expected %d tags, got %d", len(tt.result), len(res)) |
|||
} |
|||
|
|||
for i, tag := range tt.result { |
|||
if tag != res[i] { |
|||
t.Errorf("tag %d: expected %s, got %s", i, tt.result[i], tag) |
|||
} |
|||
} |
|||
}) |
|||
} |
|||
} |
Loading…
Reference in new issue