mirror of
https://github.com/zeek/zeek.git
synced 2025-10-17 05:58:20 +00:00
Completely rework return values from storage operations
This commit is contained in:
parent
8ddda016ff
commit
9ed3e33f97
50 changed files with 859 additions and 586 deletions
|
@ -63,7 +63,9 @@ event zeek_init() {
|
|||
value[2] = "b";
|
||||
value[3] = "c";
|
||||
|
||||
local b = Storage::Sync::open_backend(Storage::SQLITE, opts, Rec, tbl);
|
||||
local open_res = Storage::Sync::open_backend(Storage::SQLITE, opts, Rec, tbl);
|
||||
print "open result", open_res;
|
||||
local b = open_res$value;
|
||||
|
||||
local res = Storage::Sync::put(b, [$key=key, $value=value]);
|
||||
print "put result", res;
|
||||
|
|
|
@ -10,23 +10,26 @@
|
|||
# Create a typename here that can be passed down into get().
|
||||
type str: string;
|
||||
|
||||
event zeek_init() {
|
||||
event zeek_init()
|
||||
{
|
||||
# Create a database file in the .tmp directory with a 'testing' table
|
||||
local opts : Storage::BackendOptions;
|
||||
opts$sqlite = [$database_path = "storage-test.sqlite", $table_name = "testing"];
|
||||
local opts: Storage::BackendOptions;
|
||||
opts$sqlite = [ $database_path="storage-test.sqlite", $table_name="testing" ];
|
||||
|
||||
local key = "key1234";
|
||||
|
||||
# Test inserting/retrieving a key/value pair that we know won't be in
|
||||
# the backend yet.
|
||||
local b = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
local open_res = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
print "open result", open_res;
|
||||
local b = open_res$value;
|
||||
|
||||
local res = Storage::Sync::erase(b, key);
|
||||
print "erase result", res;
|
||||
|
||||
local res2 = Storage::Sync::get(b, key);
|
||||
if ( res2?$error )
|
||||
print "get result", res2$error;
|
||||
if ( res2$code != Storage::SUCCESS )
|
||||
print "get result", res2;
|
||||
|
||||
Storage::Sync::close_backend(b);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,8 +20,8 @@ event check_removed() {
|
|||
# This should return an error from the sqlite backend that there aren't any more
|
||||
# rows available.
|
||||
local res2 = Storage::Sync::get(backend, key);
|
||||
if ( res2?$error )
|
||||
print "get result", res2$error;
|
||||
if ( res2$code != Storage::SUCCESS )
|
||||
print "get result", res2;
|
||||
|
||||
Storage::Sync::close_backend(backend);
|
||||
terminate();
|
||||
|
@ -31,15 +31,17 @@ event setup_test() {
|
|||
local opts : Storage::BackendOptions;
|
||||
opts$sqlite = [$database_path = "storage-test.sqlite", $table_name = "testing"];
|
||||
|
||||
backend = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
local open_res = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
print "open result", open_res;
|
||||
backend = open_res$value;
|
||||
|
||||
local res = Storage::Sync::put(backend, [$key=key, $value=value, $expire_time=2 secs]);
|
||||
print "put result", res;
|
||||
|
||||
local res2 = Storage::Sync::get(backend, key);
|
||||
print "get result", res2;
|
||||
if ( res2?$val )
|
||||
print "get result same as inserted", value == (res2$val as string);
|
||||
if ( res2$code == Storage::SUCCESS && res2?$value )
|
||||
print "get result same as inserted", value == (res2$value as string);
|
||||
|
||||
schedule 5 secs { check_removed() };
|
||||
}
|
||||
|
|
|
@ -17,15 +17,17 @@ event zeek_init() {
|
|||
local key = "key1234";
|
||||
local value = "value7890";
|
||||
|
||||
local b = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
local open_res = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
print "open result", open_res;
|
||||
local b = open_res$value;
|
||||
|
||||
local res = Storage::Sync::put(b, [$key=key, $value=value]);
|
||||
print "put result", res;
|
||||
|
||||
local res2 = Storage::Sync::get(b, key);
|
||||
print "get result", res2;
|
||||
if ( res2?$val )
|
||||
print "get result same as inserted", value == (res2$val as string);
|
||||
if ( res2$code == Storage::SUCCESS && res2?$value )
|
||||
print "get result same as inserted", value == (res2$value as string);
|
||||
|
||||
Storage::Sync::close_backend(b);
|
||||
}
|
||||
|
|
|
@ -28,7 +28,9 @@ event zeek_init()
|
|||
local key = "key1234";
|
||||
local value = "value5678";
|
||||
|
||||
local b = Storage::Sync::open_backend(Storage::REDIS, opts, str, str);
|
||||
local open_res = Storage::Sync::open_backend(Storage::REDIS, opts, str, str);
|
||||
print "open result", open_res;
|
||||
local b = open_res$value;
|
||||
|
||||
when [b, key, value] ( local res = Storage::Async::put(b, [ $key=key,
|
||||
$value=value ]) )
|
||||
|
@ -38,8 +40,8 @@ event zeek_init()
|
|||
when [b, key, value] ( local res2 = Storage::Async::get(b, key) )
|
||||
{
|
||||
print "get result", res2;
|
||||
if ( res2?$val )
|
||||
print "get result same as inserted", value == ( res2$val as string );
|
||||
if ( res2$code == Storage::SUCCESS && res2?$value )
|
||||
print "get result same as inserted", value == ( res2$value as string );
|
||||
|
||||
Storage::Sync::close_backend(b);
|
||||
}
|
||||
|
|
|
@ -30,32 +30,49 @@ event zeek_init()
|
|||
local key = "key1234";
|
||||
local value = "value5678";
|
||||
|
||||
local b = Storage::Sync::open_backend(Storage::REDIS, opts, str, str);
|
||||
|
||||
when [b, key, value] ( local res = Storage::Async::put(b, [ $key=key,
|
||||
$value=value ]) )
|
||||
when [opts, key, value] ( local open_res = Storage::Async::open_backend(
|
||||
Storage::REDIS, opts, str, str) )
|
||||
{
|
||||
print "put result", res;
|
||||
print "open result", open_res;
|
||||
local b = open_res$value;
|
||||
|
||||
when [b, key, value] ( local res2 = Storage::Async::get(b, key) )
|
||||
when [b, key, value] ( local put_res = Storage::Async::put(b, [ $key=key,
|
||||
$value=value ]) )
|
||||
{
|
||||
print "get result", res2;
|
||||
if ( res2?$val )
|
||||
print "get result same as inserted", value == ( res2$val as string );
|
||||
print "put result", put_res;
|
||||
|
||||
Storage::Sync::close_backend(b);
|
||||
when [b, key, value] ( local get_res = Storage::Async::get(b, key) )
|
||||
{
|
||||
print "get result", get_res;
|
||||
if ( get_res$code == Storage::SUCCESS && get_res?$value )
|
||||
print "get result same as inserted", value == ( get_res$value as string );
|
||||
|
||||
terminate();
|
||||
when [b] ( local close_res = Storage::Async::close_backend(b) )
|
||||
{
|
||||
print "close result", close_res;
|
||||
terminate();
|
||||
}
|
||||
timeout 5sec
|
||||
{
|
||||
print "close request timed out";
|
||||
terminate();
|
||||
}
|
||||
}
|
||||
timeout 5sec
|
||||
{
|
||||
print "get request timed out";
|
||||
terminate();
|
||||
}
|
||||
}
|
||||
timeout 5sec
|
||||
{
|
||||
print "get request timed out";
|
||||
print "put request timed out";
|
||||
terminate();
|
||||
}
|
||||
}
|
||||
timeout 5sec
|
||||
{
|
||||
print "put request timed out";
|
||||
print "open request timed out";
|
||||
terminate();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,7 +45,8 @@ event zeek_init()
|
|||
opts$redis = [ $server_host="127.0.0.1", $server_port=to_port(getenv(
|
||||
"REDIS_PORT")), $key_prefix="testing" ];
|
||||
|
||||
backend = Storage::Sync::open_backend(Storage::REDIS, opts, str, str);
|
||||
local open_res = Storage::Sync::open_backend(Storage::REDIS, opts, str, str);
|
||||
backend = open_res$value;
|
||||
}
|
||||
|
||||
event redis_data_written()
|
||||
|
|
|
@ -40,15 +40,18 @@ event setup_test()
|
|||
opts$redis = [ $server_host="127.0.0.1", $server_port=to_port(getenv(
|
||||
"REDIS_PORT")), $key_prefix="testing" ];
|
||||
|
||||
b = Storage::Sync::open_backend(Storage::REDIS, opts, str, str);
|
||||
local open_res = Storage::Sync::open_backend(Storage::REDIS, opts, str, str);
|
||||
print "open result", open_res;
|
||||
|
||||
b = open_res$value;
|
||||
|
||||
local res = Storage::Sync::put(b, [ $key=key, $value=value, $expire_time=2secs ]);
|
||||
print "put result", res;
|
||||
|
||||
local res2 = Storage::Sync::get(b, key);
|
||||
print "get result", res2;
|
||||
if ( res2?$val )
|
||||
print "get result same as inserted", value == ( res2$val as string );
|
||||
if ( res2$code == Storage::SUCCESS && res2?$value )
|
||||
print "get result same as inserted", value == ( res2$value as string );
|
||||
|
||||
schedule 5secs { check_removed() };
|
||||
}
|
||||
|
|
|
@ -27,15 +27,18 @@ event zeek_init()
|
|||
local key = "key1234";
|
||||
local value = "value1234";
|
||||
|
||||
local b = Storage::Sync::open_backend(Storage::REDIS, opts, str, str);
|
||||
local open_res = Storage::Sync::open_backend(Storage::REDIS, opts, str, str);
|
||||
print "open_result", open_res;
|
||||
|
||||
local b = open_res$value;
|
||||
|
||||
local res = Storage::Sync::put(b, [ $key=key, $value=value ]);
|
||||
print "put result", res;
|
||||
|
||||
local res2 = Storage::Sync::get(b, key);
|
||||
print "get result", res2;
|
||||
if ( res2?$val )
|
||||
print "get result same as inserted", value == ( res2$val as string );
|
||||
if ( res2$code == Storage::SUCCESS && res2?$value )
|
||||
print "get result same as inserted", value == ( res2$value as string );
|
||||
|
||||
local value2 = "value5678";
|
||||
res = Storage::Sync::put(b, [ $key=key, $value=value2, $overwrite=T ]);
|
||||
|
@ -43,8 +46,8 @@ event zeek_init()
|
|||
|
||||
res2 = Storage::Sync::get(b, key);
|
||||
print "get result", res2;
|
||||
if ( res2?$val )
|
||||
print "get result same as inserted", value2 == ( res2$val as string );
|
||||
if ( res2$code == Storage::SUCCESS && res2?$value )
|
||||
print "get result same as inserted", value2 == ( res2$value as string );
|
||||
|
||||
Storage::Sync::close_backend(b);
|
||||
}
|
||||
|
|
|
@ -23,7 +23,10 @@ event zeek_init()
|
|||
|
||||
# Test inserting/retrieving a key/value pair that we know won't be in
|
||||
# the backend yet.
|
||||
local b = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
local open_res = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
print "open result", open_res;
|
||||
|
||||
local b = open_res$value;
|
||||
|
||||
when [b, key, value] ( local res = Storage::Async::put(b, [ $key=key,
|
||||
$value=value ]) )
|
||||
|
@ -33,8 +36,8 @@ event zeek_init()
|
|||
when [b, key, value] ( local res2 = Storage::Async::get(b, key) )
|
||||
{
|
||||
print "get result", res2;
|
||||
if ( res2?$val )
|
||||
print "get result same as inserted", value == ( res2$val as string );
|
||||
if ( res2$code == Storage::SUCCESS && res2?$value )
|
||||
print "get result same as inserted", value == ( res2$value as string );
|
||||
|
||||
Storage::Sync::close_backend(b);
|
||||
|
||||
|
|
|
@ -22,10 +22,11 @@ event zeek_init()
|
|||
|
||||
# Test inserting/retrieving a key/value pair that we know won't be in
|
||||
# the backend yet.
|
||||
when [opts, key, value] ( local b = Storage::Async::open_backend(
|
||||
when [opts, key, value] ( local open_res = Storage::Async::open_backend(
|
||||
Storage::SQLITE, opts, str, str) )
|
||||
{
|
||||
print "open successful";
|
||||
print "open result", open_res;
|
||||
local b = open_res$value;
|
||||
|
||||
when [b, key, value] ( local put_res = Storage::Async::put(b, [ $key=key,
|
||||
$value=value ]) )
|
||||
|
@ -35,8 +36,8 @@ event zeek_init()
|
|||
when [b, key, value] ( local get_res = Storage::Async::get(b, key) )
|
||||
{
|
||||
print "get result", get_res;
|
||||
if ( get_res?$val )
|
||||
print "get result same as inserted", value == ( get_res$val as string );
|
||||
if ( get_res$code == Storage::SUCCESS && get_res?$value )
|
||||
print "get result same as inserted", value == ( get_res$value as string );
|
||||
|
||||
when [b] ( local close_res = Storage::Async::close_backend(b) )
|
||||
{
|
||||
|
|
|
@ -17,18 +17,23 @@ event zeek_init() {
|
|||
$table_name = "testing"];
|
||||
|
||||
# This should report an error in .stderr and reporter.log
|
||||
local b = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
local open_res = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
print "Open result", open_res;
|
||||
|
||||
# Open a valid database file
|
||||
opts$sqlite$database_path = "test.sqlite";
|
||||
b = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
open_res = Storage::Sync::open_backend(Storage::SQLITE, opts, str, str);
|
||||
print "Open result 2", open_res;
|
||||
|
||||
local b = open_res$value;
|
||||
|
||||
local bad_key: count = 12345;
|
||||
local value = "abcde";
|
||||
Storage::Sync::put(b, [$key=bad_key, $value=value]);
|
||||
local res = Storage::Sync::put(b, [$key=bad_key, $value=value]);
|
||||
print "Put result with bad key type", res;
|
||||
|
||||
# Close the backend and then attempt to use the closed handle
|
||||
Storage::Sync::close_backend(b);
|
||||
local res = Storage::Sync::put(b, [$key="a", $value="b"]);
|
||||
print fmt("Put result on closed handle: %d", res);
|
||||
local res2 = Storage::Sync::put(b, [$key="a", $value="b"]);
|
||||
print "Put result on closed handle", res2;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue