Author: Armin Rigo <ar...@tunes.org> Branch: cffi-1.0 Changeset: r1899:eb239c6af2dc Date: 2015-05-01 11:58 +0200 http://bitbucket.org/cffi/cffi/changeset/eb239c6af2dc/
Log: Add "static" and a test that no unexpected symbols are exported diff --git a/_cffi1/parse_c_type.c b/_cffi1/parse_c_type.c --- a/_cffi1/parse_c_type.c +++ b/_cffi1/parse_c_type.c @@ -406,6 +406,7 @@ #define MAKE_SEARCH_FUNC(FIELD) \ + static \ int search_in_##FIELD(const struct _cffi_type_context_s *ctx, \ const char *search, size_t search_len) \ { \ @@ -433,6 +434,7 @@ #undef MAKE_SEARCH_FUNC +static int search_standard_typename(const char *p, size_t size) { if (size < 6 || p[size-2] != '_' || p[size-1] != 't') @@ -729,6 +731,7 @@ } +static int parse_c_type(struct _cffi_parse_info_s *info, const char *input) { int result; diff --git a/_cffi1/parse_c_type.h b/_cffi1/parse_c_type.h --- a/_cffi1/parse_c_type.h +++ b/_cffi1/parse_c_type.h @@ -141,9 +141,9 @@ }; #ifdef _CFFI_INTERNAL -int parse_c_type(struct _cffi_parse_info_s *info, const char *input); -int search_in_globals(const struct _cffi_type_context_s *ctx, - const char *search, size_t search_len); -int search_in_struct_unions(const struct _cffi_type_context_s *ctx, - const char *search, size_t search_len); +static int parse_c_type(struct _cffi_parse_info_s *info, const char *input); +static int search_in_globals(const struct _cffi_type_context_s *ctx, + const char *search, size_t search_len); +static int search_in_struct_unions(const struct _cffi_type_context_s *ctx, + const char *search, size_t search_len); #endif diff --git a/_cffi1/test_cffi_binary.py b/_cffi1/test_cffi_binary.py new file mode 100644 --- /dev/null +++ b/_cffi1/test_cffi_binary.py @@ -0,0 +1,18 @@ +import py, sys, os +import _cffi_backend + +def test_no_unknown_exported_symbols(): + if not sys.platform.startswith('linux'): + py.test.skip("linux-only") + g = os.popen("objdump -T '%s'" % _cffi_backend.__file__, 'r') + for line in g: + if not line.startswith('0'): + continue + if '*UND*' in line: + continue + name = line.split()[-1] + if name.startswith('_') or name.startswith('.'): + continue + if name not in ('init_cffi_backend', 'PyInit__cffi_backend'): + raise Exception("Unexpected exported name %r" % (name,)) + g.close() _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit