Support test case filter like h2spec do

This commit is contained in:
chhsiao90 2017-03-01 17:54:00 +08:00
Родитель 7b6158603e
Коммит 9b69c0b733
3 изменённых файлов: 19 добавлений и 4 удалений

Просмотреть файл

@ -95,6 +95,11 @@ func htmlReport(tg *spec.ClientTestGroup, c *config.Config) string {
} }
func htmlReportForTestGroup(tg *spec.ClientTestGroup, c *config.Config) string { func htmlReportForTestGroup(tg *spec.ClientTestGroup, c *config.Config) string {
mode := c.RunMode(tg.ID())
if mode == config.RunModeNone {
return ""
}
var buffer bytes.Buffer var buffer bytes.Buffer
buffer.WriteString(fmt.Sprintf("<div>%s</div>", tg.Title())) buffer.WriteString(fmt.Sprintf("<div>%s</div>", tg.Title()))

Просмотреть файл

@ -19,7 +19,7 @@ type Server struct {
func Listen(c *config.Config, tg *ClientTestGroup) (*Server, error) { func Listen(c *config.Config, tg *ClientTestGroup) (*Server, error) {
testCases := make(map[int]*ClientTestCase) testCases := make(map[int]*ClientTestCase)
tg.ClientTestCases(testCases, c.FromPort) tg.ClientTestCases(testCases, c, c.FromPort)
server := &Server{ server := &Server{
listeners: make([]net.Listener, 0), listeners: make([]net.Listener, 0),

Просмотреть файл

@ -60,6 +60,11 @@ func (tg *ClientTestGroup) Level() int {
// Test runs all the tests included in this group. // Test runs all the tests included in this group.
func (tg *ClientTestGroup) Test(c *config.Config) { func (tg *ClientTestGroup) Test(c *config.Config) {
mode := c.RunMode(tg.ID())
if mode == config.RunModeNone {
return
}
level := tg.Level() level := tg.Level()
log.SetIndentLevel(level) log.SetIndentLevel(level)
@ -101,15 +106,20 @@ func (tg *ClientTestGroup) AddTestCase(tc *ClientTestCase) {
tg.Tests = append(tg.Tests, tc) tg.Tests = append(tg.Tests, tc)
} }
func (tg *ClientTestGroup) ClientTestCases(testCases map[int]*ClientTestCase, currentPort int) int { func (tg *ClientTestGroup) ClientTestCases(testCases map[int]*ClientTestCase, c *config.Config, currentPort int) int {
mode := c.RunMode(tg.ID())
if mode == config.RunModeNone {
return currentPort
}
for _, tc := range tg.Tests { for _, tc := range tg.Tests {
currentPort += 1
tc.Port = currentPort tc.Port = currentPort
testCases[currentPort] = tc testCases[currentPort] = tc
currentPort += 1
} }
for _, g := range tg.Groups { for _, g := range tg.Groups {
currentPort = g.ClientTestCases(testCases, currentPort+1) currentPort = g.ClientTestCases(testCases, c, currentPort)
} }
return currentPort return currentPort