cb74761675
* Unit tests Discover 90% The NmapRun function needs a refacto to make it use adaptors instead of directly calling exec.Command, exec.Command.StdoutPipe, exec.Command.Start, bufio.Scanner.Scan and bufio.Scanner.Err It makes me uncomfortable to push a test file that covers only 90%, but it's better than none, and the 10 missing %s are not very error-prone so it should be okay to delay this part a bit. For now it's more urgent to test as much of the code as possible * Unit tests Helpers 100% * Unit tests Loaders 100% - Attack 85% Once again, the Attack functions are not as simple as the rest to unit test, so I will refacto all of this to use a CURL adaptor later, but for now the total is of 88.6% of coverage, which is good enough for something I spent 2 hours on * Add testing to CI validation process * CI now does functional testing with RTSPATT * Change travis language to bash
38 lines
1.3 KiB
YAML
38 lines
1.3 KiB
YAML
language: bash
|
|
sudo: required
|
|
dist: trusty
|
|
|
|
before_install:
|
|
- echo "Testing Docker Hub credentials"
|
|
- docker login -u=$DOCKER_USERNAME -p=$DOCKER_PASSWORD
|
|
- echo "Docker Hub credentials are working"
|
|
|
|
install:
|
|
- docker build -t cameradar .
|
|
|
|
script:
|
|
- go get github.com/andelf/go-curl
|
|
- go get github.com/pkg/errors
|
|
- go get gopkg.in/go-playground/validator.v9
|
|
- go get github.com/stretchr/testify/assert
|
|
# Run unit tests
|
|
- go test
|
|
# Launch a fake camera to check if cameradar is able to access it
|
|
- docker run -d --name=fake_camera -e RTSP_USERNAME=admin -e RTSP_PASSWORD=12345 -p 8554:8554 ullaakut/rtspatt
|
|
# Launch cameradar on the local machine
|
|
- docker run --net=host -t cameradar -t 0.0.0.0 -l > logs.txt
|
|
- docker logs fake_camera > camera_logs.txt
|
|
# Stop the fake camera
|
|
- docker stop fake_camera
|
|
# Print logs
|
|
- cat camera_logs.txt
|
|
- cat logs.txt
|
|
# check if file contains more than one line
|
|
# 1 line: Error message because no streams were found
|
|
# More lines: Logs for all found cameras
|
|
- if [[ $(wc -l <logs.txt) -lt 2 ]]; then exit 1; fi
|
|
|
|
after_success:
|
|
- echo "Test Success - Branch($TRAVIS_BRANCH) Pull Request($TRAVIS_PULL_REQUEST) Tag($TRAVIS_TAG)"
|
|
- if [[ "$TRAVIS_BRANCH" == "master" ]]; then echo -e "Push Container to Docker Hub" && docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD && docker tag cameradar $DOCKER_REPO:latest && docker push $DOCKER_REPO; fi
|