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',