1 module speedy.fakestdio_tests; 2 @safe: 3 import speedy.fakestdio; 4 5 unittest 6 { 7 stdout.flush; 8 string[2] a = ["abc", "xyz"]; 9 writeln(a); 10 auto expected_data = "[\"abc\", \"xyz\"]\n"; 11 assert(stdout.buffer_contains(expected_data)); 12 } 13 14 unittest 15 { 16 stdout.flush; 17 wchar c = 'ß'; 18 dstring s = "ÄÖÜ"; 19 writeln(c, s); 20 auto expected_data = "ßÄÖÜ\n"; 21 assert(stdout.buffer_contains(expected_data)); 22 } 23 24 unittest 25 { 26 stdout.flush; 27 wchar[2] a; 28 a[0] = 'ß'; 29 a[1] = 'Ä'; 30 auto b = new dchar[3]; 31 b[0] = 'Ä'; 32 b[1] = 'Ö'; 33 b[2] = 'Ü'; 34 writeln(a, b); 35 auto expected_data = "ßÄÄÖÜ\n"; 36 assert(stdout.buffer_contains(expected_data)); 37 } 38 39 unittest 40 { 41 import std.typecons : tuple; 42 43 stdout.flush; 44 writeln(tuple(int.min, int.max), ' ', int.min, ' ', int.max); 45 auto expected_data = "Tuple!(int, int)(-2147483648, 2147483647) -2147483648 2147483647\n"; 46 assert(stdout.buffer_contains(expected_data)); 47 } 48 49 unittest 50 { 51 stdout.flush; 52 writef!"%d %d"(12, 34); 53 writef(" %d %d", 56, 78); 54 auto expected_data = "12 34 56 78"; 55 assert(stdout.buffer_contains(expected_data), "writef failed"); 56 } 57 58 unittest 59 { 60 stdout.flush; 61 string[3] s = ["abc", "x", "y"]; 62 writefln!"%(%s %)"(s); 63 assert(stdout.buffer_contains("\"abc\" \"x\" \"y\"\n")); 64 }