run_tests.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/bin/sh
  2. # Regression for M2comp step 2 (Coco/R + SymTab semantic analysis).
  3. # Usage: ./run_tests.sh (from the m2comp directory)
  4. pass=0; fail=0
  5. expect_ok() {
  6. if ./M2comp "$1" 2>&1 | grep -q "Parsed correctly"; then
  7. pass=$((pass+1)); echo "PASS(ok): $1"
  8. else
  9. fail=$((fail+1)); echo "FAIL(ok, rejected): $1"
  10. fi
  11. }
  12. expect_fail() {
  13. if ./M2comp "$1" 2>&1 | grep -q "Incorrect source"; then
  14. pass=$((pass+1)); echo "PASS(fail): $1"
  15. else
  16. fail=$((fail+1)); echo "FAIL(fail, accepted): $1"
  17. fi
  18. }
  19. expect_ok tests/ok_minimal.mod
  20. expect_ok tests/ok_proc.mod
  21. expect_ok tests/showcase.mod
  22. expect_fail tests/bad_mismatch.mod
  23. expect_fail tests/t_dup.mod
  24. expect_fail tests/t_undecl.mod
  25. expect_fail tests/t_assign.mod
  26. expect_fail tests/t_arith.mod
  27. expect_fail tests/t_bool.mod
  28. expect_fail tests/t_rel.mod
  29. expect_fail tests/t_cond.mod
  30. expect_fail tests/t_field.mod
  31. expect_fail tests/t_index.mod
  32. expect_fail tests/t_ptr.mod
  33. expect_fail tests/t_for.mod
  34. expect_fail tests/t_call.mod
  35. expect_fail tests/t_call2.mod
  36. expect_fail tests/t_return.mod
  37. expect_fail tests/t_exit.mod
  38. echo "--- $pass passed, $fail failed ---"
  39. [ "$fail" -eq 0 ]