commit:71d846fac84f2266b1a4a0324f2932a0435aab1d
author:Chip Black
committer:Chip Black
date:Mon Jun 3 00:29:57 2013 -0500
parents:5891d51b8b7156451894c85babaab04850f94007
Add mute support to perl lib
diff --git a/lib/perl/Blerg-Database/Database.xs b/lib/perl/Blerg-Database/Database.xs
line changes: +12/-0
index 0d8086f..a26e736
--- a/lib/perl/Blerg-Database/Database.xs
+++ b/lib/perl/Blerg-Database/Database.xs
@@ -87,6 +87,18 @@ const char * _get_subscription_mark(struct blerg *ptr)
         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;

diff --git a/lib/perl/Blerg-Database/t/Blerg-Database.t b/lib/perl/Blerg-Database/t/Blerg-Database.t
line changes: +33/-14
index 32cff92..eebfbae
--- a/lib/perl/Blerg-Database/t/Blerg-Database.t
+++ b/lib/perl/Blerg-Database/t/Blerg-Database.t
@@ -9,7 +9,7 @@ use File::Path qw/remove_tree/;
 use strict;
 use warnings;
 
-use Test::More tests => 18;
+use Test::More tests => 25;
 BEGIN { use_ok('Blerg::Database') };
 
 #########################
@@ -22,16 +22,18 @@ my $test_user = 'barfy';
 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";
@@ -40,17 +42,13 @@ close DATA;
 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
 
@@ -58,11 +56,29 @@ ok( $count == 1 );
 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) );
@@ -70,12 +86,15 @@ 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 );