forked from facebook/rocksdb
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add script auto_sanity_test.sh to perform auto sanity test
Summary: Add script auto_sanity_test.sh to perform auto sanity test usage: auto_sanity_test.sh [new_commit] [old_commit] Running without commit parameter will do the sanity test with the latest and the latest 10 commit. Test Plan: ./auto_sanity_test.sh Reviewers: haobo, igor Reviewed By: igor CC: leveldb Differential Revision: https://reviews.facebook.net/D17397
- Loading branch information
Showing
1 changed file
with
71 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
TMP_DIR="/tmp/rocksdb-sanity-test" | ||
|
||
if [ "$#" -lt 2 ]; then | ||
echo "usage: ./auto_sanity_test.sh [new_commit] [old_commit]" | ||
echo "Missing either [new_commit] or [old_commit], perform sanity check with the latest and 10th latest commits." | ||
recent_commits=`git log | grep -e "^commit [a-z0-9]\+$"| head -n10 | sed -e 's/commit //g'` | ||
commit_new=`echo "$recent_commits" | head -n1` | ||
commit_old=`echo "$recent_commits" | tail -n1` | ||
echo "the most recent commits are:" | ||
echo "$recent_commits" | ||
else | ||
commit_new=$1 | ||
commit_old=$2 | ||
fi | ||
|
||
if [ ! -d $TMP_DIR ]; then | ||
mkdir $TMP_DIR | ||
fi | ||
dir_new="${TMP_DIR}/${commit_new}" | ||
dir_old="${TMP_DIR}/${commit_old}" | ||
|
||
function makestuff() { | ||
echo "make clean" | ||
make clean > /dev/null | ||
echo "make db_sanity_test -j32" | ||
make db_sanity_test -j32 > /dev/null | ||
if [ $? -ne 0 ]; then | ||
echo "[ERROR] Failed to perform 'make db_sanity_test'" | ||
exit 1 | ||
fi | ||
} | ||
|
||
rm -r -f $dir_new | ||
rm -r -f $dir_old | ||
|
||
echo "Running db sanity check with commits $commit_new and $commit_old." | ||
|
||
echo "=============================================================" | ||
echo "Making build $commit_new" | ||
makestuff | ||
mv db_sanity_test new_db_sanity_test | ||
echo "Creating db based on the new commit --- $commit_new" | ||
./new_db_sanity_test $dir_new create | ||
|
||
echo "=============================================================" | ||
echo "Making build $commit_old" | ||
makestuff | ||
mv db_sanity_test old_db_sanity_test | ||
echo "Creating db based on the old commit --- $commit_old" | ||
./old_db_sanity_test $dir_old create | ||
|
||
echo "=============================================================" | ||
echo "Verifying new db $dir_new using the old commit --- $commit_old" | ||
./old_db_sanity_test $dir_new verify | ||
if [ $? -ne 0 ]; then | ||
echo "[ERROR] Verification of $dir_new using commit $commit_old failed." | ||
exit 2 | ||
fi | ||
|
||
echo "=============================================================" | ||
echo "Verifying old db $dir_old using the new commit --- $commit_new" | ||
./new_db_sanity_test $dir_old verify | ||
if [ $? -ne 0 ]; then | ||
echo "[ERROR] Verification of $dir_old using commit $commit_new failed." | ||
exit 2 | ||
fi | ||
|
||
rm old_db_sanity_test | ||
rm new_db_sanity_test | ||
|
||
echo "Auto sanity test passed!" |