Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Filesystem issue reporting

Boost , ,

boost.png (6897 bytes) Filesystem Bug Reporting
Home    Tutorial    Reference    FAQ    Releases    Portability    V3 Intro    V3 Design    Deprecated    Bug Reports   

Повышаю. Проблемы файловой системы, такие как сообщения об ошибках или запросы функций, должны сообщаться через билет Boost Trac.

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

Bug reports

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

Вам необходимо предоставить следующее:

  1. Простая тестовая программа, которая:
    • Иллюстрирует проблему, и
    • Автоматически дает однозначный проход или результат отказа - предпочтительно возвращение нуля для прохода и ненуля для отказа, и
    • Можно использовать в качестве основы для добавления тестов в Boost. Filesystem's регрессионный тест.
  2. Компилятор, стандартная библиотека, платформа и версия Boost, которую вы использовали для создания и запуска своей тестовой программы.
  3. Описание того, как построить и запустить программу тестирования.
  4. Копия вывода из тестовой программы, если таковая имеется.
  5. Адрес электронной почты для последующих вопросов.

См. Обоснование , чтобы узнать, почему это необходимо.

Для большей части автоматического фреймворка, чтобы обеспечить вышесказанное, читайте дальше!

Bug reporting framework

Каталог /libs/filesystem/bug> предоставляет программу тестирования ошибок (bug.cpp) и файл сборки (Jamfile.v2). Вот что вам нужно сделать:

  1. Добавьте один или несколько тестовых случаев кbug.cpp, используя любой текстовый редактор или редактор программы.
  2. Создание и испытание.
  3. Прикрепите копииТестового выводаи тестовой программы кБилету Трак.

Это и #39, это! Когда вы завершите эти шаги, вы будете готовы!

Вывод теста предоставляет всю основную информацию о компиляторе, библиотеке std, платформе, версии Boost и командной строке, а добавленные вами тестовые кейсы должны облегчить разработчику библиотеки воспроизведение проблемы.

Using the framework

bug.cpp

Вот bug.cpp как указано. Чтобы сообщить о реальной ошибке, используйте макросы BOOST_TEST и BOOST_TEST_EQ для создания собственных тестовых случаев. Вы можете удалить три теста в bug.cpp:

#include <boost/detail/lightweight_test_report.hpp>
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
int test_main(int, char*[])     // note name
{
  BOOST_TEST(2 + 2 == 5);       // one convertible-to-bool argument; this one fails!
  BOOST_TEST_EQ(4 + 4, 9);      // two EqualityComparible arguments; this one fails!
  BOOST_TEST(fs::exists("."));  // should pass, so nothing should be reported
  return ::boost::report_errors();   // required
}

Build and test

POSIX-подобные системы:

cd <boost-root>/libs/filesystem/bug
../../../b2 -a
bin/bug

Windows:

cd <boost-root>\libs\filesystem\bug
..\..\..\b2 -a
bin\bug

Test output

Запуск теста на Windows произвел этот вывод теста:

Microsoft Visual C++ version 14.0
Dinkumware standard library version 610
Win32
Boost version 1.58.0
Command line: bin\bug
bug.cpp(10): test '2 + 2 == 5' failed in function
  'int __cdecl test_main(int,char *[])'
bug.cpp(11): test '4 + 4 == 9' failed in function
  'int __cdecl test_main(int,char *[])': '8' != '9'
2 errors detected.

Структура теста выполняет test_main() из блока try с catch блокировать сообщения об исключениях через std:: исключая что(). Поэтому результат будет отличаться, если будет сделано исключение.

Background information

Теперь у вас должно быть достаточно информации, чтобы подать легко воспроизводимый отчет об ошибках. Таким образом, вы можете пропустить чтение остальной части этой страницы, если вам не нужно сделать что-то необычное.

b2 command line

b2 (ранее bjam) использование:  b2 [варианты] [свойства] [цель]

Повышаю. Build b2 имеет множество опций, свойств и целей, но большинство из них вам не понадобятся. Вот некоторые из них, которые вы можете найти полезными:

Опции

-a    Восстановить все, а не просто устаревшие цели. Используется в приведенном выше примере для обеспечения того, чтобы библиотеки были построены с той же настройкой, что и тестовая программа.

Свойства

address-model=n  n равно 32 или 64. Явно запрашивайте генерацию 32-битного или 64-битного кода. Это обычно требует, чтобы ваш компилятор был соответствующим образом настроен.

variant=string         строка является debug или release.

toolset=string       Например, gcc-4.9, clang-3.3, или msvc-14.0.

include=string       Дополнительные пути для компиляторов C и C++.

cxxflags=string       Пользовательские опции для перехода на компилятор C++.

define=string        Дополнительные макроопределения для компиляторов C и C++. строка должна быть либо SYMBOL, либо SYMBOL=VALUE

Rationale

Вот список запросов снова, с обоснованием добавлено:

  1. A simple test program that:
    • Иллюстрация проблемы [Код сообщает более ясно, чем проза.] Если похоже, что потребуется некоторое время, чтобы выяснить, в чем именно заключается проблема, или, что еще хуже, может привести к погоне за диким гусем, отчет об ошибке откладывается для дальнейшей работы, а затем часто забывается. и

    • Автоматически дает однозначный проход или результат отказа - предпочтительнее возвращение нуля для прохода и ненуля для отказа.[Предотвращает недопонимание и позволяет использовать в автоматических регрессионных тестах].и
    • Можно использовать в качестве основы для добавления тестов в Boost. Filesystem & #39; набор регрессионных тестов[С хорошими тестовыми случаями исправления становятся легче, а регрессии становятся менее вероятными].
  2. Компилятор, стандартная библиотека, платформа и версия Boost, которую вы использовали для создания и запуска своей тестовой программы.[Реализация включает в себя много кода, зависящего от платформы, а также зависит от других упомянутых факторов. Знайте, что эти вещи заранее привлекают внимание к отчету об ошибке, не требуя дополнительной информации.
  3. Описание того, как построить и запустить программу тестирования.[Если в качестве двигателя сборки используется b2 (ранее известный как bjam), это не вызывает беспокойства, но в противном случае требуется гораздо больше информации.]
  4. Копия результатов тестовой программы, если таковая имеется.[Избегает неправильного толкования результатов].
  5. Адрес электронной почты для последующих вопросов.[Комментарии Trac являются основным средством ответа, но это удручает, когда на вопрос Trac не дается ответа и нет адреса электронной почты, прикрепленного для последующего наблюдения.]

Пересмотрено 28 Январь 201528 January, 2015[ORIG_END] -->

Авторское право Beman Dawes, 2014

Распространяется в соответствии с Лицензией на программное обеспечение Boost, версия 1.0. См. www.boost.org/LICENSE_1_0.txt

Статья Filesystem issue reporting раздела может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 17:57:46/0.0074880123138428/0