package def_move import ( "testing" "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/table/owner" ) type tester struct { t *testing.T owner *owner.LOwner val *Move[int] } func TestMove(t *testing.T) { sf := &tester{ t: t, owner: owner.LetOwner(1, "test_owner"), } sf.new() sf.newBad1() } // Попытка создать контейнер перемещения из nil func (sf *tester) newBad1() { sf.t.Log("newBad1") defer func() { if _panic := recover(); _panic == nil { sf.t.Fatalf("newBad1(): panic==nil") } }() // Объявляем указатель на структуру (или int), по дефолту он nil var dummyPtr *int // значение равно nil, но тип равен *int _ = NewMove(sf.owner, dummyPtr) } // Возвращает новый контейнер перемещения func (sf *tester) new() { sf.t.Log("new") sf.val = NewMove(sf.owner, 7) _val := sf.val.Move() if _val != 7 { sf.t.Fatalf("new(): val(%v)!=7", _val) } }