From 198a3c9519e5d93ffeb8f5e1b6694c34b178c5c4 Mon Sep 17 00:00:00 2001 From: Tobias Bosch Date: Wed, 17 Jul 2019 04:22:34 -0700 Subject: 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 Reviewed-by: George Burgess --- compiler_wrapper/disable_werror_flag_test.go | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'compiler_wrapper/disable_werror_flag_test.go') diff --git a/compiler_wrapper/disable_werror_flag_test.go b/compiler_wrapper/disable_werror_flag_test.go index affd8875..7ab938e3 100644 --- a/compiler_wrapper/disable_werror_flag_test.go +++ b/compiler_wrapper/disable_werror_flag_test.go @@ -66,6 +66,36 @@ func TestDoubleBuildWithWNoErrorFlag(t *testing.T) { }) } +func TestDoubleBuildWithWNoErrorAndCCache(t *testing.T) { + withForceDisableWErrorTestContext(t, func(ctx *testContext) { + ctx.cfg.useCCache = true + ctx.cmdMock = func(cmd *command, stdout io.Writer, stderr io.Writer) error { + switch ctx.cmdCount { + case 1: + // TODO: This is a bug in the old wrapper that it drops the ccache path + // during double build. Fix this once we don't compare to the old wrapper anymore. + if err := verifyPath(cmd, "ccache"); err != nil { + return err + } + fmt.Fprint(stderr, "-Werror originalerror") + return newExitCodeError(1) + case 2: + if err := verifyPath(cmd, "ccache"); err != nil { + return err + } + return nil + default: + t.Fatalf("unexpected command: %#v", cmd) + return nil + } + } + ctx.must(callCompiler(ctx, ctx.cfg, ctx.newCommand(clangX86_64, mainCc))) + if ctx.cmdCount != 2 { + t.Errorf("expected 2 calls. Got: %d", ctx.cmdCount) + } + }) +} + func TestForwardStdoutAndStderrWhenDoubleBuildSucceeds(t *testing.T) { withForceDisableWErrorTestContext(t, func(ctx *testContext) { ctx.cmdMock = func(cmd *command, stdout io.Writer, stderr io.Writer) error { -- cgit v1.2.3