]> Sergey Matveev's repositories - public-inbox.git/blobdiff - t/search.t
respect umask if core.sharedRepository is not set
[public-inbox.git] / t / search.t
index 004b7aa36ab3982ddd6d3cfcd810727e950ff425..c971fe3ca5c72f3490c83d844dc7f42a74065950 100644 (file)
@@ -11,7 +11,7 @@ my $tmpdir = tempdir('pi-search-XXXXXX', TMPDIR => 1, CLEANUP => 1);
 my $git_dir = "$tmpdir/a.git";
 my ($root_id, $last_id);
 
-is(0, system(qw(git init -q --bare), $git_dir), "git init (main)");
+is(0, system(qw(git init --shared -q --bare), $git_dir), "git init (main)");
 eval { PublicInbox::Search->new($git_dir) };
 ok($@, "exception raised on non-existent DB");
 
@@ -214,7 +214,7 @@ $ibx->with_umask(sub {
                        # No References:
                        # 'References' => '<root@s> <last@s> <'.$long_mid.'>',
                        'In-Reply-To' => "<$long_mid>",
-                       From => '"no1 <no1@example.com>',
+                       From => 'no1 <no1@example.com>',
                        To => 'list@example.com',
                ],
                body => "no References\n");
@@ -422,14 +422,45 @@ $ibx->with_umask(sub {
 });
 
 foreach my $f ("$git_dir/public-inbox/msgmap.sqlite3",
+               "$git_dir/public-inbox",
                glob("$git_dir/public-inbox/xapian*/"),
                glob("$git_dir/public-inbox/xapian*/*")) {
        my @st = stat($f);
        my ($bn) = (split(m!/!, $f))[-1];
-       is($st[2] & 07777, -f _ ? 0660 : 0770,
+       is($st[2] & 07777, -f _ ? 0660 : 02770,
                "sharedRepository respected for $bn");
 }
 
+$ibx->with_umask(sub {
+       $rw_commit->();
+       my $digits = '10010260936330';
+       my $ua = 'Pine.LNX.4.10';
+       my $mid = "$ua.$digits.2460-100000\@penguin.transmeta.com";
+       is($ro->reopen->query("m:$digits", { mset => 1})->size, 0,
+               'no results yet');
+       my $pine = Email::MIME->create(
+               header_str => [
+                       Subject => 'blah',
+                       'Message-ID' => "<$mid>",
+                       From => 'torvalds@transmeta',
+                       To => 'list@example.com',
+               ],
+               body => ""
+       );
+       my $x = $rw->add_message($pine);
+       $rw->commit_txn_lazy;
+       is($ro->reopen->query("m:$digits", { mset => 1})->size, 1,
+               'searching only digit yielded result');
+
+       my $wild = $digits;
+       for my $i (1..6) {
+               chop($wild);
+               is($ro->query("m:$wild*", { mset => 1})->size, 1,
+                       "searching chopped($i) digit yielded result $wild ");
+       }
+       is($ro->query("m:Pine m:LNX m:10010260936330", {mset=>1})->size, 1);
+});
+
 done_testing();
 
 1;