master
 1const assert = @import("std").debug.assert;
 2const testing = @import("std").testing;
 3
 4const updateHidden = @extern(*const fn (u32) callconv(.c) void, .{ .name = "updateHidden" });
 5const getHidden = @extern(*const fn () callconv(.c) u32, .{ .name = "getHidden" });
 6
 7const T = extern struct { x: u32 };
 8
 9test {
10    const mut_val_ptr = @extern(*f64, .{ .name = "mut_val" });
11    const const_val_ptr = @extern(*const T, .{ .name = "const_val" });
12    const shared_val_ptr = @extern(*c_int, .{ .name = "shared_val", .is_dll_import = true });
13
14    assert(getHidden() == 0);
15    updateHidden(123);
16    assert(getHidden() == 123);
17    assert(mut_val_ptr.* == 1.23);
18    mut_val_ptr.* = 10.0;
19    assert(mut_val_ptr.* == 10.0);
20
21    assert(const_val_ptr.x == 42);
22
23    assert(shared_val_ptr.* == 1234);
24    shared_val_ptr.* = 1235;
25    assert(shared_val_ptr.* == 1235);
26}