| // Copyright 2019 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| package main |
| |
| import ( |
| "path" |
| "testing" |
| ) |
| |
| const oldClangHostWrapperPathForTest = "$CHROOT/usr/bin/clang_host_wrapper" |
| const oldGccHostWrapperPathForTest = "$CHROOT/../src/third_party/chromiumos-overlay/sys-devel/gcc/files/host_wrapper" |
| const crosClangHostGoldenDir = "testdata/cros_clang_host_golden" |
| const crosGccHostGoldenDir = "testdata/cros_gcc_host_golden" |
| |
| func TestCrosClangHostConfig(t *testing.T) { |
| withTestContext(t, func(ctx *testContext) { |
| ctx.updateConfig(getCrosHostConfig(oldClangHostWrapperPathForTest)) |
| |
| gomaPath := path.Join(ctx.tempDir, "gomacc") |
| ctx.writeFile(gomaPath, "") |
| gomaEnv := "GOMACC_PATH=" + gomaPath |
| |
| goldenFiles := []goldenFile{ |
| createClangPathGoldenInputs(ctx, gomaEnv), |
| createGoldenInputsForAllTargets("clang", mainCc), |
| createGoldenInputsForAllTargets("clang", "-ftrapv", mainCc), |
| createSanitizerGoldenInputs("clang"), |
| createClangArgsGoldenInputs(), |
| createBisectGoldenInputs(), |
| createForceDisableWErrorGoldenInputs(), |
| createClangTidyGoldenInputs(gomaEnv), |
| } |
| |
| runGoldenRecords(ctx, crosClangHostGoldenDir, goldenFiles) |
| }) |
| } |
| |
| func TestCrosGccHostConfig(t *testing.T) { |
| withTestContext(t, func(ctx *testContext) { |
| ctx.updateConfig(getCrosHostConfig(oldGccHostWrapperPathForTest)) |
| |
| gomaPath := path.Join(ctx.tempDir, "gomacc") |
| ctx.writeFile(gomaPath, "") |
| gomaEnv := "GOMACC_PATH=" + gomaPath |
| |
| // Note: The old gcc host wrapper is very limited and only adds flags. |
| // So we only test very few things here. |
| goldenFiles := []goldenFile{ |
| createGccPathGoldenInputs(ctx, gomaEnv), |
| createGoldenInputsForAllTargets("gcc", mainCc), |
| createGccArgsGoldenInputs(), |
| } |
| |
| runGoldenRecords(ctx, crosGccHostGoldenDir, goldenFiles) |
| }) |
| } |