From 788ae3e0266bdb12bdff6c260dda2e3bcbdfc79c Mon Sep 17 00:00:00 2001 From: Flu0r1ne Date: Mon, 6 Sep 2021 01:58:42 -0500 Subject: Add directives for compiler options and shared linking --- adapters/gtest/executable.go | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) (limited to 'adapters/gtest/executable.go') 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) -- cgit v1.2.3