123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #!/bin/sh
- #
- # This test captures correctness of flattening/unflattening operations
- # asserting that the input graph to ./unflatten be identical to its
- # output.
- # There are a number of implicit tests here:
- # - When a graph is unflattened all information kept in the buffers
- # are moved to an avl-tree using gnGrpAddLink(). Link insertions
- # identical to those made by a user program are performed.
- # Before returning gnGrpUnflatten() destroys the buffers.
- # - When flattening buffers are rebuilt from the avl-tree.
- #
- rm -f A B A.txt B.txt
- echo "create a version-1 digraph and save it to 'A'"
- (./cr_large_graph -g A > /dev/null) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "read 'A'; unflatten ; flatten back again and save it to 'B'"
- (./unflatten -g A -o B > /dev/null) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "convert 'A' to 'A.txt'"
- (./view -g A > A.txt) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "convert 'B' to 'B.txt'"
- (./view -g B > B.txt) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "compare 'A.txt' with 'B.txt'"
- (diff -q A.txt B.txt && \
- echo "'A.txt' and 'B.txt' are identical") ||
- (echo "'A.txt' and 'B.txt' differ"; exit 1) || exit 1
- rm -f A B A.txt B.txt
- echo "create a version-2 digraph and save it to 'A'"
- (./cr_large_graph -g A -v 2 > /dev/null) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "read 'A'; unflatten ; flatten back again and save it to 'B'"
- (./unflatten -g A -o B > /dev/null) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "convert 'A' to 'A.txt'"
- (./view -g A > A.txt) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "convert 'B' to 'B.txt'"
- (./view -g B > B.txt) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "compare 'A.txt' with 'B.txt'"
- (diff -q A.txt B.txt && \
- echo "'A.txt' and 'B.txt' are identical") ||
- (echo "'A.txt' and 'B.txt' differ"; exit 1) || exit 1
- rm -f A B A.txt B.txt
- echo "create a version-3 graph and save it to 'A'"
- (./cr_large_graph -g A -v 2 > /dev/null) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "read 'A'; unflatten ; flatten back again and save it to 'B'"
- (./unflatten -g A -o B > /dev/null) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "convert 'A' to 'A.txt'"
- (./view -g A > A.txt) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "convert 'B' to 'B.txt'"
- (./view -g B > B.txt) || (echo "error"; return 1) || exit 1
- echo "done"
- echo "compare 'A.txt' with 'B.txt'"
- (diff -q A.txt B.txt && \
- echo "'A.txt' and 'B.txt' are identical") ||
- (echo "'A.txt' and 'B.txt' differ"; exit 1) || exit 1
- rm -f A B A.txt B.txt
- exit 0
|