diff --git a/Dockerfile b/Dockerfile index c98345ed3b7b44969160a20588ca2e02e677db7a..da3366e7adf240e63cb175cc212d0e4b6d2285ea 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 d0eeacac62b0e6fa7878bfb654084c49b2d5ba4a..f3388dded1a870853e8e83c3bb2e9b03d8a75b0b 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);