@@ -6,15 +6,10 @@ import (
66)
77
88func TestNewTmpFile (t * testing.T ) {
9- tmp , err := NewTmpFile ()
10- if err != nil {
11- t .Fatalf ("failed to create temp file: %v" , err )
12- }
13- defer tmp .file .Close ()
14- defer os .Remove (tmp .file .Name ())
9+ tmp := newTestTmpFile (t )
1510
1611 // Verify file exists
17- fi , err := os .Stat (tmp .file . Name () )
12+ fi , err := os .Stat (tmp .path )
1813 if err != nil {
1914 t .Fatalf ("failed to stat temp file: %v" , err )
2015 }
@@ -26,14 +21,9 @@ func TestNewTmpFile(t *testing.T) {
2621}
2722
2823func TestTmpFilePermissions (t * testing.T ) {
29- tmp , err := NewTmpFile ()
30- if err != nil {
31- t .Fatalf ("failed to create temp file: %v" , err )
32- }
33- defer tmp .file .Close ()
34- defer os .Remove (tmp .file .Name ())
24+ tmp := newTestTmpFile (t )
3525
36- fi , err := os .Stat (tmp .file . Name () )
26+ fi , err := os .Stat (tmp .path )
3727 if err != nil {
3828 t .Fatalf ("failed to stat temp file: %v" , err )
3929 }
@@ -47,28 +37,20 @@ func TestTmpFilePermissions(t *testing.T) {
4737}
4838
4939func TestTmpFileWrite (t * testing.T ) {
50- tmp , err := NewTmpFile ()
51- if err != nil {
52- t .Fatalf ("failed to create temp file: %v" , err )
53- }
54- defer tmp .Close ()
40+ tmp := newTestTmpFile (t )
5541
5642 testData := []byte ("test data for secret" )
57- err = tmp .Write (testData )
43+ err : = tmp .Write (testData )
5844 if err != nil {
5945 t .Fatalf ("failed to write to temp file: %v" , err )
6046 }
6147}
6248
6349func TestTmpFileRead (t * testing.T ) {
64- tmp , err := NewTmpFile ()
65- if err != nil {
66- t .Fatalf ("failed to create temp file: %v" , err )
67- }
68- defer tmp .Close ()
50+ tmp := newTestTmpFile (t )
6951
7052 testData := []byte ("test secret data" )
71- err = tmp .Write (testData )
53+ err : = tmp .Write (testData )
7254 if err != nil {
7355 t .Fatalf ("failed to write to temp file: %v" , err )
7456 }
@@ -85,16 +67,12 @@ func TestTmpFileRead(t *testing.T) {
8567}
8668
8769func TestTmpFileReadAfterMultipleWrites (t * testing.T ) {
88- tmp , err := NewTmpFile ()
89- if err != nil {
90- t .Fatalf ("failed to create temp file: %v" , err )
91- }
92- defer tmp .Close ()
70+ tmp := newTestTmpFile (t )
9371
9472 // Write multiple times
9573 data1 := []byte ("first" )
9674 data2 := []byte ("second" )
97- err = tmp .Write (data1 )
75+ err : = tmp .Write (data1 )
9876 if err != nil {
9977 t .Fatalf ("failed to write first data: %v" , err )
10078 }
@@ -104,28 +82,22 @@ func TestTmpFileReadAfterMultipleWrites(t *testing.T) {
10482 t .Fatalf ("failed to write second data: %v" , err )
10583 }
10684
107- // Read should return both
10885 readData , err := tmp .Read ()
10986 if err != nil {
11087 t .Fatalf ("failed to read from temp file: %v" , err )
11188 }
11289
113- expected := "firstsecond "
90+ expected := "second "
11491 if string (readData ) != expected {
11592 t .Errorf ("expected data %s, got %s" , expected , string (readData ))
11693 }
11794}
11895
11996func TestTmpFileClose (t * testing.T ) {
120- tmp , err := NewTmpFile ()
121- if err != nil {
122- t .Fatalf ("failed to create temp file: %v" , err )
123- }
124-
125- filePath := tmp .file .Name ()
97+ tmp := newTestTmpFile (t )
12698
12799 // Write some data
128- err = tmp .Write ([]byte ("test" ))
100+ err : = tmp .Write ([]byte ("test" ))
129101 if err != nil {
130102 t .Fatalf ("failed to write to temp file: %v" , err )
131103 }
@@ -137,20 +109,17 @@ func TestTmpFileClose(t *testing.T) {
137109 }
138110
139111 // Verify file is deleted
140- _ , err = os .Stat (filePath )
112+ _ , err = os .Stat (tmp . path )
141113 if ! os .IsNotExist (err ) {
142- t .Errorf ("temp file was not deleted: %s" , filePath )
114+ t .Errorf ("temp file was not deleted: %s" , tmp . path )
143115 }
144116}
145117
146118func TestTmpFileCloseMultipleTimes (t * testing.T ) {
147- tmp , err := NewTmpFile ()
148- if err != nil {
149- t .Fatalf ("failed to create temp file: %v" , err )
150- }
119+ tmp := newTestTmpFile (t )
151120
152121 // First close
153- err = tmp .Close ()
122+ err : = tmp .Close ()
154123 if err != nil {
155124 t .Fatalf ("first close failed: %v" , err )
156125 }
@@ -163,11 +132,7 @@ func TestTmpFileCloseMultipleTimes(t *testing.T) {
163132}
164133
165134func TestTmpFileOpenEditor (t * testing.T ) {
166- tmp , err := NewTmpFile ()
167- if err != nil {
168- t .Fatalf ("failed to create temp file: %v" , err )
169- }
170- defer tmp .Close ()
135+ tmp := newTestTmpFile (t )
171136
172137 editorPath := "/bin/sh"
173138 if _ , err := os .Stat (editorPath ); os .IsNotExist (err ) {
@@ -185,3 +150,18 @@ func TestTmpFileOpenEditor(t *testing.T) {
185150 t .Logf ("OpenEditor returned error: %v (expected for sh with no input)" , err )
186151 }
187152}
153+
154+ func newTestTmpFile (t * testing.T ) * TmpFile {
155+ t .Helper ()
156+
157+ tmp , err := NewTmpFile ("test" )
158+ if err != nil {
159+ t .Fatalf ("failed to create temp file: %v" , err )
160+ }
161+ t .Cleanup (func () {
162+ if err := tmp .Close (); err != nil {
163+ t .Logf ("failed to clean up temp file: %v" , err )
164+ }
165+ })
166+ return tmp
167+ }
0 commit comments