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
611959ee
Unverified
Commit
611959ee
authored
Apr 25, 2021
by
Oran Agra
Committed by
GitHub
Apr 25, 2021
Browse files
fuzz tester, try to print hung command (#8837)
parent
828ae842
Changes
4
Hide whitespace changes
Inline
Side-by-side
.github/workflows/ci.yml
View file @
611959ee
...
@@ -14,7 +14,7 @@ jobs:
...
@@ -14,7 +14,7 @@ jobs:
run
:
make REDIS_CFLAGS='-Werror' BUILD_TLS=yes
run
:
make REDIS_CFLAGS='-Werror' BUILD_TLS=yes
-
name
:
test
-
name
:
test
run
:
|
run
:
|
sudo apt-get install tcl8.6
sudo apt-get install tcl8.6
tclx
./runtest --verbose
./runtest --verbose
-
name
:
module api test
-
name
:
module api test
run
:
./runtest-moduleapi --verbose
run
:
./runtest-moduleapi --verbose
...
...
.github/workflows/daily.yml
View file @
611959ee
...
@@ -20,7 +20,7 @@ jobs:
...
@@ -20,7 +20,7 @@ jobs:
run
:
make REDIS_CFLAGS='-Werror -DREDIS_TEST'
run
:
make REDIS_CFLAGS='-Werror -DREDIS_TEST'
-
name
:
test
-
name
:
test
run
:
|
run
:
|
sudo apt-get install tcl8.6
sudo apt-get install tcl8.6
tclx
./runtest --accurate --verbose --dump-logs
./runtest --accurate --verbose --dump-logs
-
name
:
module api test
-
name
:
module api test
run
:
./runtest-moduleapi --verbose
run
:
./runtest-moduleapi --verbose
...
@@ -41,7 +41,7 @@ jobs:
...
@@ -41,7 +41,7 @@ jobs:
run
:
make MALLOC=libc
run
:
make MALLOC=libc
-
name
:
test
-
name
:
test
run
:
|
run
:
|
sudo apt-get install tcl8.6
sudo apt-get install tcl8.6
tclx
./runtest --accurate --verbose --dump-logs
./runtest --accurate --verbose --dump-logs
-
name
:
module api test
-
name
:
module api test
run
:
./runtest-moduleapi --verbose
run
:
./runtest-moduleapi --verbose
...
@@ -60,7 +60,7 @@ jobs:
...
@@ -60,7 +60,7 @@ jobs:
run
:
make MALLOC=libc CFLAGS=-DNO_MALLOC_USABLE_SIZE
run
:
make MALLOC=libc CFLAGS=-DNO_MALLOC_USABLE_SIZE
-
name
:
test
-
name
:
test
run
:
|
run
:
|
sudo apt-get install tcl8.6
sudo apt-get install tcl8.6
tclx
./runtest --accurate --verbose --dump-logs
./runtest --accurate --verbose --dump-logs
-
name
:
module api test
-
name
:
module api test
run
:
./runtest-moduleapi --verbose
run
:
./runtest-moduleapi --verbose
...
@@ -81,7 +81,7 @@ jobs:
...
@@ -81,7 +81,7 @@ jobs:
make 32bit REDIS_CFLAGS='-Werror -DREDIS_TEST'
make 32bit REDIS_CFLAGS='-Werror -DREDIS_TEST'
-
name
:
test
-
name
:
test
run
:
|
run
:
|
sudo apt-get install tcl8.6
sudo apt-get install tcl8.6
tclx
./runtest --accurate --verbose --dump-logs
./runtest --accurate --verbose --dump-logs
-
name
:
module api test
-
name
:
module api test
run
:
|
run
:
|
...
@@ -105,7 +105,7 @@ jobs:
...
@@ -105,7 +105,7 @@ jobs:
make BUILD_TLS=yes
make BUILD_TLS=yes
-
name
:
test
-
name
:
test
run
:
|
run
:
|
sudo apt-get install tcl8.6 tcl-tls
sudo apt-get install tcl8.6
tclx
tcl-tls
./utils/gen-test-certs.sh
./utils/gen-test-certs.sh
./runtest --accurate --verbose --tls --dump-logs
./runtest --accurate --verbose --tls --dump-logs
./runtest --accurate --verbose --dump-logs
./runtest --accurate --verbose --dump-logs
...
@@ -133,7 +133,7 @@ jobs:
...
@@ -133,7 +133,7 @@ jobs:
make
make
-
name
:
test
-
name
:
test
run
:
|
run
:
|
sudo apt-get install tcl8.6 tcl-tls
sudo apt-get install tcl8.6
tclx
tcl-tls
./runtest --config io-threads 4 --config io-threads-do-reads yes --accurate --verbose --tags network --dump-logs
./runtest --config io-threads 4 --config io-threads-do-reads yes --accurate --verbose --tags network --dump-logs
-
name
:
cluster tests
-
name
:
cluster tests
run
:
|
run
:
|
...
@@ -150,7 +150,7 @@ jobs:
...
@@ -150,7 +150,7 @@ jobs:
-
name
:
test
-
name
:
test
run
:
|
run
:
|
sudo apt-get update
sudo apt-get update
sudo apt-get install tcl8.6 valgrind -y
sudo apt-get install tcl8.6
tclx
valgrind -y
./runtest --valgrind --verbose --clients 1 --dump-logs
./runtest --valgrind --verbose --clients 1 --dump-logs
-
name
:
module api test
-
name
:
module api test
run
:
./runtest-moduleapi --valgrind --no-latency --verbose --clients
1
run
:
./runtest-moduleapi --valgrind --no-latency --verbose --clients
1
...
@@ -170,7 +170,7 @@ jobs:
...
@@ -170,7 +170,7 @@ jobs:
-
name
:
test
-
name
:
test
run
:
|
run
:
|
sudo apt-get update
sudo apt-get update
sudo apt-get install tcl8.6 valgrind -y
sudo apt-get install tcl8.6
tclx
valgrind -y
./runtest --valgrind --verbose --clients 1 --dump-logs
./runtest --valgrind --verbose --clients 1 --dump-logs
-
name
:
module api test
-
name
:
module api test
run
:
./runtest-moduleapi --valgrind --no-latency --verbose --clients
1
run
:
./runtest-moduleapi --valgrind --no-latency --verbose --clients
1
...
@@ -188,7 +188,7 @@ jobs:
...
@@ -188,7 +188,7 @@ jobs:
make
make
-
name
:
test
-
name
:
test
run
:
|
run
:
|
yum -y install which tcl
yum -y install which tcl
tclx
./runtest --accurate --verbose --dump-logs
./runtest --accurate --verbose --dump-logs
-
name
:
module api test
-
name
:
module api test
run
:
./runtest-moduleapi --verbose
run
:
./runtest-moduleapi --verbose
...
@@ -211,7 +211,7 @@ jobs:
...
@@ -211,7 +211,7 @@ jobs:
scl enable devtoolset-7 "make BUILD_TLS=yes"
scl enable devtoolset-7 "make BUILD_TLS=yes"
-
name
:
test
-
name
:
test
run
:
|
run
:
|
yum -y install tcl tcltls
yum -y install tcl tcltls
tclx
./utils/gen-test-certs.sh
./utils/gen-test-certs.sh
./runtest --accurate --verbose --tls --dump-logs
./runtest --accurate --verbose --tls --dump-logs
./runtest --accurate --verbose --dump-logs
./runtest --accurate --verbose --dump-logs
...
@@ -257,7 +257,7 @@ jobs:
...
@@ -257,7 +257,7 @@ jobs:
with
:
with
:
usesh
:
true
usesh
:
true
sync
:
rsync
sync
:
rsync
prepare
:
pkg install -y bash gmake lang/tcl86
prepare
:
pkg install -y bash gmake lang/tcl86
lang/tclx
run
:
>
run
:
>
gmake &&
gmake &&
./runtest --accurate --verbose --no-latency --dump-logs &&
./runtest --accurate --verbose --no-latency --dump-logs &&
...
@@ -277,7 +277,7 @@ jobs:
...
@@ -277,7 +277,7 @@ jobs:
make REDIS_CFLAGS='-Werror'
make REDIS_CFLAGS='-Werror'
-
name
:
test
-
name
:
test
run
:
|
run
:
|
apk add tcl procps
apk add tcl procps
tclx
./runtest --accurate --verbose --dump-logs
./runtest --accurate --verbose --dump-logs
-
name
:
module api test
-
name
:
module api test
run
:
./runtest-moduleapi --verbose
run
:
./runtest-moduleapi --verbose
...
@@ -298,7 +298,7 @@ jobs:
...
@@ -298,7 +298,7 @@ jobs:
make REDIS_CFLAGS='-Werror' USE_JEMALLOC=no CFLAGS=-DUSE_MALLOC_USABLE_SIZE
make REDIS_CFLAGS='-Werror' USE_JEMALLOC=no CFLAGS=-DUSE_MALLOC_USABLE_SIZE
-
name
:
test
-
name
:
test
run
:
|
run
:
|
apk add tcl procps
apk add tcl procps
tclx
./runtest --accurate --verbose --dump-logs
./runtest --accurate --verbose --dump-logs
-
name
:
module api test
-
name
:
module api test
run
:
./runtest-moduleapi --verbose
run
:
./runtest-moduleapi --verbose
...
...
tests/integration/corrupt-dump-fuzzer.tcl
View file @
611959ee
...
@@ -2,6 +2,15 @@
...
@@ -2,6 +2,15 @@
tags
{
"dump"
"corruption"
}
{
tags
{
"dump"
"corruption"
}
{
# catch sigterm so that in case one of the random command hangs the test,
# usually due to redis not putting a response in the output buffers,
# we'll know which command it was
if
{
!
[
catch
{
package require Tclx
}
err
]
}
{
signal error SIGTERM
}
proc generate_collections
{
suffix elements
}
{
proc generate_collections
{
suffix elements
}
{
set rd
[
redis_deferring_client
]
set rd
[
redis_deferring_client
]
for
{
set j 0
}
{
$j
< $elements
}
{
incr j
}
{
for
{
set j 0
}
{
$j
< $elements
}
{
incr j
}
{
...
...
tests/support/util.tcl
View file @
611959ee
...
@@ -641,6 +641,12 @@ proc generate_fuzzy_traffic_on_key {key duration} {
...
@@ -641,6 +641,12 @@ proc generate_fuzzy_traffic_on_key {key duration} {
r
{*}
$cmd
r
{*}
$cmd
}
err
]
}
{
}
err
]
}
{
incr succeeded
incr succeeded
}
else
{
set err
[
format
"%s"
$err
]
;
# convert to string for pattern matching
if
{[
string match
"*SIGTERM*"
$err
]}
{
puts
"command caused test to hang?
$cmd
"
exit 1
}
}
}
}
}
...
@@ -761,4 +767,4 @@ proc psubscribe {client channels} {
...
@@ -761,4 +767,4 @@ proc psubscribe {client channels} {
proc punsubscribe
{
client
{
channels
{}}}
{
proc punsubscribe
{
client
{
channels
{}}}
{
$client punsubscribe
{*}
$channels
$client punsubscribe
{*}
$channels
consume_subscribe_messages $client punsubscribe $channels
consume_subscribe_messages $client punsubscribe $channels
}
}
\ No newline at end of file
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