- Deleted old deb822_encode.go and deb822_types.go files. - Introduced new deb822_encode.go with improved Marshall function and Writer struct for encoding. - Added deb822_decode.go for decoding functionality with enhanced error handling. - Created deb822_rawdata.go to define RawData type for handling raw deb822 values. - Implemented Description type in deb822/datatype/description.go for structured description handling. - Updated Package struct in dpkg/header.go to use new Description type. - Refactored UnmarshalBinary method in dpkg/header.go to utilize new deb822 decoding logic. - Added comprehensive tests for encoding and decoding in deb822_encode_test.go and deb822_decode_test.go. - Removed internal scanner package as it was no longer needed. Signed-off-by: Matheus Sampaio Queiroga <srherobrine20@gmail.com>
38 lines
547 B
Go
38 lines
547 B
Go
package deb822
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestReader(t *testing.T) {
|
|
file, err := os.Open("./content/Packages")
|
|
if err != nil {
|
|
t.Skipf("cannot open Packages file to test reader: %v", err)
|
|
return
|
|
}
|
|
defer file.Close()
|
|
r := NewReader(file)
|
|
|
|
var pkgCount int
|
|
for {
|
|
_, _, err := r.Next()
|
|
switch err {
|
|
case nil:
|
|
case io.EOF:
|
|
t.Logf("Pkgs reader: %d", pkgCount)
|
|
return
|
|
case ErrInvalidDeb822:
|
|
t.Error(err)
|
|
return
|
|
case ErrNextDeb822:
|
|
pkgCount++
|
|
continue
|
|
default:
|
|
t.Error(err)
|
|
return
|
|
}
|
|
}
|
|
}
|