Skip to content

Commit 0eb5add

Browse files
committed
Added test for getCoverForDir()
1 parent 34ee790 commit 0eb5add

File tree

11 files changed

+187
-5
lines changed

11 files changed

+187
-5
lines changed

go-carpet.go

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,16 +113,12 @@ func getCoverForDir(path string, coverFileName string, filesFilter []string, col
113113
for _, fileProfile := range coverProfile {
114114
fileName := ""
115115
if strings.HasPrefix(fileProfile.FileName, "_") {
116-
// absolute path
116+
// absolute path (or relative in tests)
117117
fileName = strings.TrimLeft(fileProfile.FileName, "_")
118118
} else {
119119
// file in GOPATH
120120
fileName = os.Getenv("GOPATH") + "/src/" + fileProfile.FileName
121121
}
122-
if _, err := os.Stat(fileName); os.IsNotExist(err) {
123-
fmt.Printf("File '%s' is not exists\n", fileName)
124-
continue
125-
}
126122

127123
if len(filesFilter) > 0 && !isSliceInString(fileName, filesFilter) {
128124
continue
@@ -235,6 +231,7 @@ func main() {
235231
coverInBytes, err := getCoverForDir(path, coverFileName, strings.Split(filesFilter, ","), colors256)
236232
if err != nil {
237233
log.Print(err)
234+
continue
238235
}
239236
stdOut.Write(coverInBytes)
240237
}

go-carpet_test.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"os"
5+
"reflect"
56
"testing"
67

78
"github.com/mgutz/ansi"
@@ -164,6 +165,71 @@ func Test_getColorHeader(t *testing.T) {
164165
}
165166
}
166167

168+
func Test_getCoverForDir(t *testing.T) {
169+
bytes, err := getCoverForDir("./test_data", "./test_data/not_exists.out", []string{}, false)
170+
if err == nil {
171+
t.Errorf("1. getCoverForDir() error failed")
172+
}
173+
174+
// ---
175+
bytes, err = getCoverForDir("./test_data", "./test_data/cover_00.out", []string{}, false)
176+
if err != nil {
177+
t.Errorf("2. getCoverForDir() failed")
178+
}
179+
expect, err := readFile("./test_data/colored_00.txt")
180+
if err != nil {
181+
t.Errorf("3. getCoverForDir() failed")
182+
}
183+
if !reflect.DeepEqual(bytes, expect) {
184+
t.Errorf("4. getCoverForDir() not equal")
185+
}
186+
187+
// ---
188+
bytes, err = getCoverForDir("./test_data", "./test_data/cover_00.out", []string{}, true)
189+
if err != nil {
190+
t.Errorf("5. getCoverForDir() failed")
191+
}
192+
expect, err = readFile("./test_data/colored_01.txt")
193+
if err != nil {
194+
t.Errorf("6. getCoverForDir() failed")
195+
}
196+
if !reflect.DeepEqual(bytes, expect) {
197+
t.Errorf("7. getCoverForDir() not equal")
198+
}
199+
200+
// ---
201+
bytes, err = getCoverForDir("./test_data", "./test_data/cover_01.out", []string{}, true)
202+
if err == nil {
203+
t.Errorf("8. getCoverForDir() not exists go file")
204+
}
205+
206+
// ---
207+
bytes, err = getCoverForDir("./test_data", "./test_data/cover_00.out", []string{"file_01.go"}, false)
208+
if err != nil {
209+
t.Errorf("9. getCoverForDir() failed")
210+
}
211+
expect, err = readFile("./test_data/colored_02.txt")
212+
if err != nil {
213+
t.Errorf("10. getCoverForDir() failed")
214+
}
215+
if !reflect.DeepEqual(bytes, expect) {
216+
t.Errorf("11. getCoverForDir() not equal")
217+
}
218+
219+
// ---
220+
bytes, err = getCoverForDir("./test_data", "./test_data/cover_02.out", []string{}, false)
221+
if err != nil {
222+
t.Errorf("12. getCoverForDir() failed")
223+
}
224+
expect, err = readFile("./test_data/colored_03.txt")
225+
if err != nil {
226+
t.Errorf("13. getCoverForDir() failed")
227+
}
228+
if !reflect.DeepEqual(bytes, expect) {
229+
t.Errorf("14. getCoverForDir() not equal")
230+
}
231+
}
232+
167233
func Test_getCoverForFile(t *testing.T) {
168234
fileProfile := &cover.Profile{
169235
FileName: "filename.go",

test_data/colored_00.txt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
./test_data/file_00.golang
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
package main
4+
5+
func readFile(fileName string) (result []byte, err error) {
6+
fileReader, err := os.Open(fileName)
7+
if err != nil {
8+
return result, err
9+
}
10+
defer fileReader.Close()
11+
12+
result, err = ioutil.ReadAll(fileReader)
13+
return result, err
14+
}
15+
16+
./test_data/file_01.golang
17+
~~~~~~~~~~~~~~~~~~~~~~~~~~
18+
package main
19+
20+
// isStringInSlice - one of the elements of the array contained in the string
21+
func isSliceInString(src string, slice []string) bool {
22+
for _, dst := range slice {
23+
 if strings.Contains(src, dst) {
24+
 return true
25+
 }
26+
 }
27+
return false
28+
}
29+

test_data/colored_01.txt

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
./test_data/file_00.golang
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
package main
4+
5+
func readFile(fileName string) (result []byte, err error) {
6+
fileReader, err := os.Open(fileName)
7+
if err != nil {
8+
return result, err
9+
}
10+
defer fileReader.Close()
11+
12+
result, err = ioutil.ReadAll(fileReader)
13+
return result, err
14+
}
15+
16+
./test_data/file_01.golang
17+
~~~~~~~~~~~~~~~~~~~~~~~~~~
18+
package main
19+
20+
// isStringInSlice - one of the elements of the array contained in the string
21+
func isSliceInString(src string, slice []string) bool {
22+
for _, dst := range slice {
23+
 if strings.Contains(src, dst) {
24+
 return true
25+
 }
26+
 }
27+
return false
28+
}
29+

test_data/colored_02.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
./test_data/file_01.golang
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
package main
4+
5+
// isStringInSlice - one of the elements of the array contained in the string
6+
func isSliceInString(src string, slice []string) bool {
7+
for _, dst := range slice {
8+
 if strings.Contains(src, dst) {
9+
 return true
10+
 }
11+
 }
12+
return false
13+
}
14+

test_data/colored_03.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
github.com/msoap/go-carpet/terminal_unix.go
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
// +build !windows
4+
5+
package main
6+
7+
import (
8+
"io"
9+
"os"
10+
)
11+
12+
func getColorWriter() io.Writer {
13+
return (io.Writer)(os.Stdout)
14+
}
15+

test_data/cover_00.out

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
mode: count
2+
_./test_data/file_00.golang:4.2,4.38 1 2
3+
_./test_data/file_00.golang:5.2,5.17 0 0
4+
_./test_data/file_01.golang:5.28,9.3 1 1
5+
_./test_data/file_01.golang:10.2,10.14 0 0

test_data/cover_01.out

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
mode: count
2+
_./test_data/file_not_exists.golang:4.2,4.38 1 2

test_data/cover_02.out

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
mode: count
2+
github.com/msoap/go-carpet/terminal_unix.go:11.2,11.31 1 1

test_data/file_00.golang

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package main
2+
3+
func readFile(fileName string) (result []byte, err error) {
4+
fileReader, err := os.Open(fileName)
5+
if err != nil {
6+
return result, err
7+
}
8+
defer fileReader.Close()
9+
10+
result, err = ioutil.ReadAll(fileReader)
11+
return result, err
12+
}

0 commit comments

Comments
 (0)