From 67e43f976e2e07252b786e584e0290a516630df6 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Thu, 22 Aug 2024 21:18:57 -0400 Subject: test Val --- val_test.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 val_test.go (limited to 'val_test.go') diff --git a/val_test.go b/val_test.go new file mode 100644 index 0000000..188f8a8 --- /dev/null +++ b/val_test.go @@ -0,0 +1,42 @@ +package share_test + +import ( + "testing" + + "git.samanthony.xyz/share" +) + +// Set value in local goroutine, verify in remote goroutine. +func TestValSetLocal(t *testing.T) { + val := "foo" + sharedVal := share.NewVal[string]() + sharedVal.Set <- val + verifySameVal(sharedVal, val, t) + go func() { + defer sharedVal.Close() + verifySameVal(sharedVal, val, t) + }() +} + +// Set value in remote goroutine, verify in local goroutine. +func TestValSetRemote(t *testing.T) { + val := "foo" + sharedVal := share.NewVal[string]() + defer sharedVal.Close() + done := make(chan bool) + defer close(done) + go func() { + sharedVal.Set <- val + verifySameVal(sharedVal, val, t) + done <- true + }() + verifySameVal(sharedVal, val, t) + <-done +} + +func verifySameVal[T comparable](sv share.Val[T], v T, t *testing.T) { + ret := sv.Get() + if ret != v { + t.Errorf("Val.Get() = %v; expected %v", ret, v) + } +} -- cgit v1.2.3