@@ -115,3 +115,54 @@ func TestRusticModelFitRouteRejectsInvalidLimit(t *testing.T) {
115115 require .Equal (t , http .StatusBadRequest , rr .Code )
116116 require .Contains (t , rr .Body .String (), "invalid limit" )
117117}
118+
119+ func TestRusticModelFitCapabilitiesRouteReturnsSystemProfile (t * testing.T ) {
120+ t .Setenv ("FORGE_ENABLE_PUBLIC_API" , "false" )
121+ t .Setenv ("FORGE_ENABLE_UI_API" , "true" )
122+ t .Setenv ("FORGE_IDENTITY_MODE" , "local" )
123+ t .Setenv ("FORGE_QUOTA_MODE" , "local" )
124+
125+ s := NewServer (nil , nil , nil , nil , nil , ":0" ).WithModelFit (
126+ "" ,
127+ "" ,
128+ staticProfiler {profile : modelfit.SystemProfile {
129+ TotalRAMBytes : 32 * 1024 * 1024 * 1024 ,
130+ AvailableRAMBytes : 24 * 1024 * 1024 * 1024 ,
131+ CPUCores : 12 ,
132+ Backend : modelfit .BackendCUDA ,
133+ RuntimeUsableAcceleration : true ,
134+ SelectedAcceleratorID : "nvidia-0" ,
135+ Confidence : modelfit .DetectionConfidenceProbe ,
136+ ReasonCodes : []modelfit.DiagnosticReason {modelfit .ReasonRuntimeDeviceDetected },
137+ Runtime : modelfit.RuntimeCapabilityProfile {
138+ RuntimeAvailable : true ,
139+ SelectedBackend : modelfit .BackendCUDA ,
140+ Confidence : modelfit .DetectionConfidenceProbe ,
141+ UsableAccelerators : []modelfit.UsableAccelerator {
142+ {
143+ ID : "nvidia-0" ,
144+ Vendor : "nvidia" ,
145+ Name : "RTX 4090" ,
146+ Backend : modelfit .BackendCUDA ,
147+ Discrete : true ,
148+ TotalMemoryBytes : 24 * 1024 * 1024 * 1024 ,
149+ },
150+ },
151+ },
152+ }},
153+ )
154+ router := s .buildRouter ()
155+
156+ req := httptest .NewRequest (http .MethodGet , "/rustic/modelfit/capabilities" , nil )
157+ rr := httptest .NewRecorder ()
158+ router .ServeHTTP (rr , req )
159+ require .Equal (t , http .StatusOK , rr .Code )
160+
161+ var system modelfit.SystemProfile
162+ require .NoError (t , json .Unmarshal (rr .Body .Bytes (), & system ))
163+ require .True (t , system .RuntimeUsableAcceleration )
164+ require .Equal (t , modelfit .BackendCUDA , system .Backend )
165+ require .Equal (t , "nvidia-0" , system .SelectedAcceleratorID )
166+ require .Contains (t , system .ReasonCodes , modelfit .ReasonRuntimeDeviceDetected )
167+ require .Len (t , system .Runtime .UsableAccelerators , 1 )
168+ }
0 commit comments