#!/bin/bash # Install required packages if [ "$1" != '--non-interactive' ]; then ./resources/install_dependencies.sh fi # Create the Makefile using cmake, from a clean build directory cd code_boost/src/build/ if [ ${PWD##*/} = 'build' ]; then # Only delete everything if we are in a folder called 'build'. rm -rf ./* else echo "Error: The 'build' directory was not found." exit fi which ninja &>/dev/null if [ $? != 0 ]; then cmake .. # Make sure we're able to get the number of cores if [ $(uname) = 'Darwin' ]; then NUMCORES=$(sysctl -n hw.logicalcpu) else NUMCORES=$(nproc) fi if [ -f Makefile ]; then make -j$NUMCORES else echo "Error: 'cmake' did not finish successfully." exit fi else cmake .. -G Ninja if [ -f build.ninja ]; then ninja else echo "Error: 'cmake' did not finish successfully." exit fi fi if [ $? -eq 0 ]; then cp libpcapreader.so ../../../code/ID2TLib/ else echo "Error: 'make' did not finish successfully." exit fi cd ../../../ # Create the ID2T script cat >./id2t <./run_tests </dev/null cd code # Execute tests set -e PRINT_COV=true testpath="discover -s Test/" if [ -e "Test/test_\$1.py" ]; then testpath="Test/test_\$1.py" PRINT_COV=false fi PYTHONWARNINGS="ignore" coverage3 run --source=. -m unittest \$testpath >/dev/null if \$PRINT_COV ; then coverage3 html coverage3 report -m fi EOF # Create the test script cat >./test_efficiency <.dat\" you can get a more detailed look." exit \$error EOF chmod +x ./code/CLI.py chmod +x ./id2t chmod +x ./run_tests chmod +x ./test_efficiency echo -e "\n\nAll is set. ID2T is ready." echo -e "\nRun efficiency tests with the command './test_efficiency'" echo -e "Run unit tests with the command './run_tests'" echo -e "Run ID2T with the command './id2t'"