xref: /aosp_15_r20/external/toolchain-utils/compiler_wrapper/libgcc_flags_test.go (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1*760c253cSXin Li// Copyright 2021 The ChromiumOS Authors
2*760c253cSXin Li// Use of this source code is governed by a BSD-style license that can be
3*760c253cSXin Li// found in the LICENSE file.
4*760c253cSXin Li
5*760c253cSXin Lipackage main
6*760c253cSXin Li
7*760c253cSXin Liimport (
8*760c253cSXin Li	"testing"
9*760c253cSXin Li)
10*760c253cSXin Li
11*760c253cSXin Lifunc TestDefaultStaticLibGCC(t *testing.T) {
12*760c253cSXin Li	withTestContext(t, func(ctx *testContext) {
13*760c253cSXin Li		runWithCompiler := func(compiler string) {
14*760c253cSXin Li			cmd := ctx.must(callCompiler(ctx, ctx.cfg,
15*760c253cSXin Li				ctx.newCommand(compiler, mainCc)))
16*760c253cSXin Li			if err := verifyArgCount(cmd, 1, "-static-libgcc"); err != nil {
17*760c253cSXin Li				t.Error(err)
18*760c253cSXin Li			}
19*760c253cSXin Li		}
20*760c253cSXin Li
21*760c253cSXin Li		runWithCompiler(gccX86_64)
22*760c253cSXin Li		runWithCompiler(clangX86_64)
23*760c253cSXin Li	})
24*760c253cSXin Li}
25*760c253cSXin Li
26*760c253cSXin Lifunc TestKeepStaticLibGCCWithUserArgs(t *testing.T) {
27*760c253cSXin Li	withTestContext(t, func(ctx *testContext) {
28*760c253cSXin Li		runWithCompiler := func(compiler string) {
29*760c253cSXin Li			cmd := ctx.must(callCompiler(ctx, ctx.cfg,
30*760c253cSXin Li				ctx.newCommand(compiler, "-static-libgcc", mainCc)))
31*760c253cSXin Li			if err := verifyArgOrder(cmd, "-static-libgcc", mainCc); err != nil {
32*760c253cSXin Li				t.Error(err)
33*760c253cSXin Li			}
34*760c253cSXin Li		}
35*760c253cSXin Li
36*760c253cSXin Li		runWithCompiler(gccX86_64)
37*760c253cSXin Li		runWithCompiler(clangX86_64)
38*760c253cSXin Li	})
39*760c253cSXin Li}
40*760c253cSXin Li
41*760c253cSXin Lifunc TestNoAddedStaticLibGCCWithSharedLibGCC(t *testing.T) {
42*760c253cSXin Li	withTestContext(t, func(ctx *testContext) {
43*760c253cSXin Li		runWithCompiler := func(compiler string) {
44*760c253cSXin Li			cmd := ctx.must(callCompiler(ctx, ctx.cfg,
45*760c253cSXin Li				ctx.newCommand(compiler, "-shared-libgcc", mainCc)))
46*760c253cSXin Li			if err := verifyArgCount(cmd, 0, "-static-libgcc"); err != nil {
47*760c253cSXin Li				t.Error(err)
48*760c253cSXin Li			}
49*760c253cSXin Li			if err := verifyArgCount(cmd, 1, "-shared-libgcc"); err != nil {
50*760c253cSXin Li				t.Error(err)
51*760c253cSXin Li			}
52*760c253cSXin Li		}
53*760c253cSXin Li
54*760c253cSXin Li		runWithCompiler(gccX86_64)
55*760c253cSXin Li		runWithCompiler(clangX86_64)
56*760c253cSXin Li	})
57*760c253cSXin Li}
58