build: Upgrade waf to version 2.0.6

This commit also includes:
- cleanup of build scripts
- replacing log4cxx with ndn-cxx logging facility

Change-Id: I96fd673a3cd2e06061e9efc1a7891e41cf97ea4f
diff --git a/tests/global-configuration-fixture.cpp b/tests/global-configuration-fixture.cpp
index 25dd100..a8ba286 100644
--- a/tests/global-configuration-fixture.cpp
+++ b/tests/global-configuration-fixture.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2016, Regents of the University of California.
+/*
+ * Copyright (c) 2014-2018, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -28,8 +28,6 @@
 public:
   GlobalConfigurationFixture()
   {
-    log::init("unit-tests.log4cxx");
-
     if (getenv("HOME") != nullptr) {
       m_home = getenv("HOME");
     }
diff --git a/tests/unit/clients/iterative-query-controller.cpp b/tests/unit/clients/iterative-query-controller.cpp
index 307ce8b..65ab32b 100644
--- a/tests/unit/clients/iterative-query-controller.cpp
+++ b/tests/unit/clients/iterative-query-controller.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2017, Regents of the University of California.
+ * Copyright (c) 2014-2018, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -27,8 +27,6 @@
 namespace ndns {
 namespace tests {
 
-NDNS_LOG_INIT("IterativeQueryControllerTest")
-
 class QueryControllerFixture : public DbTestData
 {
 public:
@@ -87,7 +85,7 @@
   time::milliseconds lifetime(4000);
 
   bool hasDataBack = false;
-  auto ctr = make_shared<ndns::IterativeQueryController>(
+  auto ctr = std::make_shared<ndns::IterativeQueryController>(
     dstLabel, rrType, lifetime,
     [&hasDataBack] (const Data&, const Response&) {
       hasDataBack = true;
diff --git a/tests/unit/daemon/db-mgr.cpp b/tests/unit/daemon/db-mgr.cpp
index 4f730b9..ffa38b8 100644
--- a/tests/unit/daemon/db-mgr.cpp
+++ b/tests/unit/daemon/db-mgr.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2017, Regents of the University of California.
+ * Copyright (c) 2014-2018, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -26,7 +26,7 @@
 namespace ndns {
 namespace tests {
 
-NDNS_LOG_INIT("DbMgrTest")
+NDNS_LOG_INIT(DbMgrTest);
 
 BOOST_AUTO_TEST_SUITE(DbMgr)
 
diff --git a/tests/unit/daemon/name-server.cpp b/tests/unit/daemon/name-server.cpp
index a8dbd3b..dae6685 100644
--- a/tests/unit/daemon/name-server.cpp
+++ b/tests/unit/daemon/name-server.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2017, Regents of the University of California.
+ * Copyright (c) 2014-2018, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -31,7 +31,7 @@
 namespace ndns {
 namespace tests {
 
-NDNS_LOG_INIT("NameServerTest")
+NDNS_LOG_INIT(NameServerTest);
 
 class NameServerFixture : public DbTestData
 {
diff --git a/tests/unit/daemon/rrset-factory.cpp b/tests/unit/daemon/rrset-factory.cpp
index 625679e..39c9286 100644
--- a/tests/unit/daemon/rrset-factory.cpp
+++ b/tests/unit/daemon/rrset-factory.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2017, Regents of the University of California.
+ * Copyright (c) 2014-2018, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -29,7 +29,7 @@
 namespace ndns {
 namespace tests {
 
-NDNS_LOG_INIT("RrsetFactoryTest")
+NDNS_LOG_INIT(RrsetFactoryTest);
 
 class RrsetFactoryFixture : public IdentityManagementFixture
 {
diff --git a/tests/unit/database-test-data.cpp b/tests/unit/database-test-data.cpp
index 11d2ff8..2aef965 100644
--- a/tests/unit/database-test-data.cpp
+++ b/tests/unit/database-test-data.cpp
@@ -27,7 +27,7 @@
 namespace ndns {
 namespace tests {
 
-NDNS_LOG_INIT("TestFakeData")
+NDNS_LOG_INIT(TestFakeData);
 
 const boost::filesystem::path DbTestData::TEST_DATABASE = TEST_CONFIG_PATH "/" "test-ndns.db";
 const Name DbTestData::TEST_IDENTITY_NAME("/test19");
diff --git a/tests/unit/logger.cpp b/tests/unit/logger.cpp
deleted file mode 100644
index e7ba277..0000000
--- a/tests/unit/logger.cpp
+++ /dev/null
@@ -1,229 +0,0 @@
-/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2016, Regents of the University of California.
- *
- * This file is part of NDNS (Named Data Networking Domain Name Service).
- * See AUTHORS.md for complete list of NDNS authors and contributors.
- *
- * NDNS 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.
- *
- * NDNS 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
- * NDNS, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "logger.hpp"
-
-#include <boost/algorithm/string.hpp>
-#include <boost/algorithm/string/classification.hpp>
-
-#include "test-common.hpp"
-
-namespace ndn {
-namespace ndns {
-namespace tests {
-
-BOOST_AUTO_TEST_SUITE(Logger)
-
-class Fixture
-{
-public:
-  Fixture()
-    : m_logConfigFilename(boost::filesystem::unique_path().native())
-    , m_logFilename(boost::filesystem::unique_path().native())
-  {
-  }
-
-  ~Fixture()
-  {
-    boost::filesystem::remove(boost::filesystem::path(getLogConfigFilename()));
-    boost::filesystem::remove(boost::filesystem::path(getLogFilename()));
-
-    log::init("unit-tests.log4cxx");
-  }
-
-  const std::string&
-  getLogConfigFilename()
-  {
-    return m_logConfigFilename;
-  }
-
-  const std::string&
-  getLogFilename()
-  {
-    return m_logFilename;
-  }
-
-  void
-  verifyOutput(const std::string expected[], size_t nExpected)
-  {
-    std::ifstream is(getLogFilename().c_str());
-    std::string buffer((std::istreambuf_iterator<char>(is)),
-                       (std::istreambuf_iterator<char>()));
-
-    std::vector<std::string> components;
-    boost::split(components, buffer, boost::is_any_of(" ,\n"));
-
-    // expected + number of timestamps (one per log statement) + trailing newline of last statement
-    BOOST_REQUIRE_EQUAL(components.size(), nExpected);
-
-    for (size_t i = 0; i < nExpected; ++i) {
-      if (expected[i] == "")
-        continue;
-
-      BOOST_CHECK_EQUAL(components[i], expected[i]);
-    }
-  }
-
-private:
-  std::string m_logConfigFilename;
-  std::string m_logFilename;
-};
-
-BOOST_FIXTURE_TEST_CASE(AllLevels, Fixture)
-{
-  {
-    std::ofstream of(getLogConfigFilename().c_str());
-    of << "log4j.rootLogger=TRACE, FILE\n"
-       << "log4j.appender.FILE=org.apache.log4j.FileAppender\n"
-       << "log4j.appender.FILE.layout=org.apache.log4j.PatternLayout\n"
-       << "log4j.appender.FILE.File=" << getLogFilename() << "\n"
-       << "log4j.appender.FILE.ImmediateFlush=true\n"
-       << "log4j.appender.FILE.layout.ConversionPattern=%d{HH:mm:ss} %p %c{1} - %m%n\n";
-  }
-
-  log::init(getLogConfigFilename());
-
-  NDNS_LOG_INIT("DefaultConfig");
-
-  NDNS_LOG_TRACE("trace-message-JHGFDSR^1");
-  NDNS_LOG_DEBUG("debug-message-IGg2474fdksd-fo-" << 15 << 16 << 17);
-  NDNS_LOG_INFO("info-message-Jjxjshj13");
-  NDNS_LOG_WARN("warning-message-XXXhdhd11" << 1 <<"x");
-  NDNS_LOG_ERROR("error-message-!#$&^%$#@");
-  NDNS_LOG_FATAL("fatal-message-JJSjaamcng");
-
-  const std::string EXPECTED[] =
-    {
-      "", "TRACE", "DefaultConfig", "-", "trace-message-JHGFDSR^1",
-      "", "DEBUG", "DefaultConfig", "-", "debug-message-IGg2474fdksd-fo-151617",
-      "", "INFO",  "DefaultConfig", "-", "info-message-Jjxjshj13",
-      "", "WARN",  "DefaultConfig", "-", "warning-message-XXXhdhd111x",
-      "", "ERROR", "DefaultConfig", "-", "error-message-!#$&^%$#@",
-      "", "FATAL", "DefaultConfig", "-", "fatal-message-JJSjaamcng",
-      "",
-    };
-
-  verifyOutput(EXPECTED, sizeof(EXPECTED) / sizeof(std::string));
-}
-
-BOOST_FIXTURE_TEST_CASE(UpToInfo, Fixture)
-{
-  {
-    std::ofstream of(getLogConfigFilename().c_str());
-    of << "log4j.rootLogger=INFO, FILE\n"
-       << "log4j.appender.FILE=org.apache.log4j.FileAppender\n"
-       << "log4j.appender.FILE.layout=org.apache.log4j.PatternLayout\n"
-       << "log4j.appender.FILE.File=" << getLogFilename() << "\n"
-       << "log4j.appender.FILE.ImmediateFlush=true\n"
-       << "log4j.appender.FILE.layout.ConversionPattern=%d{HH:mm:ss} %p %c{1} - %m%n\n";
-  }
-
-  log::init(getLogConfigFilename());
-
-  NDNS_LOG_INIT("DefaultConfig");
-
-  NDNS_LOG_TRACE("trace-message-JHGFDSR^1");
-  NDNS_LOG_DEBUG("debug-message-IGg2474fdksd-fo-" << 15 << 16 << 17);
-  NDNS_LOG_INFO("info-message-Jjxjshj13");
-  NDNS_LOG_WARN("warning-message-XXXhdhd11" << 1 <<"x");
-  NDNS_LOG_ERROR("error-message-!#$&^%$#@");
-  NDNS_LOG_FATAL("fatal-message-JJSjaamcng");
-
-  const std::string EXPECTED[] =
-    {
-      "", "INFO",  "DefaultConfig", "-", "info-message-Jjxjshj13",
-      "", "WARN",  "DefaultConfig", "-", "warning-message-XXXhdhd111x",
-      "", "ERROR", "DefaultConfig", "-", "error-message-!#$&^%$#@",
-      "", "FATAL", "DefaultConfig", "-", "fatal-message-JJSjaamcng",
-      "",
-    };
-
-  verifyOutput(EXPECTED, sizeof(EXPECTED) / sizeof(std::string));
-}
-
-BOOST_FIXTURE_TEST_CASE(OnlySelectedModule, Fixture)
-{
-  {
-    std::ofstream of(getLogConfigFilename().c_str());
-    of << "log4j.rootLogger=OFF, FILE\n"
-       << "log4j.appender.FILE=org.apache.log4j.FileAppender\n"
-       << "log4j.appender.FILE.layout=org.apache.log4j.PatternLayout\n"
-       << "log4j.appender.FILE.File=" << getLogFilename() << "\n"
-       << "log4j.appender.FILE.ImmediateFlush=true\n"
-       << "log4j.appender.FILE.layout.ConversionPattern=%d{HH:mm:ss} %p %c - %m%n\n"
-       << "log4j.logger.SelectedModule=TRACE\n"
-       << "log4j.logger.SelectedModule.Submodule=FATAL\n";
-  }
-
-  log::init(getLogConfigFilename());
-
-  {
-    NDNS_LOG_INIT("DefaultConfig");
-
-    NDNS_LOG_TRACE("trace-message-JHGFDSR^1");
-    NDNS_LOG_DEBUG("debug-message-IGg2474fdksd-fo-" << 15 << 16 << 17);
-    NDNS_LOG_INFO("info-message-Jjxjshj13");
-    NDNS_LOG_WARN("warning-message-XXXhdhd11" << 1 <<"x");
-    NDNS_LOG_ERROR("error-message-!#$&^%$#@");
-    NDNS_LOG_FATAL("fatal-message-JJSjaamcng");
-  }
-
-  {
-    NDNS_LOG_INIT("SelectedModule");
-
-    NDNS_LOG_TRACE("trace-message-JHGFDSR^1");
-    NDNS_LOG_DEBUG("debug-message-IGg2474fdksd-fo-" << 15 << 16 << 17);
-    NDNS_LOG_INFO("info-message-Jjxjshj13");
-    NDNS_LOG_WARN("warning-message-XXXhdhd11" << 1 <<"x");
-    NDNS_LOG_ERROR("error-message-!#$&^%$#@");
-    NDNS_LOG_FATAL("fatal-message-JJSjaamcng");
-  }
-
-  {
-    NDNS_LOG_INIT("SelectedModule.Submodule");
-
-    NDNS_LOG_TRACE("trace-message-JHGFDSR^1");
-    NDNS_LOG_DEBUG("debug-message-IGg2474fdksd-fo-" << 15 << 16 << 17);
-    NDNS_LOG_INFO("info-message-Jjxjshj13");
-    NDNS_LOG_WARN("warning-message-XXXhdhd11" << 1 <<"x");
-    NDNS_LOG_ERROR("error-message-!#$&^%$#@");
-    NDNS_LOG_FATAL("fatal-message-JJSjaamcng");
-  }
-
-  const std::string EXPECTED[] =
-    {
-      "", "TRACE", "SelectedModule", "-", "trace-message-JHGFDSR^1",
-      "", "DEBUG", "SelectedModule", "-", "debug-message-IGg2474fdksd-fo-151617",
-      "", "INFO",  "SelectedModule", "-", "info-message-Jjxjshj13",
-      "", "WARN",  "SelectedModule", "-", "warning-message-XXXhdhd111x",
-      "", "ERROR", "SelectedModule", "-", "error-message-!#$&^%$#@",
-      "", "FATAL", "SelectedModule", "-", "fatal-message-JJSjaamcng",
-      "", "FATAL", "SelectedModule.Submodule", "-", "fatal-message-JJSjaamcng",
-      "",
-    };
-
-  verifyOutput(EXPECTED, sizeof(EXPECTED) / sizeof(std::string));
-}
-
-
-BOOST_AUTO_TEST_SUITE_END()
-
-} // namespace tests
-} // namespace ndns
-} // namespace ndn
diff --git a/tests/unit/validator/certificate-fetcher-ndns-app-cert.cpp b/tests/unit/validator/certificate-fetcher-ndns-app-cert.cpp
index 2efe67c..3f236aa 100644
--- a/tests/unit/validator/certificate-fetcher-ndns-app-cert.cpp
+++ b/tests/unit/validator/certificate-fetcher-ndns-app-cert.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2017, Regents of the University of California.
+/*
+ * Copyright (c) 2014-2018, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -36,8 +36,6 @@
 namespace ndns {
 namespace tests {
 
-NDNS_LOG_INIT("AppCertFetcher")
-
 BOOST_AUTO_TEST_SUITE(AppCertFetcher)
 
 unique_ptr<security::v2::Validator>
diff --git a/tests/unit/validator/validator.cpp b/tests/unit/validator/validator.cpp
index 3434916..21f6d27 100644
--- a/tests/unit/validator/validator.cpp
+++ b/tests/unit/validator/validator.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2017, Regents of the University of California.
+ * Copyright (c) 2014-2018, Regents of the University of California.
  *
  * This file is part of NDNS (Named Data Networking Domain Name Service).
  * See AUTHORS.md for complete list of NDNS authors and contributors.
@@ -32,8 +32,6 @@
 namespace ndns {
 namespace tests {
 
-NDNS_LOG_INIT("ValidatorTest")
-
 BOOST_AUTO_TEST_SUITE(Validator)
 
 class ValidatorTestFixture : public DbTestData
diff --git a/tests/wscript b/tests/wscript
index a44fede..3b48571 100644
--- a/tests/wscript
+++ b/tests/wscript
@@ -7,41 +7,31 @@
 def build(bld):
     if not bld.env['WITH_TESTS']:
         return
-    dst = bld.bldnode.make_node("conf-test/anchors")
-    dst.mkdir()
+
+    tmp_folder = bld.bldnode.make_node('tmp-files')
+    config_path = 'TEST_CONFIG_PATH="%s"' % tmp_folder
+    tmp_folder.make_node('anchors').mkdir()
 
     bld(features="subst",
         name='test-validator-conf',
         source='../validator.conf.sample.in',
-        target='../conf-test/validator.conf',
+        target=tmp_folder.make_node('validator.conf'),
         use='validator-sample',
         ANCHORPATH='\"anchors/root.cert\"',
         RELATION='is-prefix-of',
     )
 
-    bld(features="subst",
-        name='test-logger-conf',
-        source='../log4cxx.properties.sample.in',
-        target='../conf-test/log4cxx.properties.sample',
-        is_copy=True,
-        use='log4cxx-sample',
-    )
-
-    bld(features='cxx',
-        name='unit-tests-main',
+    bld.objects(
         target='unit-tests-main',
         source='main.cpp',
-        defines=['BOOST_TEST_MODULE=NDNS Unit Tests',
-                 'TEST_CONFIG_PATH=\"%s/conf-test\"' %(bld.bldnode)],
-        use='ndns-objects BOOST'
-    )
+        defines=['BOOST_TEST_MODULE=NDNS Unit Tests', config_path],
+        use='ndns-objects')
 
-    unit_tests = bld.program(
+    bld.program(
         target='../unit-tests',
-        features='cxx cxxprogram',
-        source=bld.path.ant_glob(['**/*.cpp'], excl=['main.cpp']),
-        use='ndns-objects unit-tests-main BOOST',
+        name='unit-tests',
+        source=bld.path.ant_glob('**/*.cpp', excl=['main.cpp']),
+        use='ndns-objects unit-tests-main',
         includes='../src .',
         install_path=None,
-        defines='TEST_CONFIG_PATH=\"%s/conf-test\"' %(bld.bldnode)
-    )
+        defines=[config_path])