-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintegration_test.go
More file actions
73 lines (66 loc) · 1.99 KB
/
Copy pathintegration_test.go
File metadata and controls
73 lines (66 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package main
import (
"bytes"
"path/filepath"
"strings"
"testing"
"gddoom/internal/app"
"gddoom/internal/mapdata"
"gddoom/internal/wad"
)
func TestDOOM1E1M1Parses(t *testing.T) {
wadPath := filepath.Join("DOOM1.WAD")
wf, err := wad.Open(wadPath)
if err != nil {
t.Fatalf("open DOOM1.WAD: %v", err)
}
m, err := mapdata.LoadMap(wf, mapdata.MapName("E1M1"))
if err != nil {
t.Fatalf("load E1M1: %v", err)
}
if len(m.Linedefs) == 0 || len(m.Vertexes) == 0 {
t.Fatalf("unexpected empty map: linedefs=%d vertexes=%d", len(m.Linedefs), len(m.Vertexes))
}
}
func TestCLIDefaultMapSelectsFirstLevel(t *testing.T) {
var out bytes.Buffer
var err bytes.Buffer
code := app.RunParse([]string{"-wad", "DOOM1.WAD", "-render=false"}, &out, &err)
if code != 0 {
t.Fatalf("RunParse() code=%d stderr=%q", code, err.String())
}
line := out.String()
if !strings.Contains(line, "map=E1M1 ") {
t.Fatalf("stdout %q does not contain map=E1M1", line)
}
}
func TestCLIEmptyMapSelectsFirstLevel(t *testing.T) {
var out bytes.Buffer
var err bytes.Buffer
code := app.RunParse([]string{"-wad", "DOOM1.WAD", "-map", "", "-render=false"}, &out, &err)
if code != 0 {
t.Fatalf("RunParse() code=%d stderr=%q", code, err.String())
}
line := out.String()
if !strings.Contains(line, "map=E1M1 ") {
t.Fatalf("stdout %q does not contain map=E1M1", line)
}
}
func TestCLIDetailsIncludesDoorAndSpatialData(t *testing.T) {
var out bytes.Buffer
var err bytes.Buffer
code := app.RunParse([]string{"-wad", "DOOM1.WAD", "-map", "E1M1", "-details", "-render=false"}, &out, &err)
if code != 0 {
t.Fatalf("RunParse() code=%d stderr=%q", code, err.String())
}
stdout := out.String()
if !strings.Contains(stdout, "doors total=") {
t.Fatalf("details output missing doors line: %q", stdout)
}
if !strings.Contains(stdout, "blockmap origin=") {
t.Fatalf("details output missing blockmap line: %q", stdout)
}
if !strings.Contains(stdout, "reject sectors=") {
t.Fatalf("details output missing reject line: %q", stdout)
}
}