diff options
author | pranomostro <pranomestro@gmail.com> | 2016-12-15 14:49:38 +0100 |
---|---|---|
committer | pranomostro <pranomestro@gmail.com> | 2016-12-15 14:49:38 +0100 |
commit | c38aca268244d3c7004d6987a63d5756df148209 (patch) | |
tree | 66ef5ba9c01281d52f5ee83406ec66558071a0c7 /tests/common | |
parent | 340488b7f3615a48f7464f596754514653112fd6 (diff) |
Add tests for ratox, importing z3bra's tests.
Add a target check for the makefile for running the tests.
Diffstat (limited to 'tests/common')
-rw-r--r-- | tests/common | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/common b/tests/common new file mode 100644 index 0000000..462677d --- /dev/null +++ b/tests/common @@ -0,0 +1,61 @@ +BIN="$(cd ..; pwd)/ratox" +test -x $BIN || exit 1 + +echolor() { + printf '[1;3%dm%s[0m\n' "$1" "$2" +} + +cleanup() { + echo ":: cleaning" + kill $(pgrep -f 'abduco -n test-u1') + kill $(pgrep -f 'abduco -n test-u2') + rm -rf u1 u2 +} + +trap cleanup INT + +spawn_users() { + for u in u1 u2; do + echo ":: creating user $u" + mkdir -p $u + abduco -n test-$u sh -c "cd $u;$BIN 2>&1|tee LOG" + done + sleep 1 +} + +add_friends() { + echo ":: send u2 a friend request from u1" + id1=$(cut -b-64 < u1/id) + id2=$(cut -b-64 < u2/id) + cat u2/id > u1/request/in + while [ ! -p u2/request/out/$id1 ]; do sleep 1; done + echo ":: accepting request from $id1" + echo 1 > u2/request/out/$id1 + while [ ! -d u2/$id1 ]; do sleep 1; done + echo ":: u1: waiting for u2 to come online" + while [ $(cat u1/$id2/online) -eq 0 ]; do sleep 1; done +} + +send_text() { + RND=$(tr -cd 'A-F0-9' </dev/urandom|fold -w16|head -n1) + id1=$(cut -b-64 < u1/id) + id2=$(cut -b-64 < u2/id) + echo ":: sending text to u2" + echo "$RND" > u1/$id2/text_in + while ! grep -q "$RND" u2/$id1/text_out; do sleep 1; done +} + +send_file() { + TMP1=$(mktemp) + TMP2=$(mktemp) + </dev/urandom base64 | dd bs=1K count=2048 of=$TMP1 2>/dev/null + id1=$(cut -b-64 < u1/id) + id2=$(cut -b-64 < u2/id) + echo ":: u1: sending file $TMP1" + cat $TMP1 > u1/$id2/file_in & + while [ $(wc -c <u2/$id1/file_pending) -eq 0 ]; do sleep 1; done + echo ":: u2: saving file to $TMP2" + cat u2/$id1/file_out > $TMP2 + echo ":: verifying $TMP1 and $TMP2" + sha1sum $TMP1 | sed "s,$TMP1,$TMP2," | sha1sum -c +} |