65 lines
1.4 KiB
Factor
65 lines
1.4 KiB
Factor
! Copyright (C) 2010 Dmitry Shubin.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: accessors arrays continuations gdbm io.directories
|
|
io.files.temp kernel sequences sets system tools.test ;
|
|
IN: gdbm.tests
|
|
|
|
: db-path ( -- filename ) "test.db" temp-file ;
|
|
|
|
: CLEANUP ( -- ) [ db-path delete-file ] ignore-errors ;
|
|
|
|
: test.db ( -- gdbm ) <gdbm> db-path >>name ;
|
|
|
|
: with-test.db ( quot -- ) test.db swap with-gdbm ; inline
|
|
|
|
os windows? cpu x86.64? and [
|
|
CLEANUP
|
|
|
|
|
|
[
|
|
test.db reader >>role [ ] with-gdbm
|
|
] [ gdbm-file-open-error = ] must-fail-with
|
|
|
|
[ f ] [ [ "foo" exists? ] with-test.db ] unit-test
|
|
|
|
[ ] [ [ "foo" 41 insert ] with-test.db ] unit-test
|
|
|
|
[
|
|
db-path [ "foo" 42 insert ] with-gdbm-writer
|
|
] [ gdbm-cannot-replace = ] must-fail-with
|
|
|
|
[ ]
|
|
[
|
|
[
|
|
"foo" 42 replace
|
|
"bar" 43 replace
|
|
"baz" 44 replace
|
|
] with-test.db
|
|
] unit-test
|
|
|
|
[ 42 t ] [ db-path [ "foo" fetch* ] with-gdbm-reader ] unit-test
|
|
|
|
[ f f ] [ [ "unknown" fetch* ] with-test.db ] unit-test
|
|
|
|
[
|
|
[
|
|
300 set-cache-size 300 set-cache-size
|
|
] with-test.db
|
|
] [ gdbm-option-already-set = ] must-fail-with
|
|
|
|
[ t ]
|
|
[
|
|
V{ } [ [ 2array append ] each-record ] with-test.db
|
|
V{ "foo" "bar" "baz" 42 43 44 } set=
|
|
|
|
] unit-test
|
|
|
|
[ f ]
|
|
[
|
|
test.db newdb >>role [ "foo" exists? ] with-gdbm
|
|
] unit-test
|
|
|
|
|
|
CLEANUP
|
|
] unless
|