Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
35d05d6d
You need to sign in or sign up before continuing.
Commit
35d05d6d
authored
Mar 02, 2016
by
antirez
Browse files
BITFIELD basic unit tests.
parent
6cf83fef
Changes
1
Hide whitespace changes
Inline
Side-by-side
tests/unit/bitfield.tcl
View file @
35d05d6d
start_server
{
tags
{
"bitops"
}}
{
test
{
BITFIELD overflow check fuzzing
}
{
test
{
BITFIELD signed SET and GET basics
}
{
r del bits
set results
{}
lappend results
[
r bitfield bits set i8 0 -100
]
lappend results
[
r bitfield bits set i8 0 101
]
lappend results
[
r bitfield bits get i8 0
]
set results
}
{
0 -100 101
}
test
{
BITFIELD unsigned SET and GET basics
}
{
r del bits
set results
{}
lappend results
[
r bitfield bits set u8 0 255
]
lappend results
[
r bitfield bits set u8 0 100
]
lappend results
[
r bitfield bits get u8 0
]
set results
}
{
0 255 100
}
test
{
BITFIELD #<idx> form
}
{
r del bits
set results
{}
r bitfield bits set u8 #0 65
r bitfield bits set u8 #1 66
r bitfield bits set u8 #2 67
r get bits
}
{
ABC
}
test
{
BITFIELD basic INCRBY form
}
{
r del bits
set results
{}
r bitfield bits set u8 #0 10
lappend results
[
r bitfield bits incrby u8 #0 100
]
lappend results
[
r bitfield bits incrby u8 #0 100
]
set results
}
{
110 210
}
test
{
BITFIELD chaining of multiple commands
}
{
r del bits
set results
{}
r bitfield bits set u8 #0 10
lappend results
[
r bitfield bits incrby u8 #0 100 incrby u8 #0 100
]
set results
}
{{
110 210
}}
test
{
BITFIELD unsigned overflow wrap
}
{
r del bits
set results
{}
r bitfield bits set u8 #0 100
lappend results
[
r bitfield bits overflow wrap incrby u8 #0 257
]
lappend results
[
r bitfield bits get u8 #0
]
lappend results
[
r bitfield bits overflow wrap incrby u8 #0 255
]
lappend results
[
r bitfield bits get u8 #0
]
}
{
101 101 100 100
}
test
{
BITFIELD unsigned overflow sat
}
{
r del bits
set results
{}
r bitfield bits set u8 #0 100
lappend results
[
r bitfield bits overflow sat incrby u8 #0 257
]
lappend results
[
r bitfield bits get u8 #0
]
lappend results
[
r bitfield bits overflow sat incrby u8 #0 -255
]
lappend results
[
r bitfield bits get u8 #0
]
}
{
255 255 0 0
}
test
{
BITFIELD signed overflow wrap
}
{
r del bits
set results
{}
r bitfield bits set i8 #0 100
lappend results
[
r bitfield bits overflow wrap incrby i8 #0 257
]
lappend results
[
r bitfield bits get i8 #0
]
lappend results
[
r bitfield bits overflow wrap incrby i8 #0 255
]
lappend results
[
r bitfield bits get i8 #0
]
}
{
101 101 100 100
}
test
{
BITFIELD signed overflow sat
}
{
r del bits
set results
{}
r bitfield bits set u8 #0 100
lappend results
[
r bitfield bits overflow sat incrby i8 #0 257
]
lappend results
[
r bitfield bits get i8 #0
]
lappend results
[
r bitfield bits overflow sat incrby i8 #0 -255
]
lappend results
[
r bitfield bits get i8 #0
]
}
{
127 127 -128 -128
}
test
{
BITFIELD overflow detection fuzzing
}
{
for
{
set j 0
}
{
$j
< 1000
}
{
incr j
}
{
set bits
[
expr
{[
randomInt 64
]
+1
}]
set sign
[
randomInt 2
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment