aboutsummaryrefslogtreecommitdiff
path: root/adapters/gtest/executable.go
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2021-09-06 01:58:42 -0500
committerFurkan Sahin <furkan-dev@proton.me>2021-09-06 01:58:42 -0500
commit4a38e9734d093e151b281e40479707e34de2c5dd (patch)
tree1b0ee48bcea83db232da387325e9c0ac5891d183 /adapters/gtest/executable.go
parent530ae725785611e19cc6d9b063d1de1336e0c1dc (diff)
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 feafe97..f0eb158 100644
--- a/adapters/gtest/executable.go
+++ b/adapters/gtest/executable.go
@@ -12,14 +12,22 @@ import (
"sort"
"context"
- "golang.furkistan.com/planr"
-)
+ "golang.furkistan.com/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)