aboutsummaryrefslogtreecommitdiff
path: root/compiler_wrapper/android_config_test.go
diff options
context:
space:
mode:
authorTobias Bosch <tbosch@google.com>2019-09-30 10:11:25 -0700
committerTobias Bosch <tbosch@google.com>2019-09-30 17:43:29 +0000
commitbbb3c8113eb9c8b44d727874ae46066e7f2ca81b (patch)
tree76aff18464d8c859db0a53edd74f75ffe0d44d58 /compiler_wrapper/android_config_test.go
parent0010a5194eb63fa107d3d982fa6037b655c409fc (diff)
downloadtoolchain-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.go66
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,
+ },
+ },
+ }
+}