diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2020-02-01 11:46:45 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2020-02-01 11:46:45 -0700 |
commit | 8a8a668b3ad3c47a0e761b9fa6dab580e7dba32e (patch) | |
tree | 44a7a27ce6ab2201c33846bf63845b4e0856b379 /t | |
parent | 97a52a2040b31f693371715b9c573702388af273 (diff) | |
download | p5-Git-Annex-8a8a668b3ad3c47a0e761b9fa6dab580e7dba32e.tar.gz |
with_temp_annex -> with_temp_annexes
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 't')
-rwxr-xr-x | t/10_init.t | 9 | ||||
-rw-r--r-- | t/lib/t/Setup.pm | 41 |
2 files changed, 37 insertions, 13 deletions
diff --git a/t/10_init.t b/t/10_init.t index 0d4b5a8..b04321e 100755 --- a/t/10_init.t +++ b/t/10_init.t @@ -10,6 +10,7 @@ use Git::Annex; use File::chdir; use File::Temp qw(tempdir); use t::Setup; +use File::Spec::Functions qw(catfile); { my $temp = tempdir CLEANUP => 1; @@ -31,13 +32,13 @@ use t::Setup; # lazy init of Git::Repository object requires an actual git repo, not # just an empty tempdir -with_temp_annex { - my $temp = shift; - my $annex = Git::Annex->new($temp); +with_temp_annexes { + my $annex = Git::Annex->new("source1"); ok !defined $annex->{repo}, "Git::Repository instance lazily instantiated"; ok $annex->repo->isa("Git::Repository") && defined $annex->{repo}, "Git::Repository instance available"; - ok $annex->repo->work_tree eq $temp, "Git::Repository has correct toplevel"; + ok $annex->repo->work_tree eq catfile(shift, "source1"), + "Git::Repository has correct toplevel"; }; done_testing; diff --git a/t/lib/t/Setup.pm b/t/lib/t/Setup.pm index 980aade..15dd49b 100644 --- a/t/lib/t/Setup.pm +++ b/t/lib/t/Setup.pm @@ -9,18 +9,41 @@ use File::Slurp; use File::Temp qw(tempdir); use Git::Wrapper; use File::Spec::Functions qw(catfile); +use File::chdir; +use File::Path qw(rmtree); -our @EXPORT = qw( with_temp_annex ); +our @EXPORT = qw( with_temp_annexes ); -sub with_temp_annex (&) { +sub with_temp_annexes (&) { my $temp = tempdir CLEANUP => 1; - my $git = Git::Wrapper->new($temp); - $git->init; - $git->annex("init"); - write_file catfile($temp, "foo"), "my cool big file\n"; - $git->annex(qw(add foo)); - $git->commit({message => "add"}); - &{$_[0]}($temp); + { + local $CWD = $temp; + my ($source1, $source2, $dest) + = map { Git::Wrapper->new($_) } qw(source1 source2 dest); + mkdir for qw(source1 source2 dest); + for ($source1, $source2, $dest) { + $_->init; + $_->annex("init"); + $_->config(qw(annex.thin false)); + } + + # source1 setup + mkdir catfile qw(source1 foo); + write_file catfile(qw(source1 foo bar)), "bar\n"; + mkdir catfile qw(source1 foo foo2); + write_file catfile(qw(source1 foo foo2 baz)), "baz\n"; + $source1->RUN(qw(-c annex.gitaddtoannex=false add foo/bar)); + $source1->RUN(qw(-c annex.gitaddtoannex=false annex add foo/foo2/baz)); + $source1->commit({ message => "add" }); + + # source2 setup + write_file catfile(qw(source2 other)), "other\n"; + $source2->RUN(qw(-c annex.addunlocked=false annex add other)); + $source2->commit({ message => "add" }); + + &{ $_[0] }($temp); + } + rmtree $temp; } 1; |