@@ -117,6 +117,73 @@ func TestNewModel_WithMetadata(t *testing.T) {
117117 }
118118}
119119
120+ func TestParseHeader_TruncatedFile (t * testing.T ) {
121+ // Create a test file with incomplete header
122+ tmpDir := t .TempDir ()
123+ filePath := filepath .Join (tmpDir , "truncated.safetensors" )
124+
125+ file , err := os .Create (filePath )
126+ if err != nil {
127+ t .Fatalf ("failed to create test file: %v" , err )
128+ }
129+
130+ // Write header length claiming 1000 bytes
131+ headerLen := uint64 (1000 )
132+ if err := binary .Write (file , binary .LittleEndian , headerLen ); err != nil {
133+ file .Close ()
134+ t .Fatalf ("failed to write header length: %v" , err )
135+ }
136+
137+ // But only write 500 bytes (truncated)
138+ truncatedJSON := make ([]byte , 500 )
139+ copy (truncatedJSON , []byte (`{"incomplete": "json` ))
140+ if _ , err := file .Write (truncatedJSON ); err != nil {
141+ file .Close ()
142+ t .Fatalf ("failed to write truncated data: %v" , err )
143+ }
144+ file .Close ()
145+
146+ // Attempt to parse - should fail gracefully
147+ _ , err = ParseSafetensorsHeader (filePath )
148+ if err == nil {
149+ t .Fatal ("ParseSafetensorsHeader() expected error for truncated file, got nil" )
150+ }
151+ }
152+
153+ func TestParseHeader_InvalidJSON (t * testing.T ) {
154+ // Create a test file with invalid JSON
155+ tmpDir := t .TempDir ()
156+ filePath := filepath .Join (tmpDir , "invalid.safetensors" )
157+
158+ // Create malformed JSON
159+ invalidJSON := []byte (`{"missing": "closing brace", "broken": [1, 2, }` )
160+
161+ file , err := os .Create (filePath )
162+ if err != nil {
163+ t .Fatalf ("failed to create test file: %v" , err )
164+ }
165+
166+ // Write header length
167+ headerLen := uint64 (len (invalidJSON ))
168+ if err := binary .Write (file , binary .LittleEndian , headerLen ); err != nil {
169+ file .Close ()
170+ t .Fatalf ("failed to write header length: %v" , err )
171+ }
172+
173+ // Write invalid JSON
174+ if _ , err := file .Write (invalidJSON ); err != nil {
175+ file .Close ()
176+ t .Fatalf ("failed to write invalid JSON: %v" , err )
177+ }
178+ file .Close ()
179+
180+ // Attempt to parse - should fail gracefully
181+ _ , err = ParseSafetensorsHeader (filePath )
182+ if err == nil {
183+ t .Fatal ("ParseSafetensorsHeader() expected error for invalid JSON, got nil" )
184+ }
185+ }
186+
120187func TestNewModel_NoMetadata (t * testing.T ) {
121188 // Create a test safetensors file without metadata section
122189 tmpDir := t .TempDir ()
0 commit comments