@@ -20,8 +20,28 @@ func TestReleaseUsesAutorelease(t *testing.T) {
2020 value string
2121 expected bool
2222 }{
23+ // Basic forms.
2324 {"%autorelease" , true },
2425 {"%{autorelease}" , true },
26+
27+ // Braced form with arguments (e.g., 389-ds-base).
28+ {"%{autorelease -n %{?with_asan:-e asan}}%{?dist}" , true },
29+ {"%{autorelease -e asan}" , true },
30+
31+ // Conditional forms (e.g., gnutls, keylime-agent-rust).
32+ {"%{?autorelease}%{!?autorelease:1%{?dist}}" , true },
33+ {"%{?autorelease}" , true },
34+
35+ // Conditional forms with a fallback value are NOT autorelease — the fallback
36+ // means we cannot conclusively determine that autorelease is being used.
37+ {"%{!?autorelease:1%{?dist}}" , false },
38+ {"%{?autorelease:1%{?dist}}" , false },
39+
40+ // False positives (e.g., python-pyodbc).
41+ {"%{autorelease_suffix}" , false },
42+ {"%{?autorelease_extra}" , false },
43+
44+ // Static release values.
2545 {"1" , false },
2646 {"1%{?dist}" , false },
2747 {"3%{?dist}.1" , false },
0 commit comments