kctx_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package kctx
  2. import (
  3. "testing"
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
  5. )
  6. type tester struct {
  7. t *testing.T
  8. }
  9. func TestKernelCtx(t *testing.T) {
  10. sf := &tester{
  11. t: t,
  12. }
  13. sf.new()
  14. }
  15. var counter = defs.TxtFix("counter")
  16. // Создание контекста ядра.
  17. func (sf *tester) new() {
  18. sf.t.Log("new")
  19. kCtx := GetKernelCtx()
  20. if kCtx == nil {
  21. sf.t.Fatalf("new(): KernelCtx==nil")
  22. }
  23. if ctx := kCtx.CtxBg(); ctx != kernCtx.ctxBg {
  24. sf.t.Fatalf("new(): ctx!=ctxBg")
  25. }
  26. if ctx := kCtx.Ctx(); ctx == nil {
  27. sf.t.Fatalf("new(): ctx==nil")
  28. }
  29. kCtx.Set(counter, 5, "test_counter")
  30. if kCtx.Get(counter) == nil {
  31. sf.t.Fatalf("new(): counter==nil")
  32. }
  33. res := kCtx.Get(counter)
  34. ctxVal := res.Hassert("new()")
  35. val := ctxVal.Val().(defs.Int)
  36. if val != 5 {
  37. sf.t.Fatalf("new(): counter(%v)!=5", val)
  38. }
  39. kCtx.Del(counter)
  40. kCtx.Cancel()
  41. kCtx.Wait()
  42. kCtx = GetKernelCtx()
  43. if kCtx == nil {
  44. sf.t.Fatalf("new(): KernelCtx==nil")
  45. }
  46. if wg := kCtx.Wg(); wg == nil {
  47. sf.t.Fatalf("new(): IKernelWg==nil")
  48. }
  49. if keep := kCtx.Keeper(); keep == nil {
  50. sf.t.Fatalf("new(): IKernelKeeper==nil")
  51. }
  52. }