kctx_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. // Создание контекста ядра.
  16. func (sf *tester) new() {
  17. sf.t.Log("new")
  18. kCtx := GetKernelCtx()
  19. if kCtx == nil {
  20. sf.t.Fatalf("new(): KernelCtx==nil")
  21. }
  22. if ctx := kCtx.CtxBg(); ctx != kernCtx.ctxBg {
  23. sf.t.Fatalf("new(): ctx!=ctxBg")
  24. }
  25. if ctx := kCtx.Ctx(); ctx == nil {
  26. sf.t.Fatalf("new(): ctx==nil")
  27. }
  28. counter:=defs.Str("counter")
  29. kCtx.Set(counter, 5, defs.Str("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().(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. }