dev_move_test.go 1014 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package def_move
  2. import (
  3. "testing"
  4. "gitp78su.ipnodns.ru/svi/kern/v4/d0/defs/table/owner"
  5. )
  6. type tester struct {
  7. t *testing.T
  8. owner *owner.LOwner
  9. val *Move[int]
  10. }
  11. func TestMove(t *testing.T) {
  12. sf := &tester{
  13. t: t,
  14. owner: owner.LetOwner(1, "test_owner"),
  15. }
  16. sf.new()
  17. sf.newBad1()
  18. }
  19. // Попытка создать контейнер перемещения из nil
  20. func (sf *tester) newBad1() {
  21. sf.t.Log("newBad1")
  22. defer func() {
  23. if _panic := recover(); _panic == nil {
  24. sf.t.Fatalf("newBad1(): panic==nil")
  25. }
  26. }()
  27. // Объявляем указатель на структуру (или int), по дефолту он nil
  28. var dummyPtr *int // значение равно nil, но тип равен *int
  29. _ = NewMove(sf.owner, dummyPtr)
  30. }
  31. // Возвращает новый контейнер перемещения
  32. func (sf *tester) new() {
  33. sf.t.Log("new")
  34. sf.val = NewMove(sf.owner, 7)
  35. _val := sf.val.Move()
  36. if _val != 7 {
  37. sf.t.Fatalf("new(): val(%v)!=7", _val)
  38. }
  39. }