diff --git a/README.md b/README.md index 6afab9c63..e877a123a 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,8 @@ MKVToolNix 9.7.1 5. Notes for compilation on (Open)Solaris 6. Unit tests 3. Reporting bugs -4. Included libraries and their licenses +4. Test suite and continuous integration tests +5. Included libraries and their licenses 1. avilib 2. Boost's utf8_codecvt_facet 3. libEBML @@ -239,11 +240,44 @@ them somewhere and post a link in the issue. You can also upload them to my FTP server. Details on how to connect can be found in the [MKVToolNix FAQ](https://github.com/mbunkus/mkvtoolnix/wiki/FTP-server). -# 4. Included libraries and their licenses +# 4. Test suite and continuous integration tests + +MKVToolNix contains a lot of test cases in order to detect regressions +before they're released. Regressions include both compilation issues +as well as changes from expected program behavior. + +As mentioned in section 2.6., MKVToolNix comes with a set of unit +tests based on the Google Test library in the `tests/unit` +sub-directory that you can run yourself. These cover only a small +amount of code, and any effort to extend them would be most welcome. + +A second test suite exists that targets the program behavior, e.g. the +output generated by mkvmerge when specific options are used with +specific input files. These are the test cases in the `tests` +directory itself. Unfortunately the files they run on often contain +copyrighted material that I cannot distribute. Therefore you cannot +run them yourself. + +A third pillar of the testing effort is the +[continuous integration tests](https://mkvtoolnix.download/buildbot/grid) +run on a Buildbot instance. These are run automatically for each +commit made to the git repository. The tests include: + + * building of all the packages for Linux distributions that I + normally provide for download myself in both 32bit and 64bit + variants + * building of the Windows installer and portable packages in both + 32bit and 64bit variants + * building with both g++ and clang++ + * building and running the unit tests + * building and running the test file test suite + * building with all optional features disabled + +# 5. Included libraries and their licenses MKVToolNix includes and uses the following libraries: -## 4.1. avilib +## 5.1. avilib Reading and writing avi files. @@ -253,7 +287,7 @@ of the transcode package. License: GNU General Public License v2 URL: http://www.transcoding.org/ -## 4.2. Boost's utf8_codecvt_facet +## 5.2. Boost's utf8_codecvt_facet A class utf8_codecvt_facet, derived from std::codecvt, which can be used to convert utf8 data in files into wchar_t strings @@ -262,21 +296,21 @@ in the application. License: Boost Software License - Version 1.0 URL: http://www.boost.org -## 4.3. libEBML +## 5.3. libEBML A C++ library to parse EBML files License: GNU Lesser General Public License v2.1 URL: http://www.matroska.org/ -## 4.4. libMatroska +## 5.4. libMatroska A C++ library to parse Matroska files License: GNU Lesser General Public License v2.1 URL: http://www.matroska.org/ -## 4.5. librmff +## 5.5. librmff librmff is short for 'RealMedia file format access library'. It aims at providing the programmer an easy way to read and write RealMedia @@ -285,21 +319,21 @@ files. License: GNU Lesser General Public License v2.1 URL: https://www.bunkus.org/videotools/librmff/index.html -## 4.6. nlohmann's JSON +## 5.6. nlohmann's JSON JSON for Modern C++ License: MIT URL: https://github.com/nlohmann/json -## 4.7. pugixml +## 5.7. pugixml An XML processing library License: MIT URL: http://pugixml.org/ -## 4.8. utf8-cpp +## 5.8. utf8-cpp UTF-8 with C++ in a Portable Way