diff options
Diffstat (limited to 'adapters/gtest/executable.go')
-rw-r--r-- | adapters/gtest/executable.go | 43 |
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) |