aboutsummaryrefslogtreecommitdiff
path: root/adapters/gtest/executable.go
diff options
context:
space:
mode:
authorFlu0r1ne <flur01ne@flu0r1ne.net>2021-09-06 01:58:42 -0500
committerFlu0r1ne <flur01ne@flu0r1ne.net>2021-09-06 01:58:42 -0500
commit788ae3e0266bdb12bdff6c260dda2e3bcbdfc79c (patch)
tree22f2dab21e0c6b56085f88fb0047945edc735e23 /adapters/gtest/executable.go
parentccb11dfb1e539b4e5732442a7a1f701996b608c5 (diff)
downloadplanr-788ae3e0266bdb12bdff6c260dda2e3bcbdfc79c.tar.xz
planr-788ae3e0266bdb12bdff6c260dda2e3bcbdfc79c.zip
Add directives for compiler options and shared linking
Diffstat (limited to 'adapters/gtest/executable.go')
-rw-r--r--adapters/gtest/executable.go43
1 files changed, 29 insertions, 14 deletions
diff --git a/adapters/gtest/executable.go b/adapters/gtest/executable.go
index 25c83c1..80560c5 100644
--- a/adapters/gtest/executable.go
+++ b/adapters/gtest/executable.go
@@ -12,14 +12,22 @@ import (
"sort"
"context"
- "golang.flu0r1ne.net/planr"
-)
+ "golang.flu0r1ne.net/planr")
type executable struct {
- exeNm string
- testpath string
- srcs []string
- tcs []planr.TestCase
+ exeNm string
+ testpath string
+ srcs []string
+ includeSrc bool
+ compilerOptions string
+ tcs []planr.TestCase
+}
+
+func dieConflictingExeProperty(exe executable, tc planr.TestCase, property string) {
+ log.Fatalf(
+ "Two test cases (including %s) belonging to the same executable (%s) have one or more conflicting properties\nProperty :%s",
+ tc.Cname, exe.testpath, property,
+ )
}
func createExecutables(tcs []planr.TestCase) []executable {
@@ -39,10 +47,12 @@ func createExecutables(tcs []planr.TestCase) []executable {
exe := executable {
- planr.Cname("", file),
- file,
- cfg.Srcs,
- exeTcs,
+ exeNm: planr.Cname("", file),
+ testpath: file,
+ srcs: cfg.Srcs,
+ includeSrc: *cfg.Include_src,
+ compilerOptions: cfg.Compiler_options,
+ tcs: exeTcs,
}
exes[file] = exe
@@ -53,10 +63,15 @@ func createExecutables(tcs []planr.TestCase) []executable {
// We could create two different executables for each source list
// But, that would be confusing so we're going to disallow it
if !reflect.DeepEqual(exe.srcs, cfg.Srcs) {
- log.Fatalf(
- "Two test case definitions %s and %s have different lists of sources",
- exe.testpath, cfg.Testfile,
- )
+ dieConflictingExeProperty(exe, tc, "srcs")
+ }
+
+ if exe.compilerOptions != cfg.Compiler_options {
+ dieConflictingExeProperty(exe, tc, "compiler_options")
+ }
+
+ if exe.includeSrc != *cfg.Include_src {
+ dieConflictingExeProperty(exe, tc, "include_src")
}
exe.tcs = append(exe.tcs, tc)