summaryrefslogtreecommitdiff
path: root/t/t9700/test.pl
diff options
context:
space:
mode:
Diffstat (limited to 't/t9700/test.pl')
-rwxr-xr-xt/t9700/test.pl28
1 files changed, 16 insertions, 12 deletions
diff --git a/t/t9700/test.pl b/t/t9700/test.pl
index 504f95a47d..666722d9bf 100755
--- a/t/t9700/test.pl
+++ b/t/t9700/test.pl
@@ -13,10 +13,7 @@ use File::Basename;
BEGIN { use_ok('Git') }
# set up
-our $repo_dir = "trash directory";
-our $abs_repo_dir = Cwd->cwd;
-die "this must be run by calling the t/t97* shell script(s)\n"
- if basename(Cwd->cwd) ne $repo_dir;
+our $abs_repo_dir = cwd();
ok(our $r = Git->repository(Directory => "."), "open repository");
# config
@@ -89,15 +86,22 @@ close TEMPFILE;
unlink $tmpfile;
# paths
-is($r->repo_path, "./.git", "repo_path");
+is($r->repo_path, $abs_repo_dir . "/.git", "repo_path");
is($r->wc_path, $abs_repo_dir . "/", "wc_path");
is($r->wc_subdir, "", "wc_subdir initial");
$r->wc_chdir("directory1");
is($r->wc_subdir, "directory1", "wc_subdir after wc_chdir");
-TODO: {
- local $TODO = "commands do not work after wc_chdir";
- # Failure output is active even in non-verbose mode and thus
- # annoying. Hence we skip these tests as long as they fail.
- todo_skip 'config after wc_chdir', 1;
- is($r->config("color.string"), "value", "config after wc_chdir");
-}
+is($r->config("test.string"), "value", "config after wc_chdir");
+
+# Object generation in sub directory
+chdir("directory2");
+my $r2 = Git->repository();
+is($r2->repo_path, $abs_repo_dir . "/.git", "repo_path (2)");
+is($r2->wc_path, $abs_repo_dir . "/", "wc_path (2)");
+is($r2->wc_subdir, "directory2/", "wc_subdir initial (2)");
+
+# commands in sub directory
+my $last_commit = $r2->command_oneline(qw(rev-parse --verify HEAD));
+like($last_commit, qr/^[0-9a-fA-F]{40}$/, 'rev-parse returned hash');
+my $dir_commit = $r2->command_oneline('log', '-n1', '--pretty=format:%H', '.');
+isnt($last_commit, $dir_commit, 'log . does not show last commit');