aboutsummaryrefslogtreecommitdiffstats
path: root/t/108-file-path-is-relative.t
blob: 44a489faeb0949a175f3322484c02d8198a5355c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/env perl -w

# Copyright (c) 2020  Teddy Wing
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.


use strict;

use File::Copy;
use File::Path qw(remove_tree);
use Test::More;

use Bin qw($BIN);

my $file = 'git-sugdiff.rs';

mkdir 't-git-repo/subdir' or die $!;
chdir 't-git-repo/subdir' or die $!;

move("../$file", $file);

system('git add git-sugdiff.rs');
ok !$?;

system('git commit -m "Move git-sugdiff.rs"');
ok !$?;

system('git checkout -b fork-point');
ok !$?;

open(my $input, '<', $file) or die $!;
open(my $output, '>', "$file.out") or die $!;

while (<$input>) {
	if ($. == 34) {
		print $output "    // TODO: 100-shows-todo-comments-since-fork-point\n";
	}

	print $output $_;
}

close $input;
close $output;

move("$file.out", $file) or die $!;

system('git add git-sugdiff.rs');
ok !$?;

system('git commit -m "New TODO"');
ok !$?;

my $todos = qx($BIN);
is $todos, 'git-sugdiff.rs:34:    // TODO: 100-shows-todo-comments-since-fork-point
';


# Teardown
system('git checkout master');
system('git branch -D fork-point');

system('git reset --hard HEAD~1');
ok !$?;

chdir '..' or die $!;
remove_tree('subdir');


done_testing;