Add mute support to perl lib
n = snprintf(buf, 21, "%llu", mark);
XPUSHs(sv_2mortal(newSVpv(buf, n)));
+int _set_mute(struct blerg *ptr, int v)
+ CODE:
+ RETVAL = blerg_set_mute(ptr, v);
+ OUTPUT:
+ RETVAL
+
+int _get_mute(struct blerg *ptr)
+ CODE:
+ RETVAL = blerg_get_mute(ptr);
+ OUTPUT:
+ RETVAL
+
void _tag_list(const char *tag, const char *str_offset, int direction)
INIT:
HV * tmp;
use strict;
use warnings;
-use Test::More tests => 18;
+use Test::More tests => 25;
BEGIN { use_ok('Blerg::Database') };
#########################
chdir '../../..';
remove_tree "data/$test_user";
remove_tree "hash_tags/data";
+my ($ptr, @list, $n);
+$n = 0;
### C interfaces
# Open a database
-my $ptr = Blerg::Database::_open($test_user);
+$ptr = Blerg::Database::_open($test_user);
ok( ref $ptr eq 'struct blergPtr' );
# Store
my $data = "Hello!";
my $t0 = time;
-ok( Blerg::Database::_store($ptr, $data) >= 0 );
+ok( Blerg::Database::_store($ptr, $data) == $n );
# Check internal database
open DATA, "data/$test_user/data0";
ok( $check_data eq $data );
# Fetch
-ok( Blerg::Database::_fetch($ptr, 0) eq $data );
-ok( not defined Blerg::Database::_fetch($ptr, 1) );
+ok( Blerg::Database::_fetch($ptr, $n) eq $data );
+ok( not defined Blerg::Database::_fetch($ptr, $n + 1) );
# Get time
-my $t = Blerg::Database::_get_timestamp($ptr, 0);
+my $t = Blerg::Database::_get_timestamp($ptr, $n);
ok( $t0 - $t <= 1.0 );
-# Count
-my $count = Blerg::Database::_get_record_count($ptr);
-ok( $count == 1 );
-
# Will have to test subscription bits after the Subscription module is
# made
Blerg::Database::_store($ptr, "This is data A #data");
Blerg::Database::_store($ptr, "This is data B #data");
Blerg::Database::_store($ptr, "This is data C #data");
+$n += 3;
-my @list = Blerg::Database::_tag_list('#data', 0, 1);
+@list = Blerg::Database::_tag_list('#data', 0, 1);
ok( @list == 3 );
ok( $list[0]->{author} eq $test_user );
-ok( $list[0]->{record} == 3 );
+ok( $list[0]->{record} == $n );
+
+# Test mute
+ok( Blerg::Database::_set_mute($ptr, 1) );
+ok( Blerg::Database::_get_mute($ptr) == 1 );
+Blerg::Database::_store($ptr, "Testing more #data");
+@list = Blerg::Database::_tag_list('#data', 0, 1);
+ok( @list == 3 );
+ok( Blerg::Database::_set_mute($ptr, 0) );
+ok( Blerg::Database::_get_mute($ptr) == 0 );
+Blerg::Database::_store($ptr, "Testing more #data");
+@list = Blerg::Database::_tag_list('#data', 0, 1);
+ok( @list == 4 );
+$n += 2;
+
+# Count
+my $count = Blerg::Database::_get_record_count($ptr);
+ok( $count == $n + 1 );
# Close database
ok( Blerg::Database::_close($ptr) );
# Test existence
ok( Blerg::Database::exists($test_user) );
+
# Perl OO interface
my $blerg = Blerg::Database->open_existing('nonexistent');
ok( not defined $blerg );
$blerg = Blerg::Database->open($test_user);
ok( defined $blerg );
+ok( ref $blerg->{ptr} eq 'struct blergPtr');
ok( $blerg->fetch(0) eq $data );
-ok( $blerg->store($data) == 4 );
-ok( $blerg->fetch(4) eq $data );
+ok( $blerg->store($data) == $n + 1 );
+$n++;
+ok( $blerg->fetch($n) eq $data );