]> code.bitgloo.com Git - clyne/entityx.git/commitdiff
Enable testing for Linux with gcc.
authorLars Pensjö <lars.pensjo@gmail.com>
Wed, 27 Feb 2013 06:38:47 +0000 (07:38 +0100)
committerLars Pensjö <lars.pensjo@gmail.com>
Wed, 27 Feb 2013 06:38:47 +0000 (07:38 +0100)
Resolve namespace std clash with boost.
struct NullDeleter can't be local.
Remove surplus ';'.

README.md
entityx/Entity_test.cc
entityx/System_test.cc

index 611dc98f9c32a20557713450b9e8907135221f57..428adfe7f6c681fa9f0dd17a5235a02e5989f445 100644 (file)
--- a/README.md
+++ b/README.md
@@ -117,7 +117,7 @@ First, we define the event type, which for our example is simply the two entitie
 ```c++
 struct Collision : public Event<Collision> {
   Collision(Entity left, Entity right) : left(left), right(right) {}
-  
+
   Entity left, right;
 };
 ```
@@ -181,7 +181,7 @@ class GameManager : public Manager {
     system_manager.add<MovementSystem>();
     system_manager.add<CollisionSystem>();
   }
-  
+
   void initialize() {
     // Create some entities in random locations heading in random directions
     for (int i = 0; i < 100; ++i) {
@@ -190,7 +190,7 @@ class GameManager : public Manager {
       entity.assign<Direction>((rand() % 10) - 5, (rand() % 10) - 5);
     }
   }
-  
+
   void update(double dt) {
     system_manager.update<MovementSystem>(dt);
     system_manager.update<CollisionSystem>(dt);
@@ -206,12 +206,16 @@ EntityX has the following build and runtime requirements:
 - [CMake](http://cmake.org/)
 - [Boost](http://boost.org) `1.48.0` or higher (links against `boost::signals`).
 - [Glog](http://code.google.com/p/google-glog/) (tested with `0.3.2`).
-- [GTest](http://code.google.com/p/googletest/)
+- [GTest](http://code.google.com/p/googletest/) (needed for testing only)
 
-Once these dependencies are installed you should be able to build and install EntityX with:
+Once these dependencies are installed you should be able to build and install EntityX as follows. BUILD_TESTING is false by default.
 
 ```c++
-mkdir build && cd build && cmake .. && make && make test && make install
+mkdir build
+cd build
+cmake [-DBUILD_TESTING=true] ..
+make
+make install
 ```
 
-EntityX has currently only been tested on Mac OSX (Lion and Mountain Lion). Reports and patches for builds on other platforms are welcome.
+EntityX has currently only been tested on Mac OSX (Lion and Mountain Lion), and Linux Debian. Reports and patches for builds on other platforms are welcome.
index 55da405e14a8352282fb45252a6a52896f10a980..67026e8af59e2217776acb96d849d9821d8190b8 100644 (file)
@@ -4,7 +4,7 @@
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.
- * 
+ *
  * Author: Alec Thomas <alec@swapoff.org>
  */
 
 #include <gtest/gtest.h>
 #include "entityx/Entity.h"
 
-using namespace std;
+// using namespace std; // This will give name space conflicts with boost
 using namespace boost;
 using namespace entityx;
 
+using std::ostream;
+using std::vector;
 
 template <typename T>
 int size(const T &t) {
@@ -192,11 +194,13 @@ TEST_F(EntityManagerTest, TestUnpack) {
   ASSERT_EQ(d, ud);
 }
 
+// gcc 4.7.2 does not allow this struct to be declared locally inside the TEST_F.
+struct NullDeleter {template<typename T> void operator()(T*) {} };
+
 TEST_F(EntityManagerTest, TestUnpackNullMissing) {
   Entity::Id e = em.create();
   auto p = em.assign<Position>(e);
 
-  struct NullDeleter {template<typename T> void operator()(T*) {} };
   shared_ptr<Position> up(reinterpret_cast<Position*>(0Xdeadbeef), NullDeleter());
   shared_ptr<Direction> ud(reinterpret_cast<Direction*>(0Xdeadbeef), NullDeleter());
   em.unpack<Position, Direction>(e, up, ud);
@@ -225,7 +229,7 @@ TEST_F(EntityManagerTest, TestEntityCreatedEvent) {
     em.create();
   }
   ASSERT_EQ(10, receiver.created.size());
-};
+}
 
 TEST_F(EntityManagerTest, TestEntityDestroyedEvent) {
   struct EntityDestroyedEventReceiver : public Receiver<EntityDestroyedEventReceiver> {
@@ -249,7 +253,7 @@ TEST_F(EntityManagerTest, TestEntityDestroyedEvent) {
     em.destroy(e);
   }
   ASSERT_TRUE(entities == receiver.destroyed);
-};
+}
 
 TEST_F(EntityManagerTest, TestComponentAddedEvent) {
   struct ComponentAddedEventReceiver : public Receiver<ComponentAddedEventReceiver> {
@@ -289,4 +293,4 @@ TEST_F(EntityManagerTest, TestComponentAddedEvent) {
   }
   ASSERT_EQ(10, receiver.position_events);
   ASSERT_EQ(10, receiver.direction_events);
-};
+}
index 63da01f1b0ab6f8ef6e853ffa4eabcfea3efbfd7..c529bd1e93a3034e291175318889ba115c198f24 100644 (file)
@@ -4,7 +4,7 @@
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution.
- * 
+ *
  * Author: Alec Thomas <alec@swapoff.org>
  */
 
 #include "entityx/System.h"
 
 
-using namespace std;
+// using namespace std; // This will give name space conflicts with boost
 using namespace boost;
 using namespace entityx;
+using std::string;
 
 struct Position : Component<Position> {
   Position(float x = 0.0f, float y = 0.0f) : x(x), y(y) {}