got rid of all the absolute paths in the fitpc code

Previously, there were 2 places (BinaryLogReader and the HTTP file server) that
had "/home/driver/" hard coded. I changed both of those to use paths relative to
the location of the executable (retrieved from /proc/self/exe).

git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4162 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/aos/common/gtest_prod.h b/aos/common/gtest_prod.h
new file mode 100644
index 0000000..fe0b056
--- /dev/null
+++ b/aos/common/gtest_prod.h
@@ -0,0 +1,37 @@
+#ifndef AOS_COMMON_GTEST_PROD_H_
+#define AOS_COMMON_GTEST_PROD_H_
+
+#include "gtest/gtest_prod.h"
+
+// These macros replace gtest's FRIEND_TEST if the test is in a different
+// namespace than the code that needs to make it a friend.
+// Example:
+//  foo.h:
+//   namespace bla {
+//   namespace testing {
+//
+//   FORWARD_DECLARE_TEST_CASE(FooTest, Bar);
+//
+//   }  // namespace testing
+//
+//   class Foo {
+//     FRIEND_TEST_NAMESPACE(FooTest, Bar, testing);
+//   };
+//
+//   }  // namespace bla
+//  foo_test.cc:
+//   namespace bla {
+//   namespace testing {
+//
+//   TEST(FooTest, Bar) {
+//     access private members of Foo
+//   }
+//
+//   }  // namespace testing
+//   }  // namespace bla
+#define FORWARD_DECLARE_TEST_CASE(test_case_name, test_name) \
+    class test_case_name##_##test_name##_Test;
+#define FRIEND_TEST_NAMESPACE(test_case_name, test_name, namespace_name) \
+    friend class namespace_name::test_case_name##_##test_name##_Test
+
+#endif  // AOS_COMMON_GTEST_PROD_H_