@@ -15,9 +15,10 @@ import (
1515 events "github.com/markus-wa/demoinfocs-golang/events"
1616)
1717
18- const demSetPath = "test/cs-demos"
19- const defaultDemName = "default.dem"
20- const defaultDemPath = demSetPath + "/" + defaultDemName
18+ const csDemosPath = "test/cs-demos"
19+ const demSetPath = csDemosPath + "/set"
20+ const defaultDemPath = csDemosPath + "/default.dem"
21+ const unexpectedEndOfDemoPath = csDemosPath + "/unexpected_end_of_demo.dem"
2122
2223func init () {
2324 if _ , err := os .Stat (defaultDemPath ); err != nil {
@@ -94,6 +95,25 @@ func TestDemoInfoCs(t *testing.T) {
9495 fmt .Printf ("Took %s\n " , time .Since (ts ))
9596}
9697
98+ func TestUnexpectedEndOfDemo (t * testing.T ) {
99+ f , err := os .Open (unexpectedEndOfDemoPath )
100+ defer f .Close ()
101+ if err != nil {
102+ t .Fatal (err )
103+ }
104+
105+ p := dem .NewParser (f , nil )
106+ _ , err = p .ParseHeader ()
107+ if err != nil {
108+ t .Fatal (err )
109+ }
110+
111+ err = p .ParseToEnd ()
112+ if err != dem .ErrUnexpectedEndOfDemo {
113+ t .Fatal ("Parsing cancelled but error was not ErrUnexpectedEndOfDemo:" , err )
114+ }
115+ }
116+
97117func TestCancelParseToEnd (t * testing.T ) {
98118 f , err := os .Open (defaultDemPath )
99119 defer f .Close ()
@@ -118,8 +138,8 @@ func TestCancelParseToEnd(t *testing.T) {
118138 })
119139
120140 err = p .ParseToEnd ()
121- if err == nil {
122- t .Fatal ("Parsing cancelled but no error was returned" )
141+ if err != dem . ErrCancelled {
142+ t .Fatal ("Parsing cancelled but error was not ErrCancelled:" , err )
123143 }
124144}
125145
@@ -168,7 +188,7 @@ func TestDemoSet(t *testing.T) {
168188
169189 for _ , d := range dems {
170190 name := d .Name ()
171- if name != defaultDemName && strings .HasSuffix (name , ".dem" ) {
191+ if strings .HasSuffix (name , ".dem" ) {
172192 fmt .Printf ("Parsing '%s/%s'\n " , demSetPath , name )
173193 func () {
174194 var f * os.File
0 commit comments