@@ -17,6 +17,7 @@ package utils
17
17
18
18
import (
19
19
"os"
20
+ "strings"
20
21
"testing"
21
22
"time"
22
23
@@ -50,6 +51,12 @@ func tempFile(t *testing.T, prefix string) *paths.Path {
50
51
return paths .New (file .Name ())
51
52
}
52
53
54
+ func quoteForDep (in string ) string {
55
+ // On Windows paths contains "\" as separator so we need to quote it
56
+ // to use it in .d files.
57
+ return strings .ReplaceAll (in , "\\ " , "\\ \\ " )
58
+ }
59
+
53
60
func TestObjFileIsUpToDateObjMissing (t * testing.T ) {
54
61
sourceFile := tempFile (t , "source" )
55
62
defer sourceFile .RemoveAll ()
@@ -119,7 +126,9 @@ func TestObjFileIsUpToDateDepIsNewer(t *testing.T) {
119
126
headerFile := tempFile (t , "header" )
120
127
defer headerFile .RemoveAll ()
121
128
122
- data := objFile .String () + ": \\ \n \t " + sourceFile .String () + " \\ \n \t " + headerFile .String ()
129
+ data := quoteForDep (objFile .String ()) + ": \\ \n \t " +
130
+ quoteForDep (sourceFile .String ()) + " \\ \n \t " +
131
+ quoteForDep (headerFile .String ())
123
132
depFile .WriteFile ([]byte (data ))
124
133
125
134
upToDate , err := ObjFileIsUpToDate (sourceFile , objFile , depFile )
@@ -141,7 +150,9 @@ func TestObjFileIsUpToDateDepIsOlder(t *testing.T) {
141
150
depFile := tempFile (t , "dep" )
142
151
defer depFile .RemoveAll ()
143
152
144
- res := objFile .String () + ": \\ \n \t " + sourceFile .String () + " \\ \n \t " + headerFile .String ()
153
+ res := quoteForDep (objFile .String ()) + ": \\ \n \t " +
154
+ quoteForDep (sourceFile .String ()) + " \\ \n \t " +
155
+ quoteForDep (headerFile .String ())
145
156
depFile .WriteFile ([]byte (res ))
146
157
147
158
upToDate , err := ObjFileIsUpToDate (sourceFile , objFile , depFile )
@@ -165,7 +176,9 @@ func TestObjFileIsUpToDateDepIsWrong(t *testing.T) {
165
176
headerFile := tempFile (t , "header" )
166
177
defer headerFile .RemoveAll ()
167
178
168
- res := sourceFile .String () + ": \\ \n \t " + sourceFile .String () + " \\ \n \t " + headerFile .String ()
179
+ res := quoteForDep (sourceFile .String ()) + ": \\ \n \t " +
180
+ quoteForDep (sourceFile .String ()) + " \\ \n \t " +
181
+ quoteForDep (headerFile .String ())
169
182
depFile .WriteFile ([]byte (res ))
170
183
171
184
upToDate , err := ObjFileIsUpToDate (sourceFile , objFile , depFile )
0 commit comments