aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/vlib/sync/array_rlock_test.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/vlib/sync/array_rlock_test.v')
-rw-r--r--v_windows/v/vlib/sync/array_rlock_test.v38
1 files changed, 38 insertions, 0 deletions
diff --git a/v_windows/v/vlib/sync/array_rlock_test.v b/v_windows/v/vlib/sync/array_rlock_test.v
new file mode 100644
index 0000000..ad4f778
--- /dev/null
+++ b/v_windows/v/vlib/sync/array_rlock_test.v
@@ -0,0 +1,38 @@
+fn test_shared_modification() {
+ shared foo := &[2, 0, 5]
+ lock foo {
+ unsafe {
+ foo[1] = 3
+ foo[0] *= 7
+ foo[1]--
+ foo[2] -= 2
+ }
+ }
+ rlock foo {
+ unsafe {
+ assert foo[0] == 14
+ assert foo[1] == 2
+ assert foo[2] == 3
+ }
+ }
+}
+
+[direct_array_access]
+fn test_shared_direct_modification() {
+ shared foo := &[2, 0, 5]
+ lock foo {
+ unsafe {
+ foo[1] = 3
+ foo[0] *= 7
+ foo[1]--
+ foo[2] -= 2
+ }
+ }
+ rlock foo {
+ unsafe {
+ assert foo[0] == 14
+ assert foo[1] == 2
+ assert foo[2] == 3
+ }
+ }
+}