diff --git a/tests-integrated/boost-test.hpp b/tests-integrated/boost-test.hpp
new file mode 100644
index 0000000..6a8293e
--- /dev/null
+++ b/tests-integrated/boost-test.hpp
@@ -0,0 +1,18 @@
+/**
+ * Copyright (C) 2014 Regents of the University of California.
+ * See COPYING for copyright and distribution information.
+ */
+
+
+#ifndef NDN_TESTS_INTEGRATED_BOOST_TEST_HPP
+#define NDN_TESTS_INTEGRATED_BOOST_TEST_HPP
+
+// suppress warnings from Boost.Test
+#pragma GCC system_header
+#pragma clang system_header
+
+#include <boost/test/unit_test.hpp>
+#include <boost/concept_check.hpp>
+#include <boost/test/output_test_stream.hpp>
+
+#endif // NDN_TESTS_INTEGRATED_BOOST_TEST_HPP
diff --git a/tests-integrated/main.cpp b/tests-integrated/main.cpp
index 10f957c..3e0ae89 100644
--- a/tests-integrated/main.cpp
+++ b/tests-integrated/main.cpp
@@ -6,13 +6,4 @@
 #define BOOST_TEST_MAIN 1
 #define BOOST_TEST_DYN_LINK 1
 
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunneeded-internal-declaration"
-#endif // __clang__
-
-#include <boost/test/unit_test.hpp>
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif // __clang__
+#include "boost-test.hpp"
diff --git a/tests-integrated/security/test-validator-config.cpp b/tests-integrated/security/test-validator-config.cpp
index 0e778db..2432739 100644
--- a/tests-integrated/security/test-validator-config.cpp
+++ b/tests-integrated/security/test-validator-config.cpp
@@ -6,11 +6,10 @@
 
 #include "security/validator-config.hpp"
 
-#include <boost/test/unit_test.hpp>
-
 #include "security/key-chain.hpp"
 #include "util/io.hpp"
 
+#include "boost-test.hpp"
 
 using namespace std;
 
diff --git a/tests-integrated/test-all.hpp b/tests-integrated/test-all.hpp
new file mode 100644
index 0000000..1e3e7f8
--- /dev/null
+++ b/tests-integrated/test-all.hpp
@@ -0,0 +1,13 @@
+/**
+ * Copyright (C) 2014 Regents of the University of California.
+ * See COPYING for copyright and distribution information.
+ */
+
+// This file is needed for experimental precompiled header support (gcc and clang)
+
+#ifndef NDN_TESTS_INTEGRATED_TEST_ALL_HPP
+#define NDN_TESTS_INTEGRATED_TEST_ALL_HPP
+
+#include "common.hpp"
+
+#endif // NDN_TESTS_INTEGRATED_TEST_ALL_HPP
diff --git a/tests-integrated/test-faces.cpp b/tests-integrated/test-faces.cpp
index 03bfa9b..8c48dbb 100644
--- a/tests-integrated/test-faces.cpp
+++ b/tests-integrated/test-faces.cpp
@@ -3,11 +3,11 @@
  * See COPYING for copyright and distribution information.
  */
 
-#include <boost/test/unit_test.hpp>
 #include "face.hpp"
 #include "util/scheduler.hpp"
 
-using namespace std;
+#include "boost-test.hpp"
+
 namespace ndn {
 
 BOOST_AUTO_TEST_SUITE(TestFaces)
@@ -23,7 +23,7 @@
     , regFailedCount(0)
   {
   }
-  
+
   void
   onData()
   {
@@ -100,7 +100,7 @@
   face.expressInterest(Interest("/localhost/non-existing/data/should/not/exist/anywhere", time::milliseconds(50)),
                        ptr_lib::bind(&FacesFixture::onData, this),
                        ptr_lib::bind(&FacesFixture::onTimeout, this));
-  
+
   BOOST_REQUIRE_NO_THROW(face.processEvents());
 
   BOOST_CHECK_EQUAL(dataCount, 1);
@@ -138,7 +138,7 @@
   Scheduler scheduler(*face.ioService());
   scheduler.scheduleEvent(time::milliseconds(300),
                           bind(&FacesFixture::terminate, this, func_lib::ref(face)));
-  
+
   regPrefixId = face.setInterestFilter("/Hello/World",
                                        bind(&FacesFixture::onInterest, this, func_lib::ref(face)),
                                        bind(&FacesFixture::onRegFailed, this));
@@ -146,11 +146,11 @@
   scheduler.scheduleEvent(time::milliseconds(200),
                           bind(&FacesFixture::expressInterest, this,
                                func_lib::ref(face2), Name("/Hello/World/!")));
-  
+
   BOOST_REQUIRE_NO_THROW(face.processEvents());
 
-  BOOST_CHECK_EQUAL(regFailedCount, 0);  
-  BOOST_CHECK_EQUAL(inInterestCount, 1);  
+  BOOST_CHECK_EQUAL(regFailedCount, 0);
+  BOOST_CHECK_EQUAL(inInterestCount, 1);
   BOOST_CHECK_EQUAL(timeoutCount, 1);
   BOOST_CHECK_EQUAL(dataCount, 0);
 }
@@ -162,11 +162,11 @@
   Scheduler scheduler(*face.ioService());
   scheduler.scheduleEvent(time::seconds(1),
                           bind(&FacesFixture::terminate, this, func_lib::ref(face)));
-  
+
   regPrefixId = face.setInterestFilter("/Hello/World",
                                        bind(&FacesFixture::onInterest, this, func_lib::ref(face)),
                                        bind(&FacesFixture::onRegFailed, this));
-  
+
   regPrefixId2 = face.setInterestFilter("/Los/Angeles/Lakers",
                                        bind(&FacesFixture::onInterest2, this, func_lib::ref(face)),
                                        bind(&FacesFixture::onRegFailed, this));
@@ -175,12 +175,12 @@
   scheduler.scheduleEvent(time::milliseconds(200),
                           bind(&FacesFixture::expressInterest, this,
                                func_lib::ref(face2), Name("/Hello/World/!")));
-  
+
   BOOST_REQUIRE_NO_THROW(face.processEvents());
 
-  BOOST_CHECK_EQUAL(regFailedCount, 0);  
-  BOOST_CHECK_EQUAL(inInterestCount, 1);  
-  BOOST_CHECK_EQUAL(inInterestCount2, 0);  
+  BOOST_CHECK_EQUAL(regFailedCount, 0);
+  BOOST_CHECK_EQUAL(inInterestCount, 1);
+  BOOST_CHECK_EQUAL(inInterestCount2, 0);
   BOOST_CHECK_EQUAL(timeoutCount, 1);
   BOOST_CHECK_EQUAL(dataCount, 0);
 }
diff --git a/tests-integrated/wscript b/tests-integrated/wscript
index 98f6dab..4e99eb3 100644
--- a/tests-integrated/wscript
+++ b/tests-integrated/wscript
@@ -11,6 +11,7 @@
         source=bld.path.ant_glob(['**/*.cpp'],
                                  excl=['**/*-osx.cpp', '**/*-sqlite3.cpp']),
         use='ndn-cpp-dev',
+        includes='.',
         install_path=None,
         )
 
