tests: delete dead code in KeyChainFixture
Also sync GlobalConfiguration with NFD and reformat
the example configuration files.
Change-Id: Id1580eed30514bcbf2e0653635ccbf65dac24d58
diff --git a/tests/global-configuration.cpp b/tests/global-configuration.cpp
index 4dad5c0..e217098 100644
--- a/tests/global-configuration.cpp
+++ b/tests/global-configuration.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2017-2022, Regents of the University of California.
+ * Copyright (c) 2017-2024, Regents of the University of California.
*
* This file is part of ndncert, a certificate management system based on NDN.
*
@@ -18,12 +18,14 @@
* See AUTHORS.md for complete list of ndncert authors and contributors.
*/
-#include "detail/ndncert-common.hpp"
-
#include "tests/boost-test.hpp"
-#include <boost/filesystem.hpp>
-#include <fstream>
+#include <ndn-cxx/util/exception.hpp>
+
+#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/path.hpp>
+
+#include <stdexcept>
#include <stdlib.h>
namespace ndncert::tests {
@@ -35,17 +37,16 @@
{
const char* envHome = ::getenv("HOME");
if (envHome)
- m_home = envHome;
+ m_home.assign(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"));
+ // in case an earlier test run crashed without a chance to run the destructor
+ boost::filesystem::remove_all(TESTDIR);
+ auto testHome = TESTDIR / "test-home";
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;
+ if (::setenv("HOME", testHome.c_str(), 1) != 0)
+ NDN_THROW(std::runtime_error("setenv() failed"));
}
~GlobalConfiguration() noexcept
@@ -54,9 +55,13 @@
::unsetenv("HOME");
else
::setenv("HOME", m_home.data(), 1);
+
+ boost::system::error_code ec;
+ boost::filesystem::remove_all(TESTDIR, ec); // ignore error
}
private:
+ static inline const boost::filesystem::path TESTDIR{UNIT_TESTS_TMPDIR};
std::string m_home;
};
diff --git a/tests/key-chain-fixture.cpp b/tests/key-chain-fixture.cpp
deleted file mode 100644
index 5276ae4..0000000
--- a/tests/key-chain-fixture.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2013-2022 Regents of the University of California.
- *
- * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
- *
- * ndn-cxx library is free software: you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * ndn-cxx library 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 Lesser General Public License for more details.
- *
- * You should have received copies of the GNU General Public License and GNU Lesser
- * General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
- * <http://www.gnu.org/licenses/>.
- *
- * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
- */
-
-#include "tests/key-chain-fixture.hpp"
-
-#include <ndn-cxx/util/io.hpp>
-
-#include <boost/filesystem/operations.hpp>
-
-namespace ndncert::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 ndncert::tests
diff --git a/tests/key-chain-fixture.hpp b/tests/key-chain-fixture.hpp
index c785871..bd977e5 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) 2013-2022 Regents of the University of California.
+ * Copyright (c) 2013-2024 Regents of the University of California.
*
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
*
@@ -22,62 +22,17 @@
#ifndef NDNCERT_TESTS_KEY_CHAIN_FIXTURE_HPP
#define NDNCERT_TESTS_KEY_CHAIN_FIXTURE_HPP
-#include "detail/ndncert-common.hpp"
-
#include <ndn-cxx/security/key-chain.hpp>
-#include <ndn-cxx/security/signing-helpers.hpp>
namespace ndncert::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<std::string> m_certFiles;
+ ndn::KeyChain m_keyChain{"pib-memory:", "tpm-memory:"};
};
} // namespace ndncert::tests
diff --git a/tests/unit-tests/ca-module.t.cpp b/tests/unit-tests/ca-module.t.cpp
index 14b72b2..9fcee0f 100644
--- a/tests/unit-tests/ca-module.t.cpp
+++ b/tests/unit-tests/ca-module.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2017-2023, Regents of the University of California.
+ * Copyright (c) 2017-2024, Regents of the University of California.
*
* This file is part of ndncert, a certificate management system based on NDN.
*
@@ -19,8 +19,6 @@
*/
#include "ca-module.hpp"
-#include "challenge/challenge-module.hpp"
-#include "challenge/challenge-email.hpp"
#include "challenge/challenge-pin.hpp"
#include "detail/info-encoder.hpp"
#include "requester-request.hpp"
@@ -29,6 +27,7 @@
#include "tests/io-key-chain-fixture.hpp"
#include <ndn-cxx/metadata-object.hpp>
+#include <ndn-cxx/security/signing-helpers.hpp>
#include <ndn-cxx/security/verification-helpers.hpp>
#include <ndn-cxx/util/dummy-client-face.hpp>
diff --git a/tests/unit-tests/challenge-possession.t.cpp b/tests/unit-tests/challenge-possession.t.cpp
index cc694e6..a656c1e 100644
--- a/tests/unit-tests/challenge-possession.t.cpp
+++ b/tests/unit-tests/challenge-possession.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2017-2022, Regents of the University of California.
+ * Copyright (c) 2017-2024, Regents of the University of California.
*
* This file is part of ndncert, a certificate management system based on NDN.
*
@@ -19,11 +19,12 @@
*/
#include "challenge/challenge-possession.hpp"
-#include "detail/challenge-encoder.hpp"
#include "tests/boost-test.hpp"
#include "tests/key-chain-fixture.hpp"
+#include <ndn-cxx/security/signing-helpers.hpp>
+
namespace ndncert::tests {
class ChallengePossessionFixture : public KeyChainFixture
diff --git a/tests/unit-tests/requester.t.cpp b/tests/unit-tests/requester.t.cpp
index 8fc0b8d..a3fa8d5 100644
--- a/tests/unit-tests/requester.t.cpp
+++ b/tests/unit-tests/requester.t.cpp
@@ -1,6 +1,6 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
- * Copyright (c) 2017-2023, Regents of the University of California.
+ * Copyright (c) 2017-2024, Regents of the University of California.
*
* This file is part of ndncert, a certificate management system based on NDN.
*
@@ -20,13 +20,13 @@
#include "requester-request.hpp"
#include "ca-module.hpp"
-#include "challenge/challenge-module.hpp"
#include "detail/error-encoder.hpp"
#include "detail/probe-encoder.hpp"
#include "tests/boost-test.hpp"
#include "tests/io-key-chain-fixture.hpp"
+#include <ndn-cxx/security/signing-helpers.hpp>
#include <ndn-cxx/util/dummy-client-face.hpp>
namespace ndncert::tests {
diff --git a/tests/wscript b/tests/wscript
index 499d754..de42581 100644
--- a/tests/wscript
+++ b/tests/wscript
@@ -3,7 +3,7 @@
top = '..'
def build(bld):
- tmpdir = 'UNIT_TESTS_TMPDIR="%s"' % bld.bldnode.make_node('tmp-files')
+ tmpdir = 'UNIT_TESTS_TMPDIR="%s"' % bld.bldnode.make_node('tests-tmp')
bld.program(
target=f'{top}/unit-tests',
name='unit-tests',