memcached: change tests to key based on cpu architecture.

db4
John Benediktsson 2011-09-01 21:26:09 -07:00
parent e17c1483b2
commit 91e043de68
2 changed files with 66 additions and 51 deletions

View File

@ -1,15 +1,20 @@
! Copyright (C) 2010 John Benediktsson
! See http://factorcode.org/license.txt for BSD license
USING: calendar math math.functions memcached memcached.private
kernel sequences threads tools.test ;
USING: arrays assocs calendar math math.functions memcached
memcached.private kernel present sequences system threads
tools.test ;
IN: memcached.tests
<PRIVATE
: not-found? ( quot -- )
[ "key not found" = ] must-fail-with ;
[ key-not-found? ] must-fail-with ;
: x ( -- str ) cpu present "-x" append ;
: y ( -- str ) cpu present "-y" append ;
: z ( -- str ) cpu present "-z" append ;
PRIVATE>
@ -18,79 +23,80 @@ PRIVATE>
! test simple set get
[ m/flush ] with-memcached
[ "valuex" "x" m/set ] with-memcached
[ "valuex" ] [ [ "x" m/get ] with-memcached ] unit-test
[ "valuex" x m/set ] with-memcached
[ "valuex" ] [ [ x m/get ] with-memcached ] unit-test
! test flush
[ m/flush ] with-memcached
[ "valuex" "x" m/set "valuey" "y" m/set ] with-memcached
[ "valuex" ] [ [ "x" m/get ] with-memcached ] unit-test
[ "valuey" ] [ [ "y" m/get ] with-memcached ] unit-test
[ "valuex" x m/set "valuey" y m/set ] with-memcached
[ "valuex" ] [ [ x m/get ] with-memcached ] unit-test
[ "valuey" ] [ [ y m/get ] with-memcached ] unit-test
[ m/flush ] with-memcached
[ [ "x" m/get ] with-memcached ] not-found?
[ [ "y" m/get ] with-memcached ] not-found?
[ [ x m/get ] with-memcached ] not-found?
[ [ y m/get ] with-memcached ] not-found?
! test noop
[ m/noop ] with-memcached
! test delete
[ m/flush ] with-memcached
[ "valuex" "x" m/set ] with-memcached
[ "valuex" ] [ [ "x" m/get ] with-memcached ] unit-test
[ "x" m/delete ] with-memcached
[ [ "x" m/get ] with-memcached ] not-found?
[ "valuex" x m/set ] with-memcached
[ "valuex" ] [ [ x m/get ] with-memcached ] unit-test
[ x m/delete ] with-memcached
[ [ x m/get ] with-memcached ] not-found?
! test replace
[ m/flush ] with-memcached
[ [ "x" m/get ] with-memcached ] not-found?
[ [ "ex" "x" m/replace ] with-memcached ] not-found?
[ "ex" "x" m/add ] with-memcached
[ "ex" ] [ [ "x" m/get ] with-memcached ] unit-test
[ "ex2" "x" m/replace ] with-memcached
[ "ex2" ] [ [ "x" m/get ] with-memcached ] unit-test
[ [ x m/get ] with-memcached ] not-found?
[ [ "ex" x m/replace ] with-memcached ] not-found?
[ "ex" x m/add ] with-memcached
[ "ex" ] [ [ x m/get ] with-memcached ] unit-test
[ "ex2" x m/replace ] with-memcached
[ "ex2" ] [ [ x m/get ] with-memcached ] unit-test
! test incr
[ m/flush ] with-memcached
[ 0 ] [ [ "x" m/incr ] with-memcached ] unit-test
[ 1 ] [ [ "x" m/incr ] with-memcached ] unit-test
[ 212 ] [ [ 211 "x" m/incr-val ] with-memcached ] unit-test
[ 8589934804 ] [ [ 2 33 ^ "x" m/incr-val ] with-memcached ] unit-test
[ 0 ] [ [ x m/incr ] with-memcached ] unit-test
[ 1 ] [ [ x m/incr ] with-memcached ] unit-test
[ 212 ] [ [ 211 x m/incr-val ] with-memcached ] unit-test
[ 8589934804 ] [ [ 2 33 ^ x m/incr-val ] with-memcached ] unit-test
! test decr
[ m/flush ] with-memcached
[ "5" "x" m/set ] with-memcached
[ 4 ] [ [ "x" m/decr ] with-memcached ] unit-test
[ 0 ] [ [ 211 "x" m/decr-val ] with-memcached ] unit-test
[ "5" x m/set ] with-memcached
[ 4 ] [ [ x m/decr ] with-memcached ] unit-test
[ 0 ] [ [ 211 x m/decr-val ] with-memcached ] unit-test
! test timebombed flush
[ m/flush ] with-memcached
[ [ "x" m/get ] with-memcached ] not-found?
[ "valuex" "x" m/set ] with-memcached
[ "valuex" ] [ [ "x" m/get ] with-memcached ] unit-test
[ [ x m/get ] with-memcached ] not-found?
[ "valuex" x m/set ] with-memcached
[ "valuex" ] [ [ x m/get ] with-memcached ] unit-test
[ 2 m/flush-later ] with-memcached
[ "valuex" ] [ [ "x" m/get ] with-memcached ] unit-test
[ "valuex" ] [ [ x m/get ] with-memcached ] unit-test
3 seconds sleep
[ [ "x" m/get ] with-memcached ] not-found?
[ [ x m/get ] with-memcached ] not-found?
! test append
[ m/flush ] with-memcached
[ "some" "x" m/set ] with-memcached
[ "thing" "x" m/append ] with-memcached
[ "something" ] [ [ "x" m/get ] with-memcached ] unit-test
[ "some" x m/set ] with-memcached
[ "thing" x m/append ] with-memcached
[ "something" ] [ [ x m/get ] with-memcached ] unit-test
! test prepend
[ m/flush ] with-memcached
[ "some" "x" m/set ] with-memcached
[ "thing" "x" m/prepend ] with-memcached
[ "thingsome" ] [ [ "x" m/get ] with-memcached ] unit-test
[ "some" x m/set ] with-memcached
[ "thing" x m/prepend ] with-memcached
[ "thingsome" ] [ [ x m/get ] with-memcached ] unit-test
! test multi-get
[ m/flush ] with-memcached
[ H{ } ] [ [ { "x" "y" "z" } m/getseq ] with-memcached ] unit-test
[ "5" "x" m/set ] with-memcached
[ "valuex" "y" m/set ] with-memcached
[ H{ { "x" "5" } { "y" "valuex" } } ]
[ [ { "x" "y" "z" } m/getseq ] with-memcached ] unit-test
[ H{ } ] [ [ x y z 3array m/getseq ] with-memcached ] unit-test
[ "5" x m/set ] with-memcached
[ "valuex" y m/set ] with-memcached
[ { "5" "valuex" } ] [
[ x y z 3array m/getseq values ] with-memcached
] unit-test

View File

@ -21,6 +21,15 @@ SYMBOL: memcached-server
memcached-server get-global
binary [ call ] with-client ; inline
ERROR: key-not-found ;
ERROR: key-exists ;
ERROR: value-too-large ;
ERROR: invalid-arguments ;
ERROR: item-not-stored ;
ERROR: value-not-numeric ;
ERROR: unknown-command ;
ERROR: out-of-memory ;
<PRIVATE
! Commands
@ -103,14 +112,14 @@ TUPLE: request cmd key val extra opaque cas ;
: check-status ( header -- )
[ 5 ] dip nth {
{ NOT_FOUND [ "key not found" throw ] }
{ EXISTS [ "key exists" throw ] }
{ TOO_LARGE [ "value too large" throw ] }
{ INVALID_ARGS [ "invalid arguments" throw ] }
{ NOT_STORED [ "item not stored" throw ] }
{ NOT_NUMERIC [ "value not numeric" throw ] }
{ UNKNOWN_CMD [ "unknown command" throw ] }
{ MEMORY [ "out of memory" throw ] }
{ NOT_FOUND [ key-not-found ] }
{ EXISTS [ key-exists ] }
{ TOO_LARGE [ value-too-large ] }
{ INVALID_ARGS [ invalid-arguments ] }
{ NOT_STORED [ item-not-stored ] }
{ NOT_NUMERIC [ value-not-numeric ] }
{ UNKNOWN_CMD [ unknown-command ] }
{ MEMORY [ out-of-memory ] }
[ drop ]
} case ;