Files
go-dpkg/dpkg/reader_test.go
Matheus Sampaio Queiroga 8cf5fcbfc3
All checks were successful
Golang test / go-test (pull_request) Successful in 21s
Golang test / go-test (push) Successful in 21s
Refactor deb822 package: Remove deprecated files and implement new encoding/decoding logic
- 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>
2025-06-22 22:05:41 -03:00

60 lines
1.1 KiB
Go

package dpkg_test
import (
"encoding/json"
"net/url"
"testing"
"sirherobrine23.com.br/sirherobrine23/go-dpkg/apt"
"sirherobrine23.com.br/sirherobrine23/go-dpkg/dpkg"
)
func TestReaderDpkg(t *testing.T) {
pkgSum := apt.Sum{File: "main/binary-amd64/Packages.gz"}
pkgs := pkgSum.Pkgs("stable", &apt.AptSource{
Suites: []string{"main", "stable"},
URIs: []*url.URL{
{
Scheme: "http",
Host: "ftp.debian.org",
Path: "/debian",
},
},
})
curlExec := false
for pkg, err := range pkgs {
if err != nil {
t.Error(err)
return
} else if pkg.Name == "curl" {
curlExec = true
} else {
continue
}
deb, err := pkg.Download(&url.URL{Scheme: "http", Host: "ftp.debian.org", Path: "/debian"})
if err != nil {
t.Errorf("cannot get curl package: %s", err)
return
}
defer deb.Close()
pkgInfo, tarRead, err := dpkg.NewReader(deb)
if err != nil {
t.Error(err)
return
}
tarRead.Close()
pkgJson, _ := json.MarshalIndent(pkgInfo, "", " ")
t.Logf("Package info:\n%s", pkgJson)
break
}
if !curlExec {
t.Error("curl package not found")
}
}