diff options
author | Tobias Bosch <tbosch@google.com> | 2019-07-17 04:22:34 -0700 |
---|---|---|
committer | Tobias Bosch <tbosch@google.com> | 2019-07-18 09:08:50 +0000 |
commit | 198a3c9519e5d93ffeb8f5e1b6694c34b178c5c4 (patch) | |
tree | 770bbd6c63184a1dbcdbcee01bf551815d062bee /compiler_wrapper/sanitizer_flags_test.go | |
parent | 22c32b40be54a9e4062655f90908f98b11e73966 (diff) | |
download | toolchain-utils-198a3c9519e5d93ffeb8f5e1b6694c34b178c5c4.tar.gz |
Fix minor bugs
These bugs were detected while creating golden tests
and comparing them to the old wrapper (see next commit).
Also makes flag order in old wrapper deterministic by
replacing sets with a SetList class that is based
on a list.
BUG=chromium:773875
TEST=unit test
Change-Id: I8e2680f732577f1f590042f1ccd589dfedadd6ce
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1706791
Tested-by: Tobias Bosch <tbosch@google.com>
Reviewed-by: George Burgess <gbiv@chromium.org>
Diffstat (limited to 'compiler_wrapper/sanitizer_flags_test.go')
-rw-r--r-- | compiler_wrapper/sanitizer_flags_test.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/compiler_wrapper/sanitizer_flags_test.go b/compiler_wrapper/sanitizer_flags_test.go index 2b348779..091af25a 100644 --- a/compiler_wrapper/sanitizer_flags_test.go +++ b/compiler_wrapper/sanitizer_flags_test.go @@ -32,6 +32,30 @@ func TestFilterUnsupportedSanitizerFlagsIfSanitizeGiven(t *testing.T) { }) } +func TestFilterUnsupportedDefaultSanitizerFlagsIfSanitizeGivenForClang(t *testing.T) { + withTestContext(t, func(ctx *testContext) { + ctx.cfg.commonFlags = []string{"-D_FORTIFY_SOURCE=1"} + cmd := ctx.must(callCompiler(ctx, ctx.cfg, + ctx.newCommand(clangX86_64, "-fsanitize=kernel-address", mainCc))) + if err := verifyArgCount(cmd, 0, "-D_FORTIFY_SOURCE=1"); err != nil { + t.Error(err) + } + }) +} + +func TestKeepUnsupportedDefaultSanitizerFlagsIfSanitizeGivenForGcc(t *testing.T) { + withTestContext(t, func(ctx *testContext) { + ctx.cfg.commonFlags = []string{"-D_FORTIFY_SOURCE=1"} + cmd := ctx.must(callCompiler(ctx, ctx.cfg, + ctx.newCommand(gccX86_64, "-fsanitize=kernel-address", mainCc))) + if err := verifyArgCount(cmd, 1, "-D_FORTIFY_SOURCE=1"); err != nil { + t.Error(err) + } + }) +} + +// TODO: This is a bug in the old wrapper to not filter +// non user args for gcc. Fix this once we don't compare to the old wrapper anymore. func TestKeepSanitizerFlagsIfNoSanitizeGiven(t *testing.T) { withTestContext(t, func(ctx *testContext) { cmd := ctx.must(callCompiler(ctx, ctx.cfg, |