1 module speedy.fakestdio_tests_nogc; 2 @safe @nogc: 3 import speedy.fakestdio; 4 5 @nogc unittest 6 { 7 stdout.flush; 8 writeln(1); 9 write(2); 10 write("hello"); 11 writeln(7, "xyz"); 12 int[3] a = [1, -2, 3]; 13 write(true); 14 write(a); 15 int[2][2] b = [[7, 8], [9, 10]]; 16 write(b); 17 write(1 > 2); 18 auto expected_data = "1\n2hello7xyz\ntrue[1, -2, 3][[7, 8], [9, 10]]false"; 19 assert(stdout.buffer_contains(expected_data)); 20 } 21 22 @nogc unittest 23 { 24 stdout.flush; 25 writeln(int.min); 26 writeln(int.max); 27 writeln(uint.min); 28 writeln(uint.max); 29 writeln(long.min); 30 writeln(long.max); 31 writeln(ulong.min); 32 writeln(ulong.max); 33 auto expected_data = "-2147483648\n2147483647\n0\n4294967295\n" ~ 34 "-9223372036854775808\n9223372036854775807\n" ~ 35 "0\n18446744073709551615\n"; 36 assert(stdout.buffer_contains(expected_data)); 37 } 38 39 @nogc unittest 40 { 41 int[3] a = [1, 2, 3]; 42 int[2][3] b = [[1, 0], [2, -3], [3, 8]]; 43 44 stdout.flush; 45 writef!"%d"(123); 46 assert(stdout.buffer_contains("123")); 47 48 stdout.flush; 49 writefln!"%d"(123); 50 assert(stdout.buffer_contains("123\n")); 51 52 stdout.flush; 53 writefln!"%s"(a); 54 assert(stdout.buffer_contains("[1, 2, 3]\n")); 55 56 stdout.flush; 57 writefln!"%(%s %)"(b); 58 assert(stdout.buffer_contains("[1, 0] [2, -3] [3, 8]\n")); 59 60 stdout.flush; 61 writef!"%s %(%s%)"(a, b); 62 assert(stdout.buffer_contains("[1, 2, 3] [1, 0][2, -3][3, 8]")); 63 64 stdout.flush; 65 writef!"%s %-(%s%)"(a, b); 66 assert(stdout.buffer_contains("[1, 2, 3] [1, 0][2, -3][3, 8]")); 67 68 stdout.flush; 69 string[3] s = ["abc", "x", "y"]; 70 writefln!"%-(%s %)"(s); 71 assert(stdout.buffer_contains("abc x y\n")); 72 73 stdout.flush; 74 writefln!"hello %d %(%d %% %)"(123, a); 75 writefln!"%(%s, %)"(a); 76 auto expected_data = "hello 123 1 % 2 % 3\n1, 2, 3\n"; 77 assert(stdout.buffer_contains(expected_data), "writefln"); 78 }