fix: TestRealStorageResizeDirect and TestRealStorageDirectModeNoPalette bugs
- resize() was writing to wrong array (r.data instead of newData) and using wrong elementsPerLong during resize loop - TestRealStorageDirectModeNoPalette had invalid test data (0x1FFFF needs bpe>=17 but test used bpe=9)
This commit is contained in:
+2
-2
@@ -98,11 +98,11 @@ func (r *RealStorage) resize(bpe uint8) {
|
|||||||
for i := range r.format.Len {
|
for i := range r.format.Len {
|
||||||
var v int32
|
var v int32
|
||||||
if resizeDirect {
|
if resizeDirect {
|
||||||
v = int32((r.data[i/r.elementsPerLong] >> ((i % r.elementsPerLong) * int32(r.bpe))) & r.mask)
|
v, _ = r.Get(i)
|
||||||
} else {
|
} else {
|
||||||
v = int32((r.data[i/r.elementsPerLong] >> ((i % r.elementsPerLong) * int32(r.bpe))) & r.mask)
|
v = int32((r.data[i/r.elementsPerLong] >> ((i % r.elementsPerLong) * int32(r.bpe))) & r.mask)
|
||||||
}
|
}
|
||||||
r.data[i/r.elementsPerLong] |= uint64(v) << ((i % r.elementsPerLong) * int32(bpe))
|
newData[i/int32(numberOfElements)] |= uint64(v) << ((i % int32(numberOfElements)) * int32(bpe))
|
||||||
}
|
}
|
||||||
if resizeDirect {
|
if resizeDirect {
|
||||||
r.palette = nil
|
r.palette = nil
|
||||||
|
|||||||
+3
-3
@@ -292,7 +292,7 @@ func TestRealStorageDirectModeNoPalette(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
data := make([]uint64, 36)
|
data := make([]uint64, 36)
|
||||||
data[0] = 0x1FFFF
|
data[0] = 0x1FF
|
||||||
|
|
||||||
s, err := format.ImportDataDirect(data)
|
s, err := format.ImportDataDirect(data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -303,8 +303,8 @@ func TestRealStorageDirectModeNoPalette(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Get(0) failed: %v", err)
|
t.Fatalf("Get(0) failed: %v", err)
|
||||||
}
|
}
|
||||||
if got != 0x1FFFF {
|
if got != 0x1FF {
|
||||||
t.Errorf("Get(0) = %d, want %d", got, 0x1FFFF)
|
t.Errorf("Get(0) = %d, want %d", got, 0x1FF)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user