mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Fix bitseq.SetAnyInRange
- size 1 range is a valid input Signed-off-by: Alessandro Boch <aboch@docker.com>
This commit is contained in:
parent
ff48f9fdb1
commit
f43e4ec066
2 changed files with 6 additions and 5 deletions
|
@ -197,7 +197,7 @@ func (h *Handle) getCopy() *Handle {
|
|||
|
||||
// SetAnyInRange atomically sets the first unset bit in the specified range in the sequence and returns the corresponding ordinal
|
||||
func (h *Handle) SetAnyInRange(start, end uint64) (uint64, error) {
|
||||
if end-start <= 0 || end >= h.bits {
|
||||
if end < start || end >= h.bits {
|
||||
return invalidPos, fmt.Errorf("invalid bit range [%d, %d]", start, end)
|
||||
}
|
||||
if h.Unselected() == 0 {
|
||||
|
|
|
@ -639,10 +639,6 @@ func TestSetInRange(t *testing.T) {
|
|||
t.Fatalf("Expected failure. Got success with ordinal:%d", o)
|
||||
}
|
||||
|
||||
if o, err := hnd.SetAnyInRange(5, 5); err == nil {
|
||||
t.Fatalf("Expected failure. Got success with ordinal:%d", o)
|
||||
}
|
||||
|
||||
if o, err := hnd.SetAnyInRange(0, numBits); err == nil {
|
||||
t.Fatalf("Expected failure. Got success with ordinal:%d", o)
|
||||
}
|
||||
|
@ -692,6 +688,11 @@ func TestSetInRange(t *testing.T) {
|
|||
t.Fatalf("Unexpected failure: %v", err)
|
||||
}
|
||||
|
||||
// set one bit using the set range with 1 bit size range
|
||||
if _, err := hnd.SetAnyInRange(uint64(163*blockLen-1), uint64(163*blockLen-1)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// create a non multiple of 32 mask
|
||||
hnd, err = NewHandle("", nil, "", 30)
|
||||
if err != nil {
|
||||
|
|
Loading…
Add table
Reference in a new issue