aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/old/vlib/v/tests/shared_lock_expr_test.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/old/vlib/v/tests/shared_lock_expr_test.v')
-rw-r--r--v_windows/v/old/vlib/v/tests/shared_lock_expr_test.v123
1 files changed, 123 insertions, 0 deletions
diff --git a/v_windows/v/old/vlib/v/tests/shared_lock_expr_test.v b/v_windows/v/old/vlib/v/tests/shared_lock_expr_test.v
new file mode 100644
index 0000000..13376cb
--- /dev/null
+++ b/v_windows/v/old/vlib/v/tests/shared_lock_expr_test.v
@@ -0,0 +1,123 @@
+struct St {
+mut:
+ i int
+}
+
+fn test_lock_expr() {
+ shared xx := St{
+ i: 173
+ }
+ shared y := St{
+ i: -57
+ }
+ mut m := 0
+ m = lock y {
+ y.i
+ }
+ n := rlock xx {
+ xx.i
+ }
+ assert m == -57
+ assert n == 173
+}
+
+struct Abc {
+mut:
+ a f64
+}
+
+fn test_multi_objects() {
+ shared x := Abc{
+ a: 12.5
+ }
+ shared y := Abc{
+ a: -7.5
+ }
+ shared z := Abc{
+ a: 13.125
+ }
+ a, b, c := rlock z, x, y {
+ y.a, z.a, x.a
+ }
+ assert a == -7.5
+ assert b == 13.125
+ assert c == 12.5
+}
+
+fn (mut st Abc) getvals(mut a Abc, mut b Abc) (f64, f64, f64) {
+ return a.a, st.a, b.a
+}
+
+fn test_mult_ret_method() {
+ shared x := Abc{
+ a: 12.5
+ }
+ shared y := Abc{
+ a: -7.5
+ }
+ shared z := Abc{
+ a: 13.125
+ }
+ a, b, c := lock z, x, y {
+ z.getvals(mut x, mut y)
+ }
+ assert a == 12.5
+ assert b == 13.125
+ assert c == -7.5
+}
+
+fn test_shared_lock_map_index_expr() {
+ shared m := map{
+ 'qwe': 'asd'
+ }
+ for key in ['fdf', 'qwe'] {
+ v := rlock m {
+ m[key] or { 'key not found' }
+ }
+ if key == 'qwe' {
+ assert v == 'asd'
+ } else {
+ assert v == 'key not found'
+ }
+ }
+}
+
+fn test_shared_lock_array_index_expr() {
+ shared a := [-12.5, 6.25]
+ for i in -2 .. 4 {
+ v := rlock a {
+ a[i] or { 23.75 }
+ }
+ if i == 0 {
+ assert v == -12.5
+ } else if i == 1 {
+ assert v == 6.25
+ } else {
+ assert v == 23.75
+ }
+ }
+}
+
+struct DummySt {
+ a int
+}
+
+fn test_shared_lock_chan_rec_expr() {
+ ch := chan int{cap: 10}
+ shared st := DummySt{}
+ ch <- 7
+ ch <- -13
+ ch.close()
+ for i in 0 .. 3 {
+ v := rlock st {
+ <-ch or { -17 }
+ }
+ if i == 0 {
+ assert v == 7
+ } else if i == 1 {
+ assert v == -13
+ } else {
+ assert v == -17
+ }
+ }
+}