@@ -70,6 +70,60 @@ C6: Disabled --c6 <enable|disable>
7070 assert .Equal (t , "tdp" , flagValues [2 ].flagName )
7171}
7272
73+ func TestParseConfigFileMissingValues (t * testing.T ) {
74+ // create a temporary config file
75+ content := `Configuration
76+ =============
77+ Cores per Socket: 4 --cores <N>
78+ L3 Cache: 105M --llc <MB>
79+ Package Power / TDP: --tdp <Watts>
80+ Core SSE Frequency: 1-24/3.8, 25-30/3.7, 31-34/3.6, 35-38/3.5, 39-44/3.3, 45-48/3.2 --core-max <GHz>
81+ Uncore Max Frequency: --uncore-max <GHz>
82+ Uncore Min Frequency: --uncore-min <GHz>
83+ Energy Performance Bias: --epb <0-15>
84+ Energy Performance Preference: --epp <0-255>
85+ Scaling Governor: --gov <performance|powersave>
86+ L2 HW prefetcher: Enabled --pref-l2hw <enable|disable>
87+ L2 Adj prefetcher: Enabled --pref-l2adj <enable|disable>
88+ DCU HW prefetcher: Enabled --pref-dcuhw <enable|disable>
89+ DCU IP prefetcher: Enabled --pref-dcuip <enable|disable>
90+ DCU NP prefetcher: Enabled --pref-dcunp <enable|disable>
91+ AMP prefetcher: Enabled --pref-amp <enable|disable>
92+ C6: Enabled --c6 <enable|disable>
93+ C1 Demotion: Disabled --c1-demotion <enable|disable>
94+ `
95+
96+ tmpFile , err := os .CreateTemp ("" , "config_test_*.txt" )
97+ require .NoError (t , err )
98+ defer os .Remove (tmpFile .Name ())
99+
100+ _ , err = tmpFile .WriteString (content )
101+ require .NoError (t , err )
102+ tmpFile .Close ()
103+
104+ // parse the file
105+ flagValues , err := parseConfigFile (tmpFile .Name ())
106+ require .NoError (t , err )
107+
108+ // convert slice to map for easier testing
109+ valueMap := make (map [string ]string )
110+ for _ , fv := range flagValues {
111+ valueMap [fv .flagName ] = fv .value
112+ }
113+
114+ // verify expected values
115+ assert .Equal (t , "4" , valueMap ["cores" ])
116+ assert .Equal (t , "105" , valueMap ["llc" ])
117+ assert .Equal (t , "" , valueMap ["tdp" ])
118+ // verify core-max with buckets is converted to core-sse-freq-buckets
119+ assert .Equal (t , "1-24/3.8, 25-30/3.7, 31-34/3.6, 35-38/3.5, 39-44/3.3, 45-48/3.2" , valueMap ["core-sse-freq-buckets" ])
120+ assert .Equal (t , "" , valueMap ["uncore-max" ])
121+ assert .Equal (t , "" , valueMap ["uncore-min" ])
122+ assert .Equal (t , "" , valueMap ["gov" ])
123+ assert .Equal (t , "enable" , valueMap ["pref-l2hw" ])
124+ assert .Equal (t , "enable" , valueMap ["c6" ])
125+ }
126+
73127func TestConvertValue (t * testing.T ) {
74128 tests := []struct {
75129 name string
0 commit comments