diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-01-09 22:24:06 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-01-10 19:27:18 +0100 |
| commit | 612d0d8ed51f8d1e6ea75c9e0dae32c4ed5f272c (patch) | |
| tree | 3510d401c7ddfd9ddd8d74ad2b4b9f6d34d5a268 /test/kdm_cli_test.cc | |
| parent | 54b057a86e25a0309c774c8e83db68e02e0fce02 (diff) | |
Fix crashes when using kdm_cli with a certificate instead of a cinema.
Diffstat (limited to 'test/kdm_cli_test.cc')
| -rw-r--r-- | test/kdm_cli_test.cc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/kdm_cli_test.cc b/test/kdm_cli_test.cc new file mode 100644 index 000000000..404f7f8d1 --- /dev/null +++ b/test/kdm_cli_test.cc @@ -0,0 +1,55 @@ +/* + Copyright (C) 2022 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include "lib/kdm_cli.h" +#include <boost/test/unit_test.hpp> +#include <iostream> + + +using std::string; +using std::vector; + + +BOOST_AUTO_TEST_CASE (kdm_cli_test_certificate) +{ + vector<string> args = { + "kdm_cli", + "--verbose", + "--valid-from", "now", + "--valid-duration", "2 weeks", + "--certificate", "test/data/cert.pem", + "test/data/dkdm.xml" + }; + + char** argv = new char*[args.size()]; + for (auto i = 0U; i < args.size(); ++i) { + argv[i] = const_cast<char*>(args[i].c_str()); + } + + auto error = kdm_cli (args.size(), argv, [](string s) { std::cout << s << "\n"; }); + if (error) { + std::cout << *error << "\n"; + } + BOOST_CHECK (!error); + + delete[] argv; +} + |
