From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 299B71F5AE for ; Sun, 26 Jul 2020 09:03:15 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH] t/init.t: don't modify ~/.public-inbox/ Date: Sun, 26 Jul 2020 09:03:15 +0000 Message-Id: <20200726090315.10068-1-e@yhbt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: Tests for failures should not leave junk temporary files lying around in a users' ~/.public-inbox/. On a side note, I'm not sure if PI_DIR is or was ever necessary. It's never been documented, so perhaps using $HOME for this is better... --- script/public-inbox-init | 2 ++ t/init.t | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/script/public-inbox-init b/script/public-inbox-init index 951338af0..b8d71f351 100755 --- a/script/public-inbox-init +++ b/script/public-inbox-init @@ -53,6 +53,7 @@ PublicInbox::Lock::lock_acquire($lock_obj); # git-config will operate on this (and rename on success): my ($fh, $pi_config_tmp) = tempfile('pi-init-XXXXXXXX', DIR => $dir); +my $cfg_tmp = UnlinkMe->new($pi_config_tmp); # Now, we grab another lock to use git-config(1) locking, so it won't # wait on the lock, unlike some of our internal flock()-based locks. @@ -176,6 +177,7 @@ if (defined $perm) { rename $pi_config_tmp, $pi_config or die "failed to rename `$pi_config_tmp' to `$pi_config': $!\n"; +delete $cfg_tmp->{file}; $auto_unlink->DESTROY; package UnlinkMe; diff --git a/t/init.t b/t/init.t index b8f17b5c4..165819554 100644 --- a/t/init.t +++ b/t/init.t @@ -50,12 +50,15 @@ sub quiet_fail { '-init did not unlink lock on failure'); } { + my $env = { PI_DIR => "$tmpdir/.public-inbox/" }; my $rdr = { 2 => \(my $err = '') }; my $cmd = [ '-init', 'alist', "$tmpdir/a\nlist", qw(http://example.com/alist alist@example.com) ]; - ok(!run_script($cmd, undef, $rdr), + ok(!run_script($cmd, $env, $rdr), 'public-inbox-init rejects LF in inboxdir'); like($err, qr/`\\n' not allowed in `/s, 'reported \\n'); + is_deeply([glob("$tmpdir/.public-inbox/pi-init-*")], [], + 'no junk files left behind'); } SKIP: {