]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/testsuite.cpp
Change the syntax of FOREACH macros to be less dumb.
[user/henk/code/inspircd.git] / src / testsuite.cpp
index 58b72ee3efc8c3b47d64764b85bba05962ca983b..b27f6e18c991d7e685a6ba202230f525d6acd669 100644 (file)
@@ -19,8 +19,6 @@
  */
 
 
-/* $Core */
-
 #include "inspircd.h"
 #include "testsuite.h"
 #include "threadengine.h"
@@ -76,7 +74,7 @@ TestSuite::TestSuite()
                switch (choice)
                {
                        case '1':
-                               FOREACH_MOD(I_OnRunTestSuite, OnRunTestSuite());
+                               FOREACH_MOD(OnRunTestSuite, ());
                                break;
                        case '2':
                                std::cout << "Enter module filename to load: ";
@@ -331,36 +329,25 @@ bool TestSuite::DoThreadTests()
 
 bool TestSuite::DoGenerateUIDTests()
 {
-       bool success = RealGenerateUIDTests();
-
-       // Reset the UID generation state so running the tests multiple times won't mess things up
-       for (unsigned int i = 0; i < 3; i++)
-               ServerInstance->current_uid[i] = ServerInstance->Config->sid[i];
-       for (unsigned int i = 3; i < UUID_LENGTH-1; i++)
-               ServerInstance->current_uid[i] = '9';
-
-       ServerInstance->current_uid[UUID_LENGTH-1] = '\0';
+       const unsigned int UUID_LENGTH = UIDGenerator::UUID_LENGTH;
+       UIDGenerator uidgen;
+       uidgen.init(ServerInstance->Config->GetSID());
+       std::string first_uid = uidgen.GetUID();
 
-       return success;
-}
-
-bool TestSuite::RealGenerateUIDTests()
-{
-       std::string first_uid = ServerInstance->GetUID();
-       if (first_uid.length() != UUID_LENGTH-1)
+       if (first_uid.length() != UUID_LENGTH)
        {
                std::cout << "GENERATEUID: Generated UID is " << first_uid.length() << " characters long instead of " << UUID_LENGTH-1 << std::endl;
                return false;
        }
 
-       if (ServerInstance->current_uid[UUID_LENGTH-1] != '\0')
+       if (uidgen.current_uid.c_str()[UUID_LENGTH] != '\0')
        {
                std::cout << "GENERATEUID: The null terminator is missing from the end of current_uid" << std::endl;
                return false;
        }
 
        // The correct UID when generating one for the first time is ...AAAAAA
-       std::string correct_uid = ServerInstance->Config->sid + std::string(UUID_LENGTH - 4, 'A');
+       std::string correct_uid = ServerInstance->Config->sid + std::string(UUID_LENGTH - 3, 'A');
        if (first_uid != correct_uid)
        {
                std::cout << "GENERATEUID: Generated an invalid first UID: " << first_uid << " instead of " << correct_uid << std::endl;
@@ -368,16 +355,16 @@ bool TestSuite::RealGenerateUIDTests()
        }
 
        // Set current_uid to be ...Z99999
-       ServerInstance->current_uid[3] = 'Z';
-       for (unsigned int i = 4; i < UUID_LENGTH-1; i++)
-               ServerInstance->current_uid[i] = '9';
+       uidgen.current_uid[3] = 'Z';
+       for (unsigned int i = 4; i < UUID_LENGTH; i++)
+               uidgen.current_uid[i] = '9';
 
        // Store the UID we'll be incrementing so we can display what's wrong later if necessary
-       std::string before_increment(ServerInstance->current_uid);
-       std::string generated_uid = ServerInstance->GetUID();
+       std::string before_increment(uidgen.current_uid);
+       std::string generated_uid = uidgen.GetUID();
 
        // Correct UID after incrementing ...Z99999 is ...0AAAAA
-       correct_uid = ServerInstance->Config->sid + "0" + std::string(UUID_LENGTH - 5, 'A');
+       correct_uid = ServerInstance->Config->sid + "0" + std::string(UUID_LENGTH - 4, 'A');
 
        if (generated_uid != correct_uid)
        {
@@ -386,11 +373,11 @@ bool TestSuite::RealGenerateUIDTests()
        }
 
        // Set current_uid to be ...999999 to see if it rolls over correctly
-       for (unsigned int i = 3; i < UUID_LENGTH-1; i++)
-               ServerInstance->current_uid[i] = '9';
+       for (unsigned int i = 3; i < UUID_LENGTH; i++)
+               uidgen.current_uid[i] = '9';
 
-       before_increment.assign(ServerInstance->current_uid);
-       generated_uid = ServerInstance->GetUID();
+       before_increment.assign(uidgen.current_uid);
+       generated_uid = uidgen.GetUID();
 
        // Correct UID after rolling over is the first UID we've generated (...AAAAAA)
        if (generated_uid != first_uid)