mirror of
https://github.com/DominicBreuker/pspy.git
synced 2025-12-21 11:44:51 +00:00
62 lines
1.4 KiB
Bash
62 lines
1.4 KiB
Bash
#!/bin/bash
|
|
|
|
### test covereage
|
|
|
|
if [ -z ${CC_TEST_REPORTER_ID+x} ]; then
|
|
echo "[+] skipping test coverage"
|
|
else
|
|
echo "[+] reporting test coverage"
|
|
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
|
chmod +x ./cc-test-reporter
|
|
|
|
# git config --global user.email "dummy@example.com"
|
|
# git config --global user.name "Mr Robot"
|
|
# git init
|
|
# git add .
|
|
# git commit -m 'commit that makes cc test reporter happy'
|
|
|
|
./cc-test-reporter before-build
|
|
|
|
for pkg in $(go list ./... | grep -v main); do
|
|
go test -coverprofile=$(echo $pkg | tr / -).cover $pkg
|
|
done
|
|
echo "mode: set" > c.out
|
|
grep -h -v "^mode:" ./*.cover >> c.out
|
|
rm -f *.cover
|
|
|
|
./cc-test-reporter after-build
|
|
|
|
rm c.out
|
|
|
|
rm ./cc-test-reporter
|
|
fi
|
|
|
|
### integration test
|
|
|
|
sudo cron -f &
|
|
sleep 1
|
|
sudo ps | grep cron 1>/dev/null
|
|
echo "[+] cron started"
|
|
|
|
echo "[+] Running as user `id`"
|
|
|
|
echo "[+] Executing test"
|
|
# exec /bin/bash
|
|
rm /home/myuser/log.txt
|
|
bin/pspy > /home/myuser/log.txt &
|
|
|
|
for i in `seq 1 25`; do
|
|
echo "Waiting for cron job detection..."
|
|
sleep 5;
|
|
|
|
QUERY_RESULT=$(grep ' | passwd myuser' /home/myuser/log.txt | grep -v grep)
|
|
if [ "'$QUERY_RESULT'" != "''" ]; then
|
|
echo "Cron job execution detected!"
|
|
echo "Complete log of pspy (may contain commands run in this test):"
|
|
cat /home/myuser/log.txt
|
|
exit 0
|
|
fi
|
|
done
|
|
echo "Failed to detect cron job..."
|
|
exit 1
|