diff options
author | Tobias Bosch <tbosch@google.com> | 2019-09-30 10:11:25 -0700 |
---|---|---|
committer | Tobias Bosch <tbosch@google.com> | 2019-09-30 17:43:29 +0000 |
commit | bbb3c8113eb9c8b44d727874ae46066e7f2ca81b (patch) | |
tree | 76aff18464d8c859db0a53edd74f75ffe0d44d58 /compiler_wrapper/android_config_test.go | |
parent | 0010a5194eb63fa107d3d982fa6037b655c409fc (diff) | |
download | toolchain-utils-bbb3c8113eb9c8b44d727874ae46066e7f2ca81b.tar.gz |
Initial support for the android wrapper.
BUG=chromium:773875
TEST=golden tests and comparison against old andorid wrapper.
Change-Id: Ic11be4bc1399adcbf9c50134928aceda45e936ca
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1831787
Tested-by: Tobias Bosch <tbosch@google.com>
Reviewed-by: George Burgess <gbiv@chromium.org>
Diffstat (limited to 'compiler_wrapper/android_config_test.go')
-rw-r--r-- | compiler_wrapper/android_config_test.go | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/compiler_wrapper/android_config_test.go b/compiler_wrapper/android_config_test.go new file mode 100644 index 00000000..67a3b0f6 --- /dev/null +++ b/compiler_wrapper/android_config_test.go @@ -0,0 +1,66 @@ +// 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/filepath" + "testing" +) + +const oldAndroidPathForTest = "$ANDROID_PREBUILTS/clang/host/linux-x86/clang-r353983c/bin/clang" +const androidGoldenDir = "testdata/android_golden" + +func TestAndroidConfig(t *testing.T) { + withTestContext(t, func(ctx *testContext) { + useLlvmNext := false + useCCache := false + cfg, err := getConfig("android", useCCache, useLlvmNext, oldAndroidPathForTest, "123") + if err != nil { + t.Fatal(err) + } + ctx.updateConfig(cfg) + + runGoldenRecords(ctx, androidGoldenDir, []goldenFile{ + createAndroidClangPathGoldenInputs(ctx), + }) + }) +} + +func createAndroidClangPathGoldenInputs(ctx *testContext) goldenFile { + deepPath := "a/b/c/d/e/f/g/clang" + linkedDeepPath := "symlinked/clang_other" + ctx.writeFile(filepath.Join(ctx.tempDir, "/pathenv/clang"), "") + ctx.symlink(deepPath, linkedDeepPath) + return goldenFile{ + Name: "clang_path.json", + Records: []goldenRecord{ + { + WrapperCmd: newGoldenCmd(filepath.Join(ctx.tempDir, "clang"), mainCc), + Cmds: okResults, + }, + { + WrapperCmd: newGoldenCmd(filepath.Join(ctx.tempDir, "clang"), mainCc), + Cmds: errorResults, + }, + { + WrapperCmd: newGoldenCmd(filepath.Join(ctx.tempDir, "clang++"), mainCc), + Cmds: okResults, + }, + { + WrapperCmd: newGoldenCmd(deepPath, mainCc), + Cmds: okResults, + }, + { + WrapperCmd: newGoldenCmd(linkedDeepPath, mainCc), + Cmds: okResults, + }, + { + Env: []string{"PATH=" + filepath.Join(ctx.tempDir, "/pathenv")}, + WrapperCmd: newGoldenCmd("clang", mainCc), + Cmds: okResults, + }, + }, + } +} |