platformtree

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2026 License: AGPL-3.0 Imports: 4 Imported by: 0

Documentation

Overview

Package platformtree даёт ПРОБЕ исход резолва координат дерева.

───────────────────────────────────────────────────────────────────────────── ЧТО ЗДЕСЬ И ЧЕГО ЗДЕСЬ НЕТ

Здесь — только превращение исхода резолва в `t.Fatalf`. Сам резолв (какой корень судят пробы, как привести к нему координату, от какого корня брать состав) живёт в `internal/treeposture` и НЕ ЗНАЕТ про `testing`.

Разрез не косметический. Тот же вопрос задают приборы модуля — отпечаток сетки замера, писатель отчётов, — и они прод-код: пакет с `testing` в импорте они звать не вправе, иначе испытательная оснастка уезжает в поставляемый двоичный.

───────────────────────────────────────────────────────────────────────────── ПРОПУСКА ЗДЕСЬ БОЛЬШЕ НЕТ — И ЭТО ГЛАВНОЕ, ЧТО СТОИТ ЗНАТЬ

Пакет отдавал пробе третий исход — пропуск «дерева платформы рядом с модулем нет». Предпосылка была свойством КЛОНА ровно до выноса службы отдельным репозиторием; после него каталога `services/iam` нет НИ В ОДНОМ дереве, и пропуск стал безусловным. Замер на стволе `83ddd08a` (`go test -short -v ./...`, строки пропуска по этой предпосылке): **58** строк · **53** верхнеуровневые пробы · 2 подпробы · 1 строка без `SKIP` рядом. Среди них гейт безопасности «у каждого публичного RPC есть пообъектный вопрос». Молчание такой пробы неотличимо от исправной работы.

Поэтому ветви пропуска НЕТ. Её отсутствие держит компилятор — символа `ErrNoPlatformTree` не существует, — а не перепись и не обещание.

Осталась одна причина отказать, и она ГРОМКАЯ: координата называет дерево, которого в этом репозитории нет (`treeposture.ErrForeignTree`). У такой пробы здесь нет предмета; её снимают вместе с предметом либо переносят туда, где предмет живёт. Тихо соглашаться с ней нельзя — именно так пропуск и переживает свою предпосылку.

───────────────────────────────────────────────────────────────────────────── ЧТО БРАТЬ — ТРИ ВХОДА, И ОНИ О РАЗНОМ

Require       — пробе нужен КОРЕНЬ дерева, которое она судит;
RequirePath   — пробе нужен ОДИН файл по координате дерева;
RequireCorpus — проба ОБХОДИТ состав и судит его целиком: возвращает корень
                обхода и приставку модуля в нём (пустую).

Index

Constants

View Source
const PlatformTreeEnv = treeposture.PlatformTreeEnv

PlatformTreeEnv — см. treeposture.PlatformTreeEnv.

View Source
const SiblingsDir = treeposture.SiblingsDir

SiblingsDir — см. treeposture.SiblingsDir.

Variables

View Source
var (
	ErrForeignTree       = treeposture.ErrForeignTree
	ErrModuleRootUnknown = treeposture.ErrModuleRootUnknown
)

Признаки резолва — те же, что у него: два места об одном предмете разошлись бы молча, поэтому здесь они переобъявлены ссылкой, а не копией.

Functions

func CorpusRoot

func CorpusRoot(start string) (root, prefix string, err error)

CorpusRoot — см. treeposture.CorpusRoot.

func ModuleDirIn

func ModuleDirIn(root, moduleRoot string) (string, error)

ModuleDirIn — см. treeposture.ModuleDirIn.

func ModuleDirInPlatform

func ModuleDirInPlatform() string

ModuleDirInPlatform — см. treeposture.ModuleDirInPlatform.

func ModuleRootFrom

func ModuleRootFrom(start string) (string, error)

ModuleRootFrom — см. treeposture.ModuleRootFrom.

func NamedPlatformRoot added in v0.5.0

func NamedPlatformRoot() (string, string)

NamedPlatformRoot — см. treeposture.NamedPlatformRoot.

func PathOf

func PathOf(start, rel string) (string, error)

PathOf — см. treeposture.PathOf.

func PathUnder

func PathUnder(root, rel string) (string, error)

PathUnder — см. treeposture.PathUnder.

func PrefixUnder

func PrefixUnder(root string) string

PrefixUnder — см. treeposture.PrefixUnder.

func Require

func Require(t *testing.T) string

Require — корень дерева, которое судит проба.

func RequireCorpus

func RequireCorpus(t *testing.T) (root, prefix string)

RequireCorpus — корень обхода и приставка модуля в нём.

func RequireNamedPlatformTree added in v0.5.0

func RequireNamedPlatformTree(t *testing.T) string

RequireNamedPlatformTree — корень дерева платформы, НАЗВАННЫЙ снаружи, либо пропуск с предпосылкой, у которой ЕСТЬ ПРОИЗВОДИТЕЛЬ.

Чем этот пропуск отличается от снятого

Снятый пропуск («дерева платформы рядом с модулем нет») был БЕЗУСЛОВНЫМ: его предпосылка после выноса службы выполнялась всегда и ни в одной посадке не могла стать ложной. Проба, им помеченная, не исполнялась НИ РАЗУ, и отличить это от исправной работы было нечем.

Здесь предпосылка — ручка, и её выставляет задание конвейера, выкладывающее манифесты соседних модулей. Значит пропуск наступает ровно там, где условие действительно не создано, и снимается СОЗДАНИЕМ УСЛОВИЯ, а не правкой пробы. Проба при этом исполняется в конвейере, а не только объявляет, что могла бы.

Предмет таких проб — платформенный артефакт (таблица типов, порождённая из шести манифестов; побайтовая сверка канона модели с ними), и судить его по одному собственному манифесту нельзя: вердикт был бы о другом предмете.

func RequirePath

func RequirePath(t *testing.T, rel string) string

RequirePath — координата, приведённая к дереву прогона.

func RootFrom

func RootFrom(start string) (string, error)

RootFrom — см. treeposture.RootFrom.

func Under

func Under(prefix, rel string) string

Under — см. treeposture.Under.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL