Skip to content

Commit e6d2071

Browse files
committed
add negative / happy path tests
1 parent 463e125 commit e6d2071

File tree

2 files changed

+169
-0
lines changed

2 files changed

+169
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
//golangcitest:args -Ettempdir
2+
//golangcitest:expected_exitcode 0
3+
package testdata
4+
5+
import (
6+
"os"
7+
"testing"
8+
)
9+
10+
var (
11+
dir = os.TempDir() // never seen
12+
)
13+
14+
func setup() {
15+
os.TempDir() // never seen
16+
dir := os.TempDir() // never seen
17+
_ = dir
18+
_ = os.TempDir() // never seen
19+
}
20+
21+
func F(t *testing.T) {
22+
setup()
23+
t.TempDir() // never seen
24+
t.Log(t.TempDir()) // never seen
25+
_ = t.TempDir() // never seen
26+
if dir := t.TempDir(); dir != "" { // never seen
27+
_ = dir
28+
}
29+
}
30+
31+
func BF(b *testing.B) {
32+
TBF(b)
33+
b.TempDir() // never seen
34+
_ = b.TempDir() // never seen
35+
if dir := b.TempDir(); dir != "" { // never seen
36+
_ = dir
37+
}
38+
}
39+
40+
func TBF(tb testing.TB) {
41+
tb.TempDir() // never seen
42+
_ = tb.TempDir() // never seen
43+
if dir := tb.TempDir(); dir != "" { // never seen
44+
_ = dir
45+
}
46+
}
47+
48+
func FF(f *testing.F) {
49+
f.TempDir() // never seen
50+
_ = f.TempDir() // never seen
51+
if dir := f.TempDir(); dir != "" { // never seen
52+
_ = dir
53+
}
54+
}
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
//golangcitest:args -Ettempdir
2+
//golangcitest:expected_exitcode 0
3+
package testdata
4+
5+
import (
6+
"fmt"
7+
"os"
8+
"path/filepath"
9+
"testing"
10+
)
11+
12+
var (
13+
tdir = os.TempDir() // never seen
14+
)
15+
16+
func testsetup() {
17+
os.TempDir() // never seen
18+
dir := os.TempDir() // never seen
19+
_ = dir
20+
_ = os.TempDir() // never seen
21+
}
22+
23+
func TestF(t *testing.T) {
24+
testsetup()
25+
t.TempDir() // never seen
26+
_ = t.TempDir() // never seen
27+
if dir = t.TempDir(); dir != "" { // never seen
28+
_ = dir
29+
}
30+
}
31+
32+
func BenchmarkF(b *testing.B) {
33+
TB(b)
34+
b.TempDir() // never seen
35+
_ = b.TempDir() // never seen
36+
if dir = b.TempDir(); dir != "" { // never seen
37+
_ = dir
38+
}
39+
}
40+
41+
func TB(tb testing.TB) {
42+
tb.TempDir() // never seen
43+
_ = tb.TempDir() // never seen
44+
if dir = tb.TempDir(); dir != "" { // never seen
45+
_ = dir
46+
}
47+
}
48+
49+
func FuzzF(f *testing.F) {
50+
f.TempDir() // never seen
51+
_ = f.TempDir() // never seen
52+
if dir = f.TempDir(); dir != "" { // never seen
53+
_ = dir
54+
}
55+
}
56+
57+
func TestFunctionLiteral(t *testing.T) {
58+
testsetup()
59+
t.Run("test", func(t *testing.T) {
60+
t.TempDir() // never seen
61+
_ = t.TempDir() // never seen
62+
if dir = t.TempDir(); dir != "" { // never seen
63+
_ = dir
64+
}
65+
})
66+
}
67+
68+
func TestEmpty(t *testing.T) {
69+
t.Run("test", func(*testing.T) {})
70+
}
71+
72+
func TestEmptyTB(t *testing.T) {
73+
func(testing.TB) {}(t)
74+
}
75+
76+
func TestRecursive(t *testing.T) {
77+
t.Log( // recursion level 1
78+
t.TempDir(), // never seen
79+
)
80+
t.Log( // recursion level 1
81+
fmt.Sprintf("%s", // recursion level 2
82+
t.TempDir(), // never seen
83+
),
84+
)
85+
t.Log( // recursion level 1
86+
filepath.Clean( // recursion level 2
87+
fmt.Sprintf("%s", // recursion level 3
88+
t.TempDir(), // never seen
89+
),
90+
),
91+
)
92+
t.Log( // recursion level 1
93+
filepath.Join( // recursion level 2
94+
filepath.Clean( // recursion level 3
95+
fmt.Sprintf("%s", // recursion level 4
96+
t.TempDir(), // never seen
97+
),
98+
),
99+
"test",
100+
),
101+
)
102+
t.Log( // recursion level 1
103+
fmt.Sprintf("%s/foo-%d", // recursion level 2
104+
filepath.Join( // recursion level 3
105+
filepath.Clean( // recursion level 4
106+
fmt.Sprintf("%s", // recursion level 5
107+
os.TempDir(), // max recursion level reached.
108+
),
109+
),
110+
"test",
111+
),
112+
1024,
113+
),
114+
)
115+
}

0 commit comments

Comments
 (0)