Skip to content

Instantly share code, notes, and snippets.

@maxaf
Created May 17, 2010 19:15
Show Gist options
  • Save maxaf/404112 to your computer and use it in GitHub Desktop.
Save maxaf/404112 to your computer and use it in GitHub Desktop.
max@wart:~/antirez-redis-1af7888$ uname -a
Linux wart 2.6.33-rc1-00225-gc9f937e #2 Wed Dec 23 17:55:01 UTC 2009 armv5tel GNU/Linux
max@wart:~/antirez-redis-1af7888$ cat /proc/cpuinfo
Processor : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS : 1192.75
Features : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part : 0x131
CPU revision : 1
Hardware : Marvell SheevaPlug Reference Board
Revision : 0000
Serial : 0000000000000000
max@wart:~/antirez-redis-1af7888$ make
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb adlist.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb ae.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb anet.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb dict.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb redis.c
redis.c: In function ‘getMcontextEip’:
redis.c:10667: warning: unused parameter ‘uc’
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb sds.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb zmalloc.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb lzf_c.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb lzf_d.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb pqsort.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb zipmap.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb sha1.c
cc -o redis-server -std=c99 -pedantic -O2 -Wall -W -lm -pthread -g -rdynamic -ggdb adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o zipmap.o sha1.o
Hint: To run the test-redis.tcl script is a good idea.
Launch the redis server with ./redis-server, then in another
terminal window enter this directory and run 'make test'.
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb redis-benchmark.c
cc -o redis-benchmark -std=c99 -pedantic -O2 -Wall -W -lm -pthread -g -rdynamic -ggdb ae.o anet.o redis-benchmark.o sds.o adlist.o zmalloc.o
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb redis-cli.c
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb linenoise.c
cc -o redis-cli -std=c99 -pedantic -O2 -Wall -W -lm -pthread -g -rdynamic -ggdb anet.o sds.o adlist.o redis-cli.o zmalloc.o linenoise.o
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb redis-check-dump.c
cc -o redis-check-dump -std=c99 -pedantic -O2 -Wall -W -lm -pthread -g -rdynamic -ggdb redis-check-dump.o lzf_c.o lzf_d.o
cc -c -std=c99 -pedantic -O2 -Wall -W -g -rdynamic -ggdb redis-check-aof.c
cc -o redis-check-aof -std=c99 -pedantic -O2 -Wall -W -lm -pthread -g -rdynamic -ggdb redis-check-aof.o
max@wart:~/antirez-redis-1af7888$ make test
tclsh8.5 tests/test_helper.tcl
#001 AUTH fails when a wrong password is given PASSED
#002 Arbitrary command gives an error when AUTH is required PASSED
#003 AUTH succeeds when the right password is given PASSED
#004 Handle an empty query well PASSED
#005 Negative multi bulk command does not create problems PASSED
#006 Negative multi bulk payload PASSED
#007 Too big bulk payload PASSED
#008 Multi bulk request not followed by bulk args PASSED
#009 Generic wrong number of args PASSED
#010 DEL all keys to start with a clean DB PASSED
#011 SET and GET an item PASSED
#012 SET and GET an empty item PASSED
#013 DEL against a single item PASSED
#014 Vararg DEL PASSED
#015 KEYS with pattern PASSED
#016 KEYS to get all keys PASSED
#017 DBSIZE PASSED
#018 DEL all keys PASSED
#019 Very big payload in GET/SET PASSED
#020 Very big payload random access PASSED
#021 SET 10000 numeric keys and access all them in reverse order PASSED
#022 DBSIZE should be 10101 now PASSED
#023 INCR against non existing key PASSED
#024 INCR against key created by incr itself PASSED
#025 INCR against key originally set with SET PASSED
#026 INCR over 32bit value PASSED
#027 INCRBY over 32bit value with over 32bit increment PASSED
#028 INCR fails against key with spaces (no integer encoded) PASSED
#029 INCR fails against a key holding a list PASSED
#030 DECRBY over 32bit value with over 32bit increment, negative res PASSED
#031 SETNX target key missing PASSED
#032 SETNX target key exists PASSED
#033 SETNX will overwrite EXPIREing key PASSED
#034 EXISTS PASSED
#035 Zero length value in key. SET/GET/EXISTS PASSED
#036 Commands pipelining PASSED
#037 Non existing command PASSED
#038 RENAME basic usage PASSED
#039 RENAME source key should no longer exist PASSED
#040 RENAME against already existing key PASSED
#041 RENAMENX basic usage PASSED
#042 RENAMENX against already existing key PASSED
#043 RENAMENX against already existing key (2) PASSED
#044 RENAME against non existing source key PASSED
#045 RENAME where source and dest key is the same PASSED
#046 DEL all keys again (DB 0) PASSED
#047 DEL all keys again (DB 1) PASSED
#048 MOVE basic usage PASSED
#049 MOVE against key existing in the target DB PASSED
#050 SET/GET keys in different DBs PASSED
#051 MGET PASSED
#052 MGET against non existing key PASSED
#053 MGET against non-string key PASSED
#054 RANDOMKEY PASSED
#055 RANDOMKEY against empty DB PASSED
#056 RANDOMKEY regression 1 PASSED
#057 GETSET (set new value) PASSED
#058 GETSET (replace old value) PASSED
#059 MSET base case PASSED
#060 MSET wrong number of args PASSED
#061 MSETNX with already existent key PASSED
#062 MSETNX with not existing keys PASSED
#063 MSETNX should remove all the volatile keys even on failure PASSED
#064 Basic LPUSH, RPUSH, LLENGTH, LINDEX PASSED
#065 DEL a list PASSED
#066 Create a long list and check every single element with LINDEX PASSED
#067 Test elements with LINDEX in random access PASSED
#068 Check if the list is still ok after a DEBUG RELOAD PASSED
#069 LLEN against non-list value error PASSED
#070 LLEN against non existing key PASSED
#071 LINDEX against non-list value error PASSED
#072 LINDEX against non existing key PASSED
#073 LPUSH against non-list value error PASSED
#074 RPUSH against non-list value error PASSED
#075 RPOPLPUSH base case PASSED
#076 RPOPLPUSH with the same list as src and dst PASSED
#077 RPOPLPUSH target list already exists PASSED
#078 RPOPLPUSH against non existing key PASSED
#079 RPOPLPUSH against non list src key PASSED
#080 RPOPLPUSH against non list dst key PASSED
#081 RPOPLPUSH against non existing src key PASSED
#082 Basic LPOP/RPOP PASSED
#083 LPOP/RPOP against empty list PASSED
#084 LPOP against non list value PASSED
#085 Mass LPUSH/LPOP PASSED
#086 LRANGE basics PASSED
#087 LRANGE inverted indexes PASSED
#088 LRANGE out of range indexes including the full list PASSED
#089 LRANGE against non existing key PASSED
#090 LTRIM basics PASSED
#091 LTRIM stress testing PASSED
#092 LSET PASSED
#093 LSET out of range index PASSED
#094 LSET against non existing key PASSED
#095 LSET against non list value PASSED
#096 LREM, remove all the occurrences PASSED
#097 LREM, remove the first occurrence PASSED
#098 LREM, remove non existing element PASSED
#099 LREM, starting from tail with negative count PASSED
#100 LREM, starting from tail with negative count (2) PASSED
#101 LREM, deleting objects that may be encoded as integers PASSED
#102 SADD, SCARD, SISMEMBER, SMEMBERS basics PASSED
#103 SADD adding the same element multiple times PASSED
#104 SADD against non set PASSED
#105 SREM basics PASSED
#106 Mass SADD and SINTER with two sets PASSED
#107 SUNION with two sets PASSED
#108 SINTERSTORE with two sets PASSED
#109 SINTERSTORE with two sets, after a DEBUG RELOAD PASSED
#110 SUNIONSTORE with two sets PASSED
#111 SUNIONSTORE against non existing keys PASSED
#112 SINTER against three sets PASSED
#113 SINTERSTORE with three sets PASSED
#114 SUNION with non existing keys PASSED
#115 SDIFF with two sets PASSED
#116 SDIFF with three sets PASSED
#117 SDIFFSTORE with three sets PASSED
#118 SPOP basics PASSED
#119 SRANDMEMBER PASSED
#120 SMOVE basics PASSED
#121 SMOVE non existing key PASSED
#122 SMOVE non existing src set PASSED
#123 SMOVE non existing dst set PASSED
#124 SMOVE wrong src key type PASSED
#125 SMOVE wrong dst key type PASSED
#126 ZSET basic ZADD and score update PASSED
#127 ZCARD basics PASSED
#128 ZCARD non existing key PASSED
#129 ZRANK basics PASSED
#130 ZREVRANK basics PASSED
#131 ZRANK - after deletion PASSED
#132 ZSCORE PASSED
#133 ZSCORE after a DEBUG RELOAD PASSED
#134 ZRANGE and ZREVRANGE basics PASSED
#135 ZRANGE WITHSCORES PASSED
#136 ZSETs stress tester - sorting is working well? PASSED
#137 ZINCRBY - can create a new sorted set PASSED
#138 ZINCRBY - increment and decrement PASSED
#139 ZRANGEBYSCORE and ZCOUNT basics PASSED
#140 ZRANGEBYSCORE withscores PASSED
#141 ZRANGEBYSCORE fuzzy test, 100 ranges in 1000 elements sorted set PASSED
#142 ZRANGEBYSCORE with LIMIT PASSED
#143 ZRANGEBYSCORE with LIMIT and withscores PASSED
#144 ZREMRANGEBYSCORE basics PASSED
#145 ZREMRANGEBYSCORE from -inf to +inf PASSED
#146 ZREMRANGEBYRANK basics PASSED
#147 ZUNIONSTORE against non-existing key doesn't set destination PASSED
#148 ZUNIONSTORE basics PASSED
#149 ZUNIONSTORE with weights PASSED
#150 ZUNIONSTORE with AGGREGATE MIN PASSED
#151 ZUNIONSTORE with AGGREGATE MAX PASSED
#152 ZINTERSTORE basics PASSED
#153 ZINTERSTORE with weights PASSED
#154 ZINTERSTORE with AGGREGATE MIN PASSED
#155 ZINTERSTORE with AGGREGATE MAX PASSED
#156 ZSETs skiplist implementation backlink consistency test PASSED
#157 ZSETs ZRANK augmented skip list stress testing PASSED
#158 HSET/HLEN - Small hash creation PASSED
#159 Is the small hash encoded with a zipmap? PASSED
#160 HSET/HLEN - Big hash creation PASSED
#161 Is the big hash encoded with a zipmap? PASSED
#162 HGET against the small hash PASSED
#163 HGET against the big hash PASSED
#164 HGET against non existing key PASSED
#165 HSET in update and insert mode PASSED
#166 HSETNX target key missing - small hash PASSED
#167 HSETNX target key exists - small hash PASSED
#168 HSETNX target key missing - big hash PASSED
#169 HSETNX target key exists - big hash PASSED
#170 HMSET wrong number of args PASSED
#171 HMSET - small hash PASSED
#172 HMSET - big hash PASSED
#173 HMGET against non existing key and fields PASSED
#174 HMGET - small hash PASSED
#175 HMGET - big hash PASSED
#176 HKEYS - small hash PASSED
#177 HKEYS - big hash PASSED
#178 HVALS - small hash PASSED
#179 HVALS - big hash PASSED
#180 HGETALL - small hash PASSED
#181 HGETALL - big hash PASSED
#182 HDEL and return value PASSED
#183 HEXISTS PASSED
#184 Is a zipmap encoded Hash promoted on big payload? PASSED
#185 HINCRBY against non existing database key PASSED
#186 HINCRBY against non existing hash key PASSED
#187 HINCRBY against hash key created by hincrby itself PASSED
#188 HINCRBY against hash key originally set with HSET PASSED
#189 HINCRBY over 32bit value PASSED
#190 HINCRBY over 32bit value with over 32bit increment PASSED
#191 HINCRBY fails against hash value with spaces PASSED
#192 SORT ALPHA against integer encoded strings PASSED
#193 Create a random list and a random set PASSED
#194 SORT with BY against the newly created list PASSED
#195 SORT with BY (hash field) against the newly created list PASSED
#196 SORT with GET (key+hash) with sanity check of each element (list) PASSED
#197 SORT with BY, but against the newly created set PASSED
#198 SORT with BY (hash field), but against the newly created set PASSED
#199 SORT with BY and STORE against the newly created list PASSED
#200 SORT with BY (hash field) and STORE against the newly created list PASSED
#201 SORT direct, numeric, against the newly created list PASSED
#202 SORT decreasing sort PASSED
#203 SORT speed, sorting 10000 elements list using BY, 100 times
Average time to sort: 123.37 milliseconds PASSED
#204 SORT speed, as above but against hash field
Average time to sort: 187.63 milliseconds PASSED
#205 SORT speed, sorting 10000 elements list directly, 100 times
Average time to sort: 21.66 milliseconds PASSED
#206 SORT speed, pseudo-sorting 10000 elements list, BY <const>, 100 times
Average time to sort: 3.7999999999999998 milliseconds PASSED
#207 SORT regression for issue #19, sorting floats PASSED
#208 SORT with GET # PASSED
#209 SORT with constant GET PASSED
#210 SORT against sorted sets PASSED
#211 Sorted sets +inf and -inf handling PASSED
#212 EXPIRE - don't set timeouts multiple times PASSED
#213 EXPIRE - It should be still possible to read 'x' PASSED
#214 EXPIRE - After 6 seconds the key should no longer be here PASSED
#215 EXPIRE - Delete on write policy PASSED
#216 EXPIREAT - Check for EXPIRE alike behavior PASSED
#217 SETEX - Set + Expire combo operation. Check for TTL PASSED
#218 SETEX - Check value PASSED
#219 SETEX - Overwrite old key PASSED
#220 SETEX - Wait for the key to expire PASSED
#221 SETEX - Wrong time parameter PASSED
#222 SAVE - make sure there are all the types as values PASSED
#223 FUZZ stresser with data model binary PASSED
#224 FUZZ stresser with data model alpha PASSED
#225 FUZZ stresser with data model compr PASSED
#226 BGSAVE
Waiting for background save to finish... PASSED
#227 SELECT an out of range DB PASSED
#228 EXPIRES after a reload (snapshot + append only file)
Waiting for background AOF rewrite to finish... PASSED
#229 PIPELINING stresser (also a regression for the old epoll bug) PASSED
#230 MUTLI / EXEC basics PASSED
#231 DISCARD PASSED
#232 APPEND basics PASSED
#233 APPEND basics, integer encoded values PASSED
#234 APPEND fuzzing PASSED
#235 SUBSTR basics PASSED
#236 SUBSTR against integer encoded values PASSED
#237 SUBSTR fuzzing PASSED
#238 FLUSHDB PASSED
#239 Perform a final SAVE to leave a clean DB on disk PASSED
#240 Second server should have role master at first PASSED
#241 SLAVEOF should start with link status "down" PASSED
#242 The role should immediately be changed to "slave" PASSED
#243 Sync should have transferred keys from master PASSED
#244 The link status should be up PASSED
#245 SET on the master should immediately propagate PASSED
245 tests, 245 passed, 0 failed
max@wart:~/antirez-redis-1af7888$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment