rtest01.sh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/bin/sh
  2. #
  3. # This test captures correctness of flattening/unflattening operations
  4. # asserting that the input graph to ./unflatten be identical to its
  5. # output.
  6. # There are a number of implicit tests here:
  7. # - When a graph is unflattened all information kept in the buffers
  8. # are moved to an avl-tree using gnGrpAddLink(). Link insertions
  9. # identical to those made by a user program are performed.
  10. # Before returning gnGrpUnflatten() destroys the buffers.
  11. # - When flattening buffers are rebuilt from the avl-tree.
  12. #
  13. rm -f A B A.txt B.txt
  14. echo "create a version-1 digraph and save it to 'A'"
  15. (./cr_large_graph -g A > /dev/null) || (echo "error"; return 1) || exit 1
  16. echo "done"
  17. echo "read 'A'; unflatten ; flatten back again and save it to 'B'"
  18. (./unflatten -g A -o B > /dev/null) || (echo "error"; return 1) || exit 1
  19. echo "done"
  20. echo "convert 'A' to 'A.txt'"
  21. (./view -g A > A.txt) || (echo "error"; return 1) || exit 1
  22. echo "done"
  23. echo "convert 'B' to 'B.txt'"
  24. (./view -g B > B.txt) || (echo "error"; return 1) || exit 1
  25. echo "done"
  26. echo "compare 'A.txt' with 'B.txt'"
  27. (diff -q A.txt B.txt && \
  28. echo "'A.txt' and 'B.txt' are identical") ||
  29. (echo "'A.txt' and 'B.txt' differ"; exit 1) || exit 1
  30. rm -f A B A.txt B.txt
  31. echo "create a version-2 digraph and save it to 'A'"
  32. (./cr_large_graph -g A -v 2 > /dev/null) || (echo "error"; return 1) || exit 1
  33. echo "done"
  34. echo "read 'A'; unflatten ; flatten back again and save it to 'B'"
  35. (./unflatten -g A -o B > /dev/null) || (echo "error"; return 1) || exit 1
  36. echo "done"
  37. echo "convert 'A' to 'A.txt'"
  38. (./view -g A > A.txt) || (echo "error"; return 1) || exit 1
  39. echo "done"
  40. echo "convert 'B' to 'B.txt'"
  41. (./view -g B > B.txt) || (echo "error"; return 1) || exit 1
  42. echo "done"
  43. echo "compare 'A.txt' with 'B.txt'"
  44. (diff -q A.txt B.txt && \
  45. echo "'A.txt' and 'B.txt' are identical") ||
  46. (echo "'A.txt' and 'B.txt' differ"; exit 1) || exit 1
  47. rm -f A B A.txt B.txt
  48. echo "create a version-3 graph and save it to 'A'"
  49. (./cr_large_graph -g A -v 2 > /dev/null) || (echo "error"; return 1) || exit 1
  50. echo "done"
  51. echo "read 'A'; unflatten ; flatten back again and save it to 'B'"
  52. (./unflatten -g A -o B > /dev/null) || (echo "error"; return 1) || exit 1
  53. echo "done"
  54. echo "convert 'A' to 'A.txt'"
  55. (./view -g A > A.txt) || (echo "error"; return 1) || exit 1
  56. echo "done"
  57. echo "convert 'B' to 'B.txt'"
  58. (./view -g B > B.txt) || (echo "error"; return 1) || exit 1
  59. echo "done"
  60. echo "compare 'A.txt' with 'B.txt'"
  61. (diff -q A.txt B.txt && \
  62. echo "'A.txt' and 'B.txt' are identical") ||
  63. (echo "'A.txt' and 'B.txt' differ"; exit 1) || exit 1
  64. rm -f A B A.txt B.txt
  65. exit 0