diff --git a/manpages/conf.py b/manpages/conf.py index 79e603b..26606ea 100644 --- a/manpages/conf.py +++ b/manpages/conf.py @@ -27,8 +27,7 @@ today_fmt = '%Y-%m-%d' # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration needs_sphinx = '4.0' -extensions = [ -] +extensions = [] templates_path = ['_templates'] exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] diff --git a/tests/global-configuration.cpp b/tests/global-configuration.cpp deleted file mode 100644 index 1d62e1e..0000000 --- a/tests/global-configuration.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ -/* - * Copyright (c) 2014-2022, Regents of the University of California. - * - * This file is part of ndn-tools (Named Data Networking Essential Tools). - * See AUTHORS.md for complete list of ndn-tools authors and contributors. - * - * ndn-tools 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 3 of the License, or (at your option) any later version. - * - * ndn-tools 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 - * ndn-tools, e.g., in COPYING.md file. If not, see . - */ - -#include "core/common.hpp" - -#include "tests/boost-test.hpp" - -#include -#include -#include - -namespace ndn::tests { - -class GlobalConfiguration -{ -public: - GlobalConfiguration() - { - const char* envHome = ::getenv("HOME"); - if (envHome) - m_home = envHome; - - auto testHome = boost::filesystem::path(UNIT_TESTS_TMPDIR) / "test-home"; - if (::setenv("HOME", testHome.c_str(), 1) != 0) - NDN_THROW(std::runtime_error("setenv() failed")); - - boost::filesystem::create_directories(testHome); - - std::ofstream clientConf((testHome / ".ndn" / "client.conf").c_str()); - clientConf << "pib=pib-sqlite3" << std::endl - << "tpm=tpm-file" << std::endl; - } - - ~GlobalConfiguration() noexcept - { - if (m_home.empty()) - ::unsetenv("HOME"); - else - ::setenv("HOME", m_home.data(), 1); - } - -private: - std::string m_home; -}; - -BOOST_TEST_GLOBAL_CONFIGURATION(GlobalConfiguration); - -} // namespace ndn::tests diff --git a/tests/key-chain-fixture.cpp b/tests/key-chain-fixture.cpp deleted file mode 100644 index 010716c..0000000 --- a/tests/key-chain-fixture.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ -/* - * Copyright (c) 2014-2022, Regents of the University of California. - * - * This file is part of ndn-tools (Named Data Networking Essential Tools). - * See AUTHORS.md for complete list of ndn-tools authors and contributors. - * - * ndn-tools 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 3 of the License, or (at your option) any later version. - * - * ndn-tools 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 - * ndn-tools, e.g., in COPYING.md file. If not, see . - */ - -#include "tests/key-chain-fixture.hpp" - -#include - -#include - -namespace ndn::tests { - -using namespace ndn::security; - -KeyChainFixture::KeyChainFixture() - : m_keyChain("pib-memory:", "tpm-memory:") -{ -} - -KeyChainFixture::~KeyChainFixture() -{ - boost::system::error_code ec; - for (const auto& certFile : m_certFiles) { - boost::filesystem::remove(certFile, ec); // ignore error - } -} - -bool -KeyChainFixture::saveCert(const Data& cert, const std::string& filename) -{ - m_certFiles.push_back(filename); - try { - ndn::io::save(cert, filename); - return true; - } - catch (const ndn::io::Error&) { - return false; - } -} - -bool -KeyChainFixture::saveIdentityCert(const Identity& identity, const std::string& filename) -{ - Certificate cert; - try { - cert = identity.getDefaultKey().getDefaultCertificate(); - } - catch (const Pib::Error&) { - return false; - } - - return saveCert(cert, filename); -} - -bool -KeyChainFixture::saveIdentityCert(const Name& identityName, const std::string& filename, - bool allowCreate) -{ - Identity id; - try { - id = m_keyChain.getPib().getIdentity(identityName); - } - catch (const Pib::Error&) { - if (allowCreate) { - id = m_keyChain.createIdentity(identityName); - } - } - - if (!id) { - return false; - } - - return saveIdentityCert(id, filename); -} - -} // namespace ndn::tests diff --git a/tests/key-chain-fixture.hpp b/tests/key-chain-fixture.hpp index 0ef6ff8..8eaffc2 100644 --- a/tests/key-chain-fixture.hpp +++ b/tests/key-chain-fixture.hpp @@ -1,6 +1,6 @@ /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ /* - * Copyright (c) 2014-2022, Regents of the University of California. + * Copyright (c) 2013-2022 Regents of the University of California. * * This file is part of ndn-tools (Named Data Networking Essential Tools). * See AUTHORS.md for complete list of ndn-tools authors and contributors. @@ -21,59 +21,16 @@ #define NDN_TOOLS_TESTS_KEY_CHAIN_FIXTURE_HPP #include -#include namespace ndn::tests { /** * @brief A fixture providing an in-memory KeyChain. - * - * Test cases can use this fixture to create identities. Identities, certificates, and - * saved certificates are automatically removed during test teardown. */ class KeyChainFixture { protected: - using Certificate = ndn::security::Certificate; - using Identity = ndn::security::Identity; - using Key = ndn::security::Key; - -public: - /** - * @brief Saves an NDN certificate to a file - * @return true if successful, false otherwise - */ - bool - saveCert(const Data& cert, const std::string& filename); - - /** - * @brief Saves the default certificate of @p identity to a file - * @return true if successful, false otherwise - */ - bool - saveIdentityCert(const Identity& identity, const std::string& filename); - - /** - * @brief Saves the default certificate of the identity named @p identityName to a file - * @param identityName Name of the identity - * @param filename File name, must be writable - * @param allowCreate If true, create the identity if it does not exist - * @return true if successful, false otherwise - */ - bool - saveIdentityCert(const Name& identityName, const std::string& filename, - bool allowCreate = false); - -protected: - KeyChainFixture(); - - ~KeyChainFixture(); - -protected: - ndn::KeyChain m_keyChain; - -private: - std::vector m_certFiles; + ndn::KeyChain m_keyChain{"pib-memory:", "tpm-memory:"}; }; } // namespace ndn::tests diff --git a/tests/wscript b/tests/wscript index 19bb8e7..3ecb2e0 100644 --- a/tests/wscript +++ b/tests/wscript @@ -2,14 +2,9 @@ top = '..' def build(bld): - if not bld.env.WITH_TESTS: - return - - tmpdir = 'UNIT_TESTS_TMPDIR="%s"' % bld.bldnode.make_node('tmp-files') bld.program( target='../unit-tests', name='unit-tests', source=bld.path.ant_glob(['*.cpp'] + ['%s/**/*.cpp' % tool for tool in bld.env.BUILD_TOOLS]), use=['core-objects'] + ['%s-objects' % tool for tool in bld.env.BUILD_TOOLS], - defines=[tmpdir], install_path=None) diff --git a/wscript b/wscript index e699fd3..369d9b9 100644 --- a/wscript +++ b/wscript @@ -36,7 +36,7 @@ def configure(conf): conf.check_cfg(package='libndn-cxx', args=['libndn-cxx >= 0.8.0', '--cflags', '--libs'], uselib_store='NDN_CXX', pkg_config_path=pkg_config_path) - boost_libs = ['system', 'program_options', 'filesystem'] + boost_libs = ['system', 'program_options'] if conf.env.WITH_TESTS: boost_libs.append('unit_test_framework') conf.define('WITH_TESTS', 1) @@ -74,7 +74,9 @@ def build(bld): export_includes='.') bld.recurse('tools') - bld.recurse('tests') + + if bld.env.WITH_TESTS: + bld.recurse('tests') if Utils.unversioned_sys_platform() == 'linux': systemd_units = bld.path.ant_glob('systemd/*.in')