Если то, что вы тестируете, это только чтение (не поиск или запись, не выполнение fcntl и прочее) или только запись, то вполне возможно реализовать это с помощью канала и разветвления. Я никогда не делал этого в Windows, но я полагаю, что это возможно, так как pipe и fork являются POSIX.
Вам нужно сначала создать канал, затем форк и начать писать свой текст в канал от дочернего элемента (или от родительского элемента, и запустить тест на дочернем элементе, хотя я предпочитаю использовать дочерний элемент для написания), и read-fd канала, который вы передаете тестируемому коду. Дочерний должен продолжать писать до тех пор, пока не завершится (что может потребовать многократных вызовов для записи) или канал не будет закрыт. Если тестируемый код пишет, дочерний элемент должен читать до тех пор, пока канал не будет закрыт (возможно, придется вызывать read более одного раза), так как в противном случае тестируемый код заблокирует ожидание того, чтобы кто-то прочитал, или умрет на сломанном канале.
НТН.