| author | |
| committer | |
| log | 23bebdbcd51ac426f829713ce278b86ccaeb97f4 |
| tree | 4fe1b3b1dde7723a012fe485f069202bed9772b9 |
| parent | 56cc2e2b24f50975591de02e8a556eee4ac45bf7 |
5 files changed, 67 insertions(+), 57 deletions(-)
test/cases3/fn.zig created+28| ... | @@ -0,0 +1,28 @@ | ||
| 1 | fn params() { | ||
| 2 | @setFnTest(this); | ||
| 3 | |||
| 4 | assert(testParamsAdd(22, 11) == 33); | ||
| 5 | } | ||
| 6 | fn testParamsAdd(a: i32, b: i32) -> i32 { | ||
| 7 | a + b | ||
| 8 | } | ||
| 9 | |||
| 10 | |||
| 11 | fn localVariables() { | ||
| 12 | @setFnTest(this); | ||
| 13 | |||
| 14 | testLocVars(2); | ||
| 15 | } | ||
| 16 | fn testLocVars(b: i32) { | ||
| 17 | const a: i32 = 1; | ||
| 18 | if (a + b != 3) @unreachable(); | ||
| 19 | } | ||
| 20 | |||
| 21 | |||
| 22 | |||
| 23 | |||
| 24 | // TODO const assert = @import("std").debug.assert; | ||
| 25 | fn assert(ok: bool) { | ||
| 26 | if (!ok) | ||
| 27 | @unreachable(); | ||
| 28 | } | ||
test/cases3/if.zig created+26| ... | @@ -0,0 +1,26 @@ | ||
| 1 | fn ifStatements() { | ||
| 2 | @setFnTest(this); | ||
| 3 | |||
| 4 | shouldBeEqual(1, 1); | ||
| 5 | firstEqlThird(2, 1, 2); | ||
| 6 | } | ||
| 7 | fn shouldBeEqual(a: i32, b: i32) { | ||
| 8 | if (a != b) { | ||
| 9 | @unreachable(); | ||
| 10 | } else { | ||
| 11 | return; | ||
| 12 | } | ||
| 13 | } | ||
| 14 | fn firstEqlThird(a: i32, b: i32, c: i32) { | ||
| 15 | if (a == b) { | ||
| 16 | @unreachable(); | ||
| 17 | } else if (b == c) { | ||
| 18 | @unreachable(); | ||
| 19 | } else if (a == c) { | ||
| 20 | return; | ||
| 21 | } else { | ||
| 22 | @unreachable(); | ||
| 23 | } | ||
| 24 | } | ||
| 25 | |||
| 26 | |||
test/cases3/misc.zig+8| ... | @@ -130,6 +130,14 @@ fn ReturnStringFromFunction() { | ... | @@ -130,6 +130,14 @@ fn ReturnStringFromFunction() { |
| 130 | assert(memeql(first4KeysOfHomeRow(), "aoeu")); | 130 | assert(memeql(first4KeysOfHomeRow(), "aoeu")); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | fn boolLiterals() { | ||
| 134 | @setFnTest(this); | ||
| 135 | |||
| 136 | assert(true); | ||
| 137 | assert(!false); | ||
| 138 | } | ||
| 139 | |||
| 140 | |||
| 133 | // TODO import from std.str | 141 | // TODO import from std.str |
| 134 | pub fn memeql(a: []const u8, b: []const u8) -> bool { | 142 | pub fn memeql(a: []const u8, b: []const u8) -> bool { |
| 135 | sliceEql(u8, a, b) | 143 | sliceEql(u8, a, b) |
test/self_hosted.zig+3-57| ... | @@ -17,68 +17,14 @@ const test_this = @import("cases/this.zig"); | ... | @@ -17,68 +17,14 @@ const test_this = @import("cases/this.zig"); |
| 17 | 17 | ||
| 18 | 18 | ||
| 19 | 19 | ||
| 20 | |||
| 21 | fn ifStatements() { | ||
| 22 | @setFnTest(this, true); | ||
| 23 | |||
| 24 | shouldBeEqual(1, 1); | ||
| 25 | firstEqlThird(2, 1, 2); | ||
| 26 | } | ||
| 27 | fn shouldBeEqual(a: i32, b: i32) { | ||
| 28 | if (a != b) { | ||
| 29 | @unreachable(); | ||
| 30 | } else { | ||
| 31 | return; | ||
| 32 | } | ||
| 33 | } | ||
| 34 | fn firstEqlThird(a: i32, b: i32, c: i32) { | ||
| 35 | if (a == b) { | ||
| 36 | @unreachable(); | ||
| 37 | } else if (b == c) { | ||
| 38 | @unreachable(); | ||
| 39 | } else if (a == c) { | ||
| 40 | return; | ||
| 41 | } else { | ||
| 42 | @unreachable(); | ||
| 43 | } | ||
| 44 | } | ||
| 45 | |||
| 46 | |||
| 47 | fn params() { | ||
| 48 | @setFnTest(this, true); | ||
| 49 | |||
| 50 | assert(testParamsAdd(22, 11) == 33); | ||
| 51 | } | ||
| 52 | fn testParamsAdd(a: i32, b: i32) -> i32 { | ||
| 53 | a + b | ||
| 54 | } | ||
| 55 | |||
| 56 | |||
| 57 | fn localVariables() { | ||
| 58 | @setFnTest(this, true); | ||
| 59 | |||
| 60 | testLocVars(2); | ||
| 61 | } | ||
| 62 | fn testLocVars(b: i32) { | ||
| 63 | const a: i32 = 1; | ||
| 64 | if (a + b != 3) @unreachable(); | ||
| 65 | } | ||
| 66 | |||
| 67 | fn boolLiterals() { | ||
| 68 | @setFnTest(this, true); | ||
| 69 | |||
| 70 | assert(true); | ||
| 71 | assert(!false); | ||
| 72 | } | ||
| 73 | |||
| 74 | fn voidParameters() { | 20 | fn voidParameters() { |
| 75 | @setFnTest(this, true); | 21 | @setFnTest(this); |
| 76 | 22 | ||
| 77 | voidFun(1, void{}, 2, {}); | 23 | voidFun(1, void{}, 2, {}); |
| 78 | } | 24 | } |
| 79 | fn voidFun(a : i32, b : void, c : i32, d : void) { | 25 | fn voidFun(a: i32, b: void, c: i32, d: void) { |
| 80 | const v = b; | 26 | const v = b; |
| 81 | const vv : void = if (a == 1) {v} else {}; | 27 | const vv: void = if (a == 1) {v} else {}; |
| 82 | assert(a + c == 3); | 28 | assert(a + c == 3); |
| 83 | return vv; | 29 | return vv; |
| 84 | } | 30 | } |
test/self_hosted3.zig+2| ... | @@ -4,9 +4,11 @@ const test_defer = @import("cases3/defer.zig"); | ... | @@ -4,9 +4,11 @@ const test_defer = @import("cases3/defer.zig"); |
| 4 | const test_enum = @import("cases3/enum.zig"); | 4 | const test_enum = @import("cases3/enum.zig"); |
| 5 | const test_error = @import("cases3/error.zig"); | 5 | const test_error = @import("cases3/error.zig"); |
| 6 | const test_eval = @import("cases3/eval.zig"); | 6 | const test_eval = @import("cases3/eval.zig"); |
| 7 | const test_fn = @import("cases3/fn.zig"); | ||
| 7 | const test_for = @import("cases3/for.zig"); | 8 | const test_for = @import("cases3/for.zig"); |
| 8 | const test_generics = @import("cases3/generics.zig"); | 9 | const test_generics = @import("cases3/generics.zig"); |
| 9 | const test_goto = @import("cases3/goto.zig"); | 10 | const test_goto = @import("cases3/goto.zig"); |
| 11 | const test_if = @import("cases3/if.zig"); | ||
| 10 | const test_import = @import("cases3/import.zig"); | 12 | const test_import = @import("cases3/import.zig"); |
| 11 | const test_math = @import("cases3/math.zig"); | 13 | const test_math = @import("cases3/math.zig"); |
| 12 | const test_misc = @import("cases3/misc.zig"); | 14 | const test_misc = @import("cases3/misc.zig"); |