(t *testing.T)
| 86 | } |
| 87 | |
| 88 | func TestParse_VariableVsRuleMisclassification(t *testing.T) { |
| 89 | t.Parallel() |
| 90 | makefile := ` |
| 91 | ifeq ($(OS), Windows_NT) |
| 92 | MKDIR := $(shell which mkdir.exe) |
| 93 | else |
| 94 | MKDIR := mkdir |
| 95 | endif |
| 96 | ` |
| 97 | tmp := writeTempMakefile(t, makefile) |
| 98 | defer os.Remove(tmp) |
| 99 | |
| 100 | ret, err := Parse(tmp) |
| 101 | require.NoError(t, err) |
| 102 | |
| 103 | varNames := make([]string, len(ret.Variables)) |
| 104 | for i, v := range ret.Variables { |
| 105 | varNames[i] = v.Name |
| 106 | } |
| 107 | |
| 108 | assert.Contains(t, varNames, "MKDIR", "MKDIR should be parsed as a variable, not a rule") |
| 109 | assert.Empty(t, ret.Rules, "no rules should be parsed in this makefile") |
| 110 | } |
| 111 | |
| 112 | func TestParse_BuildRuleRecognized(t *testing.T) { |
| 113 | t.Parallel() |
nothing calls this directly
no test coverage detected