Add test for batteries module, update deps

This commit is contained in:
eleksir
2024-09-23 00:20:06 +03:00
parent 4bff21f4c7
commit 7ce2d9d9ec
98 changed files with 3114 additions and 99 deletions

View File

@@ -137,7 +137,10 @@ func (p *bplistParser) parseSizedInteger(off offset, nbytes int) (lo uint64, hi
case 16:
lo, hi = binary.BigEndian.Uint64(p.buffer[off+8:]), binary.BigEndian.Uint64(p.buffer[off:])
default:
panic(errors.New("illegal integer size"))
if nbytes > 8 {
panic(errors.New("illegal integer size"))
}
lo, hi = binary.BigEndian.Uint64(p.buffer[off-(8-offset(nbytes)):]) & ((1<<offset(nbytes*8))-1), 0
}
newOffset = off + offset(nbytes)
return

15
vendor/howett.net/plist/marshal.go generated vendored
View File

@@ -31,14 +31,19 @@ var (
)
func implementsInterface(val reflect.Value, interfaceType reflect.Type) (interface{}, bool) {
if val.CanInterface() && val.Type().Implements(interfaceType) {
return val.Interface(), true
if val.CanInterface() {
itf := val.Interface()
if itf != nil && reflect.TypeOf(itf).Implements(interfaceType) {
return itf, true
}
}
if val.CanAddr() {
pv := val.Addr()
if pv.CanInterface() && pv.Type().Implements(interfaceType) {
return pv.Interface(), true
if pv := val.Addr(); pv.CanInterface() {
itf := pv.Interface()
if itf != nil && reflect.TypeOf(itf).Implements(interfaceType) {
return itf, true
}
}
}
return nil, false

View File

@@ -446,6 +446,9 @@ func (p *textPlistParser) parseGNUStepValue() cfValue {
switch typ {
case 'I':
if len(v) == 0 {
p.error("truncated GNUStep extended value")
}
if v[0] == '-' {
n := mustParseInt(v, 10, 64)
return &cfNumber{signed: true, value: uint64(n)}
@@ -457,6 +460,9 @@ func (p *textPlistParser) parseGNUStepValue() cfValue {
n := mustParseFloat(v, 64)
return &cfReal{wide: true, value: n} // TODO(DH) 32/64
case 'B':
if len(v) == 0 {
p.error("truncated GNUStep extended value")
}
b := v[0] == 'Y'
return cfBoolean(b)
case 'D':