Отладка, Unix.Запустите программу с другим временем из системы - PullRequest
6 голосов
/ 20 октября 2011

Я отлаживаю программу в MacOSX, и мне нужно, чтобы эта программа думала, что мы на один год позже той, что указана в операционной системе.

Я не могу изменить время операционной системы, потому что мне нужно запустить вторую программу одновременно с правильным временем. Я мог бы изменить код первой программы, добавляя один год каждый раз, когда она получает время от операционной системы, но код слишком велик, чтобы сделать это; Я предпочитаю не использовать это решение.

Однажды я услышал, что в Unix есть команда для запуска программы с поддельным / поддельным временем. Вы знаете об этом?

1 Ответ

4 голосов
/ 20 октября 2011

Я не пробовал, но libfaketime утверждает, что делает то, что вам нужно.

Цитируется с сайта:

В качестве примера, мы хотим, чтобы команда "date" сообщала о нашем фальшивом времени. Для этого мы могли бы использовать следующую командную строку:

user@host> date
Tue Nov 23 12:01:05 CEST 2007

user@host> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" date
Mon Nov  8 12:01:12 CEST 2007

Предполагая, что библиотека работает так, как объявлено, вы можете заставить свою программу думать, что она будет работать на год вперед, используя:

LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="+1y" ./your_program
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...