11package patrol_test
22
33import (
4+ "bufio"
45 "errors"
56 "fmt"
67 "io/ioutil"
@@ -27,13 +28,6 @@ type RepoTest struct {
2728
2829 // description of the test, what are trying to assess?
2930 Description string
30-
31- // the git revision against which changes should be detected
32- TestAgainstRevision string
33-
34- // the list of expected packages that should be flagged as changed between
35- // HEAD and TestAgainstRevision
36- ExpectedChangedPackages []string
3731}
3832
3933func (test * RepoTest ) Run (t * testing.T ) {
@@ -75,19 +69,38 @@ func (test *RepoTest) Run(t *testing.T) {
7569 })
7670 require .NoError (t , err )
7771
72+ // avoid running patrol on first commit, there was nothing before
7873 if previousCommit != "" {
74+ expected := expectedChanges (t , tmp )
75+
7976 r , err := patrol .NewRepo (tmp )
8077 require .NoError (t , err )
8178
8279 changes , err := r .ChangesFrom (previousCommit )
8380 require .NoError (t , err )
84- assert .ElementsMatch (t , test . ExpectedChangedPackages , changes , test .Name + ": expected changes do not match" )
81+ assert .ElementsMatch (t , expected , changes , test .Name + ": expected changes do not match" )
8582 }
8683
8784 previousCommit = commit .String ()
8885 }
8986}
9087
88+ func expectedChanges (t * testing.T , dir string ) []string {
89+ file , err := os .Open (filepath .Join (dir , "changes.patrol" ))
90+ require .NoError (t , err )
91+ defer file .Close ()
92+
93+ var changes []string
94+ scanner := bufio .NewScanner (file )
95+ for scanner .Scan () {
96+ changes = append (changes , scanner .Text ())
97+ }
98+
99+ require .NoError (t , scanner .Err ())
100+
101+ return changes
102+ }
103+
91104type RepoTests []RepoTest
92105
93106func (tests RepoTests ) Run (t * testing.T ) {
0 commit comments