zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

test_variable_func_alignment.zig (988B) - Raw


      1 const expect = @import("std").testing.expect;
      2 
      3 var foo: u8 align(4) = 100;
      4 
      5 test "global variable alignment" {
      6     try expect(@typeInfo(@TypeOf(&foo)).pointer.alignment == 4);
      7     try expect(@TypeOf(&foo) == *align(4) u8);
      8     const as_pointer_to_array: *align(4) [1]u8 = &foo;
      9     const as_slice: []align(4) u8 = as_pointer_to_array;
     10     const as_unaligned_slice: []u8 = as_slice;
     11     try expect(as_unaligned_slice[0] == 100);
     12 }
     13 
     14 fn derp() align(@sizeOf(usize) * 2) i32 {
     15     return 1234;
     16 }
     17 fn noop1() align(1) void {}
     18 fn noop4() align(4) void {}
     19 
     20 test "function alignment" {
     21     try expect(derp() == 1234);
     22     try expect(@TypeOf(derp) == fn () i32);
     23     try expect(@TypeOf(&derp) == *align(@sizeOf(usize) * 2) const fn () i32);
     24 
     25     noop1();
     26     try expect(@TypeOf(noop1) == fn () void);
     27     try expect(@TypeOf(&noop1) == *align(1) const fn () void);
     28 
     29     noop4();
     30     try expect(@TypeOf(noop4) == fn () void);
     31     try expect(@TypeOf(&noop4) == *align(4) const fn () void);
     32 }
     33 
     34 // test