New template, named side by side view

This commit is contained in:
Timo Schmidt 2023-05-03 21:38:30 +02:00
parent a99516268a
commit 8fba4d45ad
3 changed files with 77 additions and 58 deletions

View File

@ -52,6 +52,8 @@ exit -- "${exit_status}"
int ft_isalpha(int c); int ft_isalpha(int c);
int main(){ int main(){
test( "Test output", printf, "\n");
expect("Expected output", printf, "\n");
test( "'a'", printf, "%d\n", ft_isalpha('a')); test( "'a'", printf, "%d\n", ft_isalpha('a'));
expect( "'a'", printf, "%d\n", isalpha('a')); expect( "'a'", printf, "%d\n", isalpha('a'));
test( "'A'", printf, "%d\n", ft_isalpha('A')); test( "'A'", printf, "%d\n", ft_isalpha('A'));

View File

@ -52,6 +52,8 @@ exit -- "${exit_status}"
int ft_isdigit(int c); int ft_isdigit(int c);
int main(){ int main(){
test( "Test output", printf, "\n");
expect("Expected output", printf, "\n");
test( "'0'", printf, "%d\n", ft_isdigit('0')); test( "'0'", printf, "%d\n", ft_isdigit('0'));
expect("'0'", printf, "%d\n", isdigit('0')); expect("'0'", printf, "%d\n", isdigit('0'));
test( "'1'", printf, "%d\n", ft_isdigit('1')); test( "'1'", printf, "%d\n", ft_isdigit('1'));

View File

@ -22,20 +22,35 @@ exit -- "${exit_status}"
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#define test(out_prefix, expected_string, func, ...) \ #define test(inp, func, ...) \
do { \ do { \
fprintf(stderr, "Case:%s:%s", out_prefix, expected_string); \
fflush(stderr); \
int old_stderr_fd = dup(2); \ int old_stderr_fd = dup(2); \
dup2(1, 2); \ dup2(1, 2); \
fprintf(stdout, "Case:%s:", out_prefix); \ fprintf(stdout, "Case:%s:", inp); \
fflush(stdout); \ fflush(stdout); \
func(__VA_ARGS__); \ func(__VA_ARGS__); \
fflush(stderr); \
fflush(stdout); \ fflush(stdout); \
dup2(old_stderr_fd, 2); \ dup2(old_stderr_fd, 2); \
} while(0) } while(0)
#define expect(inp, func, ...) \
do { \
int old_stdout_fd = dup(1); \
dup2(2, 1); \
fprintf(stderr, "Case:%s:", inp); \
fflush(stderr); \
func(__VA_ARGS__); \
fflush(stderr); \
fflush(stdout); \
dup2(old_stdout_fd, 1); \
} while(0)
// Don't delete above this comment
#include <ctype.h>
int main(){ int main(){
test("dummy", "true\n", printf, "%s\n", "true"); test( "Test output", printf, "\n");
expect("Expected output", printf, "\n");
return 0; return 0;
} }