From 3c9f0c2f563e1a15a922813fc89160188b76d6f1 Mon Sep 17 00:00:00 2001 From: NADAL Jean-Baptiste Date: Wed, 22 Jan 2020 10:19:58 +0100 Subject: [PATCH] Add static analysis step --- .drone.yml | 6 ++++++ src/CMakeLists.txt | 1 + src/tests/test_rest.c | 30 +++++++++++++++++++----------- tools/nats-pub.sh | 4 ++++ tools/static_analysis.sh | 17 +++++++++++++++++ 5 files changed, 47 insertions(+), 11 deletions(-) create mode 100755 tools/nats-pub.sh create mode 100755 tools/static_analysis.sh diff --git a/.drone.yml b/.drone.yml index 087f538..4f5821d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -35,6 +35,12 @@ steps: - cd domo-iot/build - make gcovr +- name: static_analysis + image: registry.nadal-fr.com/buildroot_dev + commands: + - cd domo-iot/build + - make static_analysis + - name: send telegram notification image: appleboy/drone-telegram settings: diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 559e212..d7239d2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -76,6 +76,7 @@ target_link_libraries (test_device event event_pthreads gcov + curl ) endif(DOMO_BUILD_TEST) diff --git a/src/tests/test_rest.c b/src/tests/test_rest.c index bbfa6a5..99f011a 100644 --- a/src/tests/test_rest.c +++ b/src/tests/test_rest.c @@ -28,7 +28,7 @@ /*--------------------------------------------------------------------------*/ -int my_test_handler(short event, restd_conn_t *conn, void *userdata) +int my_error_handler(short event, restd_conn_t *conn, void *userdata) { restd_http_response(conn, 200, "application/json", "{\"status\":\"error\"}", 18); return RESTD_CLOSE; // Close connection. @@ -36,6 +36,14 @@ int my_test_handler(short event, restd_conn_t *conn, void *userdata) /*--------------------------------------------------------------------------*/ +int my_success_handler(short event, restd_conn_t *conn, void *userdata) +{ + restd_http_response(conn, 200, "application/json", "{\"status\":\"ok\"}", 15); + return RESTD_CLOSE; // Close connection. +} + +/*--------------------------------------------------------------------------*/ + bool found_route(restd_server_t *server, const char *method, const char *path) { qlist_t *hooks = server->hooks; @@ -133,7 +141,7 @@ TEST("Rest - create free\t") restd_server_set_option(rest_server, "server.port", "7777"); - restd_server_register_hook_on_path(rest_server, "POST", "/api/v1/test", my_test_handler, NULL); + restd_server_register_hook_on_path(rest_server, "POST", "/api/v1/test", my_error_handler, NULL); restd_server_free(rest_server); } @@ -149,20 +157,20 @@ TEST("Rest - create access regular route free\t") restd_server_set_option(rest_server, "server.port", "7777"); - restd_server_register_hook_on_path(rest_server, "POST", "/api/v1/test", my_test_handler, NULL); + restd_server_register_hook_on_path(rest_server, "POST", "/api/v1/test", my_success_handler, NULL); ASSERT_TRUE(found_route(rest_server, "POST", "/api/v1/test")); ASSERT_FALSE(found_route(rest_server, "POST", "/api/v1/notfound")); - restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/test", my_test_handler, NULL); + restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/test", my_success_handler, NULL); ASSERT_TRUE(found_route(rest_server, "GET", "/api/v1/test")); - restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/test", my_test_handler, NULL); + restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/test", my_success_handler, NULL); ASSERT_TRUE(found_route(rest_server, "GET", "/api/v1/test")); - restd_server_register_hook_on_path(rest_server, "PUT", "/api/v1/test", my_test_handler, NULL); + restd_server_register_hook_on_path(rest_server, "PUT", "/api/v1/test", my_success_handler, NULL); ASSERT_TRUE(found_route(rest_server, "PUT", "/api/v1/test")); - restd_server_register_hook_on_path(rest_server, "DELETE", "/api/v1/test", my_test_handler, NULL); + restd_server_register_hook_on_path(rest_server, "DELETE", "/api/v1/test", my_success_handler, NULL); ASSERT_TRUE(found_route(rest_server, "DELETE", "/api/v1/test")); restd_server_free(rest_server); @@ -177,9 +185,9 @@ TEST("Rest - create access route with param free\t") rest_server = restd_server_new(); ASSERT_NOT_NULL(rest_server); - restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/klong/:id", my_test_handler, NULL); - restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/donkey", my_test_handler, NULL); - restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/test/:id", my_test_handler, NULL); + restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/klong/:id", my_success_handler, NULL); + restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/donkey", my_success_handler, NULL); + restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/test/:id", my_success_handler, NULL); ASSERT_FALSE(found_special_route(rest_server, "GET", "/api/v1/notfound/77", &id)); @@ -202,7 +210,7 @@ TEST("Rest - create start free\t") restd_server_set_option(rest_server, "server.port", "7777"); restd_server_set_option(rest_server, "server.thread", "1"); - restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/test/:id", my_test_handler, NULL); + restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/test/:id", my_success_handler, NULL); ret = restd_server_start(rest_server); ASSERT_EQUAL_INT(ret, 0); diff --git a/tools/nats-pub.sh b/tools/nats-pub.sh new file mode 100755 index 0000000..672c28e --- /dev/null +++ b/tools/nats-pub.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +go get github.com/nats-io/go-nats-examples/tools/nats-pub +${HOME}/go/bin/nats-pub -s nats://nats.nadal-fr.com:4222 "$1" "$2" diff --git a/tools/static_analysis.sh b/tools/static_analysis.sh new file mode 100755 index 0000000..c33d8f4 --- /dev/null +++ b/tools/static_analysis.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +BUILD_DIR=$1 + +analyse_file () { + DIRNAME=`dirname $1` + echo "Analyse directory: $DIRNAME" + cd $DIRNAME + pvs-studio-analyzer analyze -o analyse.log --compiler gcc --compiler g++ + plog-converter -a GA:1,2 -t tasklist -o report.tasks analyse.log + echo -e "\n**********************************\n" + cat report.tasks + echo -e "\n**********************************\n" +} + +# Main +find ${BUILD_DIR} -name compile_commands.json | while read file; do analyse_file $file; done