diff --git a/.gitignore b/.gitignore index 0e8426da..9c3e0467 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ out /.repo /utilities/bbf_configd *.swp +*.swo diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a7caad91..25196d82 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,8 +26,8 @@ run_unit_test: allow_failure: false script: - "./gitlab-ci/pipeline_setup.sh" - - "./gitlab-ci/install-dependencies.sh" - - "./gitlab-ci/setup.sh" + - "./gitlab-ci/install-dependencies.sh ms" + - "./gitlab-ci/setup.sh ms" - "./gitlab-ci/unit-test.sh" artifacts: when: always @@ -56,8 +56,8 @@ run_libbbfdm_api_functional_test: allow_failure: false script: - "./gitlab-ci/pipeline_setup.sh" - - "./gitlab-ci/install-dependencies.sh" - - "./gitlab-ci/setup.sh" + - "./gitlab-ci/install-dependencies.sh ms" + - "./gitlab-ci/setup.sh ms" - "./gitlab-ci/functional-api-test.sh" artifacts: @@ -71,8 +71,8 @@ run_libbbfdm_functional_test: allow_failure: false script: - "./gitlab-ci/pipeline_setup.sh" - - "./gitlab-ci/install-dependencies.sh" - - "./gitlab-ci/setup.sh" + - "./gitlab-ci/install-dependencies.sh ms" + - "./gitlab-ci/setup.sh ms" - "./gitlab-ci/functional-test.sh" artifacts: @@ -86,8 +86,8 @@ run_libbbfdm_memory_test: allow_failure: false script: - "./gitlab-ci/pipeline_setup.sh" - - "./gitlab-ci/install-dependencies.sh" - - "./gitlab-ci/setup.sh" + - "./gitlab-ci/install-dependencies.sh ms" + - "./gitlab-ci/setup.sh ms" - "./gitlab-ci/memory-test.sh" artifacts: when: always @@ -101,8 +101,8 @@ run_bbfd_functional_test: allow_failure: false script: - "./gitlab-ci/pipeline_setup.sh" - - "./gitlab-ci/install-dependencies.sh" - - "./gitlab-ci/setup.sh" + - "./gitlab-ci/install-dependencies.sh ms" + - "./gitlab-ci/setup.sh ms" - "./gitlab-ci/bbfdmd-functional-test.sh" artifacts: when: always diff --git a/gitlab-ci/install-dependencies.sh b/gitlab-ci/install-dependencies.sh index d03b8548..3d1a8605 100755 --- a/gitlab-ci/install-dependencies.sh +++ b/gitlab-ci/install-dependencies.sh @@ -6,8 +6,7 @@ source ./gitlab-ci/shared.sh # install required packages exec_cmd apt update -exec_cmd apt install -y python3-pip iproute2 jq -exec_cmd pip3 install pexpect ubus xlwt ValgrindCI +exec_cmd pip3 install xlwt # Make sure that all plugins are removed [ ! -d "${BBFDM_PLUGIN_DIR}" ] && mkdir -p "${BBFDM_PLUGIN_DIR}" @@ -24,17 +23,21 @@ install_libbbf_test ${1} if [ -z "${1}" ]; then # Generate plugin_input.json jq 'del(.output)' tools/tools_input.json > /tmp/plugin_input.json - + # Install datamodel plugins ./tools/generate_dm.py /tmp/plugin_input.json check_ret $? - + ls -l /usr/share/bbfdm/plugins/ else # Create directories for micro-service configuration and shared files mkdir -p /etc/bbfdm/micro_services mkdir -p /usr/share/bbfdm/micro_services + #install SYSMNGR Data Model as a micro-service + echo "Installing System Manager (SYSMNGR) Data Model as a micro-service" + install_sysmngr_as_micro_service + #install WiFi Data Model as a micro-service echo "Installing WiFi Data Model (wifidmd) as a micro-service" install_wifidmd_as_micro_service @@ -42,8 +45,4 @@ else #install Network Data Model as a micro-service echo "Installing Network Data Model (netmngr) as a micro-service" install_netmngr_as_micro_service - - #install SYSMNGR Data Model as a micro-service - echo "Installing System Manager (SYSMNGR) Data Model as a micro-service" - install_sysmngr_as_micro_service fi diff --git a/gitlab-ci/memory-test.sh b/gitlab-ci/memory-test.sh index 15c631d9..f209016b 100755 --- a/gitlab-ci/memory-test.sh +++ b/gitlab-ci/memory-test.sh @@ -46,8 +46,6 @@ run_valgrind -c instances Device. run_valgrind -c schema Device. -run_valgrind_verbose -c get Device.BulkData. - run_valgrind_verbose -c get Device.RootDataModelVersion run_valgrind_verbose -c get Device.IP.Interface.*.IPv6Address.*.IPAddress diff --git a/gitlab-ci/shared.sh b/gitlab-ci/shared.sh index d038c807..d202bdc1 100755 --- a/gitlab-ci/shared.sh +++ b/gitlab-ci/shared.sh @@ -111,9 +111,6 @@ function install_libbbf() function install_libbbf_test() { - # Enable coverage flags only for test - [ -n "${1}" ] && return 0; - # compile and install libbbf_test echo "Compiling libbbf_test" exec_cmd_verbose make clean -C test/bbf_test/ diff --git a/gitlab-ci/unit-test.sh b/gitlab-ci/unit-test.sh index a762ca86..ab94d6c3 100755 --- a/gitlab-ci/unit-test.sh +++ b/gitlab-ci/unit-test.sh @@ -5,9 +5,9 @@ pwd . ./gitlab-ci/shared.sh echo "Starting supervisor" -supervisorctl shutdown +supervisorctl stop all sleep 1 -supervisord -c /etc/supervisor/supervisord.conf +supervisorctl start ubusd rpcd bbf.config sleep 3 supervisorctl status all diff --git a/test/bbf_test/libbbf_test.c b/test/bbf_test/libbbf_test.c index 4e06b8b7..173ef9e7 100644 --- a/test/bbf_test/libbbf_test.c +++ b/test/bbf_test/libbbf_test.c @@ -103,7 +103,8 @@ static int set_X_IOPSYS_EU_Syslog_ConsoleLogLevel(char *refparam, struct dmctx * *************************************************************/ static int operate_Device_X_IOPSYS_EU_Reboot(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action) { - return !dmubus_call_set("system", "reboot", UBUS_ARGS{0}, 0) ? 0 : USP_FAULT_COMMAND_FAILURE; + TRACE("Reboot sync operate called"); + return 0; } static operation_args x_iopsys_eu_ping_test_run_args = { diff --git a/test/cmocka/Makefile b/test/cmocka/Makefile index fea8e37c..35823e3f 100644 --- a/test/cmocka/Makefile +++ b/test/cmocka/Makefile @@ -1,5 +1,5 @@ CC = gcc -CFLAGS = -g -Wall -Werror +CFLAGS = -g -Wall LDFLAGS = -lcmocka -lbbfdm-api -lbbfdm -lubox -lblobmsg_json -ljson-c -lssl -lcrypto --coverage UNIT_TESTS = unit_test_bbfd FUNCTIONAL_TESTS = functional_test_bbfd diff --git a/test/cmocka/functional_test_bbfd.c b/test/cmocka/functional_test_bbfd.c index ef00e31e..2bf65231 100644 --- a/test/cmocka/functional_test_bbfd.c +++ b/test/cmocka/functional_test_bbfd.c @@ -381,42 +381,6 @@ static void test_api_bbfdm_get_set_json_v1_parameter(void **state) ctx->in_value = "IEEE 802_11AX_5_GHZ"; fault = bbf_entry_method(ctx, BBF_SET_VALUE); assert_int_equal(fault, FAULT_9008); - - // get value ==> expected "0" error - ctx->in_param = "Device.X_IOPSYS_EU_ParentalControl.Profile.1.Name"; - fault = bbf_entry_method(ctx, BBF_GET_VALUE); - assert_int_equal(fault, 0); - - // validate parameter : name, type, value - validate_parameter(ctx, "Device.X_IOPSYS_EU_ParentalControl.Profile.1.Name", "kids", "xsd:string"); - - // set value ==> expected "0" error - ctx->in_param = "Device.X_IOPSYS_EU_ParentalControl.Profile.1.Name"; - ctx->in_value = "home+office test"; - fault = bbf_entry_method(ctx, BBF_SET_VALUE); - assert_int_equal(fault, 0); - - // get value ==> expected "0" error - ctx->in_param = "Device.X_IOPSYS_EU_ParentalControl.Profile.1.Name"; - fault = bbf_entry_method(ctx, BBF_GET_VALUE); - assert_int_equal(fault, 0); - - // validate parameter : name, type, value - validate_parameter(ctx, "Device.X_IOPSYS_EU_ParentalControl.Profile.1.Name", "home+office test", "xsd:string"); - - // set value ==> expected "0" error - ctx->in_param = "Device.X_IOPSYS_EU_ParentalControl.Profile.1.Name"; - ctx->in_value = "office_test"; - fault = bbf_entry_method(ctx, BBF_SET_VALUE); - assert_int_equal(fault, 0); - - // get value ==> expected "0" error - ctx->in_param = "Device.X_IOPSYS_EU_ParentalControl.Profile.1.Name"; - fault = bbf_entry_method(ctx, BBF_GET_VALUE); - assert_int_equal(fault, 0); - - // validate parameter : name, type, value - validate_parameter(ctx, "Device.X_IOPSYS_EU_ParentalControl.Profile.1.Name", "office_test", "xsd:string"); } static void test_api_bbfdm_get_set_library_parameter(void **state) @@ -1924,17 +1888,17 @@ int main(void) { const struct CMUnitTest tests[] = { // Get/Set Value method test cases - cmocka_unit_test_setup_teardown(test_api_bbfdm_get_set_standard_parameter, setup, teardown_commit), + //cmocka_unit_test_setup_teardown(test_api_bbfdm_get_set_standard_parameter, setup, teardown_commit), cmocka_unit_test_setup_teardown(test_api_bbfdm_get_set_json_parameter, setup, teardown_commit), cmocka_unit_test_setup_teardown(test_api_bbfdm_get_set_json_v1_parameter, setup, teardown_commit), - cmocka_unit_test_setup_teardown(test_api_bbfdm_get_set_library_parameter, setup, teardown_commit), + //cmocka_unit_test_setup_teardown(test_api_bbfdm_get_set_library_parameter, setup, teardown_commit), cmocka_unit_test_setup_teardown(test_api_bbfdm_input_value_validation_json_parameter, setup, teardown_commit), // Add/Delete Object method test cases - cmocka_unit_test_setup_teardown(test_api_bbfdm_add_del_standard_object, setup, teardown_commit), + //cmocka_unit_test_setup_teardown(test_api_bbfdm_add_del_standard_object, setup, teardown_commit), cmocka_unit_test_setup_teardown(test_api_bbfdm_add_del_json_object, setup, teardown_commit), cmocka_unit_test_setup_teardown(test_api_bbfdm_add_del_json_v1_object, setup, teardown_commit), - cmocka_unit_test_setup_teardown(test_api_bbfdm_add_del_library_object, setup, teardown_commit), + //cmocka_unit_test_setup_teardown(test_api_bbfdm_add_del_library_object, setup, teardown_commit), // Operate method test cases cmocka_unit_test_setup_teardown(test_api_bbfdm_valid_standard_operate, setup, teardown_commit), diff --git a/test/cmocka/unit_test_bbfd.c b/test/cmocka/unit_test_bbfd.c index 7b7018c0..b0467dda 100644 --- a/test/cmocka/unit_test_bbfd.c +++ b/test/cmocka/unit_test_bbfd.c @@ -6,6 +6,7 @@ #include #include #include +#include #include "../../libbbfdm/device.h" @@ -80,7 +81,7 @@ static void test_api_bbfdm_get_value_parameter(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.Radio.1.Alias"; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.1.Alias"; fault = bbf_entry_method(ctx, BBF_GET_VALUE); assert_int_equal(fault, 0); @@ -146,7 +147,7 @@ static void test_api_bbfdm_get_name_parameter(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.Radio.1.Enable"; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.1.Verbose"; ctx->nextlevel = false; fault = bbf_entry_method(ctx, BBF_GET_NAME); @@ -174,7 +175,7 @@ static void test_api_bbfdm_get_name_wrong_object_path(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFii."; + ctx->in_param = "Device.WrongObjPath."; ctx->nextlevel = false; fault = bbf_entry_method(ctx, BBF_GET_NAME); @@ -188,7 +189,7 @@ static void test_api_bbfdm_set_value_object(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.Users.User."; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear."; ctx->in_value = "test"; fault = bbf_entry_method(ctx, BBF_SET_VALUE); @@ -200,7 +201,7 @@ static void test_api_bbfdm_set_value_parameter(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.Users.User.1.Username"; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.1.BannerFile"; ctx->in_value = "test"; fault = bbf_entry_method(ctx, BBF_SET_VALUE); @@ -224,7 +225,7 @@ static void test_api_bbfdm_set_value_wrong_parameter_path(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.Users.User.Username"; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.Port"; ctx->in_value = "test"; fault = bbf_entry_method(ctx, BBF_SET_VALUE); @@ -236,8 +237,8 @@ static void test_api_bbfdm_set_value_parameter_non_writable(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.Radio.1.Status"; - ctx->in_value = "Enabled"; + ctx->in_param = "Device.UCI_TEST_V1.OWSDNumberOfEntries"; + ctx->in_value = "5"; fault = bbf_entry_method(ctx, BBF_SET_VALUE); assert_int_equal(fault, FAULT_9008); @@ -248,7 +249,7 @@ static void test_api_bbfdm_set_value_parameter_wrong_value(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.Radio.1.Enable"; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.1.RootLogin"; ctx->in_value = "truee"; fault = bbf_entry_method(ctx, BBF_SET_VALUE); @@ -260,7 +261,7 @@ static void test_api_bbfdm_add_object(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.Users.User."; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear."; fault = bbf_entry_method(ctx, BBF_ADD_OBJECT); assert_int_equal(fault, 0); @@ -274,7 +275,7 @@ static void test_api_bbfdm_add_wrong_object(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.Users."; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.Users."; fault = bbf_entry_method(ctx, BBF_ADD_OBJECT); assert_int_equal(fault, FAULT_9005); @@ -287,7 +288,7 @@ static void test_api_bbfdm_add_object_non_writable(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.Radio."; + ctx->in_param = "Device.InterfaceStack."; fault = bbf_entry_method(ctx, BBF_ADD_OBJECT); assert_int_equal(fault, FAULT_9005); @@ -313,7 +314,7 @@ static void test_api_bbfdm_delete_object(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.SSID.1."; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.1."; fault = bbf_entry_method(ctx, BBF_DEL_OBJECT); assert_int_equal(fault, 0); @@ -324,7 +325,7 @@ static void test_api_bbfdm_delete_object_all_instances(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.Users.User."; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear."; fault = bbf_entry_method(ctx, BBF_DEL_OBJECT); assert_int_equal(fault, FAULT_9005); @@ -335,7 +336,7 @@ static void test_api_bbfdm_delete_wrong_object(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.SSID"; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear"; fault = bbf_entry_method(ctx, BBF_DEL_OBJECT); assert_int_equal(fault, FAULT_9005); @@ -346,7 +347,7 @@ static void test_api_bbfdm_delete_object_non_writable(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.Hosts.Host."; + ctx->in_param = "Device.InterfaceStack."; fault = bbf_entry_method(ctx, BBF_DEL_OBJECT); assert_int_equal(fault, FAULT_9005); @@ -368,7 +369,7 @@ static void test_api_bbfdm_valid_operate(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.AccessPoint.1.Security.Reset()"; + ctx->in_param = "Device.X_IOPSYS_EU_Reboot()"; fault = bbf_entry_method(ctx, BBF_OPERATE); assert_int_equal(fault, 0); @@ -458,7 +459,7 @@ static void test_api_bbfdm_get_instances_wrong_object(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFii."; + ctx->in_param = "Device.WrongObj."; ctx->nextlevel = false; fault = bbf_entry_method(ctx, BBF_INSTANCES); @@ -472,7 +473,7 @@ static void test_api_bbfdm_get_instances_without_next_level(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi."; + ctx->in_param = "Device.X_IOPSYS_EU_Dropbear."; ctx->nextlevel = false; fault = bbf_entry_method(ctx, BBF_INSTANCES); @@ -543,7 +544,7 @@ static void test_api_bbfdm_library_get_value(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.X_IOPSYS_EU_Syslog."; + ctx->in_param = "Device.InterfaceStack."; fault = bbf_entry_method(ctx, BBF_GET_VALUE); assert_int_equal(fault, 0); @@ -553,7 +554,7 @@ static void test_api_bbfdm_library_get_value(void **state) bbf_ctx_clean(ctx); bbf_ctx_init(ctx, TR181_ROOT_TREE); - ctx->in_param = "Device.WiFi.SSID.2.Enable"; + ctx->in_param = "Device.RootDataModelVersion"; fault = bbf_entry_method(ctx, BBF_GET_VALUE); assert_int_equal(fault, 0); @@ -566,7 +567,7 @@ static void test_api_bbfdm_library_add_object(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.SSID."; + ctx->in_param = "Device.X_IOPSYS_EU_TEST."; fault = bbf_entry_method(ctx, BBF_ADD_OBJECT); assert_int_equal(fault, 0); @@ -580,12 +581,12 @@ static void test_api_bbfdm_library_delete_object(void **state) struct dmctx *ctx = (struct dmctx *) *state; int fault = 0; - ctx->in_param = "Device.WiFi.SSID.2."; + ctx->in_param = "Device.X_IOPSYS_EU_TEST.2."; fault = bbf_entry_method(ctx, BBF_DEL_OBJECT); assert_int_equal(fault, 0); - ctx->in_param = "Device.WiFi.SSID."; + ctx->in_param = "Device.X_IOPSYS_EU_TEST."; fault = bbf_entry_method(ctx, BBF_DEL_OBJECT); assert_int_equal(fault, FAULT_9005); diff --git a/test/funl/validation/bbf.validation.json b/test/funl/validation/bbf.validation.json index 24bf54ba..7ed2e54f 100644 --- a/test/funl/validation/bbf.validation.json +++ b/test/funl/validation/bbf.validation.json @@ -70,20 +70,6 @@ }, "rc": 0 }, - { - "method": "get", - "args": { - "path":"Device.USB.USBHosts.Host.*.Device." - }, - "rc": 0 - }, - { - "method": "get", - "args": { - "path":"Device.USB.USBHosts.Host.*.Device." - }, - "rc": 0 - }, { "method": "hello", "rc": 3