Imported Upstream version 1.3.1
[platform/upstream/libunwind.git] / tests / Makefile.am
1 AM_CPPFLAGS = -I$(top_srcdir)/include
2
3 EXTRA_DIST =    run-ia64-test-dyn1 run-ptrace-mapper run-ptrace-misc    \
4                 run-check-namespace run-coredump-unwind \
5                 run-coredump-unwind-mdi check-namespace.sh.in \
6                 Gtest-nomalloc.c
7
8 MAINTAINERCLEANFILES = Makefile.in
9
10 noinst_PROGRAMS_arch =
11 noinst_PROGRAMS_cdep =
12 noinst_PROGRAMS_common =
13 check_PROGRAMS_arch =
14 check_PROGRAMS_cdep =
15 check_PROGRAMS_common = test-proc-info test-static-link \
16                         test-strerror
17 check_SCRIPTS_arch =
18 check_SCRIPTS_cdep =
19 check_SCRIPTS_common =  run-check-namespace
20
21 if REMOTE_ONLY
22
23 perf:
24
25 else
26  LIBUNWIND_local = $(top_builddir)/src/libunwind.la
27 if ARCH_IA64
28  noinst_PROGRAMS_arch += ia64-test-dyn1
29  check_SCRIPTS_arch +=  run-ia64-test-dyn1
30  check_PROGRAMS_arch += Gia64-test-stack Lia64-test-stack               \
31                         Gia64-test-nat Lia64-test-nat                   \
32                         Gia64-test-rbs Lia64-test-rbs                   \
33                         Gia64-test-readonly Lia64-test-readonly         \
34                         ia64-test-setjmp ia64-test-sig
35 else #!ARCH_IA64
36 if ARCH_PPC64
37 if USE_ALTIVEC
38  noinst_PROGRAMS_arch += ppc64-test-altivec
39 endif #USE_ALTIVEC
40 endif #ARCH_PPC64
41 endif #!ARCH_IA64
42  check_PROGRAMS_cdep += Gtest-bt Ltest-bt Gtest-exc Ltest-exc            \
43                         Gtest-init Ltest-init                            \
44                         Gtest-concurrent Ltest-concurrent                \
45                         Gtest-resume-sig Ltest-resume-sig                \
46                         Gtest-resume-sig-rt Ltest-resume-sig-rt          \
47                         Gtest-trace Ltest-trace                          \
48                         Ltest-init-local-signal                          \
49                         Ltest-mem-validate                               \
50                         test-async-sig test-flush-cache test-init-remote \
51                         test-mem test-reg-state Ltest-varargs            \
52                         Ltest-nomalloc Ltest-nocalloc Lrs-race
53  noinst_PROGRAMS_cdep += forker Gperf-simple Lperf-simple \
54                         Gperf-trace Lperf-trace
55
56 if BUILD_PTRACE
57  check_SCRIPTS_cdep += run-ptrace-mapper run-ptrace-misc
58  check_PROGRAMS_cdep += test-ptrace
59  noinst_PROGRAMS_cdep += mapper test-ptrace-misc
60 endif
61
62 if BUILD_SETJMP
63  check_PROGRAMS_cdep += test-setjmp
64 endif
65
66 if SUPPORT_CXX_EXCEPTIONS
67  check_PROGRAMS_cdep += Ltest-cxx-exceptions
68 endif
69
70 if OS_LINUX
71 if BUILD_COREDUMP
72  check_SCRIPTS_cdep += run-coredump-unwind
73  noinst_PROGRAMS_cdep += crasher test-coredump-unwind
74
75 if HAVE_LZMA
76  check_SCRIPTS_cdep += run-coredump-unwind-mdi
77 endif # HAVE_LZMA
78 endif # BUILD_COREDUMP
79 endif # OS_LINUX
80
81 perf: perf-startup Gperf-simple Lperf-simple Lperf-trace
82         @echo "########## Basic performance of generic libunwind:"
83         @./Gperf-simple
84         @echo "########## Basic performance of local-only libunwind:"
85         @./Lperf-simple
86         @echo "########## Performance of fast unwind:"
87         @./Lperf-trace
88         @echo "########## Startup overhead:"
89         @$(srcdir)/perf-startup @arch@
90
91 endif
92
93 check_PROGRAMS = $(check_PROGRAMS_common) $(check_PROGRAMS_cdep) \
94                  $(check_PROGRAMS_arch)
95 check_SCRIPTS = $(check_SCRIPTS_common) $(check_SCRIPTS_cdep) \
96                 $(check_SCRIPTS_arch)
97
98
99 TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
100 XFAIL_TESTS =
101
102 if ARCH_IA64
103  check_PROGRAMS_cdep += Gtest-dyn1 Ltest-dyn1
104 endif
105
106 # Use if arch defines but does not support PTRACE_SINGLESTEP
107 # ptrace request used in the tests.
108 XFAIL_TESTS_PTRACE_SINGLESTEP = run-ptrace-mapper run-ptrace-misc
109
110 if ARCH_MIPS
111 XFAIL_TESTS += $(XFAIL_TESTS_PTRACE_SINGLESTEP)
112 endif
113
114 if ARCH_ARM
115 # ARM Linux kernel >=2.6.39 removed PTRACE_SINGLESTEP emulation
116 XFAIL_TESTS += $(XFAIL_TESTS_PTRACE_SINGLESTEP)
117 endif
118
119 # This is meant for multilib binaries, -m32.
120 # ptrace gives EBADREG when testing,
121 # but generally everything else works.
122 if NO_PTRACE_TEST
123  XFAIL_TESTS += run-ptrace-mapper test-ptrace Ltest-init-local-signal
124 endif
125
126 noinst_PROGRAMS = $(noinst_PROGRAMS_common) $(noinst_PROGRAMS_cdep) \
127         $(noinst_PROGRAMS_arch)
128
129 Lia64_test_readonly_SOURCES = Lia64-test-readonly.c ia64-test-readonly-asm.S
130 Gia64_test_readonly_SOURCES = Gia64-test-readonly.c ia64-test-readonly-asm.S
131 Lia64_test_stack_SOURCES = Lia64-test-stack.c ia64-test-stack-asm.S \
132                                 ia64-test-stack.h
133 Gia64_test_stack_SOURCES = Gia64-test-stack.c ia64-test-stack-asm.S \
134                                 ia64-test-stack.h
135 Lia64_test_rbs_SOURCES = Lia64-test-rbs.c ia64-test-rbs-asm.S ia64-test-rbs.h
136 Gia64_test_rbs_SOURCES = Gia64-test-rbs.c ia64-test-rbs-asm.S ia64-test-rbs.h
137 Lia64_test_nat_SOURCES = Lia64-test-nat.c ia64-test-nat-asm.S
138 Gia64_test_nat_SOURCES = Gia64-test-nat.c ia64-test-nat-asm.S
139 ia64_test_dyn1_SOURCES = ia64-test-dyn1.c ia64-dyn-asm.S flush-cache.S \
140                                 flush-cache.h
141 ppc64_test_altivec_SOURCES = ppc64-test-altivec.c  ppc64-test-altivec-utils.c
142 Gtest_init_SOURCES = Gtest-init.cxx
143 Ltest_init_SOURCES = Ltest-init.cxx
144 Ltest_cxx_exceptions_SOURCES = Ltest-cxx-exceptions.cxx
145
146 Ltest_init_local_signal_SOURCES = Ltest-init-local-signal.c Ltest-init-local-signal-lib.c
147
148 Gtest_dyn1_SOURCES = Gtest-dyn1.c flush-cache.S flush-cache.h
149 Ltest_dyn1_SOURCES = Ltest-dyn1.c flush-cache.S flush-cache.h
150 test_static_link_SOURCES = test-static-link-loc.c test-static-link-gen.c
151 test_static_link_LDFLAGS = -static
152 forker_LDFLAGS = -static
153 Gtest_bt_SOURCES = Gtest-bt.c ident.c
154 Ltest_bt_SOURCES = Ltest-bt.c ident.c
155 test_ptrace_misc_SOURCES = test-ptrace-misc.c ident.c
156 Ltest_nomalloc_SOURCES = Ltest-nomalloc.c
157 Ltest_nocalloc_SOURCES = Ltest-nocalloc.c
158 Gtest_trace_SOURCES = Gtest-trace.c ident.c
159 Ltest_trace_SOURCES = Ltest-trace.c ident.c
160 Ltest_mem_validate_SOURCES = Ltest-mem-validate.c
161
162 LIBUNWIND = $(top_builddir)/src/libunwind-$(arch).la
163 LIBUNWIND_ptrace = $(top_builddir)/src/libunwind-ptrace.la
164 LIBUNWIND_coredump = $(top_builddir)/src/libunwind-coredump.la
165
166 if USE_ELF32
167 LIBUNWIND_ELF = $(top_builddir)/src/libunwind-elf32.la
168 endif
169 if USE_ELF64
170 LIBUNWIND_ELF = $(top_builddir)/src/libunwind-elf64.la
171 endif
172 if USE_ELFXX
173 LIBUNWIND_ELF = $(top_builddir)/src/libunwind-elfxx.la
174 endif
175
176 LIBUNWIND_setjmp = $(top_builddir)/src/libunwind-setjmp.la      \
177                    $(LIBUNWIND_ELF) $(LIBUNWIND)
178
179 test_async_sig_LDADD = $(LIBUNWIND_local) -lpthread
180 test_flush_cache_LDADD = $(LIBUNWIND_local)
181 test_init_remote_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
182 test_mem_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
183 test_reg_state_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
184 test_ptrace_LDADD = $(LIBUNWIND_ptrace) $(LIBUNWIND)
185 test_proc_info_LDADD = $(LIBUNWIND)
186 test_static_link_LDADD = $(LIBUNWIND)
187 test_strerror_LDADD = $(LIBUNWIND)
188 Lrs_race_LDADD = $(LIBUNWIND_local) -lpthread
189 Ltest_varargs_LDADD = $(LIBUNWIND_local)
190 Ltest_init_local_signal_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
191
192 Gtest_bt_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
193 Gtest_concurrent_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -lpthread
194 Gtest_dyn1_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
195 Gtest_exc_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
196 Gtest_init_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) @BACKTRACELIB@
197 Gtest_resume_sig_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
198 Gtest_resume_sig_rt_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
199 Gperf_simple_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
200 Gtest_trace_LDADD=$(LIBUNWIND) $(LIBUNWIND_local)
201 Gperf_trace_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
202
203 Ltest_bt_LDADD = $(LIBUNWIND_local)
204 Ltest_concurrent_LDADD = $(LIBUNWIND_local) -lpthread
205 Ltest_dyn1_LDADD = $(LIBUNWIND_local)
206 Ltest_exc_LDADD = $(LIBUNWIND_local)
207 Ltest_init_LDADD = $(LIBUNWIND_local)
208 Ltest_nomalloc_LDADD = $(LIBUNWIND_local) @DLLIB@
209 Ltest_nocalloc_LDADD = $(LIBUNWIND_local) @DLLIB@ -lpthread
210 Ltest_resume_sig_LDADD = $(LIBUNWIND_local)
211 Ltest_resume_sig_rt_LDADD = $(LIBUNWIND_local)
212 Lperf_simple_LDADD = $(LIBUNWIND_local)
213 Ltest_trace_LDADD = $(LIBUNWIND_local)
214 Lperf_trace_LDADD = $(LIBUNWIND_local)
215 Ltest_mem_validate_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
216
217 test_setjmp_LDADD = $(LIBUNWIND_setjmp)
218 ia64_test_setjmp_LDADD = $(LIBUNWIND_setjmp)
219
220 if BUILD_COREDUMP
221 test_coredump_unwind_LDADD = $(LIBUNWIND_coredump) $(LIBUNWIND) @BACKTRACELIB@
222 endif
223
224 Gia64_test_nat_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
225 Gia64_test_stack_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
226 Gia64_test_rbs_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
227 Gia64_test_readonly_LDADD = $(LIBUNWIND) $(LIBUNWIND_local)
228 Lia64_test_nat_LDADD = $(LIBUNWIND_local)
229 Lia64_test_stack_LDADD = $(LIBUNWIND_local)
230 Lia64_test_rbs_LDADD = $(LIBUNWIND_local)
231 Lia64_test_readonly_LDADD = $(LIBUNWIND_local)
232 ia64_test_dyn1_LDADD = $(LIBUNWIND)
233 ia64_test_sig_LDADD = $(LIBUNWIND)
234 ppc64_test_altivec_LDADD = $(LIBUNWIND)