Как заменить функцию фиктивной реализацией при модульном тестировании совместно используемой библиотеки? - PullRequest
0 голосов
/ 22 июня 2019

У меня возникла противоположная проблема: Можете ли вы скомпилировать общий объект, предпочитая локальные символы, даже если он загружается программой, скомпилированной с -rdynamic? решает.

ИспользованиеИменуя связанный вопрос, у меня есть динамическая библиотека, в которой baz вызывает bar, и у меня есть тестовый двоичный файл, работающий с библиотекой, который заменяет собственную ложную реализацию bar для целей тестирования.Это прекрасно работает в Linux, потому что -rdynamic используется для связи.

Источником теста является https://github.com/apache/qpid-dispatch/blob/b172f501028b36d786b4c83bcee1e195cd17fcf2/tests/timer_test.c. Перечисленные функции, среди прочих qd_server_timeout и qd_timer_now (чтоявляется встроенным, см. комментарии).

Я не знаю, как добиться того же в macOS.Каковы правильные параметры компоновщика там?

...