diff --git a/tests/.gitignore b/tests/.gitignore index d25e2d6249..7b70bccffc 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1,3 +1,4 @@ +/gen/ /alloc /args /atof diff --git a/tests/Makefile b/tests/Makefile index 15e80e24a0..6c2a838d87 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -27,7 +27,31 @@ clean: rm -f $(BINS) *.out run: $(BINS) - for bin in $(BINS); do echo "# $${bin} #"; "./$${bin}" test args; done + for bin in $(BINS); \ + do + echo "# $${bin} #"; \ + "./$${bin}" test args; \ + done + +expected: $(BINS) + rm -rf expected + mkdir -p expected + for bin in $(BINS); \ + do \ + echo "# $${bin} #"; \ + "./$${bin}" test args > "expected/$${bin}.stdout" 2> "expected/$${bin}.stderr"; \ + done + +verify: $(BINS) + rm -rf gen + mkdir -p gen + for bin in $(BINS); \ + do \ + echo "# $${bin} #"; \ + "./$${bin}" test args > "gen/$${bin}.stdout" 2> "gen/$${bin}.stderr"; \ + diff -u "gen/$${bin}.stdout" "expected/$${bin}.stdout"; \ + diff -u "gen/$${bin}.stderr" "expected/$${bin}.stderr"; \ + done GCCHEAD=\ -nostdinc \ diff --git a/tests/expected/alloc.stderr b/tests/expected/alloc.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/alloc.stdout b/tests/expected/alloc.stdout new file mode 100644 index 0000000000..74753f94e3 --- /dev/null +++ b/tests/expected/alloc.stdout @@ -0,0 +1,2 @@ +malloc 0x55ac6c472618 +calloc 0x55ac6c472618 diff --git a/tests/expected/args.stderr b/tests/expected/args.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/args.stdout b/tests/expected/args.stdout new file mode 100644 index 0000000000..3b9ef538c3 --- /dev/null +++ b/tests/expected/args.stdout @@ -0,0 +1 @@ +./args test args diff --git a/tests/expected/atof.stderr b/tests/expected/atof.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/atof.stdout b/tests/expected/atof.stdout new file mode 100644 index 0000000000..01e913dbfe --- /dev/null +++ b/tests/expected/atof.stdout @@ -0,0 +1 @@ +-3.14 diff --git a/tests/expected/atoi.stderr b/tests/expected/atoi.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/atoi.stdout b/tests/expected/atoi.stdout new file mode 100644 index 0000000000..d90e37ccea --- /dev/null +++ b/tests/expected/atoi.stdout @@ -0,0 +1,6 @@ +-42 +555 +1234567890 +-42 +555 +1234567890 diff --git a/tests/expected/brk.stderr b/tests/expected/brk.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/brk.stdout b/tests/expected/brk.stdout new file mode 100644 index 0000000000..c7e87198e0 --- /dev/null +++ b/tests/expected/brk.stdout @@ -0,0 +1 @@ +brk exited with status code 0 diff --git a/tests/expected/chdir.stderr b/tests/expected/chdir.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/chdir.stdout b/tests/expected/chdir.stdout new file mode 100644 index 0000000000..6d79e11be0 --- /dev/null +++ b/tests/expected/chdir.stdout @@ -0,0 +1,2 @@ +initial cwd: /home/jeremy/Projects/relibc/tests +final cwd: /home/jeremy/Projects/relibc diff --git a/tests/expected/create.stderr b/tests/expected/create.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/create.stdout b/tests/expected/create.stdout new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/ctype.stderr b/tests/expected/ctype.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/ctype.stdout b/tests/expected/ctype.stdout new file mode 100644 index 0000000000..e83b1e5f11 --- /dev/null +++ b/tests/expected/ctype.stdout @@ -0,0 +1 @@ +Success: 0 diff --git a/tests/expected/dup.stderr b/tests/expected/dup.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/dup.stdout b/tests/expected/dup.stdout new file mode 100644 index 0000000000..20ec3fc283 --- /dev/null +++ b/tests/expected/dup.stdout @@ -0,0 +1 @@ +fd 4 duped into fd 5 diff --git a/tests/expected/error.stderr b/tests/expected/error.stderr new file mode 100644 index 0000000000..4eb19d82f3 --- /dev/null +++ b/tests/expected/error.stderr @@ -0,0 +1 @@ +perror: No such file or directory diff --git a/tests/expected/error.stdout b/tests/expected/error.stdout new file mode 100644 index 0000000000..f4ea5c920d --- /dev/null +++ b/tests/expected/error.stdout @@ -0,0 +1 @@ +errno: 2 = No such file or directory diff --git a/tests/expected/fchdir.stderr b/tests/expected/fchdir.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/fchdir.stdout b/tests/expected/fchdir.stdout new file mode 100644 index 0000000000..4c110c289b --- /dev/null +++ b/tests/expected/fchdir.stdout @@ -0,0 +1 @@ +fchdir exited with status code 0 diff --git a/tests/expected/fcntl.stderr b/tests/expected/fcntl.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/fcntl.stdout b/tests/expected/fcntl.stdout new file mode 100644 index 0000000000..20ec3fc283 --- /dev/null +++ b/tests/expected/fcntl.stdout @@ -0,0 +1 @@ +fd 4 duped into fd 5 diff --git a/tests/expected/fsync.stderr b/tests/expected/fsync.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/fsync.stdout b/tests/expected/fsync.stdout new file mode 100644 index 0000000000..0b3deee6ec --- /dev/null +++ b/tests/expected/fsync.stdout @@ -0,0 +1 @@ +fsync exited with status code 0 diff --git a/tests/expected/ftruncate.stderr b/tests/expected/ftruncate.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/ftruncate.stdout b/tests/expected/ftruncate.stdout new file mode 100644 index 0000000000..5f0c8d7054 --- /dev/null +++ b/tests/expected/ftruncate.stdout @@ -0,0 +1 @@ +ftruncate exited with status code 0 diff --git a/tests/expected/getid.stderr b/tests/expected/getid.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/getid.stdout b/tests/expected/getid.stdout new file mode 100644 index 0000000000..a51fd84a30 --- /dev/null +++ b/tests/expected/getid.stdout @@ -0,0 +1 @@ +egid: 1000, euid: 1000, gid: 1000, pgid: 23916, pid: 23933, ppid 23918, uid 1000 diff --git a/tests/expected/link.stderr b/tests/expected/link.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/link.stdout b/tests/expected/link.stdout new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/math.stderr b/tests/expected/math.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/math.stdout b/tests/expected/math.stdout new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/pipe.stderr b/tests/expected/pipe.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/pipe.stdout b/tests/expected/pipe.stdout new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/printf.stderr b/tests/expected/printf.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/printf.stdout b/tests/expected/printf.stdout new file mode 100644 index 0000000000..ad30d8fbca --- /dev/null +++ b/tests/expected/printf.stdout @@ -0,0 +1,8 @@ +percent: % +string: String +char: c +int: -16 +uint: 32 +hex: beef +HEX: C0FFEE +string: end diff --git a/tests/expected/rmdir.stderr b/tests/expected/rmdir.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/rmdir.stdout b/tests/expected/rmdir.stdout new file mode 100644 index 0000000000..be0153a5a5 --- /dev/null +++ b/tests/expected/rmdir.stdout @@ -0,0 +1 @@ +rmdir exited with status code 0 diff --git a/tests/expected/write.stderr b/tests/expected/write.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/write.stdout b/tests/expected/write.stdout new file mode 100644 index 0000000000..980a0d5f19 --- /dev/null +++ b/tests/expected/write.stdout @@ -0,0 +1 @@ +Hello World!