Skip to content
This repository has been archived by the owner on Mar 12, 2021. It is now read-only.

Не проходят тесты, если пользователь системы задан не латиницей #103

Open
JohnyDeath opened this issue May 24, 2016 · 14 comments

Comments

@JohnyDeath
Copy link
Contributor

Если пользователь системы задан кириллицей, то некоторые тесты падают.
Причина - кодировка генерируемых батников.
Вот здесь: https://github.com/EvilBeaver/oscript-library/blob/develop/src/gitsync/tests/git-sync-test.os#L475
задается вин-кодировка. Батник имя пользователя превращает в крякозябры и ес-но ничего не выполняется.
Если поменять на 866, то все отрабатывает корректно. Но тогда и выходные логи формируются в дос-кодировке.

Также похожая проблема наблюдается в других классах библиотеки. Нужно внимательно все просмотреть.

@artbear
Copy link
Collaborator

artbear commented May 24, 2016

Как вариант, предлагаю следующее:

  • Добавить спец.метод для преобразования файла из 866 в вин1251, например, через Чтение и ЗаписьТекста.
  • Тогда можно будет использовать штатный вывод в 866 в командных файлах.
  • Далее вызов этого метода преобразования нужно вставить в метод ВывестиТекстФайла
  • Проверить на всех скриптах библиотеки поиском по 1251 или chcp 1251

@EvilBeaver
Copy link
Owner

батники кроме как в gitsync нигде больше не генерируются, насколько я помню.
исправление-то простое, сам батник писать в cp866 и вывод батника (который перенаправляется в файл) открывать в cp866 и читать. Все.

@JohnyDeath
Copy link
Contributor Author

вывод батника (который перенаправляется в файл) открывать в cp866 и читать

такой вариант ребят вчера не устроил.
Думаю оптимальным вариантом будет идея Артура

@nixel2007
Copy link
Contributor

Я немного не в контексте, но почему нельзя просто жестко устанавливать utf-8 и соответственно 65001?

@EvilBeaver
Copy link
Owner

можно, но переписывать больше. В предлагаемом варианте просто надо в местах записи батника и чтения его выхлопа нужную кодировку проставить и все

@EvilBeaver
Copy link
Owner

EvilBeaver commented May 24, 2016

@JohnyDeath

такой вариант ребят вчера не устроил.

А можно подробнее, что и где не устроило?

@JohnyDeath
Copy link
Contributor Author

Чтения выхлопа нет. Там в файл все записывается, которые скорее всего далее используются в билд серверах, настройки которых не хочется менять.

@EvilBeaver
Copy link
Owner

@JohnyDeath в гитсинке всегда есть чтение выхлопа. Вполне возможно, оно сделано не в той кодировке

@EvilBeaver
Copy link
Owner

Собственно, вот оно:

https://github.com/EvilBeaver/oscript-library/blob/develop/src/gitsync/src/core/%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D1%8B/%D0%9C%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80%D0%A1%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8.os#L1032

Этот метод часто используется для чтения выхлопа, а файл читается без указания кодировки

@artbear
Copy link
Collaborator

artbear commented May 24, 2016

@EvilBeaver А еще есть аналогичный метод ВывестиТекстФайла
который юзается для обработки других команд Гит :(

дублирование, тех.долг, понимаешь

@artbear
Copy link
Collaborator

artbear commented May 24, 2016

Выполнял поиск по исходникам по ЗапуститьПриложение
И нашел еще:

Есть метод ПрочитатьФайл, который также юзается для чтения логов

Например, в config-storage.os в методе ВыгрузитьВерсиюКонфигурации
или в файле table-reader.os

@EvilBeaver
Copy link
Owner

Метод "ПрочитатьФайл", похоже,кандидат сюда: https://github.com/oscript-library/files-common

@artbear
Copy link
Collaborator

artbear commented May 24, 2016

@EvilBeaver

https://github.com/oscript-library/files-common

опаньки, это интересно. когда добавил этот ресурс?

@JohnyDeath
Copy link
Contributor Author

Там бы тоже небольшой ридми вставить, чтобы знать для чего вообще создан модуль

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants