build: align minimum build dependencies with ndn-cxx

 * Recommend boost >= 1.65.1 and gcc >= 7.4.0
 * Require clang >= 4.0, or Xcode >= 9.0 on macOS
 * Silence an ABI-related diagnostic message from gcc on armv7

Refs: #5087, #5106
Change-Id: I88ef0e0f183736f19ac414a84baebb0e1073381b
diff --git a/tests/README.md b/tests/README.md
index 83cab77..ca34f42 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -1,13 +1,12 @@
-ndn-tools unit tests
-====================
+# ndn-tools unit tests
 
 ## Assumptions
 
-Unit tests for a tool `foo` should be placed in the folder `foo` and build script for the tool
-should define `foo-objects` that includes all object files for the tool, except object files
-defining main function.
+Unit tests for a tool `foo` should be placed in the folder `foo` and the build script
+for the tool should define `foo-objects` that includes all object files for that tool,
+except the object that contains the `main()` function.
 
-For example,
+For example:
 
     bld(features='cxx',
         name='tool-subtool-objects',
diff --git a/tests/main.cpp b/tests/main.cpp
index c111daf..1a6b9b0 100644
--- a/tests/main.cpp
+++ b/tests/main.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2019,  Regents of the University of California,
+ * Copyright (c) 2014-2020,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -23,6 +23,5 @@
  * ndn-tools, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#define BOOST_TEST_MODULE ndn-tools Unit Tests
-
-#include "boost-test.hpp"
+#define BOOST_TEST_MODULE ndn-tools
+#include "tests/boost-test.hpp"
diff --git a/tests/test-case.t.cpp.sample b/tests/test-case.t.cpp.sample
index 77d22c1..44223a6 100644
--- a/tests/test-case.t.cpp.sample
+++ b/tests/test-case.t.cpp.sample
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2016,  Arizona Board of Regents.
+/*
+ * Copyright (c) 2014-2020  Arizona Board of Regents.
  *
  * This file is part of ndn-tools (Named Data Networking Essential Tools).
  * See AUTHORS.md for complete list of ndn-tools authors and contributors.
@@ -17,22 +17,22 @@
  * ndn-tools, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-// #include "unit-under-test.hpp"
-// Unit being tested MUST be included first, to ensure header compiles on its own.
+// The unit being tested should be included first, to ensure the header compiles on its own.
 // For further information about test naming conventions, see
-// http://redmine.named-data.net/projects/nfd/wiki/UnitTesting
+// https://redmine.named-data.net/projects/nfd/wiki/UnitTesting
+//#include "unit-under-test.hpp"
 
 #include "tests/test-common.hpp"
 
 namespace ndn {
 namespace tool_name {
 namespace tests {
-// Unit tests SHOULD go inside ndn::tool_name::tests namespace.
+// Unit tests should go inside the ndn::tool_name::tests namespace.
 
-// Common fixtures in ndn::tests can be imported.
+// Common fixtures in ndn::tests can be imported if needed.
 using namespace ndn::tests;
 
-// See http://redmine.named-data.net/projects/nfd/wiki/UnitTesting on how to name a test suite.
+// See https://redmine.named-data.net/projects/nfd/wiki/UnitTesting for a guide on how to name a test suite.
 BOOST_AUTO_TEST_SUITE(TestSkeleton)
 
 BOOST_AUTO_TEST_CASE(Test1)
@@ -40,16 +40,16 @@
   int i = 0;
 
   // For reference of available Boost.Test macros, see
-  // https://www.boost.org/doc/libs/1_58_0/libs/test/doc/html/utf/testing-tools/reference.html
+  // https://www.boost.org/doc/libs/1_65_1/libs/test/doc/html/boost_test/testing_tools/summary.html
 
   BOOST_REQUIRE_NO_THROW(i = 1);
-  BOOST_REQUIRE_EQUAL(i, 1);
+  BOOST_CHECK_EQUAL(i, 1);
 }
 
 // Use UnitTestTimeFixture to mock clocks.
 BOOST_FIXTURE_TEST_CASE(Test2, UnitTestTimeFixture)
 {
-  // this->advanceClocks increments mock clocks.
+  // advanceClocks() increments mock clocks.
   boost::asio::io_service io;
   this->advanceClocks(io, time::milliseconds(500));
 }