TestIndirectSymbols: Modernize the Makefile

This old test used a completely hand-rolled Makefile. Modernize so that
it's able to cross-compile. And XFAIL the test as it fails on embedded
targets...

llvm-svn: 374256
This commit is contained in:
Frederic Riss 2019-10-09 22:47:28 +00:00
parent 85dfa82302
commit adc5043fa2
2 changed files with 15 additions and 37 deletions

View file

@ -1,38 +1,16 @@
C_SOURCES := main.c
LD_EXTRAS := -L. -lindirect -lreexport
.PHONY: build-libindirect build-libreepxoprt
all: build-libindirect build-libreepxoprt a.out
include Makefile.rules
LIB_PREFIX := lib
build-libindirect: indirect.c
$(MAKE) -f $(MAKEFILE_RULES) \
DYLIB_C_SOURCES=indirect.c DYLIB_NAME=indirect DYLIB_ONLY=YES
ifeq "$(OS)" "Darwin"
CFLAGS += -arch $(ARCH)
DS := dsymutil
LD_FLAGS := -dynamiclib
LIB_INDIRECT := $(LIB_PREFIX)indirect.dylib
LIB_REEXPORT := $(LIB_PREFIX)reexport.dylib
EXEC_PATH := "@executable_path"
EXEC_PATH_INDIRECT := -install_name $(EXEC_PATH)/$(LIB_INDIRECT)
EXEC_PATH_REEXPORT := -install_name $(EXEC_PATH)/$(LIB_REEXPORT)
endif
all: a.out $(LIB_INDIRECT) $(LIB_REEXPORT)
a.out: main.o $(LIB_INDIRECT) $(LIB_REEXPORT)
$(CC) $(CFLAGS) -o a.out main.o -L. $(LIB_INDIRECT) $(LIB_REEXPORT)
main.o: $(SRCDIR)/main.c
$(CC) $(CFLAGS) -c $(SRCDIR)/main.c
$(LIB_INDIRECT): indirect.o
$(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_INDIRECT) -o $(LIB_INDIRECT) indirect.o
if [ "$(OS)" = "Darwin" ]; then dsymutil $(LIB_INDIRECT); fi
indirect.o: $(SRCDIR)/indirect.c
$(CC) $(CFLAGS) -c $(SRCDIR)/indirect.c
$(LIB_REEXPORT): reexport.o $(LIB_INDIRECT)
$(CC) $(CFLAGS) $(LD_FLAGS) $(EXEC_PATH_REEXPORT) -o $(LIB_REEXPORT) reexport.o -L. -lindirect -Wl,-alias_list,$(SRCDIR)/alias.list
if [ "$(OS)" = "Darwin" ]; then dsymutil $(LIB_REEXPORT); fi
reexport.o: $(SRCDIR)/reexport.c
$(CC) $(CFLAGS) -c $(SRCDIR)/reexport.c
clean::
rm -rf $(wildcard *.o *~ *.dylib *.so a.out *.dSYM)
build-libreepxoprt: reexport.c
$(MAKE) -f $(MAKEFILE_RULES) \
DYLIB_C_SOURCES=reexport.c DYLIB_NAME=reexport DYLIB_ONLY=YES \
LD_EXTRAS="-L. -lindirect -Wl,-alias_list,$(SRCDIR)/alias.list"

View file

@ -20,6 +20,7 @@ class TestIndirectFunctions(TestBase):
self.main_source = "main.c"
@skipUnlessDarwin
@expectedFailureAll(oslist=no_match(["macosx"]), bugnumber="rdar://55952764")
@add_test_categories(['pyapi'])
def test_with_python_api(self):
"""Test stepping and setting breakpoints in indirect and re-exported symbols."""
@ -61,8 +62,7 @@ class TestIndirectFunctions(TestBase):
# indirect function.
thread.StepInto()
curr_function = thread.GetFrameAtIndex(0).GetFunctionName()
self.assertTrue(
curr_function == "call_through_indirect_hidden",
self.assertEqual(curr_function, "call_through_indirect_hidden",
"Stepped into indirect symbols.")
# Now set a breakpoint using the indirect symbol name, and make sure we