diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-01-11 20:33:06 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-01-11 20:33:06 -0700 |
| commit | ccc8e9f4c328cb29fa7f21101d8c20fd23e4942a (patch) | |
| tree | d26d3a0b31e281352b8327924e7aae4ffd095307 /test/run_tests.cpp | |
| parent | 733830f8a5c7c1a3f24aaeda451114b839a7eba9 (diff) | |
| download | zig-ccc8e9f4c328cb29fa7f21101d8c20fd23e4942a.tar.gz zig-ccc8e9f4c328cb29fa7f21101d8c20fd23e4942a.zip | |
support enums with values attached
Diffstat (limited to 'test/run_tests.cpp')
| -rw-r--r-- | test/run_tests.cpp | 52 |
1 files changed, 50 insertions, 2 deletions
diff --git a/test/run_tests.cpp b/test/run_tests.cpp index 159124609e..6955b6c0e3 100644 --- a/test/run_tests.cpp +++ b/test/run_tests.cpp @@ -355,7 +355,7 @@ pub fn main(argc: isize, argv: &&u8, env: &&u8) -> i32 { use "std.zig"; pub fn main(argc: isize, argv: &&u8, env: &&u8) -> i32 { - var zero : i32; + var zero : i32 = 0; if (zero == 0) { print_str("zero\n"); } var i = 0 as i32; @@ -619,6 +619,7 @@ use "std.zig"; pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { var foo : Foo; + @memset(&foo, 0, #sizeof(Foo)); foo.a += 1; foo.b = foo.a == 1; test_foo(foo); @@ -689,7 +690,7 @@ fn test_initializer() { use "std.zig"; const g1 : i32 = 1233 + 1; -var g2 : i32; +var g2 : i32 = 0; pub fn main(argc : isize, argv : &&u8, env : &&u8) -> i32 { if (g2 != 0) { print_str("BAD\n"); } @@ -1044,6 +1045,53 @@ pub fn main(argc: isize, argv: &&u8, env: &&u8) -> i32 { return 0; } )SOURCE", "OK\n"); + + add_simple_case("enum type", R"SOURCE( +use "std.zig"; + +struct Point { + x: u64, + y: u64, +} + +enum Foo { + One: i32, + Two: Point, + Three: void, +} + +enum Bar { + A, + B, + C, + D, +} + +pub fn main(argc: isize, argv: &&u8, env: &&u8) -> i32 { + const foo1 = Foo.One(13); + const foo2 = Foo.Two(Point { .x = 1234, .y = 5678, }); + const bar = Bar.A; + + if (#value_count(Foo) != 3) { + print_str("BAD\n"); + } + + if (#value_count(Bar) != 4) { + print_str("BAD\n"); + } + + if (#sizeof(Foo) != 17) { + print_str("BAD\n"); + } + if (#sizeof(Bar) != 1) { + print_str("BAD\n"); + } + + print_str("OK\n"); + + return 0; +} + )SOURCE", "OK\n"); } |
