[COMMITTED] tests: Fix broken dwflsyms tests, extend test and add prelink tests.

Mark Wielaard mjw at redhat.com
Fri Nov 15 23:27:48 UTC 2013


The two test files that contains minisymtab tables and the expected test
output were wrongly generated. Also prelink tests were missing to check
that a prelinked main ELF file with separate debug or minisyms generated
correctly adjusted symbol values. The dwflsyms test was also extended to
check print and check the result of dwfl_module_relocate_address.

Reported-by: Josh Stone <jistone at redhat.com>
Signed-off-by: Mark Wielaard <mjw at redhat.com>
---
 tests/ChangeLog             |   12 ++
 tests/Makefile.am           |    1 +
 tests/dwflsyms.c            |    7 +-
 tests/run-dwflsyms.sh       |  281 +++++++++++++++++++++++++++++++++----------
 tests/run-readelf-s.sh      |   77 +++++++------
 tests/testfilebazdbg_pl.bz2 |  Bin 0 -> 2589 bytes
 tests/testfilebazmdb.bz2    |  Bin 3259 -> 3313 bytes
 tests/testfilebazmin.bz2    |  Bin 3194 -> 3323 bytes
 tests/testfilebazmin_pl.bz2 |  Bin 0 -> 3749 bytes
 9 files changed, 275 insertions(+), 103 deletions(-)
 create mode 100755 tests/testfilebazdbg_pl.bz2
 create mode 100755 tests/testfilebazmin_pl.bz2

diff --git a/tests/ChangeLog b/tests/ChangeLog
index 5ebc1bd..9461287 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,15 @@
+2013-11-15  Mark Wielaard  <mjw at redhat.com>
+
+	* testfilebazmdb.bz2: Regenerated.
+	* testfilebazmin.bz2: Likewise.
+	* testfilebazdbg_pl.bz2: New testfile.
+	* testfilebazmin_pl.bz2: Likewise.
+	* Makefile.am (EXTRA_DIST): Add testfilebazdbg_pl.bz2 and
+	testfilebazmin_pl.bz2.
+	* dwflsyms.c (list_syms): Call dwfl_module_relocate_address and
+	print relative address of function symbols.
+	* run-dwflsyms.sh: Add prelink tests and adjust expected output.
+
 2013-11-01  Michael Forney  <mforney at mforney.org>
 
 	* Makefile.am (TESTS_ENVIRONMENT): Use and export NM.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index bc97523..e9cf950 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -189,6 +189,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
 	     run-readelf-s.sh testfilebazdbg.bz2 testfilebazdyn.bz2 \
 	     testfilebazmin.bz2 testfilebazdbg.debug.bz2 testfilebazmdb.bz2 \
 	     testfilebaztab.bz2 testfilebasmin.bz2 \
+	     testfilebazdbg_pl.bz2 testfilebazmin_pl.bz2 \
 	     run-dwflsyms.sh \
 	     run-unstrip-n.sh testcore-rtlib.bz2 testcore-rtlib-ppc.bz2 \
 	     run-low_high_pc.sh testfile_low_high_pc.bz2 \
diff --git a/tests/dwflsyms.c b/tests/dwflsyms.c
index cae3fbe..55f2653 100644
--- a/tests/dwflsyms.c
+++ b/tests/dwflsyms.c
@@ -83,7 +83,7 @@ list_syms (struct Dwfl_Module *mod,
       GElf_Sym sym;
       GElf_Word shndxp;
       const char *name = dwfl_module_getsym (mod, ndx, &sym, &shndxp);
-      printf("%4d: %s\t%s\t%s (%" PRIu64 ") %#" PRIx64 "\n",
+      printf("%4d: %s\t%s\t%s (%" PRIu64 ") %#" PRIx64,
 	     ndx, gelf_type (&sym), gelf_bind (&sym), name,
 	     sym.st_size, sym.st_value);
 
@@ -97,7 +97,12 @@ list_syms (struct Dwfl_Module *mod,
 	  GElf_Word ashndxp;
 	  const char *aname = dwfl_module_addrsym (mod, addr, &asym, &ashndxp);
 	  assert (strcmp (name, aname) == 0);
+
+	  int res = dwfl_module_relocate_address (mod, &addr);
+	  assert (res != -1);
+	  printf(", rel: %#" PRIx64 "", addr);
 	}
+      printf ("\n");
     }
 
   return DWARF_CB_OK;
diff --git a/tests/run-dwflsyms.sh b/tests/run-dwflsyms.sh
index c440bf7..a425277 100755
--- a/tests/run-dwflsyms.sh
+++ b/tests/run-dwflsyms.sh
@@ -17,17 +17,20 @@
 
 . $srcdir/test-subr.sh
 
-# Tests dwfl_module_addrsym and dwfl_module_getsym.
+# Tests dwfl_module_{addrsym,getsym,relocate_address}
 # See run-readelf-s.sh for how to generate test binaries.
 
 testfiles testfilebaztab
 testfiles testfilebazdbg testfilebazdbg.debug
+testfiles testfilebazdbg_pl
 testfiles testfilebazdyn
 testfiles testfilebazmdb
 testfiles testfilebazmin
+testfiles testfilebazmin_pl
 testfiles testfilebasmin
 
 tempfiles testfile.dynsym.in testfile.symtab.in testfile.minsym.in dwflsyms.out
+tempfiles testfile.symtab_pl.in testfile.minsym_pl.in 
 
 cat > testfile.symtab.in <<\EOF
    0: NOTYPE	LOCAL	 (0) 0
@@ -65,17 +68,17 @@ cat > testfile.symtab.in <<\EOF
   32: SECTION	LOCAL	 (0) 0
   33: FILE	LOCAL	crtstuff.c (0) 0
   34: OBJECT	LOCAL	__JCR_LIST__ (0) 0x200de0
-  35: FUNC	LOCAL	deregister_tm_clones (0) 0x710
-  36: FUNC	LOCAL	register_tm_clones (0) 0x740
-  37: FUNC	LOCAL	__do_global_dtors_aux (0) 0x780
+  35: FUNC	LOCAL	deregister_tm_clones (0) 0x710, rel: 0x710
+  36: FUNC	LOCAL	register_tm_clones (0) 0x740, rel: 0x740
+  37: FUNC	LOCAL	__do_global_dtors_aux (0) 0x780, rel: 0x780
   38: OBJECT	LOCAL	completed.6137 (1) 0x20103c
   39: OBJECT	LOCAL	__do_global_dtors_aux_fini_array_entry (0) 0x200dd8
-  40: FUNC	LOCAL	frame_dummy (0) 0x7c0
+  40: FUNC	LOCAL	frame_dummy (0) 0x7c0, rel: 0x7c0
   41: OBJECT	LOCAL	__frame_dummy_init_array_entry (0) 0x200dd0
   42: FILE	LOCAL	foo.c (0) 0
   43: FILE	LOCAL	bar.c (0) 0
   44: OBJECT	LOCAL	b1 (4) 0x201034
-  45: FUNC	LOCAL	foo (20) 0x814
+  45: FUNC	LOCAL	foo (20) 0x814, rel: 0x814
   46: FILE	LOCAL	crtstuff.c (0) 0
   47: OBJECT	LOCAL	__FRAME_END__ (0) 0xa58
   48: OBJECT	LOCAL	__JCR_END__ (0) 0x200de0
@@ -84,28 +87,107 @@ cat > testfile.symtab.in <<\EOF
   51: OBJECT	LOCAL	_DYNAMIC (0) 0x200df0
   52: NOTYPE	LOCAL	__init_array_start (0) 0x200dd0
   53: OBJECT	LOCAL	_GLOBAL_OFFSET_TABLE_ (0) 0x201000
-  54: FUNC	GLOBAL	__libc_csu_fini (2) 0x8f0
+  54: FUNC	GLOBAL	__libc_csu_fini (2) 0x8f0, rel: 0x8f0
   55: NOTYPE	WEAK	_ITM_deregisterTMCloneTable (0) 0
   56: NOTYPE	WEAK	data_start (0) 0x201030
   57: NOTYPE	GLOBAL	_edata (0) 0x20103c
-  58: FUNC	GLOBAL	bar (44) 0x828
-  59: FUNC	GLOBAL	_fini (0) 0x8f4
+  58: FUNC	GLOBAL	bar (44) 0x828, rel: 0x828
+  59: FUNC	GLOBAL	_fini (0) 0x8f4, rel: 0x8f4
   60: FUNC	GLOBAL	__libc_start_main@@GLIBC_2.2.5 (0) 0
   61: NOTYPE	GLOBAL	__data_start (0) 0x201030
   62: NOTYPE	WEAK	__gmon_start__ (0) 0
   63: OBJECT	GLOBAL	__dso_handle (0) 0x200de8
   64: OBJECT	GLOBAL	_IO_stdin_used (4) 0x900
   65: OBJECT	GLOBAL	b2 (4) 0x201038
-  66: FUNC	GLOBAL	__libc_csu_init (137) 0x860
+  66: FUNC	GLOBAL	__libc_csu_init (137) 0x860, rel: 0x860
   67: NOTYPE	GLOBAL	_end (0) 0x201040
-  68: FUNC	GLOBAL	_start (0) 0x6e0
+  68: FUNC	GLOBAL	_start (0) 0x6e0, rel: 0x6e0
   69: NOTYPE	GLOBAL	__bss_start (0) 0x20103c
-  70: FUNC	GLOBAL	main (35) 0x7f0
+  70: FUNC	GLOBAL	main (35) 0x7f0, rel: 0x7f0
   71: NOTYPE	WEAK	_Jv_RegisterClasses (0) 0
   72: OBJECT	GLOBAL	__TMC_END__ (0) 0x201040
   73: NOTYPE	WEAK	_ITM_registerTMCloneTable (0) 0
   74: FUNC	WEAK	__cxa_finalize@@GLIBC_2.2.5 (0) 0
-  75: FUNC	GLOBAL	_init (0) 0x680
+  75: FUNC	GLOBAL	_init (0) 0x680, rel: 0x680
+EOF
+
+cat > testfile.symtab_pl.in <<\EOF
+   0: NOTYPE	LOCAL	 (0) 0
+   1: SECTION	LOCAL	 (0) 0x3000000238
+   2: SECTION	LOCAL	 (0) 0x3000000254
+   3: SECTION	LOCAL	 (0) 0x3000000274
+   4: SECTION	LOCAL	 (0) 0x3000000298
+   5: SECTION	LOCAL	 (0) 0x30000002d8
+   6: SECTION	LOCAL	 (0) 0x3000000428
+   7: SECTION	LOCAL	 (0) 0x30000004f2
+   8: SECTION	LOCAL	 (0) 0x3000000510
+   9: SECTION	LOCAL	 (0) 0x3000000530
+  10: SECTION	LOCAL	 (0) 0x3000000638
+  11: SECTION	LOCAL	 (0) 0x3000000680
+  12: SECTION	LOCAL	 (0) 0x30000006a0
+  13: SECTION	LOCAL	 (0) 0x30000006e0
+  14: SECTION	LOCAL	 (0) 0x30000008f4
+  15: SECTION	LOCAL	 (0) 0x3000000900
+  16: SECTION	LOCAL	 (0) 0x3000000904
+  17: SECTION	LOCAL	 (0) 0x3000000948
+  18: SECTION	LOCAL	 (0) 0x3000200dd0
+  19: SECTION	LOCAL	 (0) 0x3000200dd8
+  20: SECTION	LOCAL	 (0) 0x3000200de0
+  21: SECTION	LOCAL	 (0) 0x3000200de8
+  22: SECTION	LOCAL	 (0) 0x3000200df0
+  23: SECTION	LOCAL	 (0) 0x3000200fc0
+  24: SECTION	LOCAL	 (0) 0x3000201000
+  25: SECTION	LOCAL	 (0) 0x3000201030
+  26: SECTION	LOCAL	 (0) 0x300020103c
+  27: SECTION	LOCAL	 (0) 0
+  28: SECTION	LOCAL	 (0) 0
+  29: SECTION	LOCAL	 (0) 0
+  30: SECTION	LOCAL	 (0) 0
+  31: SECTION	LOCAL	 (0) 0
+  32: SECTION	LOCAL	 (0) 0
+  33: FILE	LOCAL	crtstuff.c (0) 0
+  34: OBJECT	LOCAL	__JCR_LIST__ (0) 0x3000200de0
+  35: FUNC	LOCAL	deregister_tm_clones (0) 0x3000000710, rel: 0x710
+  36: FUNC	LOCAL	register_tm_clones (0) 0x3000000740, rel: 0x740
+  37: FUNC	LOCAL	__do_global_dtors_aux (0) 0x3000000780, rel: 0x780
+  38: OBJECT	LOCAL	completed.6137 (1) 0x300020103c
+  39: OBJECT	LOCAL	__do_global_dtors_aux_fini_array_entry (0) 0x3000200dd8
+  40: FUNC	LOCAL	frame_dummy (0) 0x30000007c0, rel: 0x7c0
+  41: OBJECT	LOCAL	__frame_dummy_init_array_entry (0) 0x3000200dd0
+  42: FILE	LOCAL	foo.c (0) 0
+  43: FILE	LOCAL	bar.c (0) 0
+  44: OBJECT	LOCAL	b1 (4) 0x3000201034
+  45: FUNC	LOCAL	foo (20) 0x3000000814, rel: 0x814
+  46: FILE	LOCAL	crtstuff.c (0) 0
+  47: OBJECT	LOCAL	__FRAME_END__ (0) 0x3000000a58
+  48: OBJECT	LOCAL	__JCR_END__ (0) 0x3000200de0
+  49: FILE	LOCAL	 (0) 0
+  50: NOTYPE	LOCAL	__init_array_end (0) 0x3000200dd8
+  51: OBJECT	LOCAL	_DYNAMIC (0) 0x3000200df0
+  52: NOTYPE	LOCAL	__init_array_start (0) 0x3000200dd0
+  53: OBJECT	LOCAL	_GLOBAL_OFFSET_TABLE_ (0) 0x3000201000
+  54: FUNC	GLOBAL	__libc_csu_fini (2) 0x30000008f0, rel: 0x8f0
+  55: NOTYPE	WEAK	_ITM_deregisterTMCloneTable (0) 0
+  56: NOTYPE	WEAK	data_start (0) 0x3000201030
+  57: NOTYPE	GLOBAL	_edata (0) 0x300020103c
+  58: FUNC	GLOBAL	bar (44) 0x3000000828, rel: 0x828
+  59: FUNC	GLOBAL	_fini (0) 0x30000008f4, rel: 0x8f4
+  60: FUNC	GLOBAL	__libc_start_main@@GLIBC_2.2.5 (0) 0
+  61: NOTYPE	GLOBAL	__data_start (0) 0x3000201030
+  62: NOTYPE	WEAK	__gmon_start__ (0) 0
+  63: OBJECT	GLOBAL	__dso_handle (0) 0x3000200de8
+  64: OBJECT	GLOBAL	_IO_stdin_used (4) 0x3000000900
+  65: OBJECT	GLOBAL	b2 (4) 0x3000201038
+  66: FUNC	GLOBAL	__libc_csu_init (137) 0x3000000860, rel: 0x860
+  67: NOTYPE	GLOBAL	_end (0) 0x3000201040
+  68: FUNC	GLOBAL	_start (0) 0x30000006e0, rel: 0x6e0
+  69: NOTYPE	GLOBAL	__bss_start (0) 0x300020103c
+  70: FUNC	GLOBAL	main (35) 0x30000007f0, rel: 0x7f0
+  71: NOTYPE	WEAK	_Jv_RegisterClasses (0) 0
+  72: OBJECT	GLOBAL	__TMC_END__ (0) 0x3000201040
+  73: NOTYPE	WEAK	_ITM_registerTMCloneTable (0) 0
+  74: FUNC	WEAK	__cxa_finalize@@GLIBC_2.2.5 (0) 0
+  75: FUNC	GLOBAL	_init (0) 0x3000000680, rel: 0x680
 EOF
 
 cat > testfile.dynsym.in <<\EOF
@@ -119,61 +201,122 @@ cat > testfile.dynsym.in <<\EOF
    7: FUNC	WEAK	__cxa_finalize (0) 0
    8: NOTYPE	GLOBAL	_edata (0) 0x20103c
    9: NOTYPE	GLOBAL	_end (0) 0x201040
-  10: FUNC	GLOBAL	__libc_csu_init (137) 0x860
+  10: FUNC	GLOBAL	__libc_csu_init (137) 0x860, rel: 0x860
   11: NOTYPE	GLOBAL	__bss_start (0) 0x20103c
-  12: FUNC	GLOBAL	main (35) 0x7f0
-  13: FUNC	GLOBAL	__libc_csu_fini (2) 0x8f0
+  12: FUNC	GLOBAL	main (35) 0x7f0, rel: 0x7f0
+  13: FUNC	GLOBAL	__libc_csu_fini (2) 0x8f0, rel: 0x8f0
 EOF
 
 cat > testfile.minsym.in <<\EOF
    0: NOTYPE	LOCAL	 (0) 0
    1: SECTION	LOCAL	 (0) 0x238
-   2: FUNC	LOCAL	call_gmon_start (0) 0x4003bc
-   3: FUNC	LOCAL	__do_global_dtors_aux (0) 0x4003e0
-   4: FUNC	LOCAL	frame_dummy (0) 0x400450
-   5: FUNC	LOCAL	__do_global_ctors_aux (0) 0x400580
-   6: FUNC	LOCAL	foo (18) 0x400498
-   7: SECTION	LOCAL	 (0) 0x400200
-   8: SECTION	LOCAL	 (0) 0x40021c
-   9: SECTION	LOCAL	 (0) 0x40023c
-  10: SECTION	LOCAL	 (0) 0x400260
-  11: SECTION	LOCAL	 (0) 0x400280
-  12: SECTION	LOCAL	 (0) 0x4002c8
-  13: SECTION	LOCAL	 (0) 0x400300
-  14: SECTION	LOCAL	 (0) 0x400308
-  15: SECTION	LOCAL	 (0) 0x400328
-  16: SECTION	LOCAL	 (0) 0x400340
-  17: SECTION	LOCAL	 (0) 0x400358
-  18: SECTION	LOCAL	 (0) 0x400370
-  19: SECTION	LOCAL	 (0) 0x400390
-  20: SECTION	LOCAL	 (0) 0x4005b8
-  21: SECTION	LOCAL	 (0) 0x4005c8
-  22: SECTION	LOCAL	 (0) 0x4005d8
-  23: SECTION	LOCAL	 (0) 0x400610
-  24: SECTION	LOCAL	 (0) 0x6006d0
-  25: SECTION	LOCAL	 (0) 0x6006e0
-  26: SECTION	LOCAL	 (0) 0x6006f0
-  27: SECTION	LOCAL	 (0) 0x6006f8
-  28: SECTION	LOCAL	 (0) 0x600888
-  29: SECTION	LOCAL	 (0) 0x600890
-  30: SECTION	LOCAL	 (0) 0x6008b0
-  31: SECTION	LOCAL	 (0) 0x6008c0
-  32: NOTYPE	WEAK	_ITM_deregisterTMCloneTable (0) 0
-  33: FUNC	GLOBAL	__libc_start_main (0) 0
-  34: NOTYPE	WEAK	__gmon_start__ (0) 0
-  35: NOTYPE	WEAK	_Jv_RegisterClasses (0) 0
-  36: NOTYPE	WEAK	_ITM_registerTMCloneTable (0) 0
-  37: FUNC	WEAK	__cxa_finalize (0) 0
-  38: NOTYPE	GLOBAL	_edata (0) 0x20103c
-  39: NOTYPE	GLOBAL	_end (0) 0x201040
-  40: FUNC	GLOBAL	__libc_csu_init (137) 0x860
-  41: NOTYPE	GLOBAL	__bss_start (0) 0x20103c
-  42: FUNC	GLOBAL	main (35) 0x7f0
-  43: FUNC	GLOBAL	__libc_csu_fini (2) 0x8f0
-  44: FUNC	GLOBAL	_start (0) 0x400390
-  45: FUNC	GLOBAL	bar (44) 0x4004aa
-  46: FUNC	GLOBAL	_fini (0) 0x4005b8
-  47: FUNC	GLOBAL	_init (0) 0x400358
+   2: FUNC	LOCAL	deregister_tm_clones (0) 0x710, rel: 0x710
+   3: FUNC	LOCAL	register_tm_clones (0) 0x740, rel: 0x740
+   4: FUNC	LOCAL	__do_global_dtors_aux (0) 0x780, rel: 0x780
+   5: OBJECT	LOCAL	__do_global_dtors_aux_fini_array_entry (0) 0x200dd8
+   6: FUNC	LOCAL	frame_dummy (0) 0x7c0, rel: 0x7c0
+   7: OBJECT	LOCAL	__frame_dummy_init_array_entry (0) 0x200dd0
+   8: FUNC	LOCAL	foo (20) 0x814, rel: 0x814
+   9: NOTYPE	LOCAL	__init_array_end (0) 0x200dd8
+  10: NOTYPE	LOCAL	__init_array_start (0) 0x200dd0
+  11: SECTION	LOCAL	 (0) 0x238
+  12: SECTION	LOCAL	 (0) 0x254
+  13: SECTION	LOCAL	 (0) 0x274
+  14: SECTION	LOCAL	 (0) 0x298
+  15: SECTION	LOCAL	 (0) 0x2d8
+  16: SECTION	LOCAL	 (0) 0x428
+  17: SECTION	LOCAL	 (0) 0x4f2
+  18: SECTION	LOCAL	 (0) 0x510
+  19: SECTION	LOCAL	 (0) 0x530
+  20: SECTION	LOCAL	 (0) 0x638
+  21: SECTION	LOCAL	 (0) 0x680
+  22: SECTION	LOCAL	 (0) 0x6a0
+  23: SECTION	LOCAL	 (0) 0x6e0
+  24: SECTION	LOCAL	 (0) 0x8f4
+  25: SECTION	LOCAL	 (0) 0x900
+  26: SECTION	LOCAL	 (0) 0x904
+  27: SECTION	LOCAL	 (0) 0x948
+  28: SECTION	LOCAL	 (0) 0x200dd0
+  29: SECTION	LOCAL	 (0) 0x200dd8
+  30: SECTION	LOCAL	 (0) 0x200de0
+  31: SECTION	LOCAL	 (0) 0x200de8
+  32: SECTION	LOCAL	 (0) 0x200df0
+  33: SECTION	LOCAL	 (0) 0x200fc0
+  34: SECTION	LOCAL	 (0) 0x201000
+  35: SECTION	LOCAL	 (0) 0x201030
+  36: SECTION	LOCAL	 (0) 0x20103c
+  37: NOTYPE	WEAK	_ITM_deregisterTMCloneTable (0) 0
+  38: FUNC	GLOBAL	__libc_start_main (0) 0
+  39: NOTYPE	WEAK	__gmon_start__ (0) 0
+  40: NOTYPE	WEAK	_Jv_RegisterClasses (0) 0
+  41: NOTYPE	WEAK	_ITM_registerTMCloneTable (0) 0
+  42: FUNC	WEAK	__cxa_finalize (0) 0
+  43: NOTYPE	GLOBAL	_edata (0) 0x20103c
+  44: NOTYPE	GLOBAL	_end (0) 0x201040
+  45: FUNC	GLOBAL	__libc_csu_init (137) 0x860, rel: 0x860
+  46: NOTYPE	GLOBAL	__bss_start (0) 0x20103c
+  47: FUNC	GLOBAL	main (35) 0x7f0, rel: 0x7f0
+  48: FUNC	GLOBAL	__libc_csu_fini (2) 0x8f0, rel: 0x8f0
+  49: FUNC	GLOBAL	bar (44) 0x828, rel: 0x828
+  50: FUNC	GLOBAL	_fini (0) 0x8f4, rel: 0x8f4
+  51: FUNC	GLOBAL	_start (0) 0x6e0, rel: 0x6e0
+  52: FUNC	GLOBAL	_init (0) 0x680, rel: 0x680
+EOF
+
+cat > testfile.minsym_pl.in <<\EOF
+   0: NOTYPE	LOCAL	 (0) 0
+   1: SECTION	LOCAL	 (0) 0x3000000238
+   2: FUNC	LOCAL	deregister_tm_clones (0) 0x3000000710, rel: 0x710
+   3: FUNC	LOCAL	register_tm_clones (0) 0x3000000740, rel: 0x740
+   4: FUNC	LOCAL	__do_global_dtors_aux (0) 0x3000000780, rel: 0x780
+   5: OBJECT	LOCAL	__do_global_dtors_aux_fini_array_entry (0) 0x3000200dd8
+   6: FUNC	LOCAL	frame_dummy (0) 0x30000007c0, rel: 0x7c0
+   7: OBJECT	LOCAL	__frame_dummy_init_array_entry (0) 0x3000200dd0
+   8: FUNC	LOCAL	foo (20) 0x3000000814, rel: 0x814
+   9: NOTYPE	LOCAL	__init_array_end (0) 0x3000200dd8
+  10: NOTYPE	LOCAL	__init_array_start (0) 0x3000200dd0
+  11: SECTION	LOCAL	 (0) 0x3000000238
+  12: SECTION	LOCAL	 (0) 0x3000000254
+  13: SECTION	LOCAL	 (0) 0x3000000274
+  14: SECTION	LOCAL	 (0) 0x3000000298
+  15: SECTION	LOCAL	 (0) 0x30000002d8
+  16: SECTION	LOCAL	 (0) 0x3000000428
+  17: SECTION	LOCAL	 (0) 0x30000004f2
+  18: SECTION	LOCAL	 (0) 0x3000000510
+  19: SECTION	LOCAL	 (0) 0x3000000530
+  20: SECTION	LOCAL	 (0) 0x3000000638
+  21: SECTION	LOCAL	 (0) 0x3000000680
+  22: SECTION	LOCAL	 (0) 0x30000006a0
+  23: SECTION	LOCAL	 (0) 0x30000006e0
+  24: SECTION	LOCAL	 (0) 0x30000008f4
+  25: SECTION	LOCAL	 (0) 0x3000000900
+  26: SECTION	LOCAL	 (0) 0x3000000904
+  27: SECTION	LOCAL	 (0) 0x3000000948
+  28: SECTION	LOCAL	 (0) 0x3000200dd0
+  29: SECTION	LOCAL	 (0) 0x3000200dd8
+  30: SECTION	LOCAL	 (0) 0x3000200de0
+  31: SECTION	LOCAL	 (0) 0x3000200de8
+  32: SECTION	LOCAL	 (0) 0x3000200df0
+  33: SECTION	LOCAL	 (0) 0x3000200fc0
+  34: SECTION	LOCAL	 (0) 0x3000201000
+  35: SECTION	LOCAL	 (0) 0x3000201030
+  36: SECTION	LOCAL	 (0) 0x300020103c
+  37: NOTYPE	WEAK	_ITM_deregisterTMCloneTable (0) 0
+  38: FUNC	GLOBAL	__libc_start_main (0) 0
+  39: NOTYPE	WEAK	__gmon_start__ (0) 0
+  40: NOTYPE	WEAK	_Jv_RegisterClasses (0) 0
+  41: NOTYPE	WEAK	_ITM_registerTMCloneTable (0) 0
+  42: FUNC	WEAK	__cxa_finalize (0) 0
+  43: NOTYPE	GLOBAL	_edata (0) 0x300020103c
+  44: NOTYPE	GLOBAL	_end (0) 0x3000201040
+  45: FUNC	GLOBAL	__libc_csu_init (137) 0x3000000860, rel: 0x860
+  46: NOTYPE	GLOBAL	__bss_start (0) 0x300020103c
+  47: FUNC	GLOBAL	main (35) 0x30000007f0, rel: 0x7f0
+  48: FUNC	GLOBAL	__libc_csu_fini (2) 0x30000008f0, rel: 0x8f0
+  49: FUNC	GLOBAL	bar (44) 0x3000000828, rel: 0x828
+  50: FUNC	GLOBAL	_fini (0) 0x30000008f4, rel: 0x8f4
+  51: FUNC	GLOBAL	_start (0) 0x30000006e0, rel: 0x6e0
+  52: FUNC	GLOBAL	_init (0) 0x3000000680, rel: 0x680
 EOF
 
 cat testfile.symtab.in \
@@ -182,6 +325,9 @@ cat testfile.symtab.in \
 cat testfile.symtab.in \
   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg
 
+cat testfile.symtab_pl.in \
+  | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg_pl
+
 cat testfile.dynsym.in \
   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdyn
 
@@ -191,16 +337,19 @@ cat testfile.symtab.in \
 cat testfile.minsym.in \
   | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin
 
+cat testfile.minsym_pl.in \
+  | testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin_pl
+
 testrun_compare ${abs_builddir}/dwflsyms -e testfilebasmin <<\EOF
    0: NOTYPE	LOCAL	 (0) 0
-   1: FUNC	LOCAL	foo (18) 0x400168
+   1: FUNC	LOCAL	foo (18) 0x400168, rel: 0x400168
    2: SECTION	LOCAL	 (0) 0x400120
    3: SECTION	LOCAL	 (0) 0x400144
    4: SECTION	LOCAL	 (0) 0x4001c0
    5: SECTION	LOCAL	 (0) 0x600258
-   6: FUNC	GLOBAL	_start (21) 0x4001a8
-   7: FUNC	GLOBAL	main (33) 0x400144
-   8: FUNC	GLOBAL	bar (44) 0x40017a
+   6: FUNC	GLOBAL	_start (21) 0x4001a8, rel: 0x4001a8
+   7: FUNC	GLOBAL	main (33) 0x400144, rel: 0x400144
+   8: FUNC	GLOBAL	bar (44) 0x40017a, rel: 0x40017a
 EOF
 
 exit 0
diff --git a/tests/run-readelf-s.sh b/tests/run-readelf-s.sh
index 4373b5f..931516d 100755
--- a/tests/run-readelf-s.sh
+++ b/tests/run-readelf-s.sh
@@ -210,44 +210,49 @@ EOF
 
 cat > testfile.minsym.in <<\EOF
 
-Symbol table [27] '.symtab' contains 35 entries:
- 31 local symbols  String table: [28] '.strtab'
+Symbol table [28] '.symtab' contains 40 entries:
+ 36 local symbols  String table: [29] '.strtab'
   Num:            Value   Size Type    Bind   Vis          Ndx Name
     0: 0000000000000000      0 NOTYPE  LOCAL  DEFAULT    UNDEF 
-    1: 00000000004003bc      0 FUNC    LOCAL  DEFAULT       13 call_gmon_start
-    2: 00000000004003e0      0 FUNC    LOCAL  DEFAULT       13 __do_global_dtors_aux
-    3: 0000000000400450      0 FUNC    LOCAL  DEFAULT       13 frame_dummy
-    4: 0000000000400580      0 FUNC    LOCAL  DEFAULT       13 __do_global_ctors_aux
-    5: 0000000000400498     18 FUNC    LOCAL  DEFAULT       13 foo
-    6: 0000000000400200      0 SECTION LOCAL  DEFAULT        1 
-    7: 000000000040021c      0 SECTION LOCAL  DEFAULT        2 
-    8: 000000000040023c      0 SECTION LOCAL  DEFAULT        3 
-    9: 0000000000400260      0 SECTION LOCAL  DEFAULT        4 
-   10: 0000000000400280      0 SECTION LOCAL  DEFAULT        5 
-   11: 00000000004002c8      0 SECTION LOCAL  DEFAULT        6 
-   12: 0000000000400300      0 SECTION LOCAL  DEFAULT        7 
-   13: 0000000000400308      0 SECTION LOCAL  DEFAULT        8 
-   14: 0000000000400328      0 SECTION LOCAL  DEFAULT        9 
-   15: 0000000000400340      0 SECTION LOCAL  DEFAULT       10 
-   16: 0000000000400358      0 SECTION LOCAL  DEFAULT       11 
-   17: 0000000000400370      0 SECTION LOCAL  DEFAULT       12 
-   18: 0000000000400390      0 SECTION LOCAL  DEFAULT       13 
-   19: 00000000004005b8      0 SECTION LOCAL  DEFAULT       14 
-   20: 00000000004005c8      0 SECTION LOCAL  DEFAULT       15 
-   21: 00000000004005d8      0 SECTION LOCAL  DEFAULT       16 
-   22: 0000000000400610      0 SECTION LOCAL  DEFAULT       17 
-   23: 00000000006006d0      0 SECTION LOCAL  DEFAULT       18 
-   24: 00000000006006e0      0 SECTION LOCAL  DEFAULT       19 
-   25: 00000000006006f0      0 SECTION LOCAL  DEFAULT       20 
-   26: 00000000006006f8      0 SECTION LOCAL  DEFAULT       21 
-   27: 0000000000600888      0 SECTION LOCAL  DEFAULT       22 
-   28: 0000000000600890      0 SECTION LOCAL  DEFAULT       23 
-   29: 00000000006008b0      0 SECTION LOCAL  DEFAULT       24 
-   30: 00000000006008c0      0 SECTION LOCAL  DEFAULT       25 
-   31: 0000000000400390      0 FUNC    GLOBAL DEFAULT       13 _start
-   32: 00000000004004aa     44 FUNC    GLOBAL DEFAULT       13 bar
-   33: 00000000004005b8      0 FUNC    GLOBAL DEFAULT       14 _fini
-   34: 0000000000400358      0 FUNC    GLOBAL DEFAULT       11 _init
+    1: 0000000000000710      0 FUNC    LOCAL  DEFAULT       13 deregister_tm_clones
+    2: 0000000000000740      0 FUNC    LOCAL  DEFAULT       13 register_tm_clones
+    3: 0000000000000780      0 FUNC    LOCAL  DEFAULT       13 __do_global_dtors_aux
+    4: 0000000000200dd8      0 OBJECT  LOCAL  DEFAULT       19 __do_global_dtors_aux_fini_array_entry
+    5: 00000000000007c0      0 FUNC    LOCAL  DEFAULT       13 frame_dummy
+    6: 0000000000200dd0      0 OBJECT  LOCAL  DEFAULT       18 __frame_dummy_init_array_entry
+    7: 0000000000000814     20 FUNC    LOCAL  DEFAULT       13 foo
+    8: 0000000000200dd8      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_end
+    9: 0000000000200dd0      0 NOTYPE  LOCAL  DEFAULT       18 __init_array_start
+   10: 0000000000000238      0 SECTION LOCAL  DEFAULT        1 
+   11: 0000000000000254      0 SECTION LOCAL  DEFAULT        2 
+   12: 0000000000000274      0 SECTION LOCAL  DEFAULT        3 
+   13: 0000000000000298      0 SECTION LOCAL  DEFAULT        4 
+   14: 00000000000002d8      0 SECTION LOCAL  DEFAULT        5 
+   15: 0000000000000428      0 SECTION LOCAL  DEFAULT        6 
+   16: 00000000000004f2      0 SECTION LOCAL  DEFAULT        7 
+   17: 0000000000000510      0 SECTION LOCAL  DEFAULT        8 
+   18: 0000000000000530      0 SECTION LOCAL  DEFAULT        9 
+   19: 0000000000000638      0 SECTION LOCAL  DEFAULT       10 
+   20: 0000000000000680      0 SECTION LOCAL  DEFAULT       11 
+   21: 00000000000006a0      0 SECTION LOCAL  DEFAULT       12 
+   22: 00000000000006e0      0 SECTION LOCAL  DEFAULT       13 
+   23: 00000000000008f4      0 SECTION LOCAL  DEFAULT       14 
+   24: 0000000000000900      0 SECTION LOCAL  DEFAULT       15 
+   25: 0000000000000904      0 SECTION LOCAL  DEFAULT       16 
+   26: 0000000000000948      0 SECTION LOCAL  DEFAULT       17 
+   27: 0000000000200dd0      0 SECTION LOCAL  DEFAULT       18 
+   28: 0000000000200dd8      0 SECTION LOCAL  DEFAULT       19 
+   29: 0000000000200de0      0 SECTION LOCAL  DEFAULT       20 
+   30: 0000000000200de8      0 SECTION LOCAL  DEFAULT       21 
+   31: 0000000000200df0      0 SECTION LOCAL  DEFAULT       22 
+   32: 0000000000200fc0      0 SECTION LOCAL  DEFAULT       23 
+   33: 0000000000201000      0 SECTION LOCAL  DEFAULT       24 
+   34: 0000000000201030      0 SECTION LOCAL  DEFAULT       25 
+   35: 000000000020103c      0 SECTION LOCAL  DEFAULT       26 
+   36: 0000000000000828     44 FUNC    GLOBAL DEFAULT       13 bar
+   37: 00000000000008f4      0 FUNC    GLOBAL DEFAULT       14 _fini
+   38: 00000000000006e0      0 FUNC    GLOBAL DEFAULT       13 _start
+   39: 0000000000000680      0 FUNC    GLOBAL DEFAULT       11 _init
 EOF
 
 cat testfile.dynsym.in testfile.symtab.in \
diff --git a/tests/testfilebazdbg_pl.bz2 b/tests/testfilebazdbg_pl.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..9e06a806be86f6f942569dd48b5834c67a7721f6
GIT binary patch
literal 2589
zcmcJO`9Bkm1I9PU+!=;3$C#UGwE0A;xu-Vg<PNzuM=?k0(_y2b+|h at R<i3V7M6UWI
z$H*~98ghrqSs at +x`X|2cAD-9ic|Fe$&o7Uu8_7`5#8u7Fbu4eF7a;iS=$OO9!=s~X
zM?dy{9GktPYwzaF_Y#Ee9v$8~ymPcQ&wm8HVDP#OSd$lk2idv#kjSO6$>jvco^rIU
zaxRtOx62n#A15!LwW{1nvo9IHVN1||La=qj2&ajk!hv=)fQdJ$Ux0;dz)kE}5O>g7
zt5WfDbD*sy-JFzCRE|q?w6$+c0qlyPNdQ>@Kt=>`3>sJ-3;Y5A01NeHcmN{$09KbD
z34jLll at PeG$2qWY41vIc;s~<PSYSF^Ru&YC_5=Jsnm}b!IB~C>7HUf{uADL(XR*m8
z2!aT(5Lnn(g22iOr^o`(pxEP0Yyjz4PxuW6ez>yWzxQ+Zn$51Ldt3x`$<2sb>Yb~<
z{RWNz3+KX2EIhs->0<swyI2~Y=I+6(&f_H`St%z34kB=Lr9l#pC0fh|rjw8>0Wy(|
zl>ssEMs&E?OWESruw_#-WGParxt8S=Zmmak4C}Z9%yep>qK9NV1g|Ok^A9R(!jRmq
zL{&)AWwKko?AbefgW{rMqAa^Bg>Ax7WMPdDUGZV1ofwF{wU<J#6{E&w%4{<wn}1Si
z>QjS0a+4E2>8x*<6|M5kTN)fc_CX)dVevtGT!tZf7e7Lm!2MKZet26N4df-GZ+#ya
zfAxkCM?yjJ1;X%jzD4uwg6zeJi@!(#@<~CW at Xfbf-D5+#1=d at NhV_OGg0Ew`vc at L7
zU*i#2jeCMvnbI1 at s3{RC%+CGB6{myS8Q6_iQjUtIv)<0=W;bww*hZVenXwP~vzmSG
z{Zg~bMt-y85PXS1$y^$*U(0$f<8wo&+d>h1Ao<DGk@$gSVm?On;fnLQ<y-sP2W<tH
zbP@`<`dsat8B_gque)Mf&$r)J&`OM~Tv5pscZrc;3=)m}cj?6s9aGq82=y|FHZ;;a
zQIKMm)JdD6&pXdB>1g-&_)4~kUWcn>pmOjq!W*Z-PAC0q$_0g+hJZQ6Gc~vOR%|v<
z%VO3})~q6rOBk){tg;ghVQWzqVd*kW^yy`eiW`Yg2(#9WiG7aH)G*I^p_f=&npB4q
zb2rsN3yBg0lp=h^aSIP6>9M>FFt5-1#!5)xDwX at psZQ5-)l}{9<!aZK$yy<GgQ1lG
z%V$jr4T_neC|@%(G85%XXv(u at qB#a*p~++!rRqU)4BpWM9Uy2bgx8_^ff)=S?>7}2
zI&>#e`#kSs9JtAj{{l$KoS~tYsB9)_Ca$UB`p_?U_!A8ur&ddxHGe(0YMBZyu0?ap
z3esUE!mp}3B5w2jLs^c8a+}YRHjBuzx+(I~``G4^(@mgJTza_qVK_aR5z%<<5n+I=
zhNB5jg3N~&HD&NZ(F at +le<NC4qOJ0{JmaiYm(}jkhebQ7HwXDo>baeLF}KeJ&cxJ6
z`5wf_u}R{GHq0~rjpd#K04#18tVSf_7#ZC5;EYd;IeqNHer_4f=J%|Ln48-AA2sVU
z8b{CGZ5;o{ITaGrL at _|sU6L#o4(t}z<mzmxyMf9bU}e;FLZx2CEnHP)mxRaF`Y=ft
zZL^S8X|7Bt=9!X)h8qA4L1|camf8HSz%8oL(wRKg1q930w4S~LOh8Nb=wbInABhhh
ztOASGH8CXx<2In&grrs}V>yrZsM&->xWJ10WD(34`>3O|N?+7 at ta~nLb&e8fBR2+%
zd7WkTgjr5tIC=DHzM)^Rfm9gg&BU4hS?(s^8Ir~lef)k*Qlg9$CqF#xO4}~KujQ!2
z6CyJJnT3oSEX{c;kIHl={D;}As(T<+DVE%E8Pk^PJ_Tub5Nk?VtMkRkDX>@~8B56N
zhjs%UUqc2##UH(w_89dgWuw9hYmXi|T2^bTq0#lDvnpuUpnbo(1T~rtFYaB``b0m~
zu~y_XJ_uw6HC%C}T9!E3C)zCsheRgH(*~Oc;2UeMl{Vr%+uxs98F4?tvBsO4G8q2D
zPSc3<M5_%?k8?Ryp1D8cp+BdVn!#Tx8mdyIJq7FwOF*Z at DHQ!0PQDLB#nLG^Kzj+`
z;LRf{FQ%Gei0j~^X3d|d-F)dk|BmxB=(<&a#q>gtG<BY>W)w at zwyW<MI($|eVKE}~
zEtoqQ)DUgLabq%Xn at i)nmA-SO8-Vpn8)aD1By8!J-$l at tw{7P2EG1xt0Q~4(t5TY^
z6m7CJ=KOdyR9!GUqxI_I)-`G<?&O0)2dRC>>02%f+h+BvbuKn7_YH=S%-xbT%ID9m
zdPRfwp0j`Pg5JvA+K<eSMvO-=7CJjAU8i}t3!f_9f?&fUt=?{}!Gse3d?hioHg)b5
zwkz62I<FJ|OkBayjSU*^Y~mB;tLK<s`PeKAc1ZB7p|5*_wssVRg33~Q8^I$7`-d-N
zX#Fp{Zma#Y at Jnj9TpjkPJKdl^9PR?CcIca2H+j-I%8n;z3W?xXkapH;|0{@-b33iR
z`=ssZzGrha11D08SIU9%B7#1*RTbr?d5p_4m4J23k1t5X&o_`-iM?JbX-d_T&)q(_
z=Qe1Ju<Cde+FN*>T4CXB_w8HIl{}T(ed$z{BtRlgttEr$QIS!uGr`gqTp#Gzfht!$
z5MIxzmgKplV!&4<kt;+gH<3DHBga$H`H~A-=-FqVgMEtHNSEqucCZY4Up88MbD&#U
zvaUWJhNbBXw+@*Mo5I~-mkkhb#@-xin!b$WanZy;bJatuZS>w>?S+uBYQ_WUzKiuS
z>y4=MX}_ws0YCk7kOmDuDEU$+l3zNbb|iJOgRn9BY1-LZce5N+f}P%UcU1*BNH~T3
zw{NTyF96o-fxo&CsueJUL8iQ;Hscre6f+p;dw_Z?=IAe1 at iM2dU9hLirxH!oM+Zo4
zY9}pY3OE7`uRPp{5^6!=Q%4NFR?ZOo&J|5$g})DedfBVt>#!qV_et+Pfx$x$CfWM8
z1Pq6_OgN8<Y1>$&M4FIK%0 at d#D8cZ(4u0D=`L25fb(uq+i_t_#apsO9v$9uI8OaTC
zHx3%(ew6(eq2gpN?$!S{=vDs#1wCSUp}6?M@#(9oh!sh9+Vk+=|Max~KEawOV2uU3
zJo5~6lK$QLMO(XJU)|q$(DG?$g}a$(<o5-2T~f`9=#ER-S9DKVxT7~J{wDqr5#Oxq
zSBa`{8oyEtCX)30*gYvacb|^6g9l|FW6ixTIw!PGep#Izy1vky`-bHwa_;`m8!~|=
z)dMf5r5^{)OXY7OAoP{__|f2#E%(o&I1Y;p^|ptKcbTc#E_pLXhk at 4uj~=urKi0sJ
J2UmS#{|9Rol at b5|

literal 0
HcmV?d00001

diff --git a/tests/testfilebazmdb.bz2 b/tests/testfilebazmdb.bz2
index c486365c29897620500da97b570df091d009daf4..561eca117439a8f6a88afdbfc74c026639fc9645 100755
GIT binary patch
literal 3313
zcmV<N3=Z=`T4*^jL0KkKSz8gCzW at j{|NsC0|NsC0|L_0*|NsC0|NsC0|NsC0|NsC0
z|NsC0fB)bKKX^XOiYUsqz1_E+-tAuFS#!HL*lP6pB7$h9)bP~Q^q6TLnM^d&Xwyv?
z)XAevm?qTIMw&298fY2~15Gq!44P!glOslfiKb6PF{zUiG=Lf!Z4+u5Xwj3 at Xc`$k
zA?Y;8L{eawnKZ<jWWkbpCeTbwPf>=6rkZKAnrQM(Fw$wGOom397!ynp=`&N%fYGLm
zhC!gv4LwZM4KfWG0MG_ZgGPpcX^{W`00000&}f(d00000044wc0000c00A;#FiZdd
z04C4?007Vc15+Ro6CtLWH8-TvPfVj~c&3MlG}L6#>Ul<tfrxsKQ%wedXb(^T&;!Dr
zk)urkpa-N3nmrHz8UXbJO#!BW00E$CWSXX<G}QEH%6_TpG6NtUri~t;88iW)8X5yY
z13+jr27np>13{nw0iXZ at pwQ4X4^SF<hJ!!=03=cosis7pr{q%&2-=SV1j(nVkYZ at l
zK=lA<$%GmW8Z;UMOo6AUG#gOSk)Q^Qf$0Ef&}0Ar001-q88i&EPY&y=Haqpd4Ks&%
zx_cGBFh at 2pRTQf0TB?oFb!@A<gM*mnJ&#KYrUwT!>4{1;5*S4h8^Mu*G=miA6p)w4
zjzLRX5=Kg4u>7doI;p~74Y>|9w=KI-zJdzpha~8|3%WH&ja at 3OXn8{msM>X9Tt|!&
z#AOL$6L}hrLDouIwr4jO#zw_>)#+Po5|V|$<d``I+09EN?iKG855^QH1ni8*N;e%d
zXQ7ZViL+`|V*;IJOFAf<OSe-1l*TZVBRQrLfI?iz>>?p!DM?_}`E6Th)PQCBAP6ph
zy+j_@<uxzYo6TjM$v?hn=gq^Gfd~NG-eBF>qfAUm0i9w*l<yIRficSRcj;0Pqmwmn
ze5t9L+EXVuKp_u~_ZZ?MowjaPG9Z~}Ek3scF;Zg5G>}>0Fw^If0Ln_y>2{U*1t#|n
z=Lv97n6)FGN4#bx#+}f&;B|$v<Eo!fXt#<rP13`^c4nGu1tjZb;$|j7+0a&$8Wot~
zi5ebQ!w3WbE=WicuW15NFb2?!3mY3jkYXZWn?PS+6XG at qpa_Yjni+D?O41~02 at 5L0
zURW)Wh+JC)D`diJ5U}Z`QDFp7VgC%>aM}C39O_oR&beAF8$0%l3<vdD_#n|$K8R8j
zS6m(~Sv&KrVT3%9H~|32LJ%0|I#(B7QnKw;4Ss$WboC?=L4--7_RO;ghOJpNVZtz*
zBrzWML#~8Q7isl#U1rg`V at Dxs&_yf}HIg-9CSM&*Ac}ShCN1Td0m+|&$Fxv4YiyKh
zW%7gt!spxa<c0-W(uJvHj<JeVdx$bb1kws5ky*@4YD-rIVxD(o3F&2kjN?Fy$7-O0
zd+T&i5vXE~q*bt2##S<;)P at 5Y07&iFVp`0wFTd;rWqa5QyU#%@mVsOASjw$=Mo}UH
z1XzdzWN|V8byqgC<Fqhia?0Ff9qI2i?VgizbYe0ENrJLXk)I&aeObzxvIIlSO^Nlw
zl3<7u23;%Y)`>+ejdEx3=!v5yFCi*0$ps*QW+BNOKTgFUFv1PlkT;=VIujdu3F-|p
zFmc;V3TTT==3z at Mf3ac6YCIp3m-&O4*=qHNFI_jmAzGVuD2ug<MXZ4m;`FFVNNGGS
z4;X4;B0-bu5=cbNjt?@kP0RwxfVyT1InePt`#N&d7pKE;Sgj3IW1&Da%K<W3uyAB1
zniAzH8ylD9{&UnLJFVk(H&IV^T(lH9&&6DSgf!DBX=o-xKp+CJl0qb-;R*%48B|eT
zFeO4>6I62-iivxBQ4C!sAdy(pG3#;6AdBl4rE3cAN>ioJJ`|=h-1`*pI+xjYL^IjU
zc0$3jbQn}S`>@)9c`m0_RZ9l5dDYr$VJb|nu7KSTTS80D9)^D`&J#lhccVs#j6}p6
zLGX>>!x4#%u&Hb%4TaQ-ERA(+77G(<;zSdPF{lm<L at 2cB!Y6TX&a7(%5rmRV$pjoM
zX-z9}SDa#Gol7uPL)$Sz!9+h~8bQh|^e?&C;(36Lckq8IP^j;Ul`Zj;AxJZUB?Bk)
zB|!F!7*wG~enD)hdUDyYi_C%E+T+7{7i<dd4&7T^aa>N4&V~DvlIO6~4 at r=_*E2Vz
zf>Jc2V!y^fz_Y;bAux#r!gD3mHG$H at 3i3G2O;#`yq~_cz9UIZOK~#!ejhR!D-wN|0
zT$o5ZQqRdSuAS&$=*m&r&Qsc^GHSrmF)^bCykH%~i9Tt*J(MC`et3f!#>W$Q=I5fv
zLe7CdO~rtSKpy{RY>{}HaQC6|^HL#rhtZXtrK;pY+`7 at T2nMLAB!Q%NPggon%e+eK
z{RCl=Ij2Ihcr832#sx%TtNop}WAoFmA_DdLS at x9(t|hL{2`T8<26?YcTMZ at i`YSvw
zKQUf8a%dIgzeYx$`bc;n+IkN8Bv~|=!eG>b-;$08wlf<;G*A`7USMjOsO>4 at 7dZ5L
zgdgw4tVaK%OIAz|^0lU4u5lHsnSO-9GC;Ip7U*mhJu8S-lJ{_O5BpNzWr#sF=t*T8
z;YqDw_v1I`K$zDmq5?D+!NYH81%d4V!us^kfuQ3`TdiL_b}WjS>E=ddIF=`*>RymB
zWTG*gisY%RQx=7zOpe`|s_n?h%LDTY at Z2s;1RD76LHT4xhOQ=s_0_EKd^p4aL%Al1
z2IygC8aS>AF)=|?SxcdW?G|G_Leo{!?-Zy8P<o!a81dWPEr&#nRzJT$VCSwT+Uz1+
zUD7~%MO6b3c$!^PpzbzVl%kpxVd`=fP*c;QUA45)ZJw9m%sk0ZqNKo{^^|dzkQS(r
z{QfLJ2?=@@Sm9z~-v at 8jBpRIo5eRi_zRFQ-G8ozVT<%u2f}sT>NCMAESulnpgBri$
z@^~d1NPznRrc=WJFkoc{GXR7|gxp5+-K&pyn=Zp*ULNY^tq9#g)ES?M6{po!4DoYO
zPdX<K?0TB!tquKUWqvzX$i3JoB~)n%LMj4*!YAfz$lBVmHIYbPY>7>XlOwC3elq0k
zv$dbTI~R(*T~-jf5Q?D?y^LyRj~S}@cH6|e=kceEr=L(V{zX!+N_B0uA{r0pBYfa2
zVK}L-VSD;w>@2bP_)_=^QUO{_L?~!9Q95E#<JkXEQ2TfEkU|28Kq4$CgQmHB)32yF
z5b6@=?$%o!d<_x<?JY_rsH?H$v;#r(fCj?sgLn?K1D(H+RWp=As)x42aPI>#iRCUK
zJ_kjNrqB3njPARhj_H?iKwcUxFsjx3C<<Vn>a9~*;|{8V0uUVr0{S~Sn7hKF3n699
zF;dew$G%dw%_6 at w%RFQ-Wl)_WF at tn#@_hV<8(-8O5!@01IEUAQ!Q?eQysBDgKN<xk
zMiMr$zD1OiQ?hT`rt3ohU{M04ajsdM)Zb}^2sem8v$3)@=^reRS4VPYwEjw`)GnR}
zTemJE^Q~qYb+nO7&@|8pN2+gkDHDGIS494$`ra_jYqKrV={@q2LsMntregASi4PcT
zNk+E|UqHl)`AmB>{GAWXh6Hm(ibJXC623_1CZr at Fc}+=|{k5km=eUfMwXi540Hp&>
zNT|wgCHeURj#vu^sMur$2}-^Xrko~1uqwM3%Q%lC(0yl-dYusY9JQdpemRg*J}Itm
zNeK;@QToMglCLyOc^Y at 5XIxJ~#Zg|&M3?cO0sjB7GiN=%mv54gO*jpL!j at nP8_2;T
zW<DS(0%6ETB~^Q8U-{jd#V#C(9-itrfW2-jD{w`~x<o}=^*u>+sWACi7#7E{H~Qrn
zjqG`uFT@^JEc at i*xpe2=%+aZMw{5oReo+BkprydT3<8t|(d-4;e}<dh6n$>_<w9-<
zX+5d}U?CRrNjBQ?BB#`Df4XbwDC)BL0a3FMAOmQ(wM`YnwaL4!vq6Z_T|Zkxi?*WE
z&N{)Eq0Cv_L%f`7<fe>3Wvd!DA}1N|9LR=chlIW%x0$JAH_nB^!Hw>E6(QPgBZ&|n
z{?envq{t4TJT(f;Mig9Tk-{W!&yEfa=zhzD_7;SuNeHK>SwzLPs3~=zr`WZK6aMXr
zf>`BBl_Sr%+OD*qGsgIpiX|^YSvzQpUwYwfiK()tj>#FiVR6 at H_4yt9WiksG@y3lh
z>WjtLhixRq9%*_%B?VA!$9XQeY31D&BXUrnU#3}E0fS!~7;gQ+N9J_Mw`L_7PwFO_
z56y<l3v>hlM55BG5-Gz|DIsKAv10mK at 4V(+8>2(l9Uy`TWI$qV7(I+*2$vuP^CEYc
vaxjGgEIAl75+jo+QHvQU%?S9(v(HDfe1?{hmVQ>ANB%D4ig2MIwj(!wy^rq<

literal 3259
zcmV;s3`FxnT4*^jL0KkKS!f52Yyb!)|NsC0|NsC0|NsC0|NsC0|NsC0|NsB?|NsC0
z|Nj5~|Nr0!|9Ccf9TfQcPW9H`d0l6Bt*q~Q)G2oQBAFm2Q^}(yrZqOB8k<P<Hlqfk
zCKF8z)X)Zjp`+9d4Gh$10j7f{frvEGp`%QiWXZJ#nKaWTYG at l!(TR}LA?Xb^p_5Nj
z0tlz1l>IalMyH`3recj5l=P2L>OD0Eo>SB`$)iS^9-5C(dNhZoqd}nb)G&YzGynh^
z4H_CW83B_(0MHnKG|<QffuPVL6llaI(A7MfNvWA9sp>I`c_)%&HlQ>O2AXI99*6)m
z003!|)HG?J0iXcUwE^k?02&5>XblYj000K2Au&x9(-YEWrfO-l%4#>Mi3g}Wrj0hH
zni_h5G|<QZ42=P!5DaLV4 at r<>0MG*<XlV5f0ilFw8e#y^plHYqFp23Yq)$od8&RMD
z0A`7yp{76#gVY)tWHB_s13<(y(+Fq*lOslhAO?dVG7U5u4FJ)Q(?da%0ssbqgo-Jq
zlOYWZQ^d**rc>0~jA{m+r<7@<)G{>5ri~g5L6M>A8Ug7v^%^vKfu>CcjDP{^0qOt%
z8fX9j0000q0_HCm at U<2C{pSNW(#}JZqq13M2+)ib`ktb-tPID4bquJi25xJb_PrWa
zuyAmQ>WOPLlA1*{jo`?@z7R)25F_NtAht26MoVe5^s+Yv%n1P&AUM)2Hw#SpP@?eU
zJI}ev-j^miH1pV}l!*?ei073OIs#aYVpx!GBU#=K|4zl%!S10HQQt1?QIT096mAAU
zuLjwzNi>%BFA|?Tq#P#N-rY`aI+&|e*ffeMm(|(9ZnUVISy>fE`BDNTW)R5EVT4d2
zF83v*L at BXFNiNWQq`DY#Kn5$p5CR5~-pe>n+%H{MYazo?D1i4v1l9@}z=8k=Sz89`
zj1>_z2_j_ojK#o_%JVjJk`SgzcX_SS(#qOXXShHi4}!X2;!K}!kFk*i+bPsFc!{e9
z#h7Uzve>)`>RJG<pQfOUD~>a>+&e4+jZ{Fb42*_JSw;!r=MvJE-bAGc(1Jl&swv_w
zr4zq-xmjT#@9?pw_9Kz0p)GX#7cPcK8Md at J=o45VG0g}PuxSEOU=4|28d#P#HVBIZ
z+5-;&qlr-%0wU788bsde2@)|03pl}H7%KK5T(CmiQwhvMw at oa~j1fq~mj8$u4WFXS
zbNlRMlMh9C%--#F5Y1+v+VgORa&zfKvYU(LCoczdb`3D8#R64m0ze>ega$eepG#GB
zQ&)k83Xax&8j=X4VHM|OA{bV#SV%NZ7!t-9-*ZL%LM|0^>E(4cyOvaP8#6%}&_t|}
zt#(c$Ekz)T3=~+hjKvR3*7DIve9#tmG(jxhb9VVHj)My%Qx?Kjd8=G}3 at u0sq6;J<
zw3d<7TR1Lb&ypZTp&+4`AfXqjprHDmq6u>^$YL~%4b`Mqvm(l0P7$_(K(5#pf9wD+
zm;rgKV<=El3SuBYjl2P}WLRWHEG@*mfKfmd5r(Vb%WxPhOV619b(3DK?hGnHpIFj!
zs}x;YAPSH(it9p&G5~@LTAlJ-y5O2URMlR9D~nkc5>zr;fe?b8N=o_($Yc6c>9qtb
zgDG<aY^8A_TUG#)WkG}jR74dmFaYskYS20;(@`R*R_muk|Lw0_X7>RRToTaaND`Da
zK$Z3|rh)<~LBySIs?z%#sN%D^_<9<88FpwnTl<K847&XxPu##U3<YzhfGH=!ku|ZP
zMajtDHkTuSC=dWPDRG9KAdo<ZNKs~-I8yn17ZQH|1sd~&8WNo3s~(%v=$x}Y)xl-D
zJ(jIF?tmv0Cr*t*2Y^1bN-LXqmAVW1n`za6%z%4A7 at rg{v-+$|sZ1f&>oHY#8$?yd
zUrFc}g^ACgSIYaF^|fEEpG~yd=~)OFh=ZbBlN>gQ2fuQQ6HH^!fH*v?8BZplvpGx3
zJs#RwFoJfO2F>T~u*z|kR*|uQul#T6*|K06JhR at iQxq}AdrmUnXJJ)_D62LnYPAY`
zlUKdq>=ziPA|RYo8i3%$LYb#LBKQqMD at Ls20xl+Gq7~~jN!f4jdwvr|OQ3To{~IbC
z24?#&a=E)n1EKG7CD%5)p2Ni0iG>#Uet$6>4B)ufG)UoBA>EDzx)zgZI;OVhhh6w9
zourwb%Q=UId%QNV-f};+)~pX#FIP#n-F-PO{C&lBgEDu}N at Gf67A9c>SY~Uxgws{S
z((#4dpG~I*a)T5JBkQL)$v at C`NW)p66ikk*R`G~8#mm`Z0w&=3%O++K^aW?+ls_S2
zh5)N606>eG?s1N2GO_ei8+S28hDoMJ>8nVd+@#A8T_QLmE;MD%;O6s2EI&sxAXt8M
z1V|{}#6hds%%6myCXY5i1+wMskjFN{o3;8hEb=mzbK?WESX~GgAa>XJyF7x+Tl!X3
z^q_LKAzeJLtI>Xdhq?)>Mx&Br8sK{ba7Lna^V4mXgn*p at S~d>KDeP0w9svWl6jOzW
zu`Gc$VLAhQUXI$WT9+aGJ#+b*8g!~xId7~sV|^uWjAfPFsEF7oS4BLNk_iAha>_xo
z{6(*p`Z#{ojMXQGFWdxxly6{jL8-5ee15QjqDQ?x?VvRS!8LlvFQx<l${2%-!2;gp
zjS>AnUDF3{^Ye3oo<`5j-5oZ at KNEUpk9}`(+U{F-FBHtSHrsTTSWmd1MeL)4HVBTx
z4wxPzXR+(qS0!Z&iIIT<t}yfh>jYt7oh0BD#}YCOwU|;iPU)o9d3qqy4^HyKzM+pD
z_?W4uZs?j?ThV_$WlgTr;nsc_NChOOj+#VDERs{OLl+dVU^%Hca at a5t@$vA%YLHpI
zs1nXIgvfvr{l{lBP+-*u>txW at O;nv_0VooZ3Sn7`6CB3xqq at a+NDZ)zh=>2LW at 8Da
zxVEy~e5`U$T|q6VhN)NpI@`I17-V!D6F{>P)7o}fNT9$DC_xszWJ>{nLQ=U~r8X5k
zM(e)#<&yVPNz&o1i(}NPy=GHt#o>rUT&Ps_Ra1=tp3y~_YMt_1#V6>&tRn9^^@XWb
zVSwHgU!9_Z$y|kaMhX+dg>fckij4m@%sxw<xY6lz80(7awP;`nM*OWA9b{ut<m#qp
z|G1N7o(v+v5 at 9hBh)SvgP43)GGM8#Zz;iT*=GKxi%eQIK8klQD1C2mQ#FPjl%Rvym
z at SH4SwdI%sEEs at m(M`%8 at kmm>fYs<ySC^}6r98GF&PbUHkOlxhh1+Gb+x|;~RGRgK
zkli6$i)ipjQB9b25DG5^b||Y)Nj{aKI3N$$lvGQ|JRQ;J*-Rxo0YWySp(j_u*1S^F
zM!%qa5djn_uPQJ3L!mKMG9GZy1^^=mOQo>$?({fUsqixLOjN3%*hHzxlk0PM3~wDt
z0gtzh3I&<-VJAKL?@~<NWlCj0#K9=ndWgNBd0su#x86w?fsNWn$KF)!-}PqR(kqL3
z at qM5$Z-t+UK`(O|RR=dK at V>8<g#>J;SSedig|MEfp{8mzXqF27^HC7Dw004qiSzB6
zV8d4 at 4=*7o#Z+ZHiT_ufB>M*U3Yb0nmXK^Is^nt&jp2EUArrV|<0EWiT|$qp`?jqy
z?+p%el@~{Zq`lEJ at kbO`*n7~_a_wnXx4Yw--oJLTl`wJH!ihvVk1P9e*~fUIILs?=
zD#6f;?7i2j9;W$NErNpJkaAom##kc6&TchbB*CPRXejh$D=B{^fy}7SYDXuBD_qi-
zux0_0B{$*c2*B3Zw7q+w+np_?b56*mL^+CO at 5q7l3WHz_1V|$$v&G#dQZb}1_OZZ&
z^G}pr_xM%nn4ZANek#tqLrEf$Rr*_fr`uNL+1ON}8#xFAB&xp~N$fMjd$}*_%C(8(
z`L8fA(F%V5s#zjMIAuxE!t`3TmThhn<FQ$kl#>ta6>dzt$igAi|Bq%>a<`ssIqmxw
z({xcxzy$=tfY~&Hp}I*eQ3=e*KQ%bdIFb;q6{_5mCGX;jXpAv|T#U=Hf)G_mHgY@@
zPkFUCa0=mTZ~+gHv16mWQ&C#vr|l3VB<iBXvz1Dqqtie$s5}rbRI at r%Mm=CnuBZlm
z4R$3J9R<M!5vLpklq-mh&{a#A@%|Gfc;Y5Q4AM*+86(Zi>Jj7fs|7w?&V_1_|1kjq
z3D*_L&+&Qq+7E43s;V;GJ>46v- at 6Qs#bc=e(RebTA~2!{F$p-phVVuG2#p=Fk|0P>
tfPDr=fR6HRVx>`q4A6$10_M!qGV6Rqbo<Aj&AR`Kxgwk>NHhb-HUMJM<O~1+

diff --git a/tests/testfilebazmin.bz2 b/tests/testfilebazmin.bz2
index f7286d62cab8a93864e421f9994c168875940f8b..12bcc6b5f8388b71aca0b24360e24208ba23f0a6 100755
GIT binary patch
literal 3323
zcmV<X3<UE+T4*^jL0KkKS;3GB(f|k&fB*mg|NsC0|L_0*|NsC0|NsC0|NsC0|NsC0
z|NsC0fB)bKA9yxsA3`R3?)STV`PhB0wr+c^LF;MsMKVmJeyOk~Q&aUlG|{Q*Fpox2
zsqHEHlNz6>^%+l7+J>go@}AP3iRnEfO&WTJ$~J;M4KW^3rb1-eX|+v?eu^Kc(W$ha
zo~fpuk+hztv{Up+`hgmHpQ=Ap^*uBmg)`D==|UnP(w@}QN$5`^Xl*0ZJdGnw9;QL!
zLr+PvfH48(8ZepzMvQ3(pq^3cGeQ`E^#+4RgHKSxXaSHKG#UUj0iZM*Gz3#YG}2Gd
zqcmYnw5NqVM$~$l8hKAd)Ac~e0Bu7}2dK!<8W{n#05kwSKn8#V(mf`CdW=V?X`^Zl
z00vDOXaEL)8VH#a5JYK|@d=tE5PF(uCeVxk28{wV!g at v~K*oVE00000089y{m>K|>
zjD`T38KE!@35I|G4K$HVnrdn4G&IOG02*Wf0qO%l00000007Vc05lB%01XU)00001
zkN^Mx00fFcPeci$YGO|*=`fx{LTQsBiIX9xsiSH%85(++nlxlI27vVd^o<6OMD;W@
z00ThNKn)sb$)Ese0j7-xfCeBLsGcR>Dla$e?3stoPOn)O2(=h0I(hYNQ%3Gidneri
z!c at X#O(~<OT39eJMC&98m=TT=SP+l|V1iJ#P;fggod_X at 5^*6yNhSKZMMPK~pjCht
zM^$QODVJ?SWEOIY{(gt3bmTYEOc{}FwY^bE3^6G%ehwfXgJj5(3LvE)Fp3)0CX~44
z2lSOfS4la=#z2GyAd?9vZYHxT$UA0GTPC4=Fjn}MQEHJgT1bkcWDzXV>ChoZ$EF2V
zEC8E89E6HAfaU=Q at LeQLEct_}`{Y)^jE!)I;}`&e81eYg7FcgCzfR*ib(|ze>e8eI
zkU&8I14#-o3oHm`lLUazF(OJAiQHgJa=fMbRD>wx=JU6DT3QCunK{A%2z=LA#}ORt
zM)7))1k2>KJ3I`<J&PvLg875;qSde~53{-{RyX4ll-<mJY&7tKrX?aJX0k at P3l^?=
z<*KYYjGRaXdOgVrrU82ynFkxVLcZs$-zsNNR?=6w*0Mn28jjbOh)4`;LIkUr0#Yyr
z(2N5cYzsCbCJC?$>wr-}sfqxInq1J$D?uwrk%&lHmJ4ZMs+fhEVg+QFP&5k?n6FN~
zqK$|AGaZHMvbOnXq>{$MKBouM%q^{@(Df5$+uf$q6z;OmEq24(Os<&(rnR(zIAkFR
z40D|Q1y3zeRdI#Ni*TJpq<~Si5@@Yw7{Vc|%P0mMGed^e?1oSDtSbiYP~g}om1PC0
z5kMH>P(BdZ6H|GyzOW#4K}5xmW&CnzV6sgVMV31!8eDe{Kv{gn2D=Jp?-E3$jz+r4
zk;g}4I|{<+$lOigDq^CahLn$Jn+&5H?`43D;{g?Y%7O|f*!B<+r(%tyT-YnaDj7-a
zLjR0_Bxu-TnzUe8f3Ojm at Zc>begJ7$3!&Muml|amPDGRlo~Q(dm_mRv at zD<2g%j{g
zmn5_l!WivL3-c`z>MYQWvT0cLm0k+5dM~ZKe*}*qfihTj*r1S5WLX8BYN(LT>K+fo
zc`y&|-3B(H{SFlZsCrX*=+&?X7s0hs75Ghokv<Y)-J+CaVB at lw6JjhgnYApn-sOKK
zr}6c(|I8H5*I}|boMb7BP1Ekz7n-Y{`m!u;sN!V6cleDKZ;`ZwlpO;pE;LRdYjM at x
zBzG)qC1 at 6bf{r5HPEpzjb=~L1Z>?vZAO+K)4Vk5qwGfbjD2#QX2A-H^XRcdQTlmv+
z(^1k3nH#&yT>38?Fw?<-0o)edgGQ7Sh)fUPN`zI^Q9`^xAFv$JH{}sBu;rFyV8!+j
zVpl?4cOZZe$M=bD?*delsZRFtBSwVM!ZxI^aB-&GK`DKRie_DcUUIX5Lp)f)F$r9H
zx)B#D^FG(BcbZ0FfgHX2=Q)(u$m0$RMpoYGX=7x;TfXj__Q*$PmeO_A`48_=XE`6$
zWEKY%x44l6;!G%@sR$NKP`m+#DkzN*DL!I`7Alk?9i?L at QIwZB4BtEWQxg5}>W6u(
zKEyquY!KL8GPi+hKke$z&=#eP^48b?Hd!Hh7h43}`x)cg1RjdI*=`~BLIYNbxH!86
z7f_2mgqEKdb8)b%!xt*?k*wU6!rbt{PaG<l5wa+a5R4%qnhGamZevyOGF>4W?bX^8
zKsZwn#e$r2Yq4)6R&sO^@k>2ESd4^Gd!Bu8iW*ihHkvCM-NG~IYq6!xSYB|OUNtsz
z?Ku`kRAH|e6ChP580}Td8CY3DpjRsM4yBHgfI=5dIae{VVh}=((X7tsw~?mmUE7l#
zP(^Km5?#>@VUR>(KD<CdoLWLaHU4|t-kjOx1!PAHFud at fA`)*|2S2zE08oqBe<G_M
zJX5YofbArNyV~^KjU9>sE_N<-f+D(Lq&5?W8K~dV%O?gSECHB`ev^RdC>R0))T5ms
zLbMP#P9PoFzG-2kIiuFtu*Cuo;$-ZdPW{dqn1W3uD0w^gn$5k1jiKp}7d9!CstB9R
z`JCz^$_{{nb2 at w(=r^oe$h_gfF!9x?Z;&~6fw0jjmM@`||6wbTfnp}Hh)#qcNKjpb
z0D17^7i(2E8jb}!r_gB-n&xr%>6AFg>E)?;l2FLh&Y<}%rCRn{nW)}sWE>^SyHs)t
z&W?+G{xQr5FgzzAqvx at nX*Wo_%ZNl6ErtXM$$6j_b!lMKnxH9hBO at mllH!cY${Le)
z8m#_4eHdlOsqCS_k2`R(9XT4Po8Y2hV|2r7>n(I}2 at ACy)*8*HB(o;!<H#9A0Mrj+
zmZDOmWXGPU50r!CCmkppI0D2m;xr>t0ZUB8-O0mIN~C*fwnKNf-2AwROF6bs>7%yA
zQ)};cUcW7i!<A~1l`JP)DF8$KP$f)x at 6dw8GA0QZkq=`)9B at HS1euyNG<Ew|zpABz
zZT{xfJK5YY6i7sZyJ&z-eQ{tV%7!^vVDKp^kQ6cBSSx3eFvPCB<bedhkOT^>jD-pw
zuWm-<)#%wpA$`3Pm%>b*!i at Z7%GqbCKYW%mcCD&dGT=fgL_+E at sh!o1tLMel%fNpc
zXv!KYL6`C>Ra&bor;yQXa(8*EF)|M1k~6x2(o588EuEHy>40hw4B3<fXs84m>Q|;Y
z=l7PNJZu2ai~`buEq`fGRt>rU)wf}$zr?*mC>oe_(NT at rSKC6KhzNwsKn{iZ+*Qp9
zLicTbP^~@pBkxDpUopPOa$yI$dK^UuQ*}QxdpmbsBWuJ0-bCu1yZ+i0jFOtsrry9g
z%g7Lc)GeoDxh!&?f`k=fhAj(e*Z9?KlFKHtb8zf<Ec7WIObw0G*JXM+4nn&^c?Wz*
z1mYiF2L-}veYsS#VEo7v)jT9^WOWHl&rvhP#z5B=1&l$&IQ^?gdViLQ7$^~u(MinJ
zLBsVP>SbtWm~~t(MyI0*f9CH|F13GV`p4WwFxp)?Hj5XUo_jCNua>*h^{7qrv}!+t
z=f4wFgKZwlqJB2jYsq(IO>JhTEy;as;~u5+lRpwZQFj`3C^5}es*lDoj*f<=e8!*j
z(V%Y1k>-tJI9S!sSIF`%b*Ue}RiRF&tI_VpAI;UnX}T}JU9H0oug}S#v!n2=d)|-S
zy6${;7#2 at d$9%Ipex*ki$vH~#_IlT9>7=WnGi{{e(5*=|uCBsotTXaV1c!UVLgXF3
zvit`DVZa4K^&mW;X!Bx3^FQzeQ4jW;78kfzR at ih$GFdbnvRiiOiVP^?>H6h%g)<Ub
z$?v6;1+Vy+xUN!S?lt`U^&Z&YeO&rkJ`eKCl$J{=Ug3MCPHeFAAYZy80t5yEGzZCU
zEr*bGUlFNH<^r&)nH?{^4tvp>eS&!ErTd${$=cqL%o=GNPXsw)Ryg1#l$34n+xj-m
zd5 at QWmOIVwbE+TcahZE9&apFaeb|tUfnUUK;c_+X1rSOM%gp&xY9}VV1!pSfVUE@@
z$Ht+zb$p(FgW)_tOLu9B)ve2t-p+I8#K=bzQxr&KqE)9({FCZQsjh*ULn1fil4gc}
zfZu*CvrDLgBGR;=U6*RrtQJ-Nu;Mqu2W33OkrGtP6QPyU>5zf_*R2#9fh3B6xXnn@
z#oy}FqK7ol*AYz$<fw3IAuFlHIYz;)pmeC&$`a>*P at 7cxxF%1|RX15 at zRNIlvQEG7
z$ndr$$h{-a%RHmf1l_F=5DVmaMO3;p{<M*gtG0Bh)vU3vfI9_xKY^uGAX+m3F(nu&
z7{&?DAP78K+#Zz(*e3#1DipmkFxlEt+NvkVLi00!c_gKB?s9lJ$c)eYUC9*TLPG{X
FD at bjx3!(r3

literal 3194
zcmZvUcQhLe+lM1Y&DtZugCG^eOwHB`iUdu=*V;2SrM0R`kZRP3QAH5Z*j1aF9coiS
zP_$LEN=uFEp!9v7_dMSp-#Op)$Njs{b)VmD;^?QVZtMWXI-H1STn4Z+|M~y<{$G9i
z&s<{v5PiF2;uAPxr>l73=4 at 9~82SCQW#m^Pfv-S~Od(e`avGWhRj(Ujwo0m7QnoIh
zH?%-Z{#7x30<D0S)WlFKw~$ks)>_r26<|tMDJ=%izy at g14sBsuF$J3lMu5K|#_&p9
zVn7T9)~aRMgQ;LcPRFFIk+6OHiLh)Ec6$078zyU$3dSKA<^kRd1z8}(a1Jz$9D_t#
zYeKxe5t9|>=GN7Teh3g-l93kGdxF7Vn(5cqi(sJ18XzzT3<&U-g^~-ZtJiv=43ocT
zwwM<3EhN$!02rF!0So~E046G%(ci&rOa%h~Z1}&|3HIt=P(E_H;G`M}B5rXJfoH=b
zco2xcPyd1dFdHEz{^<e$egKyL)&J%{_W!^HvA|nn&tJ5aHT7d~R}3>FWo4zmrQyLm
z%+qXmh7lVctie=DMF7~6lMDX&2;lj<KXI1LR%}-!UqZz*-Zn17>PhEN!zD#E`)`jg
z!XJZ*bDD9*yAm*du5v<ycPb|fwbTrk;t>=kYGMTx0Nmr#$WzCUwoD`r>T$~{NoP9y
z_ at a<Z`7A?;#Nn!8qq^U(W?q^roW<2}_!Rcs6p9>8Rj%>QzAyU77RW7L%jZ6<B9~O~
z`_a2n|K81Lf;Jgtpw0k$aVY}%ME8*`pjX5nqe=T;S+hOfg+q$6?+dHLGke*y3E_=f
zhxE5d-5aU?X8 at 9B3Cvk^_Rxd`wkLBC^w34eaPnGeXi?%ccL56 at HzZ~8an{m``=XoS
z_14^KbWXfTnfw(z0bqt9h)s*wjR3NtReRCIbK$O^Z(7Q5`v2nYKkbQumz&Ut?4;xq
zwKZ$3)1Z at 0Vsfcf9m$T`QlZpF04G0LLYcf6a0u@~G4 at yoJpTt75-H6N17aZd)e4b2
zdz*RKEzCmlA{AJ+*=_b<slG{RRkPcywWJwNIlPj7)YD9RNa4=G;+mQSm?d5UuW11u
zd|_%-8bx8fg3AQl3jyt+!qk=rK)I>afh?pUhhPf_*B$qkHclE}Q;<=cX>X2EYfFF7
zZm<ZquG`Nf at 7YfM?%8eF##{*WQ$$>3LP5R@<#h$+hK!a8d(nu~BmV>TF4K<)OI2At
zfC9V3hK{tAp!3Yv)E>u8b(|Cbl_m=CWwolISEm1VDEB!qjE5CuuKE7spQ at bHb(EfJ
z&}`&2iMhx`I}ag{KAeKRUMV9i22&44PY+JEX8F~|PN;C*l7WAY9g5A*IbTVazrbiM
zEJe(;DUumnZ=pA?Uu(_{L|a1w9m66Aj+158CS-NUob|O^%PKCvxXp11tu1MS>SOg=
zrj2TuD!K__r at hP<rckOhFU1+Gh+KB!wJNsZvLWWKXvkW~t+`qj)oOXzImpY}?DeA%
z3=uX)YOrWu^W18P7Tx9N)p^NPusnwJGIw?HuIqm2fpD`u`1-VL&c4bjT3K+F|Fe~O
z`&i&mbi7^tw%yYB4oG-3Y*9h$AYvLZobcMi2sYF{8d{U9czE($Bro at uV*DB9;P9QO
zKRl74DaOrpRc5B2%na1TR+4OR!3-`KxnhAHo7c5^TB!S%&F-2MQsa4<!^TRgQPUkE
zAjNM_wcVv<zNv80u;SI2UaJu!lkjLJS%%0~tHA-sTu$D+bV at GzwJk7(!DdnnPC~#7
zxC=}~g>1{rtNmke`~wc{kYXc!9Mv;Mdcm=nkRjH&BE=ex*ERAgZ0No{W}Q%xAp_q`
zbieaT?%sTBXTlY~PnJOV%(RA#zJtlesh5vqPI<n!vu~0_CYe)M-$O&xw*vSgq(v`B
z?8}$ctVdo^m>-`=M1wf;-FfS=qcUsJ^$9U|<)_;_TvwPHe$uf8IW&dk(|HN)&({Of
z!^7##f*Q)reBC>LFr70Jp9pLD(`UtqjsCM77xHXgs|9?#Y&jxR;qH at yV#=Fb+5Ft`
zRx*GDI>=AW9O*Nj(9o#xR_&}+SjA{}&j=7w#vi*MUFZj^0Q;pVjsm_s??#jLV`IGQ
zVQIzD4%Wag+Zk=~A#;7tHfGe8W=jPgBA0ROVP3k;&*G|>BE(2UI-;x}3b*p)VrV$B
zQ~jcq&O*}1JDfPLz2^0J5c$*bP_xGzR04!4&?;B3j{-FHj>D(<KVSp3QSIVnoV|YA
zK{BQQCzIwb4Hi8$37=m0i7GA!`<8Z+DbC%`5WNer<x4lB%7v&kDY*%>Tv%=Y6{2Un
zCNo0*l_#IPmW%8%lYtu^&vm$NPgSohFH?$7F~F=Px&$_Hsd)4)g_>@g_)fi^drsJs
zh<SmGubJuj;O5$khDEtW$(Tqkb3_X)i&G6Li at VM(u0papfNmdGnHw`=Xg;flgN_M8
zF=xO8TOIq#FO+^W{SMNq`MlCc`gryen!-`UKEpmxX(%Q{!tkC0FMsdb!T>hBD;>fs
zz80*19jU0pVPBi}T6i9)G<%eM`|MM`aLWgMOrD^Q9W=W!u-&@bTzi2{O;R#h;ofdg
zqno=n at 1)5fVKsW;V8ZkK%N$2dB28)W!cGaV!0;RYS=0C4p3ms3p2vh%jr!$x`vAMt
zH|OLokW$9z_L3`o9x0ASg5Ui;?-i~2N!C8jS(WE3-hZg47&Q}Opw#I>=hgbbv{AD<
zSSBbxHI>N<G}#M$Q{<wU;Z9_-J2yL?ZZlC9_6SndpaY9)gN#c^PsyQ~WF_dgSR#<L
z1f{oSHCw=EXu^+SzH|=4=Y~H1O!TOgni*vsy*M_%H3CFRiw*E~vTi%L*x;1aJ~n56
zPiyit&opt}P%QIkz;#7&pDE2)wz-ORDm?Bm7x;k-jORR at H}6Qc7i#MHF?dP0v|&r_
z8cisstz*FZ{5!LWU6K2<vnj(xzPd;<wf@=64ERXdxv!%8x27QHk&PL`@aft6!7fXd
zHtxIfvMjb;*xLBKtKzo$>0{r->kOshp26+9v*0oTwGYYaH5#FT>QXI0m at 11xDJu`B
zpRShC{&7_Y`>m_KuEIn!iXFw=AodYQJv5mW{B8s!eN!_e?5me{lJ|SNF;RBo$0n|p
zv_sSF=OH^(z1DMrTT+wR`XZvx;Yw$wvr_w=&yl`eSr|-`=Ve;q5^g14>vzCGEgSP(
z|7u(BdfsT8xBxIZEnuWH(E)weOJG?InzCFHB*lnR)^jP8I596Xx(^h2%p)6Tv3lz2
zJRzB&BTQ`E+dlrl+x}*=CPHSzz2~t-aVtJga>S=j<97NA^->o|4j-5g at 61_OjR|l(
z{jvqH063=|uL~EVg9s%b>>B-YG{`HjS<*;{^=U1)Jj**=QmTFr*WO33c3DSVbhDpG
z8n5=_ubMO}Y`dKk`*DSlO+6J!6u~`_e9G@@nZ8|kVnw^ulM(e`I!Hh&t_|(^{nH!E
z5zw>kN=gZ2H88edzY`>k;uLIzshl}uMhh6MxAnD@%U+x;?00jzMa%EM7<8BP{g^^|
z6La#BJGQL1<Xq=z#VUP46Yf6j5TPlNy6a^HZ{g-nU2<2@%>U3M+y_=`qi=jqG+9y_
z@(UcuJ at e|)P_3c#Yt0_ at sIU6T_cA;L&dZx-70s0wX)-QP-?-CpU4ZGtzfO0IKfXoG
zRanN>FXO_?{pqB9#e at kl_Dl~b{rP3I68rp2R<)n>dx%XBs#fxg3S{N?4sU_K5c)IA
znku97N1)l=#&{P4Z}clMPWYL9#rj42uF<4B;n`R3-_G+IuiMz&3xW(B@@-yqVs)Zj
z320w_V<onNBz^axUJfLow5QGmez4Rx?wosnxva83-?+b=2v81H&J_9*89gP1eGj(@
z&c55tTFz`Ke&V=!z9?dSGh=0=Zq?RGQsDZVU{J>`CzbIK3uZvfU3}C`y}3yYl=4aa
zBZ$r&+rmQ3MfLIURXVuCb6*^oC8qReKl~<t3Qq(!B}$UCQ9el?;><u^xwc at OG)5E^
z9j_>NsshzJHm>8;2s<c{6d2QTDX6$=6-2Jl|4CJ|e&KlMh8wxYiFmYOd$Z}43u(ZE
z^!o{l-rz2sG9-gnx8N2{3nX$mc$}UeH-xX5!v=mtu|T`$15`hgCH6QxbOI$&@!fMv
YFHEmee7v9kN$r3XDOkj%4=Mou10XZjod5s;

diff --git a/tests/testfilebazmin_pl.bz2 b/tests/testfilebazmin_pl.bz2
new file mode 100755
index 0000000000000000000000000000000000000000..73cef4ae04bc9d5d2223063c50bcdd9557a619c9
GIT binary patch
literal 3749
zcmV;W4qEX-T4*^jL0KkKS;wcp761#$|NsC0|NsC0|L_0*|NsC0|NsC0|NsC0|NsC0
z|NsC0|Nr0%KYAz#`h!szyPbIVH$9-MeeKb^&W}c#hlZ(?X(rQ5Od!ca#Pk5C>8X_T
zo+;@(6H&CDr=;|o6VjeWqiSIfQ))D9OcHq1!A*@M$?6YN)Os~GQ`CD%$vrerDV~(x
zrX=xCQ`CB!Q%2KM2=bn$(s?qOKUDPwrjkzyGN-4aGHHgC_LC&ujWmrhGf|TXskHQ`
ziK*&sL&iy=k?Ktb4JWlV7&Ox;^iNTtvYRR3rjJuK9*BA}1Y!+6AbOiZZ3JX7HiR_9
zdY*zRN2nSE^i8Dn1Juzl36L6K8ca+_pa1|SfEbt~1jIDcCICj7U?u`!0$|c<fC;9U
zi~*^EFiij$L8D1ACX~tKnx06}`Ar~xsL<Z2iJ_p{jT$u5)M(JqG7T^w$N*>$Pyon1
zMt}eV)YCv|>OD;~(-T7 at Mk7E6r~m)}5h)U<>87LA88T=ONC5Q#pa9SSGynhwfB*mh
z4FDdIpay^d4FCWD0gwOy00004p%Et0HldXCMkbn`Pg6}a&_|@nnoTsxlOq!&O$OA-
zpk!##hyc(H8Z>BWqfImbX{Jp88UQrVXlNP(AT$A{MuR}(+_$U}wa%i2<2wRnS2;;8
z>SPrTfK);<c~&S>2vmVQHX at tEWPqLph@6fJ1Oq at YbwUH{$TWh3DiEYfp;Cx at ERta`
zP<z;X$PYcNOIM{C84^NAhzN%dB$z`KP9ltyS;-0~4L4gJN^t=&qmIsn(h((6G{XB7
zYchjGwgRQ$Sh}S^Mm;G4jAA7k7zY&0PqA2DT_lJKj}M+FQ#UnCV5etR3MYv{RZya|
zhlwwW(;K~&`1>MA$cq)0XWdt6Q)^WfLp>sx!|Lf}Q50p#NhQd at T*u!f76$B9krl;p
z2~<-RU`lYK#hSy%3NY1!1B4VEd!2EP-2l>*w0P)9B{ykMTS|Hxg%L}Hmw#rIyP9)s
zY|U}6EKK>*mZpfRoM{V<ytSHw3{;ha3QuC}7U9t(fIv+8q68$dOeumGArz9POuf+{
zf*|-ahe%MQDG3Tj!l;7Clqlq2a)UYB5kj^EQUTCP!kg&yyFvic3n7G(Oa4nq5Km+b
zkf?$M+)?-YfZ8CT6AfRQ?6z56Gt>rR;}dT+7|I6RTFFi)6?(f<=qE>4C~NdVM#4d>
z0;9E{M~=yeVM?<0*vFYdkJ<!qCPoTquxf_EwG0ONc_L`4kd)T6C>0F0t`8Q3I4a~p
zeh9f5)K$Tig>e)$Xo>|OA~&!B8bC<|Y4cZJ)m$BSlJvyL&yma|5HJdi_%kt9Wh(`F
zg#--#B$940U3LoFh{z!zt{9XHbT2BRRR<7EbVAfru at ONnK})zJmSSkA?!*;MZG&|X
z4K;vgGWNP9E>S<?2PLHQn&vZas>O^(8mg-~trwT9zP`21^ERzxF1QQ^4n_nbM3InS
zLNZ9mvJ7MiBP4_(m at +q!+IYI**gXRUkqZGSLLed(W at ZHzB`w`uJjwMGtxYcvcYbAv
zh5iLhLh>f_0V*SzM#%-+q84m2S)U2h8-a%?#la<zlgYQ+Qy4M|K#~;zS18C3iWZ8L
zH&)&<`KxJip+J}_5689WheYJzl?p>0jmkVs)>L6K+tGkc0dyQVA|LaL8ZsBYjKf4)
zih?*%g(0F8GE)zhwHRBL?a{d3>#qH06Bu>(RSSxUu2t2vM)DmVHi&pIO5oulCSNi_
zCBxCCeX0~y4!SO#6NrN6pX~%UUfPIuc)A0Qh==fEnSn41S%L!uLIVsaArw43FnolC
zLP!ak&SB at e`Y;Hw5eggvg$(6dOgZl2!e+-w?J(hKJ+3~XiWLpWA&XHHA`1~*3k3+8
zSjAvsY~f>VD6~zIyLI>LUWhK=z||_2<`8XUX;3 at 3eEmfieRZ4=UWIoELK66+LNTle
zP_PXE6vwsE<|GH$6o99}_k354?d{j<nVbRZALB$x`2|cT;<EBXtBY#m!yqau+wW>+
zTn~V>)b9FB)>D~iGqKGgQA9R4s}7!VsD!4R!d=uvLqe#CLh+9y!?KoMAj2<{fGvz6
zq$ZCAAwir<t`1a$AmFUxr9(25XF0;_c9dFtXU0w+)XLpsDOm`ZwdARIJ)`qJ2}Rsg
zQ`5|-mmrA?1stX&Q<E=c2ROQoU>K2r;e-)D<QgWNFd*dqJDG%0g_0vk*Q}ttI5Bpo
zY~Km!M5(CHyt=&y^QtGXj$q=+MN~f$xT`W5_VE#{l7;hb9owh9NWfC!;C at IY1?1h_
zU)M9WTD&MS at LxpDEj}wZmr;E&1?*jeutX7v8nms~e@&8|Mt+LsyJL^ozrPD;ySAUs
z7LKGE4vb2o6v73R#q}`f>aZCUvXPWjDiENkK<N_$0vTA9MHO6GwrhMKo0qoLXkjMP
z_4 at k%ABBCb8}4rMBosKj#~ib3oKM5|>k))j>M@(?%N~_)11pHjeb<MMe$B8-;wqry
zm^k3+)2&i)P|XZa83v4%WUzMjqE-3`-e;CA*sX`Aboea=$RTds^1V$uqCHR?prV#<
za=5&%U&J*-p&T`D!K$N`n1sKmmSTV<5`YX_nU%?hdz at 6+YccR>*9U&o;IFr9_X>CG
z6~>3%3#HLc=AbJAek#x7T;Y(Afj=Akku)lo7-NVnu<X$zyhaa#5xAfc^k+H;2a=8m
z)YxJ+m$UN_67Gv-G7;E-{}k}>6F4qCoz3e!$q;`%)tcI4-FM)GaJtq^PKX(@;A6NP
zZXi%n0Vts1(>*bKU at 7gBxxg#3U~4Fv5csmKK1%OB36Jtl_jF?W at D1Q<5D<g}uV%H9
zj-cT+z6POdFex16pE0p_-DJi`Hio}&r%nkx5e_TsPgFr$Frii`2+#tu8-9s}YB16W
z8Wf?oI6`>m3K$+N(K~3~_I&cVygN(--SqA6i|zT?RcF#hDW?qcaV6<2#jVmko{uT!
zs_i4j9<cq~@#93P2GBpY3aw>dop}s99`ac3^?T^N(<qRj><!+YQXX+ItA&fGw#6?b
zh~_!$Xa;ych}vJUC>pRiU}qZ%y`@$EZRz(Cs^Y at I$=eG}l8S4N-o4F3^txK^Zo<>4
zXnc9T9E2VkF9a&eScu+D9Q2 at G&HL|b6HAKtO7G|>?Hg3d#rRJnsqmZ_uaSlYl4yvx
zL)Q+HXdKEhPQdExY_&QWmUlk0fS=0|hFD)qwQP{N>TGDU$EChcfP^ObRe{-79TuIC
zfGkBeEg~nzX285?IPSBEF!0c2op_{7&rd*L@<fk at 5+Ca75D;)0AqW5{)^)5HXbCK(
z;;({mP#P&B-^Ejhw%jgQ7|vBuH=69u<3j6Vr`luim=dWbMj`8IXj7 at MkV7I3zcpB5
z*0ln*mN~T{E?US{C5v8VW at 3j+_w&PsnzvV*$>p5O>s)K`;zUSaC_tk6VmJ_Hqv at T(
zZ~-Op8iU#SWWbj!wLbH*wUalh`d&How^xrunm{zL6xQDWwZO2JLAP`z;_gW<WEnFZ
z_eP(LoTf9WxNWjCu*GdkUy4zkF)P${aH6D*HX~WG!rW-MAJ at uxDqLcPnCjY8RCQ)D
zc- at cfT36&|Sh`Ujy?}@#SKY5~CJzTQOF3)MF4b6*1b`_<z@~by at 2$|(b#?S6L~@yd
zf%qU71s-8HG6gsw<WY%?uh$THFy;XfK`V$-Hipdza3lgis$d)dDvSGx;+##LLycRi
zbjGq`;gPM9U;kpCF&OB>bQL0Ua=+jqJHF?!V-{*72uhOea<aPiCg~}-(WT=4BKvAn
z3<-l^YTW&EvcI;V!Fp!71B-=SV!gyYTh#O3Vm?&(&8}_Jo~kO&u;KI28Jnhv)t&JG
z5e>84_d?rQubU+##LMQeN at 8M~LK!5*=-SoX4TjzV6#zg(1;b0_L#h at 0<pWYRW*Sd+
zYLA--8G`A|oZ?n(I#)5Sn#NHXFq{<d_e|~dc<CdFFx!=FvebolD`1Y0lKIj<Pa9*1
z!apB+hnE)d)og5Jb#ZN=xGUyduAy97+QZyUPkD74bMI!CbKp^K=`&0HdMSBv31n(x
zf-+7#XD%Ey-LTE8>22ODwVQ{}b29^&-?NkK%E;SZ=pS&fq9hmwSR9 at oS)9~8iwU+m
zKbHRfKOg4gP24VL2c4S*P1DPx!0k8ZKEV77X)tSk8&^YCcjz}5%LFF6$;CSe$CS`&
zB==TXm3w3TF9`|K5N7vGh)I*v*2LkCKMX4*qeFnP?C%Vhs_g<AV>#XAZZ>8gGr2g0
zr6(n-qpLV*{$K;GK0&mkk$FHhdvBhmH3K^A{QLzu^joW#P5(DXw7qf_X7{1Z=e1RM
zd0oD{3$VQF^xIki44lI<3QKsSg<_TZwafpdUp{wVs{Pgl@<m-T=8s~xOD=7(8pypm
zJTJ|%!H#7tMu%}arA9fFq#z|iueFqft)nj*3|`(l>8kl?td}Xir<tK|jzGK0yu at 1!
zmDiCWEbN3jkdDPDe=EEkjyS(OvQ3%7P|yD;#QRz14&uUt3;oo!A2t2-9+H-safIN(
z6=4c2tRfrhd21aFKI)MA`d6Zq7EUQ)s@=2>9;N6TI%$m=GgR%|KYgPkZ(C8G?qFJ1
zLG>smX)7x$GIUJ7m~~<bjOV+AK*WTy0O!X*F<;Kvq-hKLsJFF?QUyHr8ttdK%^P98
zD~MWkrrN5&kETT&fQ-?(tIZ at dA){L5*M8fS)dyq8<k<R9vf`mHQ+;UbE!w!w(5P${
zP4imELv5XOuh2S5cgPXw4VD#nIB%ukr+B)n4q311=TdMMajPVyll(F(BXR45ea2YA
zT$KVeVF>~v2Gd at Vz%%Z+`Uw>w9u;1s6jb3F-!?`xND91^Psg#L)Z=KSo{uNVZh4$u
PPyZKkML1B9$EUv*yQ|o7

literal 0
HcmV?d00001

-- 
1.7.1



More information about the elfutils-devel mailing list