From afb77072432e034acebe939d4ec69979d412f8ab Mon Sep 17 00:00:00 2001
From: Jakob Olsson <Jakob Olsson>
Date: Wed, 11 Dec 2019 12:17:18 +0100
Subject: [PATCH] add tests for more definition scenarios
---
Dockerfile | 2 +-
test/schema_test.c | 40 +++++++++++++++++++++++-----------------
2 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index c98345e..da3366e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -171,7 +171,7 @@ RUN mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# Prepare JSON Schemas
-RUN mkdir -p /usr/share/rpcd/schemas
+RUN mkdir -p /usr/share/rpcd/schemas/definitions
#COPY cmocka_test/files/usr/share/rpcd/schemas/* /usr/share/rpcd/schemas/
# Start entrypoint
diff --git a/test/schema_test.c b/test/schema_test.c
index d0eeaca..f3388dd 100644
--- a/test/schema_test.c
+++ b/test/schema_test.c
@@ -215,7 +215,7 @@ static void test_validate_output_document_blob(void **state)
schema_validator_destroy();
}
-static void test_validate_definitions_file(void **state)
+static void test_validate_definitions(void **state)
{
(void *) state;
@@ -227,17 +227,6 @@ static void test_validate_definitions_file(void **state)
schema_validator_destroy();
}
-static void test_validate_definitions_mixed(void **state)
-{
- (void *) state;
-
- schema_validator_init();
-
- validate_doc_blob("/opt/work/test/files/definition/doc.json", "wifi", "status", true, SCHEMA_OUTPUT_CALL);
- validate_doc_blob("/opt/work/test/files/definition/doc.json", "wifi", "status", true, SCHEMA_OUTPUT_CALL);
-
- schema_validator_destroy();
-}
static int create_setup(void** state) {
printf("copy schemas\n");
@@ -270,11 +259,10 @@ static int definition_setup(void** state) {
static int definition_teardown(void** state) {
printf("removing schemas\n");
remove("/usr/share/rpcd/schemas/wifi.json");
- remove("/usr/share/rpcd/schemas/definition.json");
+ remove("/usr/share/rpcd/schemas/definitions/definitions.json");
return 0;
}
-
static int mixed_setup(void** state) {
printf("copy schemas\n");
cp("/usr/share/rpcd/schemas/wifi.json", "/opt/work/test/files/definition/mixed_schema.json");
@@ -286,7 +274,24 @@ static int mixed_setup(void** state) {
static int mixed_teardown(void** state) {
printf("removing schemas\n");
remove("/usr/share/rpcd/schemas/wifi.json");
- remove("/usr/share/rpcd/schemas/definition.json");
+ remove("/usr/share/rpcd/schemas/definitions/definitions.json");
+ return 0;
+}
+
+static int multi_file_setup(void** state) {
+ printf("copy schemas\n");
+ cp("/usr/share/rpcd/schemas/wifi.json", "/opt/work/test/files/definition/multi_definition_schema.json");
+ cp("/usr/share/rpcd/schemas/definitions/definitions.json", "/opt/work/test/files/definition/intra_file_definition.json");
+ cp("/usr/share/rpcd/schemas/definitions/iface.json", "/opt/work/test/files/definition/iface.json");
+ printf("finished copying schemas\n");
+ return 0;
+}
+
+static int multi_file_teardown(void** state) {
+ printf("removing schemas\n");
+ remove("/usr/share/rpcd/schemas/wifi.json");
+ remove("/usr/share/rpcd/schemas/definitions/definitions.json");
+ remove("/usr/share/rpcd/schemas/definitions/iface.json");
return 0;
}
@@ -299,8 +304,9 @@ int main(void) {
cmocka_unit_test_setup_teardown(test_validate_output_document_jobj, create_setup, create_teardown),
cmocka_unit_test_setup_teardown(test_validate_input_document_blob, create_setup, create_teardown),
cmocka_unit_test_setup_teardown(test_validate_output_document_blob, create_setup, create_teardown),
- cmocka_unit_test_setup_teardown(test_validate_definitions_file, definition_setup, definition_teardown),
- cmocka_unit_test_setup_teardown(test_validate_definitions_mixed, definition_setup, definition_teardown)
+ cmocka_unit_test_setup_teardown(test_validate_definitions, definition_setup, definition_teardown),
+ cmocka_unit_test_setup_teardown(test_validate_definitions, mixed_setup, mixed_teardown),
+ cmocka_unit_test_setup_teardown(test_validate_definitions, multi_file_setup, multi_file_teardown)
};
return cmocka_run_group_tests(tests, NULL, NULL);
--
GitLab