platformtree

package
v0.2.0 Latest Latest
Warning

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

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

Documentation

Overview

Package platformtree даёт ПРОБЕ третий исход вместо красного там, где дерева платформы рядом с модулем нет.

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

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

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

───────────────────────────────────────────────────────────────────────────── ПОЧЕМУ ПРОПУСК ЗДЕСЬ НЕ МАСКА

Пропуск, который проба назначает себе сама, был бы ровно тем механизмом, который корпус запрещает: его нельзя отличить от «проба сломалась, и её заглушили». Здесь пропуск назначает НЕ проба, а ПРЕДПОСЫЛКА — свойство дерева, проверяемое на месте:

дерево платформы ЕСТЬ  → Require возвращает корень, проба идёт целиком;
дерева платформы НЕТ   → пропуск с НАЗВАННОЙ причиной и координатой.

Отсюда несущее свойство: **в монорепо пропуск невозможен**. Не «его там не бывает», а невозможен — детектор отвечает «есть», и ветвь пропуска не достижима ни для одной пробы. Держит это гейт-сосед (`platformtree_gate_test.go`), а не обещание.

Пометка ИСТЕКАЕТ САМА в обратную сторону: приедет каталог контрактов в поставку модуля — детектор в клоне ответит «есть», и помеченные пробы начнут исполняться там, где раньше пропускались.

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

Require       — пробе нужно ДЕРЕВО ПЛАТФОРМЫ целиком (манифесты соседних
                модулей, каталог контрактов, зонтичный чарт). В клоне —
                пропуск: этого в поставку не входит by construction;
RequirePath   — пробе нужен ОДИН файл, записанный координатой от корня
                платформы. Лежит внутри модуля — резолвится в обеих посадках;
                лежит вне — пропуск;
RequireCorpus — проба ОБХОДИТ состав и судит его целиком. Возвращает корень
                обхода и приставку модуля в нём (пустую в клоне). Пропуска
                НЕТ: предмет таких проб — собственная композиция модуля, и она
                в поставку входит.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoPlatformTree    = treeposture.ErrNoPlatformTree
	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 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 — корень обхода и приставка модуля в нём.

Пропуска НЕТ by construction: обе посадки дают ответ, и отказ здесь означает, что корня нет ни у одной, — то есть проба не может назвать дерево, о котором говорит.

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