Часто задаваемые вопросы
Лицензия, приватность, воспроизводимость и то, что люди проверяют, прежде чем включать генератор в конвейер сборки. Если вашего вопроса здесь нет, трекер задач открыт.
Чем это отличается от dd, fsutil или truncate?
Они дают файл нужного размера, набитый пустотой. Файл photo.png на 2 МБ, сделанный так, не является PNG, поэтому всё, что действительно его разбирает, отклоняет его по неверной причине, и ваш тест тоже проходит по неверной причине. Этот инструмент создаёт настоящий PNG ровно на 2 МБ, который открывается в просмотрщике изображений, и сопровождает его заявлением о том, как ваша система должна с ним поступать.
tfg generate --format png --size 2mb --out ./fixtures
Это бесплатно, и можно ли использовать на работе?
Да в обоих случаях. Инструмент выпущен под GPL-3.0 и ничего не стоит. Нет ни учётной записи, ни лицензионного ключа, ни платного тарифа.
Можно ли использовать созданные файлы в продукте с закрытым кодом?
Да. Лицензия охватывает код инструмента, а не то, что он создаёт. Созданные файлы, рецепты и манифесты являются результатом, а не производными произведениями, поэтому их можно коммитить и поставлять без каких-либо обязательств.
Содержат ли созданные файлы настоящие персональные данные?
Нет. Всё внутри синтезируется из seed. Никакой набор данных не читается, ни к какому сервису не обращаются и никакое стороннее содержимое не встраивается. Считайте созданный адрес электронной почты непригодным, а не неиспользованным, потому что любая случайная строка может случайно совпасть с настоящим адресом.
Получу ли я точно такие же файлы на другой машине?
Да, байт в байт, при том же рецепте и том же seed. Проект проверяет это при каждом изменении, а нарушить это можно только повышением мажорной версии. Именно поэтому вы можете коммитить небольшой рецепт вместо больших бинарных фикстур.
Нужно ли подключение к интернету?
Никогда. Нет ни телеметрии, ни проверки обновлений, ни облачного клиента, а в бинарный файл командной строки вообще не скомпилирован сетевой стек. Он работает на машине без сети и в закрытой корпоративной среде.
Что будет, если запросить размер, которого формат не может достичь?
Вы получите ошибку с названием формата, наименьшим возможным размером, причиной этого минимума и тем, что делать вместо этого, а файл записан не будет. Инструмент никогда не округляет размер молча. Каждый минимум указан на странице форматов.
tfg formats png
Можно ли создать намеренно сломанный файл?
Да. Добавьте --damage zero-head, и файл выйдет точно заданного размера, с первыми байтами, перезаписанными нулями, так что программа чтения его отклонит, а манифест скажет, что ваша система должна его отклонить. Подробности на странице о повреждённых тестовых файлах.
tfg generate --format png --size 2mb --damage zero-head --out ./out
Какие форматы появятся дальше?
7z, mp3 и mp4. Сегодня полностью работают 26 форматов.
На каких системах это можно запускать?
Командная строка работает в Windows и Linux на Intel и ARM, а также на Mac с Apple Silicon. Десктопное окно поставляется для Windows на Intel, Linux на Intel и Mac с Apple Silicon. Mac на Intel не поддерживаются, и для них ничего не собирается.
Нужно ли что-нибудь устанавливать?
Нет. Скачайте архив для своей системы, распакуйте и запустите бинарный файл. Нет установщика, среды выполнения, которую нужно добавлять, и зависимостей, которые нужно разрешать. Если у вас есть Go, подойдёт и одна команда go install.
go install github.com/donislawdev/TestingFilesGenerator/cmd/tfg@latest
Почему запуск на тысячах файлов в Windows медленнее?
Потому что Windows берёт больше за каждый просматриваемый путь, а команда, обходящая тысячи файлов, просматривает тысячи путей. Измерено на одной машине с 3000 файлов по 1 КБ: verify занимает около 0,9 секунды в Windows и около 0,2 секунды в Linux в контейнере. Более короткий путь вывода уменьшает цифру для Windows, потому что каждая папка над файлами входит в то, что просматривается.
Всё ещё выбираете?
Страница сценариев показывает задачи, для которых инструмент создан, а страница форматов перечисляет каждый формат с наименьшим файлом, который он может создать. README в репозитории - полный справочник.
Бесплатно, открытый код, GPL-3.0. Без регистрации. Сборки для Windows и macOS подписаны и запускаются без предупреждений.