about summary refs log tree commit homepage
path: root/t
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-01-13 19:06:20 -1200
committerEric Wong <e@80x24.org>2021-01-14 23:14:08 +0000
commit8591e28bd9acfb44bd07d9bf75c055dfe3edf1a7 (patch)
tree59b1cf8063b4f93d8415f7dbebc445ddf93660c7 /t
parent14055cedd9fc6ec593528a243ff52b6684df70c0 (diff)
downloadpublic-inbox-8591e28bd9acfb44bd07d9bf75c055dfe3edf1a7.tar.gz
We'll be passing these objects via PublicInbox::IPC which uses
Storable (or Sereal), so ensure they're safe to use after
serialization.
Diffstat (limited to 't')
-rw-r--r--t/lei_dedupe.t13
1 files changed, 13 insertions, 0 deletions
diff --git a/t/lei_dedupe.t b/t/lei_dedupe.t
index 6e971b9b..bcb06a0a 100644
--- a/t/lei_dedupe.t
+++ b/t/lei_dedupe.t
@@ -17,8 +17,18 @@ my $smsg = bless { ds => time }, 'PublicInbox::Smsg';
 $smsg->populate($eml);
 $smsg->{$_} //= '' for (qw(to cc references)) ;
 
+my $check_storable = sub {
+        my ($x) = @_;
+        SKIP: {
+                require_mods('Storable', 1);
+                my $dup = Storable::thaw(Storable::freeze($x));
+                is_deeply($dup, $x, "$x->[3] round-trips through storable");
+        }
+};
+
 my $lei = { opt => { dedupe => 'none' } };
 my $dd = PublicInbox::LeiDedupe->new($lei);
+$check_storable->($dd);
 $dd->prepare_dedupe;
 ok(!$dd->is_dup($eml), '1st is_dup w/o dedupe');
 ok(!$dd->is_dup($eml), '2nd is_dup w/o dedupe');
@@ -29,6 +39,7 @@ ok(!$dd->is_smsg_dup($smsg), 'smsg dedupe none 2');
 for my $strat (undef, 'content') {
         $lei->{opt}->{dedupe} = $strat;
         $dd = PublicInbox::LeiDedupe->new($lei);
+        $check_storable->($dd);
         $dd->prepare_dedupe;
         my $desc = $strat // 'default';
         ok(!$dd->is_dup($eml), "1st is_dup with $desc dedupe");
@@ -43,6 +54,7 @@ like($@, qr/unsupported.*bogus/, 'died on bogus strategy');
 
 $lei->{opt}->{dedupe} = 'mid';
 $dd = PublicInbox::LeiDedupe->new($lei);
+$check_storable->($dd);
 $dd->prepare_dedupe;
 ok(!$dd->is_dup($eml), '1st is_dup with mid dedupe');
 ok($dd->is_dup($eml), '2nd seen with mid dedupe');
@@ -52,6 +64,7 @@ ok($dd->is_smsg_dup($smsg), 'smsg mid dedupe reject');
 
 $lei->{opt}->{dedupe} = 'oid';
 $dd = PublicInbox::LeiDedupe->new($lei);
+$check_storable->($dd);
 $dd->prepare_dedupe;
 
 # --augment won't have OIDs: