authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-08-29 23:39:54-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-08-29 23:39:54-04:00
log2d5762235529c6023aa61edac95f123576579a52
treea28f0db940c47c965782aa8624ff587211aafd7c
parent898d65baa9198f2fb1c5df91fba51a58c3148626

add test for @alignCast on a slice

See #37

1 files changed, 14 insertions(+), 1 deletions(-)

test/cases/align.zig+14-1
...@@ -72,7 +72,7 @@ fn testBytesAlignSlice(b: u8) {...@@ -72,7 +72,7 @@ fn testBytesAlignSlice(b: u8) {
72 assert(slice[0] == 0x33333333);72 assert(slice[0] == 0x33333333);
73}73}
7474
75test "@alignCast" {75test "@alignCast pointers" {
76 var x: u32 align 4 = 1;76 var x: u32 align 4 = 1;
77 expectsOnly1(&x);77 expectsOnly1(&x);
78 assert(x == 2);78 assert(x == 2);
...@@ -83,3 +83,16 @@ fn expectsOnly1(x: &align 1 u32) {...@@ -83,3 +83,16 @@ fn expectsOnly1(x: &align 1 u32) {
83fn expects4(x: &align 4 u32) {83fn expects4(x: &align 4 u32) {
84 *x += 1;84 *x += 1;
85}85}
86
87test "@alignCast slices" {
88 var array align 4 = []u32{1, 1};
89 const slice = array[0..];
90 sliceExpectsOnly1(slice);
91 assert(slice[0] == 2);
92}
93fn sliceExpectsOnly1(slice: []align 1 u32) {
94 sliceExpects4(@alignCast(4, slice));
95}
96fn sliceExpects4(slice: []align 4 u32) {
97 slice[0] += 1;
98}