summaryrefslogtreecommitdiffstats
path: root/val_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'val_test.go')
-rw-r--r--val_test.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/val_test.go b/val_test.go
index 188f8a8..c1b7766 100644
--- a/val_test.go
+++ b/val_test.go
@@ -34,6 +34,30 @@ func TestValSetRemote(t *testing.T) {
<-done
}
+// Val.TryGet() before Set should fail.
+func TestValTryGetFail(t *testing.T) {
+ sv := share.NewVal[int]() // type is arbitrary
+ defer sv.Close()
+ if v, ok := sv.TryGet(); ok {
+ t.Errorf("Val.TryGet() succeeded (returned %v) before value was set; expected to fail", v)
+ }
+}
+
+// Val.TryGet() after Set should succeed.
+func TestValTryGet(t *testing.T) {
+ sv := share.NewVal[string]()
+ defer sv.Close()
+ v := "foo"
+ sv.Set <- v
+ ret, ok := sv.TryGet()
+ if !ok {
+ t.Error("Val.TryGet() failed")
+ }
+ if *ret != v {
+ t.Errorf("Val.TryGet() returned %v; expected %v", ret, v)
+ }
+}
+
func verifySameVal[T comparable](sv share.Val[T], v T, t *testing.T) {
ret := sv.Get()
if ret != v {