blob: 407620ac8261f94d44ee99f046da2dbe003ae6b8 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import (
"reflect"
"testing"
"v.io/jiri/jiritest"
"v.io/x/devtools/tooldata"
)
func TestJenkinsTestsToStart(t *testing.T) {
fake, cleanup := jiritest.NewFakeJiriRoot(t)
defer cleanup()
// Create a fake configuration file.
config := tooldata.NewConfig(
tooldata.ProjectTestsOpt(map[string][]string{
"release.go.core": []string{"go", "javascript"},
"release.js.core": []string{"javascript"},
}),
tooldata.TestGroupsOpt(map[string][]string{
"go": []string{"vanadium-go-build", "vanadium-go-test", "vanadium-go-race"},
"javascript": []string{"vanadium-js-integration", "vanadium-js-unit"},
}),
)
if err := tooldata.SaveConfig(fake.X, config); err != nil {
t.Fatalf("%v", err)
}
testCases := []struct {
projects []string
expectedJenkinsTest []string
}{
{
projects: []string{"release.go.core"},
expectedJenkinsTest: []string{
"vanadium-go-build",
"vanadium-go-race",
"vanadium-go-test",
"vanadium-js-integration",
"vanadium-js-unit",
},
},
{
projects: []string{"release.js.core"},
expectedJenkinsTest: []string{
"vanadium-js-integration",
"vanadium-js-unit",
},
},
}
for _, test := range testCases {
got, err := jenkinsTestsToStart(fake.X, test.projects)
if err != nil {
t.Fatalf("want no errors, got: %v", err)
}
if !reflect.DeepEqual(test.expectedJenkinsTest, got) {
t.Fatalf("want %v, got %v", test.expectedJenkinsTest, got)
}
}
}