| #!/bin/sh |
| # Copyright 2015 by Bernhard Reutner-Fischer |
| # Licensed under GPLv2 or later, see file LICENSE in this source tree. |
| |
| . ./testing.sh |
| |
| # testing "test name" "command" "expected result" "file input" "stdin" |
| |
| testing "dc basic syntax (stdin, multiple args)" \ |
| "dc" \ |
| "30\n" \ |
| "" "10 20+p" |
| |
| testing "dc basic syntax (argv, single arg)" \ |
| "dc -e'10 20+p'" \ |
| "30\n" \ |
| "" "" |
| |
| testing "dc basic syntax (argv, multiple args)" \ |
| "dc -e10 -e20+p" \ |
| "30\n" \ |
| "" "" |
| |
| testing "dc complex with spaces (single arg)" \ |
| "dc -e'8 8 * 2 2 + / p'" \ |
| "16\n" \ |
| "" "" |
| |
| testing "dc complex without spaces (single arg)" \ |
| "dc -e'8 8*2 2+/p'" \ |
| "16\n" \ |
| "" "" |
| |
| testing "dc complex with spaces (multiple args)" \ |
| "dc -e8 -e8 -e\* -e2 -e2 -e+ -e/ -ep" \ |
| "16\n" \ |
| "" "" |
| |
| testing "dc complex without spaces (multiple args)" \ |
| "dc -e8 -e8\*2 -e2+/p" \ |
| "16\n" \ |
| "" "" |
| |
| for f in dc_*.dc; do |
| r="`basename "$f" .dc`_results.txt" |
| test -f "$r" || continue |
| # testing "test name" "command" "expected result" "file input" "stdin" |
| testing "dc $f" \ |
| "{ { dc $f 2>&1; echo E:\$? >&2; } | diff -u - $r; echo E:\$?; } 2>&1" \ |
| "E:0\nE:0\n" \ |
| "" "" |
| done |
| |
| for f in dcx_*.dc; do |
| r="`basename "$f" .dc`_results.txt" |
| test -f "$r" || continue |
| # testing "test name" "command" "expected result" "file input" "stdin" |
| testing "dc -x $f" \ |
| "{ { dc -x $f 2>&1; echo E:\$? >&2; } | diff -u - $r; echo E:\$?; } 2>&1" \ |
| "E:0\nE:0\n" \ |
| "" "" |
| done |
| |
| exit $FAILCOUNT |