@@ -5,29 +5,50 @@ test_description='git bugreport'
5
5
TEST_PASSES_SANITIZE_LEAK=true
6
6
. ./test-lib.sh
7
7
8
- # Headers "[System Info]" will be followed by a non-empty line if we put some
9
- # information there; we can make sure all our headers were followed by some
10
- # information to check if the command was successful.
11
- HEADER_PATTERN=" ^\[.*\]$"
12
-
13
- check_all_headers_populated () {
14
- while read -r line
15
- do
16
- if test " $( grep " $HEADER_PATTERN " " $line " ) "
17
- then
18
- echo " $line "
19
- read -r nextline
20
- if test -z " $nextline " ; then
21
- return 1;
22
- fi
23
- fi
24
- done
25
- }
26
-
27
- test_expect_success ' creates a report with content in the right places' '
28
- test_when_finished rm git-bugreport-check-headers.txt &&
29
- git bugreport -s check-headers &&
30
- check_all_headers_populated <git-bugreport-check-headers.txt
8
+ test_expect_success ' create a report' '
9
+ git bugreport -s format &&
10
+ test_file_not_empty git-bugreport-format.txt
11
+ '
12
+
13
+ test_expect_success ' report contains wanted template (before first section)' '
14
+ sed -ne "/^\[/q;p" git-bugreport-format.txt >actual &&
15
+ cat >expect <<-\EOF &&
16
+ Thank you for filling out a Git bug report!
17
+ Please answer the following questions to help us understand your issue.
18
+
19
+ What did you do before the bug happened? (Steps to reproduce your issue)
20
+
21
+ What did you expect to happen? (Expected behavior)
22
+
23
+ What happened instead? (Actual behavior)
24
+
25
+ What' \' ' s different between what you expected and what actually happened?
26
+
27
+ Anything else you want to add:
28
+
29
+ Please review the rest of the bug report below.
30
+ You can delete any lines you don' \' ' t wish to share.
31
+
32
+
33
+ EOF
34
+ test_cmp expect actual
35
+ '
36
+
37
+ test_expect_success ' sanity check "System Info" section' '
38
+ test_when_finished rm -f git-bugreport-format.txt &&
39
+
40
+ sed -ne "/^\[System Info\]$/,/^$/p" <git-bugreport-format.txt >system &&
41
+
42
+ # The beginning should match "git version --build-info" verbatim,
43
+ # but rather than checking bit-for-bit equality, just test some basics.
44
+ grep "git version [0-9]." system &&
45
+ grep "shell-path: ." system &&
46
+
47
+ # After the version, there should be some more info.
48
+ # This is bound to differ from environment to environment,
49
+ # so we just do some rather high-level checks.
50
+ grep "uname: ." system &&
51
+ grep "compiler info: ." system
31
52
'
32
53
33
54
test_expect_success ' dies if file with same name as report already exists' '
0 commit comments