2013-03-21 22:42:41 +00:00
|
|
|
h=$(abs_srcdir)
|
|
|
|
|
|
|
|
TESTS=runtestreadwrite
|
|
|
|
|
|
|
|
noinst_PROGRAMS= $(TESTS)
|
|
|
|
|
|
|
|
noinst_LTLIBRARIES = libtestutils.la
|
|
|
|
|
|
|
|
libtestutils_la_SOURCES=\
|
|
|
|
$(h)/test-utils.h \
|
|
|
|
$(h)/test-utils.cc
|
|
|
|
|
|
|
|
libtestutils_la_CXXFLAGS= \
|
|
|
|
-DABIGAIL_SRC_DIR=\"${top_srcdir}\" \
|
|
|
|
-DABIGAIL_BUILD_DIR=\"${top_builddir}\"
|
|
|
|
|
|
|
|
runtestreadwrite_SOURCES=$(h)/test-read-write.cc
|
2013-03-26 11:22:28 +00:00
|
|
|
runtestreadwrite_LDADD=libtestutils.la $(top_builddir)/src/libabigail.la
|
2013-03-21 22:42:41 +00:00
|
|
|
|
|
|
|
AM_CPPFLAGS=-I${top_srcdir}/src
|
|
|
|
|
Debug read-write of a type-decl in a namespace-decl
* abg-ir.{h,cc} (decl_base::decl_base, scope_decl::scope_decl)
(type_decl::type_decl, namespace_decl::namespace_decl): Do not
append a decl to its context from within its constructor. It's
better doing that in a function that takes shared_ptrs to decl and
context. That way we avoid memory management havoc.
(decl_base::set_scope): New private function.
(scope_decl::add_member_decl): Make this private.
(add_decl_to_scope): New function, friend of decl_base and
scope_decl.
* abg-reader.cc (read_context::get_cur_scope): Add a non-const
overload.
(handle_type_decl, handle_namespace_decl): Use add_decl_to_scope.
Adjust to new type_decl and namespace_decl constructor signature.
* src/abg-writer.cc (write_type): Emit 'id', not 'xml:id'.
(write_namespace_decl): Emit "namespace-decl", not
"namespace-decl-name", as the name of namespace element.
* tests/Makefile.am (test0.xml): Rename input0.xml into this.
(test1.xml): New test input.
* tests/data/test-read-write/test0.xml: Update to use 'id' as id
attribute, rather than xml:id.
* tests/data/test-read-write/test1.xml: New test.
* test-read-write.cc (struct InOutSpec): New
(main): Reorganize to give a list of input files to read and to
write to an output file, have the test read the input files, write
them, and diff the two.
2013-03-25 15:56:00 +00:00
|
|
|
EXTRA_DIST= \
|
|
|
|
$(h)/data/test-read-write/test0.xml \
|
2013-03-26 10:16:10 +00:00
|
|
|
$(h)/data/test-read-write/test1.xml \
|
2013-03-27 22:34:07 +00:00
|
|
|
$(h)/data/test-read-write/test2.xml \
|
2013-03-28 14:27:15 +00:00
|
|
|
$(h)/data/test-read-write/test3.xml \
|
2013-03-29 14:30:34 +00:00
|
|
|
$(h)/data/test-read-write/test4.xml \
|
2013-03-30 18:02:51 +00:00
|
|
|
$(h)/data/test-read-write/test5.xml \
|
2013-03-30 20:51:43 +00:00
|
|
|
$(h)/data/test-read-write/test6.xml \
|
Support var decl & mangled_name attributes
* src/abg-ir.h (decl_base::binding, decl_base::get_mangled_name)
(decl_base::set_mangled_name, decl_base::m_mangled_name): New
declarations.
(scope_decl::scope_decl: type_decl::type_decl)
(scope_type_decl::scope_type_decl, typedef_decl::typedef_decl):
Initialize mangled_name.
(namespace_decl::namespace_decl): Initialize visibility.
(class var_decl): New declaration.
* src/abg-ir.cc (decl_base::decl_base, scope_decl::scope_decl)
(type_decl::type_decl, scope_type_decl::scope_type_decl):
Initialize mangled name.
(namespace_decl::namespace_decl): Initialize visibility.
(qualified_type_def::qualified_type_def)
(pointer_type_def::pointer_type_def)
(reference_type_def::reference_type_def): By default, set the
visibility to the same as for the underlying type.
(enum_type_decl::enum_type_decl, typedef_decl::typedef_decl):
Initialize mangled name.
(var_decl::var_decl, var_decl::operator==, var_decl::~var_decl):
New definitions.
* src/abg-reader.cc (read_visibility, read_binding, handle_var_decl): New
definitions.
(read_file): Handle var-decl elements.
* src/abg-writer.cc (write_location): Rename write_decl_location
into this.
(write_var_decl, write_visibility, write_binding): New definitions.
(write_decl, write_type_decl, write_qualified_type_def)
(write_pointer_type_def, write_reference_type_def)
(write_enum_type_decl, write_typedef_decl): Adjust to use
write_location.
* tests/data/test-read-write/test8.xml: New test input.
* tests/test-read-write.cc: De-serialize the above and serialize
it back and ensure both are equal.
* tests/Makefile.am: add tests/data/test-read-write/test8.xml to
the distribution.
2013-04-02 12:24:08 +00:00
|
|
|
$(h)/data/test-read-write/test7.xml \
|
|
|
|
$(h)/data/test-read-write/test8.xml
|