allocPool/tests.hpp

42 lines
1016 B
C++

#pragma once
#include <cassert>
#include <vector>
#include "allocPool.hpp"
// On ajoute un pointeur de la fonction au vecteur vec. Cela permet de
// tout exécuter de façon propre.
//
// On utilise une struct avec un constructeur qui se fait appeler par
// défaut à sa construction. Lors de celle-ci, on met le pointeur dans
// le vecteur.
//
// Pour ajouter un test, simplement faire une déclaration de fonction
// avec ce macro dans le fichier Tests.cpp
#define ADD_TEST(name) \
void name(); \
struct name##_adder { \
name##_adder() { \
tests::vec.push_back(&name); \
} \
} name##_instance; \
void name()
class tests {
public:
tests();
void runTests();
static std::vector<void (*)()> vec;
};
class stub {
public:
stub() {
for (int j{}; j < 1000; j++) { i++; }
};
void reset() {}
private:
int i = 15;
};