Гейт ищет гонки, переписанные шаги схемы и девять новых классов дефектов
- включены noctx, contextcheck и bodyclose (отмена доходит до внешнего вызова, контекст приезжает сверху, тело ответа закрывается), nilerr, rowserrcheck и sqlclosecheck (отказ не теряется молча), testifylint и nolintlint (форма утверждения и форма подавления), плюс errcheck check-type-assertions: непроверенное приведение типа паникует, и check-blank его не видит - заведён шаг tests: go test -race, потому что «результат пишет только держатель захвата» — утверждение об одновременности. Без компилятора C шаг гоняет тесты без детектора и краснеет кодом 3 после них: гонки не повод отнимать у гейта сами тесты - заведён шаг migrations: у файла шага схемы допустим один статус — A. Баз диффа две, BASE и HEAD: первая отвечает на «уже уехал» настолько, насколько свежа origin/master, вторая ловит правку закоммиченного шага независимо от неё. Каталог берётся из docs/.docs.json, пустой каталог роняет шаг - единственное подавление — noctx на httptest.NewRequest в проверках: за фикстурой запроса внешнего собеседника нет. Граница проверена мутацией — http.Get и exec.Command из проверки правилу по-прежнему подсудны
This commit is contained in:
@@ -276,7 +276,9 @@ func treeWithScript(t *testing.T) string {
|
||||
// `env` — добавка к окружению прогона, `args` — аргументы скрипта.
|
||||
func runScript(t *testing.T, root, dir string, args []string, env ...string) (int, string) {
|
||||
t.Helper()
|
||||
cmd := exec.Command("sh", append([]string{filepath.Join(root, "scripts", "check-go-version.sh")}, args...)...)
|
||||
// Контекст проверки: зависший скрипт умирает вместе с ней, а не переживает
|
||||
// прогон осиротевшим процессом.
|
||||
cmd := exec.CommandContext(t.Context(), "sh", append([]string{filepath.Join(root, "scripts", "check-go-version.sh")}, args...)...)
|
||||
cmd.Dir = filepath.Join(root, dir)
|
||||
if len(env) > 0 {
|
||||
cmd.Env = append(os.Environ(), env...)
|
||||
|
||||
Reference in New Issue
Block a user