tests: split unsafe.v to vlib/v/tests/unsafe_test.v and a checker output .vv&.out test
							parent
							
								
									60997b3052
								
							
						
					
					
						commit
						fb4c3ff31a
					
				|  | @ -0,0 +1,34 @@ | |||
| vlib/v/checker/tests/pointer_arithmetic_should_be_checked.v:4:6: error: pointer arithmetic is only allowed in `unsafe` blocks | ||||
|     2 |     v := 5 | ||||
|     3 |     mut p := &v | ||||
|     4 |     p++ | ||||
|       |      ~~ | ||||
|     5 |     p += 2 | ||||
|     6 |     _ := v | ||||
| vlib/v/checker/tests/pointer_arithmetic_should_be_checked.v:5:7: error: pointer arithmetic is only allowed in `unsafe` blocks | ||||
|     3 |     mut p := &v | ||||
|     4 |     p++ | ||||
|     5 |     p += 2 | ||||
|       |       ~~ | ||||
|     6 |     _ := v | ||||
|     7 | } | ||||
| vlib/v/checker/tests/pointer_arithmetic_should_be_checked.v:11:14: error: pointer arithmetic is only allowed in `unsafe` blocks | ||||
|     9 | fn test_ptr_infix() { | ||||
|    10 |     v := 4 | ||||
|    11 |     mut q := &v - 1 | ||||
|       |              ^ | ||||
|    12 |     q = q + 3 | ||||
|    13 |     _ := q | ||||
| vlib/v/checker/tests/pointer_arithmetic_should_be_checked.v:12:9: error: pointer arithmetic is only allowed in `unsafe` blocks | ||||
|    10 |     v := 4 | ||||
|    11 |     mut q := &v - 1 | ||||
|    12 |     q = q + 3 | ||||
|       |         ^ | ||||
|    13 |     _ := q | ||||
|    14 |     _ := v | ||||
| vlib/v/checker/tests/pointer_arithmetic_should_be_checked.v:24:7: error: method `S1.f` must be called from an `unsafe` block | ||||
|    22 | fn test_funcs() { | ||||
|    23 |     s := S1{} | ||||
|    24 |     s.f() | ||||
|       |       ~~~ | ||||
|    25 | } | ||||
|  | @ -1,34 +0,0 @@ | |||
| unsafe.v:4:6: warning: pointer arithmetic is only allowed in `unsafe` blocks | ||||
|     2 |     v := 5 | ||||
|     3 |     mut p := &v | ||||
|     4 |     p++ | ||||
|       |      ~~ | ||||
|     5 |     p += 2 | ||||
|     6 |     _ := v | ||||
| unsafe.v:5:7: warning: pointer arithmetic is only allowed in `unsafe` blocks | ||||
|     3 |     mut p := &v | ||||
|     4 |     p++ | ||||
|     5 |     p += 2 | ||||
|       |       ~~ | ||||
|     6 |     _ := v | ||||
|     7 | } | ||||
| unsafe.v:11:14: warning: pointer arithmetic is only allowed in `unsafe` blocks | ||||
|     9 | fn test_ptr_infix() { | ||||
|    10 |     v := 4 | ||||
|    11 |     mut q := &v - 1 | ||||
|       |              ^ | ||||
|    12 |     q = q + 3 | ||||
|    13 |     _ := q | ||||
| unsafe.v:12:9: warning: pointer arithmetic is only allowed in `unsafe` blocks | ||||
|    10 |     v := 4 | ||||
|    11 |     mut q := &v - 1 | ||||
|    12 |     q = q + 3 | ||||
|       |         ^ | ||||
|    13 |     _ := q | ||||
|    14 |     _ := v | ||||
| unsafe.v:24:7: warning: method `S1.f` must be called from an `unsafe` block | ||||
|    22 | fn test_funcs() { | ||||
|    23 |     s := S1{} | ||||
|    24 |     s.f() | ||||
|       |       ~~~ | ||||
|    25 | } | ||||
|  | @ -0,0 +1,31 @@ | |||
| fn test_ptr_assign() { | ||||
|     v := [int(5), 6, 77, 1] | ||||
|     mut p := &v[0] | ||||
|     unsafe { (*p)++ } | ||||
|     unsafe { p++ } // p now points to v[1]
 | ||||
|     unsafe { (*p) += 2 } | ||||
|     unsafe { p += 2 } // p now points to v[3]
 | ||||
|     unsafe { *p = 31 } | ||||
| 	assert v[0] == 6 | ||||
| 	assert v[1] == 8 | ||||
| 	assert v[2] == 77 | ||||
| 	assert v[3] == 31 | ||||
| } | ||||
| 
 | ||||
| fn test_ptr_infix() { | ||||
|     v := 4 | ||||
|     mut q := unsafe{ &v - 1 } | ||||
|     q = unsafe {q + 3} | ||||
|     _ := q | ||||
|     _ := v | ||||
| } | ||||
| 
 | ||||
| struct S1 {} | ||||
| 
 | ||||
| [unsafe_fn] | ||||
| fn (s S1) f(){} | ||||
| 
 | ||||
| fn test_funcs() { | ||||
|     s := S1{} | ||||
|     unsafe { s.f() } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue