From 42baaa046dee716d469a5f2ea05493c049dbda6d Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Thu, 17 May 2018 16:11:03 +0200 Subject: [PATCH] eolian: add code to run static checks but don't enable yet This adds code to run the Eolian static checker as part of tests, but considering how many failures there are at this point, does not enable it. Once they're all fixed, it can be enabled by removing the #if 0. --- src/Makefile_Eolian.am | 2 ++ src/tests/eolian/eolian_static.c | 26 ++++++++++++++++++++++++++ src/tests/eolian/eolian_suite.c | 1 + src/tests/eolian/eolian_suite.h | 1 + 4 files changed, 30 insertions(+) create mode 100644 src/tests/eolian/eolian_static.c diff --git a/src/Makefile_Eolian.am b/src/Makefile_Eolian.am index 3580893d49..2b84287140 100644 --- a/src/Makefile_Eolian.am +++ b/src/Makefile_Eolian.am @@ -114,6 +114,7 @@ tests/eolian/eolian_suite tests_eolian_eolian_suite_SOURCES = \ tests/eolian/eolian_parsing.c \ +tests/eolian/eolian_static.c \ tests/eolian/eolian_generation.c \ tests/eolian/eolian_generated_future.c \ tests/eolian/eolian_suite.c \ @@ -126,6 +127,7 @@ CLEANFILES += tests/eolian/generated_future.eo.h tests/eolian/generated_future.e tests_eolian_eolian_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl -I$(top_builddir)/src/tests/eolian \ -DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian\" \ -DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/eolian\" \ +-DEO_SRC_DIR=\"$(top_srcdir)/src/lib\" \ -DEOLIAN_GEN="\"$(EOLIAN_GEN)\"" \ @CHECK_CFLAGS@ \ @EOLIAN_CFLAGS@ @EO_CFLAGS@ diff --git a/src/tests/eolian/eolian_static.c b/src/tests/eolian/eolian_static.c new file mode 100644 index 0000000000..fc156beb56 --- /dev/null +++ b/src/tests/eolian/eolian_static.c @@ -0,0 +1,26 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#include "eolian_suite.h" + +EFL_START_TEST(eolian_static_check) +{ + Eolian_State *eos = eolian_state_new(); + fail_if(!eolian_state_directory_add(eos, EO_SRC_DIR)); + fail_if(!eolian_state_all_eot_files_parse(eos)); + fail_if(!eolian_state_all_eo_files_parse(eos)); +#if 0 + /* too many failures to enable this yet */ + fail_if(!eolian_state_check(eos)); +#endif + eolian_state_free(eos); +} +EFL_END_TEST + +void eolian_static_test(TCase *tc) +{ + tcase_add_test(tc, eolian_static_check); +} diff --git a/src/tests/eolian/eolian_suite.c b/src/tests/eolian/eolian_suite.c index 491013950e..3b6de0a68d 100644 --- a/src/tests/eolian/eolian_suite.c +++ b/src/tests/eolian/eolian_suite.c @@ -12,6 +12,7 @@ static const Efl_Test_Case etc[] = { { "Eolian Parsing", eolian_parsing_test}, + { "Eolian Static Analysis", eolian_static_test}, { "Eolian Generation", eolian_generation_test}, { NULL, NULL } }; diff --git a/src/tests/eolian/eolian_suite.h b/src/tests/eolian/eolian_suite.h index 9a7ac72e15..d40b1df924 100644 --- a/src/tests/eolian/eolian_suite.h +++ b/src/tests/eolian/eolian_suite.h @@ -4,6 +4,7 @@ #include #include "../efl_check.h" void eolian_parsing_test(TCase *tc); +void eolian_static_test(TCase *tc); void eolian_generation_test(TCase *tc); #endif /* _EOLIAN_SUITE_H */