From 0aeb67686626569b65df83251e9efd9a30ab6db7 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Wed, 31 Oct 2007 18:59:25 -0500 Subject: [PATCH] Port extra/store to new module system add unit tests --- extra/store/store-tests.factor | 41 ++++++++++++++++++++++++++++++++++ extra/store/store.factor | 5 ++--- 2 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 extra/store/store-tests.factor diff --git a/extra/store/store-tests.factor b/extra/store/store-tests.factor new file mode 100644 index 0000000000..97b39bcffd --- /dev/null +++ b/extra/store/store-tests.factor @@ -0,0 +1,41 @@ +USING: assocs continuations debugger io.files kernel +namespaces store tools.test ; +IN: temporary + +SYMBOL: store +SYMBOL: foo +SYMBOL: bar + + +: the-store ( -- path ) + "store-test.store" resource-path ; + +: delete-the-store ( -- ) + [ the-store delete-file ] catch drop ; + +: load-the-store ( -- ) + the-store load-store store set ; + +: save-the-store ( -- ) + store get save-store ; + +delete-the-store +the-store load-store store set + +[ f ] [ foo store get store-data at ] unit-test + +[ ] [ 100 foo store get store-variable ] unit-test + +[ ] [ save-the-store ] unit-test + +[ 100 ] [ foo store get store-data at ] unit-test + +1000 foo set + +[ ] [ save-the-store ] unit-test + +[ ] [ load-the-store ] unit-test + +[ 1000 ] [ foo store get store-data at ] unit-test + +delete-the-store diff --git a/extra/store/store.factor b/extra/store/store.factor index 7d3092a74f..38f078b2a8 100644 --- a/extra/store/store.factor +++ b/extra/store/store.factor @@ -11,12 +11,12 @@ C: store [ store-data ] keep store-path [ [ dup - [ drop [ get ] keep rot set-at ] curry* assoc-each + [ >r drop [ get ] keep r> set-at ] curry assoc-each ] keep serialize ] with-stream ; : load-store ( path -- store ) - resource-path dup exists? [ + dup exists? [ dup [ deserialize ] with-stream @@ -30,4 +30,3 @@ C: store ] [ drop >r 2dup set-global r> set-at ] if ; -