Replace use of git-init with git init
[VCS-Git-Torrent.git] / t / TestUtils.pm
blobf570e6fb6e8eb2fe767c5ae9385620e82aecd775
1 #!/usr/bin/perl
3 package t::TestUtils;
5 use Carp;
6 use base qw(Exporter);
7 BEGIN {
8 our @EXPORT = qw(mk_tmp_repo in_empty_repo tmp_git random_port_pair);
9 $SIG{__WARN__} = sub {
10 my $i = 0;
11 while (my $caller = caller($i)) {
12 if ($caller eq "Test::More") {
13 return 0;
15 $i++;
17 my $culprit = caller;
18 if ($culprit =~ m{Class::C3}) {
19 return 1;
21 else {
22 print STDERR "*** WARNING FROM $culprit FOLLOWS ***\n";
24 Carp::cluck(@_);
25 print STDERR "*** END OF STACK DUMP ***\n";
28 unless $ENV{NO_WARNING_TRACES};
31 use Cwd qw(fast_abs_path);
32 use File::Temp qw(tempdir);
34 sub mk_tmp_repo {
35 my $temp_dir = tempdir( "t/tmpXXXXX", CLEANUP => 1 );
36 system("cd $temp_dir; git init >/dev/null") == 0
37 or die "git init failed; rc=$?";
38 fast_abs_path($temp_dir);
41 use Cwd;
43 sub in_empty_repo {
44 my $coderef = shift;
45 my $old_wd = getcwd;
46 my $path = mk_tmp_repo();
47 chdir($path);
48 $coderef->();
49 chdir($old_wd);
52 use Git;
53 sub tmp_git {
54 Git->repository(mk_tmp_repo);
57 # return an array ref of two unprivileged ports
58 sub random_port_pair {
59 my $port = int(rand(2**16-1024-1)+1024);
60 [ $port, $port + 1 ];