mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2025-12-10 07:44:39 +01:00
Gitlab CI/CD: combine cmocka test cases
This commit is contained in:
parent
972ba41a01
commit
6718dee0ec
9 changed files with 4 additions and 2680 deletions
|
|
@ -39,7 +39,6 @@ run_tools_test:
|
|||
script:
|
||||
- "./gitlab-ci/tools-test.sh"
|
||||
- "./gitlab-ci/generate_supported_dm.sh"
|
||||
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
|
|
@ -47,34 +46,6 @@ run_tools_test:
|
|||
- out/datamodel_hdm.xml
|
||||
- out/datamodel.xls
|
||||
|
||||
run_libbbfdm_api_functional_test:
|
||||
stage: functional_test
|
||||
image: ${COMMON_IMAGE}
|
||||
allow_failure: false
|
||||
script:
|
||||
- "./gitlab-ci/install-dependencies.sh"
|
||||
- "./gitlab-ci/setup.sh"
|
||||
- "./gitlab-ci/functional-api-test.sh"
|
||||
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- functional-api-test-coverage.xml
|
||||
|
||||
run_libbbfdm_functional_test:
|
||||
stage: functional_test
|
||||
image: ${COMMON_IMAGE}
|
||||
allow_failure: false
|
||||
script:
|
||||
- "./gitlab-ci/install-dependencies.sh"
|
||||
- "./gitlab-ci/setup.sh"
|
||||
- "./gitlab-ci/functional-test.sh"
|
||||
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- functional-test-coverage.xml
|
||||
|
||||
run_libbbfdm_memory_test:
|
||||
stage: functional_test
|
||||
image: ${COMMON_IMAGE}
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "Functional API Tests"
|
||||
pwd
|
||||
source ./gitlab-ci/shared.sh
|
||||
|
||||
supervisorctl status all
|
||||
|
||||
echo "Running the functional API test cases"
|
||||
make clean -C test/cmocka/
|
||||
make functional-api-test -C test/cmocka/
|
||||
check_ret $?
|
||||
|
||||
supervisorctl stop all
|
||||
supervisorctl status
|
||||
|
||||
#report part
|
||||
#GitLab-CI output
|
||||
gcovr -r . 2> /dev/null #throw away stderr
|
||||
# Artefact
|
||||
gcovr -r . 2> /dev/null --xml -o ./functional-api-test-coverage.xml
|
||||
|
||||
echo "Functional API Test :: PASS"
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "Functional Tests"
|
||||
pwd
|
||||
source ./gitlab-ci/shared.sh
|
||||
|
||||
supervisorctl status all
|
||||
|
||||
echo "Running the functional test cases"
|
||||
make clean -C test/cmocka/
|
||||
make functional-test -C test/cmocka/
|
||||
check_ret $?
|
||||
|
||||
supervisorctl stop all
|
||||
supervisorctl status
|
||||
|
||||
#report part
|
||||
#GitLab-CI output
|
||||
gcovr -r . 2> /dev/null #throw away stderr
|
||||
# Artefact
|
||||
gcovr -r . 2> /dev/null --xml -o ./functional-test-coverage.xml
|
||||
|
||||
echo "Functional Test :: PASS"
|
||||
|
|
@ -15,8 +15,6 @@
|
|||
|
||||
#include "libbbfdm-api/dmcommon.h"
|
||||
|
||||
extern DM_MAP_OBJ tDynamicObj[];
|
||||
|
||||
extern DMOBJ tDeviceObj[];
|
||||
extern DMLEAF tDeviceParams[];
|
||||
|
||||
|
|
|
|||
4
test/cmocka/.gitignore
vendored
4
test/cmocka/.gitignore
vendored
|
|
@ -1,3 +1 @@
|
|||
functional_test_bbfd
|
||||
functional_api_test_bbfd
|
||||
unit_test_bbfd
|
||||
bbfdm_unit_test
|
||||
|
|
|
|||
|
|
@ -1,33 +1,18 @@
|
|||
CC = gcc
|
||||
CFLAGS = -g -Wall -Werror
|
||||
LDFLAGS = -lcmocka -lbbfdm-api -lbbfdm
|
||||
UNIT_TESTS = unit_test_bbfd
|
||||
FUNCTIONAL_TESTS = functional_test_bbfd
|
||||
FUNCTIONAL_API_TESTS = functional_api_test_bbfd
|
||||
UNIT_TESTS = bbfdm_unit_test
|
||||
|
||||
VALGRIND = valgrind --leak-check=full --show-reachable=no \
|
||||
--show-leak-kinds=all --errors-for-leak-kinds=all \
|
||||
--error-exitcode=1 --track-origins=yes
|
||||
|
||||
unit_test_bbfd: unit_test_bbfd.o
|
||||
$(CC) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
functional_test_bbfd: functional_test_bbfd.o
|
||||
$(CC) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
functional_api_test_bbfd: functional_api_test_bbfd.o
|
||||
bbfdm_unit_test: bbfdm_unit_test.o
|
||||
$(CC) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
unit-test: $(UNIT_TESTS)
|
||||
$(foreach testprog, $(UNIT_TESTS), sudo $(VALGRIND) ./$(testprog);)
|
||||
|
||||
functional-test: $(FUNCTIONAL_TESTS)
|
||||
$(foreach testprog, $(FUNCTIONAL_TESTS), sudo $(VALGRIND) ./$(testprog);)
|
||||
|
||||
functional-api-test: $(FUNCTIONAL_API_TESTS)
|
||||
$(foreach testprog, $(FUNCTIONAL_API_TESTS), sudo $(VALGRIND) ./$(testprog);)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -fv *.o $(UNIT_TESTS) $(FUNCTIONAL_TESTS) $(FUNCTIONAL_API_TESTS)
|
||||
|
||||
rm -fv *.o $(UNIT_TESTS)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,777 +0,0 @@
|
|||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
#include <setjmp.h>
|
||||
#include <cmocka.h>
|
||||
|
||||
#include <libbbfdm-api/dmuci.h>
|
||||
#include <libbbfdm-api/dmapi.h>
|
||||
#include <libbbfdm-api/dmentry.h>
|
||||
|
||||
#include "../../libbbfdm/dmtree/tr181/device.h"
|
||||
|
||||
static DMOBJ TR181_ROOT_TREE[] = {
|
||||
/* OBJ, permission, addobj, delobj, checkdep, browseinstobj, nextdynamicobj, dynamicleaf, nextobj, leaf, linker, bbfdm_type, uniqueKeys*/
|
||||
{"Device", &DMREAD, NULL, NULL, NULL, NULL, NULL, NULL, tDeviceObj, tDeviceParams, NULL, BBFDM_BOTH},
|
||||
{0}
|
||||
};
|
||||
|
||||
static int setup(void **state)
|
||||
{
|
||||
struct dmctx *ctx = calloc(1, sizeof(struct dmctx));
|
||||
if (!ctx)
|
||||
return -1;
|
||||
|
||||
bbf_ctx_init(ctx, TR181_ROOT_TREE);
|
||||
|
||||
*state = ctx;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int teardown_commit(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
|
||||
bbf_entry_restart_services(NULL, true);
|
||||
bbf_ctx_clean(ctx);
|
||||
free(ctx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int teardown_revert(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
|
||||
bbf_entry_revert_changes(NULL);
|
||||
bbf_ctx_clean(ctx);
|
||||
free(ctx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int group_init(void **state)
|
||||
{
|
||||
bbf_global_init(TR181_ROOT_TREE, "/etc/bbfdm/plugins");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int group_teardown(void **state)
|
||||
{
|
||||
bbf_global_clean(TR181_ROOT_TREE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_value_object(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_value_parameter(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.WiFi.Radio.1.Alias";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_value_empty(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_value_wrong_object_path(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.DSLL.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list == &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_value_wrong_parameter_path(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.Users.User.1.Enabl";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list == &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_value_object_alias(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.";
|
||||
ctx->instance_mode = INSTANCE_MODE_ALIAS;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_value_parameter_alias(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.WiFi.Radio.[cpe-1].Alias";
|
||||
ctx->instance_mode = INSTANCE_MODE_ALIAS;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_name_object(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.";
|
||||
ctx->nextlevel = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_NAME);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_name_parameter(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.WiFi.Radio.1.Enable";
|
||||
ctx->nextlevel = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_NAME);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_name_dot(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = ".";
|
||||
ctx->nextlevel = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_NAME);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list == &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_name_wrong_object_path(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.WiFii.";
|
||||
ctx->nextlevel = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_NAME);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list == &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_name_parameter_alias(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.WiFi.Radio.[cpe-1].Enable";
|
||||
ctx->instance_mode = INSTANCE_MODE_ALIAS;
|
||||
ctx->nextlevel = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_NAME);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
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_value = "test";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SET_VALUE);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
}
|
||||
|
||||
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_value = "test";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_set_value_empty(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "";
|
||||
ctx->in_value = "test";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SET_VALUE);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
}
|
||||
|
||||
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_value = "test";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SET_VALUE);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
}
|
||||
|
||||
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";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SET_VALUE);
|
||||
assert_int_equal(fault, FAULT_9008);
|
||||
}
|
||||
|
||||
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_value = "truee";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SET_VALUE);
|
||||
assert_int_equal(fault, FAULT_9007);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_set_value_parameter_alias(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.Users.User.[cpe-1].Username";
|
||||
ctx->in_value = "test";
|
||||
ctx->instance_mode = INSTANCE_MODE_ALIAS;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_add_object(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.Users.User.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_ADD_OBJECT);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
assert_non_null(ctx->addobj_instance);
|
||||
assert_string_not_equal(ctx->addobj_instance, "0");
|
||||
}
|
||||
|
||||
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.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_ADD_OBJECT);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
|
||||
assert_null(ctx->addobj_instance);
|
||||
}
|
||||
|
||||
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.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_ADD_OBJECT);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
|
||||
assert_null(ctx->addobj_instance);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_add_object_empty(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_ADD_OBJECT);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
|
||||
assert_null(ctx->addobj_instance);
|
||||
}
|
||||
|
||||
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.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_DEL_OBJECT);
|
||||
assert_int_equal(fault, 0);
|
||||
}
|
||||
|
||||
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.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_DEL_OBJECT);
|
||||
assert_int_equal(fault, 0);
|
||||
}
|
||||
|
||||
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";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_DEL_OBJECT);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
}
|
||||
|
||||
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.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_DEL_OBJECT);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_delete_object_empty(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_DEL_OBJECT);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
}
|
||||
|
||||
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()";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_OPERATE);
|
||||
assert_int_equal(fault, 0);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_wrong_operate(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.IP.Diagnostics.IPing()";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_OPERATE);
|
||||
assert_int_equal(fault, USP_FAULT_INVALID_PATH);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_list_operate(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.";
|
||||
ctx->dm_type = BBFDM_USP;
|
||||
ctx->nextlevel = false;
|
||||
ctx->iscommand = true;
|
||||
ctx->isevent = false;
|
||||
ctx->isinfo = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SCHEMA);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_list_event(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.";
|
||||
ctx->dm_type = BBFDM_USP;
|
||||
ctx->nextlevel = false;
|
||||
ctx->iscommand = false;
|
||||
ctx->isevent = true;
|
||||
ctx->isinfo = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SCHEMA);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_schema(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.";
|
||||
ctx->dm_type = BBFDM_USP;
|
||||
ctx->nextlevel = false;
|
||||
ctx->iscommand = true;
|
||||
ctx->isevent = true;
|
||||
ctx->isinfo = true;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_SCHEMA);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_instances_object(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.";
|
||||
ctx->nextlevel = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_INSTANCES);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_instances_wrong_object(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.WiFii.";
|
||||
ctx->nextlevel = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_INSTANCES);
|
||||
assert_int_equal(fault, FAULT_9005);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list == &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_get_instances_without_next_level(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.WiFi.";
|
||||
ctx->nextlevel = false;
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_INSTANCES);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_json_get_value(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
/*
|
||||
* Test of JSON Object Path
|
||||
*/
|
||||
ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.";
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
|
||||
bbf_ctx_clean_sub(ctx);
|
||||
bbf_ctx_init(ctx, TR181_ROOT_TREE);
|
||||
|
||||
/*
|
||||
* Test of JSON Parameter Path
|
||||
*/
|
||||
ctx->in_param = "Device.UserInterface.Enable";
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
|
||||
bbf_ctx_clean_sub(ctx);
|
||||
bbf_ctx_init(ctx, TR181_ROOT_TREE);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_json_add_object(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_ADD_OBJECT);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
assert_non_null(ctx->addobj_instance);
|
||||
assert_string_not_equal(ctx->addobj_instance, "0");
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_json_delete_object(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.1.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_DEL_OBJECT);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
ctx->in_param = "Device.X_IOPSYS_EU_Dropbear.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_DEL_OBJECT);
|
||||
assert_int_equal(fault, 0);
|
||||
}
|
||||
|
||||
static void test_api_bbfdm_library_get_value(void **state)
|
||||
{
|
||||
struct dmctx *ctx = (struct dmctx *) *state;
|
||||
struct dm_parameter *first_entry;
|
||||
int fault = 0;
|
||||
|
||||
ctx->in_param = "Device.X_IOPSYS_EU_Syslog.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
|
||||
bbf_ctx_clean_sub(ctx);
|
||||
bbf_ctx_init(ctx, TR181_ROOT_TREE);
|
||||
|
||||
ctx->in_param = "Device.WiFi.SSID.1.Enable";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_GET_VALUE);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
first_entry = list_first_entry(&ctx->list_parameter, struct dm_parameter, list);
|
||||
assert_true(&first_entry->list != &ctx->list_parameter);
|
||||
|
||||
bbf_ctx_clean_sub(ctx);
|
||||
}
|
||||
|
||||
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.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_ADD_OBJECT);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
assert_non_null(ctx->addobj_instance);
|
||||
assert_string_not_equal(ctx->addobj_instance, "0");
|
||||
}
|
||||
|
||||
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.1.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_DEL_OBJECT);
|
||||
assert_int_equal(fault, 0);
|
||||
|
||||
ctx->in_param = "Device.WiFi.SSID.";
|
||||
|
||||
fault = bbf_entry_method(ctx, BBF_DEL_OBJECT);
|
||||
assert_int_equal(fault, 0);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
const struct CMUnitTest tests[] = {
|
||||
|
||||
// Get Value method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_value_object, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_value_parameter, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_value_empty, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_value_wrong_object_path, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_value_wrong_parameter_path, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_value_object_alias, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_value_parameter_alias, setup, teardown_commit),
|
||||
|
||||
// Get Name method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_name_object, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_name_parameter, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_name_dot, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_name_wrong_object_path, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_name_parameter_alias, setup, teardown_commit),
|
||||
|
||||
// Set Value method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_set_value_object, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_set_value_parameter, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_set_value_empty, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_set_value_wrong_parameter_path, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_set_value_parameter_non_writable, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_set_value_parameter_wrong_value, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_set_value_parameter_alias, setup, teardown_commit),
|
||||
|
||||
// Add Object method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_add_object, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_add_wrong_object, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_add_object_non_writable, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_add_object_empty, setup, teardown_revert),
|
||||
|
||||
// Delete Object method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_delete_object, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_delete_object_all_instances, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_delete_wrong_object, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_delete_object_non_writable, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_delete_object_empty, setup, teardown_revert),
|
||||
|
||||
// Get Instances method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_instances_object, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_instances_wrong_object, setup, teardown_revert),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_instances_without_next_level, setup, teardown_revert),
|
||||
|
||||
// Operate method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_valid_operate, setup, teardown_commit),
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_wrong_operate, setup, teardown_commit),
|
||||
|
||||
// Get List Operate method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_list_operate, setup, teardown_commit),
|
||||
|
||||
// Get List Operate method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_list_event, setup, teardown_commit),
|
||||
|
||||
// Get Schema method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_get_schema, setup, teardown_commit),
|
||||
|
||||
// JSON: Get Value method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_json_get_value, setup, teardown_commit),
|
||||
|
||||
// JSON: Add Object method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_json_add_object, setup, teardown_commit),
|
||||
|
||||
// JSON: Delete Object method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_json_delete_object, setup, teardown_commit),
|
||||
|
||||
// Library: Get Value method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_library_get_value, setup, teardown_commit),
|
||||
|
||||
// Library: Add Object method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_library_add_object, setup, teardown_commit),
|
||||
|
||||
// Library: Delete Object method test cases
|
||||
cmocka_unit_test_setup_teardown(test_api_bbfdm_library_delete_object, setup, teardown_commit),
|
||||
};
|
||||
|
||||
return cmocka_run_group_tests(tests, group_init, group_teardown);
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue