MCPcopy Create free account
hub / github.com/celer-pkg/celer / TestToolchainGenerate_UsesDebugFlags

Function TestToolchainGenerate_UsesDebugFlags

configs/toolchain_test.go:42–93  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

40}
41
42func TestToolchainGenerate_UsesDebugFlags(t *testing.T) {
43 var buffer strings.Builder
44
45 toolchain := Toolchain{
46 Name: "gcc",
47 SystemName: "linux",
48 SystemProcessor: "x86_64",
49 Path: "/usr/bin",
50 CC: "gcc",
51 CXX: "g++",
52 CFlags: []string{"-O2"},
53 CXXFlags: []string{"-O2"},
54 LinkFlags: []string{"-Wl,--as-needed"},
55 CFlagsDebug: []string{"-O0", "-g3"},
56 CXXFlagsDebug: []string{"-O0", "-g3"},
57 LinkFlagsDebug: []string{"-Wl,--export-dynamic"},
58 ctx: fakeContext{build: "debug"},
59 }
60
61 if err := toolchain.generate(&buffer); err != nil {
62 t.Fatalf("generate() error = %v", err)
63 }
64
65 output := buffer.String()
66 // When both cflags and cxxflags exist, they use foreach loop
67 expected := []string{
68 `foreach(flag_var CMAKE_C_FLAGS_INIT CMAKE_CXX_FLAGS_INIT)`,
69 ` string(APPEND ${flag_var} " -O0")`,
70 ` string(APPEND ${flag_var} " -g3")`,
71 `endforeach()`,
72 `foreach(flag_var CMAKE_EXE_LINKER_FLAGS_INIT CMAKE_SHARED_LINKER_FLAGS_INIT CMAKE_MODULE_LINKER_FLAGS_INIT)`,
73 ` string(APPEND ${flag_var} " -Wl,--export-dynamic")`,
74 }
75
76 for _, item := range expected {
77 if !strings.Contains(output, item) {
78 t.Fatalf("generated toolchain file missing %q\noutput:\n%s", item, output)
79 }
80 }
81
82 unexpected := []string{
83 `string(APPEND CMAKE_C_FLAGS_INIT " -O2")`,
84 `string(APPEND CMAKE_CXX_FLAGS_INIT " -O2")`,
85 `string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " -Wl,--as-needed")`,
86 }
87
88 for _, item := range unexpected {
89 if strings.Contains(output, item) {
90 t.Fatalf("generated toolchain file should not contain %q\noutput:\n%s", item, output)
91 }
92 }
93}

Callers

nothing calls this directly

Calls 2

generateMethod · 0.95
StringMethod · 0.45

Tested by

no test coverage detected