From f901a84743212cb6581f9a58d89291699b709da9 Mon Sep 17 00:00:00 2001
From: sunn <33183834+etherealjoy@users.noreply.github.com>
Date: Thu, 17 Oct 2019 11:48:35 +0200
Subject: [PATCH] Update tests to prevent memory leakage (#4164)
Install C and C++ tools in Travis
---
.travis.yml | 15 ++--
pom.xml | 2 +-
.../petstore/cpp-qt5/PetStore/PetApiTests.cpp | 68 +++++++---------
.../petstore/cpp-qt5/PetStore/PetApiTests.h | 3 +-
.../cpp-qt5/PetStore/StoreApiTests.cpp | 32 ++++----
.../petstore/cpp-qt5/PetStore/StoreApiTests.h | 4 +-
.../cpp-qt5/PetStore/UserApiTests.cpp | 78 ++++++++-----------
.../petstore/cpp-qt5/PetStore/UserApiTests.h | 3 +-
.../petstore/cpp-qt5/build-and-test.bash | 64 ++++++++-------
9 files changed, 122 insertions(+), 147 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 50ec571010b..30ae30d2013 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -94,16 +94,11 @@ before_install:
# - Rely on `kerl` for [pre-compiled versions available](https://docs.travis-ci.com/user/languages/erlang#Choosing-OTP-releases-to-test-against). Rely on installation path chosen by [`travis-erlang-builder`](https://github.com/travis-ci/travis-erlang-builder/blob/e6d016b1a91ca7ecac5a5a46395bde917ea13d36/bin/compile#L18).
# - . ~/otp/18.2.1/activate && erl -version
#- curl -f -L -o ./rebar3 https://s3.amazonaws.com/rebar3/rebar3 && chmod +x ./rebar3 && ./rebar3 version && export PATH="${TRAVIS_BUILD_DIR}:$PATH"
- # install valgrind for C++ memory test
- - sudo apt-get install valgrind
- # install Qt 5.10
- # comment out the following due to failure in downloading http://ppa.launchpad.net/beineri/opt-qt-5.10.1-trusty/ubuntu/dists/xenial/main/binary-amd64/Packages
- #- sudo add-apt-repository --yes ppa:beineri/opt-qt-5.10.1-trusty
- #- sudo apt-get update -qq
- #- sudo apt-get install qt510-meta-minimal
- #- source /opt/qt510/bin/qt510-env.sh
- #- qmake -v
-
+ # install C++ tools
+ - sudo apt install -y --no-install-recommends valgrind cmake build-essential
+ # install Qt5
+ - sudo apt install -y --no-install-recommends qt5-default
+ - cmake --version
# show host table to confirm petstore.swagger.io is mapped to localhost
- cat /etc/hosts
# show java version
diff --git a/pom.xml b/pom.xml
index f0cab9a0efe..3f66bee41fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1037,7 +1037,7 @@
samples/server/petstore/python-aiohttp
samples/client/petstore/c
-
+ samples/client/petstore/cpp-qt5
samples/client/petstore/elm-0.18
samples/client/petstore/rust
diff --git a/samples/client/petstore/cpp-qt5/PetStore/PetApiTests.cpp b/samples/client/petstore/cpp-qt5/PetStore/PetApiTests.cpp
index c5cf825ceb3..72f68c1dbd6 100644
--- a/samples/client/petstore/cpp-qt5/PetStore/PetApiTests.cpp
+++ b/samples/client/petstore/cpp-qt5/PetStore/PetApiTests.cpp
@@ -3,12 +3,6 @@
#include
#include
-OAIPetApi* PetApiTests::getApi() {
- auto api = new OAIPetApi();
- api->setHost("http://petstore.swagger.io");
- return api;
-}
-
OAIPet PetApiTests::createRandomPet() {
OAIPet pet;
qint64 id = QDateTime::currentMSecsSinceEpoch();
@@ -19,11 +13,12 @@ OAIPet PetApiTests::createRandomPet() {
}
void PetApiTests::findPetsByStatusTest() {
- OAIPetApi* api = getApi();
+ OAIPetApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool petFound = false;
- connect(api, &OAIPetApi::findPetsByStatusSignal, [&](QList pets) {
+ connect(&api, &OAIPetApi::findPetsByStatusSignal, [&](QList pets) {
petFound = true;
foreach(OAIPet pet, pets) {
QVERIFY(pet.getStatus().startsWith("available") || pet.getStatus().startsWith("sold"));
@@ -31,19 +26,19 @@ void PetApiTests::findPetsByStatusTest() {
loop.quit();
});
- api->findPetsByStatus({"available", "sold"});
+ api.findPetsByStatus({"available", "sold"});
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFound, "didn't finish within timeout");
- delete api;
}
void PetApiTests::createAndGetPetTest() {
- OAIPetApi* api = getApi();
+ OAIPetApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool petCreated = false;
- connect(api, &OAIPetApi::addPetSignal, [&]() {
+ connect(&api, &OAIPetApi::addPetSignal, [&]() {
// pet created
petCreated = true;
loop.quit();
@@ -52,30 +47,30 @@ void PetApiTests::createAndGetPetTest() {
OAIPet pet = createRandomPet();
qint64 id = pet.getId();
- api->addPet(pet);
+ api.addPet(pet);
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petCreated, "didn't finish within timeout");
bool petFetched = false;
- connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
+ connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
QVERIFY(pet.getId() > 0);
QVERIFY(pet.getStatus().compare("freaky") == 0);
loop.quit();
petFetched = true;
});
- api->getPetById(id);
+ api.getPetById(id);
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFetched, "didn't finish within timeout");
- delete api;
}
void PetApiTests::updatePetTest() {
- OAIPetApi* api = getApi();
+ OAIPetApi api;
+ api.setHost(PetStoreHost);
OAIPet pet = createRandomPet();
OAIPet petToCheck;
@@ -83,13 +78,13 @@ void PetApiTests::updatePetTest() {
QEventLoop loop;
bool petAdded = false;
- connect(api, &OAIPetApi::addPetSignal, [&](){
+ connect(&api, &OAIPetApi::addPetSignal, [&](){
petAdded = true;
loop.quit();
});
// create pet
- api->addPet(pet);
+ api.addPet(pet);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petAdded, "didn't finish within timeout");
@@ -97,50 +92,49 @@ void PetApiTests::updatePetTest() {
// fetch it
bool petFetched = false;
- connect(api, &OAIPetApi::getPetByIdSignal, this, [&](OAIPet pet) {
+ connect(&api, &OAIPetApi::getPetByIdSignal, this, [&](OAIPet pet) {
petFetched = true;
petToCheck = pet;
loop.quit();
});
// create pet
- api->getPetById(id);
+ api.getPetById(id);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFetched, "didn't finish within timeout");
// update it
bool petUpdated = false;
- connect(api, &OAIPetApi::updatePetSignal, [&]() {
+ connect(&api, &OAIPetApi::updatePetSignal, [&]() {
petUpdated = true;
loop.quit();
});
// update pet
petToCheck.setStatus(QString("scary"));
- api->updatePet(petToCheck);
+ api.updatePet(petToCheck);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petUpdated, "didn't finish within timeout");
// check it
bool petFetched2 = false;
- connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
+ connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
petFetched2 = true;
QVERIFY(pet.getId() == petToCheck.getId());
QVERIFY(pet.getStatus().compare(petToCheck.getStatus()) == 0);
loop.quit();
});
- api->getPetById(id);
+ api.getPetById(id);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFetched2, "didn't finish within timeout");
-
- delete api;
}
void PetApiTests::updatePetWithFormTest() {
- OAIPetApi* api = getApi();
+ OAIPetApi api;
+ api.setHost(PetStoreHost);
OAIPet pet = createRandomPet();
OAIPet petToCheck;
@@ -149,54 +143,52 @@ void PetApiTests::updatePetWithFormTest() {
// create pet
bool petAdded = false;
- connect(api, &OAIPetApi::addPetSignal, [&](){
+ connect(&api, &OAIPetApi::addPetSignal, [&](){
petAdded = true;
loop.quit();
});
- api->addPet(pet);
+ api.addPet(pet);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petAdded, "didn't finish within timeout");
// fetch it
bool petFetched = false;
- connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
+ connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
petFetched = true;
petToCheck = pet;
loop.quit();
});
- api->getPetById(id);
+ api.getPetById(id);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petFetched, "didn't finish within timeout");
// update it
bool petUpdated = false;
- connect(api, &OAIPetApi::updatePetWithFormSignal, [&](){
+ connect(&api, &OAIPetApi::updatePetWithFormSignal, [&](){
petUpdated = true;
loop.quit();
});
QString name("gorilla");
- api->updatePetWithForm(id, name, nullptr);
+ api.updatePetWithForm(id, name, nullptr);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petUpdated, "didn't finish within timeout");
// fetch it
bool petUpdated2 = false;
- connect(api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
+ connect(&api, &OAIPetApi::getPetByIdSignal, [&](OAIPet pet) {
petUpdated2 = true;
QVERIFY(pet.getName().compare(QString("gorilla")) == 0);
loop.quit();
});
- api->getPetById(id);
+ api.getPetById(id);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(petUpdated2, "didn't finish within timeout");
-
- delete api;
}
diff --git a/samples/client/petstore/cpp-qt5/PetStore/PetApiTests.h b/samples/client/petstore/cpp-qt5/PetStore/PetApiTests.h
index 2abf6bb17db..3f1a68f4b14 100644
--- a/samples/client/petstore/cpp-qt5/PetStore/PetApiTests.h
+++ b/samples/client/petstore/cpp-qt5/PetStore/PetApiTests.h
@@ -7,7 +7,6 @@ using namespace OpenAPI;
class PetApiTests: public QObject {
Q_OBJECT
- OAIPetApi* getApi();
OAIPet createRandomPet();
private slots:
@@ -15,4 +14,6 @@ private slots:
void createAndGetPetTest();
void updatePetTest();
void updatePetWithFormTest();
+private:
+ const QString PetStoreHost = QStringLiteral("http://petstore.swagger.io");
};
diff --git a/samples/client/petstore/cpp-qt5/PetStore/StoreApiTests.cpp b/samples/client/petstore/cpp-qt5/PetStore/StoreApiTests.cpp
index 1a2492d7904..9433d5be957 100644
--- a/samples/client/petstore/cpp-qt5/PetStore/StoreApiTests.cpp
+++ b/samples/client/petstore/cpp-qt5/PetStore/StoreApiTests.cpp
@@ -4,25 +4,20 @@
#include
#include
-OAIStoreApi* StoreApiTests::getApi() {
- auto api = new OAIStoreApi();
- api->setHost("http://petstore.swagger.io");
- return api;
-}
-
void StoreApiTests::placeOrderTest() {
- auto api = getApi();
+ OAIStoreApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool orderPlaced = false;
- connect(api, &OAIStoreApi::placeOrderSignal, [&](OAIOrder order) {
+ connect(&api, &OAIStoreApi::placeOrderSignal, [&](OAIOrder order) {
orderPlaced = true;
QVERIFY(order.getPetId() == 10000);
QVERIFY((order.getId() == 500));
qDebug() << order.getShipDate();
loop.quit();
});
- connect(api, &OAIStoreApi::placeOrderSignalE, [&](){
+ connect(&api, &OAIStoreApi::placeOrderSignalE, [&](){
QFAIL("shouldn't trigger error");
loop.quit();
});
@@ -34,20 +29,20 @@ void StoreApiTests::placeOrderTest() {
order.setComplete(false);
order.setStatus("shipping");
order.setShipDate(QDateTime::currentDateTime());
- api->placeOrder(order);
+ api.placeOrder(order);
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(orderPlaced, "didn't finish within timeout");
- delete api;
}
void StoreApiTests::getOrderByIdTest() {
- auto api = getApi();
+ OAIStoreApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool orderFetched = false;
- connect(api, &OAIStoreApi::getOrderByIdSignal, [&](OAIOrder order) {
+ connect(&api, &OAIStoreApi::getOrderByIdSignal, [&](OAIOrder order) {
orderFetched = true;
QVERIFY(order.getPetId() == 10000);
QVERIFY((order.getId() == 500));
@@ -55,20 +50,20 @@ void StoreApiTests::getOrderByIdTest() {
loop.quit();
});
- api->getOrderById(500);
+ api.getOrderById(500);
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(orderFetched, "didn't finish within timeout");
- delete api;
}
void StoreApiTests::getInventoryTest() {
- auto api = getApi();
+ OAIStoreApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool inventoryFetched = false;
- connect(api, &OAIStoreApi::getInventorySignal, [&](QMap status) {
+ connect(&api, &OAIStoreApi::getInventorySignal, [&](QMap status) {
inventoryFetched = true;
for(const auto& key : status.keys()) {
qDebug() << (key) << " Quantities " << status.value(key);
@@ -76,10 +71,9 @@ void StoreApiTests::getInventoryTest() {
loop.quit();
});
- api->getInventory();
+ api.getInventory();
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(inventoryFetched, "didn't finish within timeout");
- delete api;
}
diff --git a/samples/client/petstore/cpp-qt5/PetStore/StoreApiTests.h b/samples/client/petstore/cpp-qt5/PetStore/StoreApiTests.h
index e4aafaeb1d7..40023ae6b87 100644
--- a/samples/client/petstore/cpp-qt5/PetStore/StoreApiTests.h
+++ b/samples/client/petstore/cpp-qt5/PetStore/StoreApiTests.h
@@ -7,10 +7,10 @@ using namespace OpenAPI;
class StoreApiTests: public QObject {
Q_OBJECT
- OAIStoreApi* getApi();
-
private slots:
void placeOrderTest();
void getOrderByIdTest();
void getInventoryTest();
+private:
+ const QString PetStoreHost = QStringLiteral("http://petstore.swagger.io");
};
diff --git a/samples/client/petstore/cpp-qt5/PetStore/UserApiTests.cpp b/samples/client/petstore/cpp-qt5/PetStore/UserApiTests.cpp
index 0712822f831..68a28f40156 100644
--- a/samples/client/petstore/cpp-qt5/PetStore/UserApiTests.cpp
+++ b/samples/client/petstore/cpp-qt5/PetStore/UserApiTests.cpp
@@ -4,12 +4,6 @@
#include
#include
-OAIUserApi* UserApiTests::getApi() {
- auto api = new OAIUserApi();
- api->setHost("http://petstore.swagger.io");
- return api;
-}
-
OAIUser UserApiTests::createRandomUser() {
OAIUser user;
user.setId(QDateTime::currentMSecsSinceEpoch());
@@ -24,29 +18,29 @@ OAIUser UserApiTests::createRandomUser() {
}
void UserApiTests::createUserTest(){
- auto api = getApi();
+ OAIUserApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool userCreated = false;
- connect(api, &OAIUserApi::createUserSignal, [&](){
+ connect(&api, &OAIUserApi::createUserSignal, [&](){
userCreated = true;
loop.quit();
});
- api->createUser(createRandomUser());
+ api.createUser(createRandomUser());
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(userCreated, "didn't finish within timeout");
-
- delete api;
}
void UserApiTests::createUsersWithArrayInputTest(){
- auto api = getApi();
+ OAIUserApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool usersCreated = false;
- connect(api, &OAIUserApi::createUsersWithArrayInputSignal, [&](){
+ connect(&api, &OAIUserApi::createUsersWithArrayInputSignal, [&](){
usersCreated = true;
loop.quit();
});
@@ -55,20 +49,19 @@ void UserApiTests::createUsersWithArrayInputTest(){
users.append(createRandomUser());
users.append(createRandomUser());
users.append(createRandomUser());
- api->createUsersWithArrayInput(users);
+ api.createUsersWithArrayInput(users);
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(usersCreated, "didn't finish within timeout");
-
- delete api;
}
void UserApiTests::createUsersWithListInputTest(){
- auto api = getApi();
+ OAIUserApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool usersCreated = false;
- connect(api, &OAIUserApi::createUsersWithListInputSignal, [&](){
+ connect(&api, &OAIUserApi::createUsersWithListInputSignal, [&](){
usersCreated = true;
loop.quit();
});
@@ -81,105 +74,98 @@ void UserApiTests::createUsersWithListInputTest(){
users.append(johndoe);
users.append(rambo);
users.append(createRandomUser());
- api->createUsersWithListInput(users);
+ api.createUsersWithListInput(users);
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(usersCreated, "didn't finish within timeout");
-
- delete api;
}
void UserApiTests::deleteUserTest(){
- auto api = getApi();
+ OAIUserApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool userDeleted = false;
- connect(api, &OAIUserApi::deleteUserSignal, [&](){
+ connect(&api, &OAIUserApi::deleteUserSignal, [&](){
userDeleted = true;
loop.quit();
});
- api->deleteUser("rambo");
+ api.deleteUser("rambo");
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(userDeleted, "didn't finish within timeout");
-
- delete api;
}
void UserApiTests::getUserByNameTest(){
- auto api = getApi();
+ OAIUserApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool userFetched = false;
- connect(api, &OAIUserApi::getUserByNameSignal, [&](OAIUser summary) {
+ connect(&api, &OAIUserApi::getUserByNameSignal, [&](OAIUser summary) {
userFetched = true;
qDebug() << summary.getUsername();
QVERIFY(summary.getUsername() == "johndoe");
loop.quit();
});
- api->getUserByName("johndoe");
+ api.getUserByName("johndoe");
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(userFetched, "didn't finish within timeout");
-
- delete api;
}
void UserApiTests::loginUserTest(){
- auto api = getApi();
+ OAIUserApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool userLogged = false;
- connect(api, &OAIUserApi::loginUserSignal, [&](QString summary) {
+ connect(&api, &OAIUserApi::loginUserSignal, [&](QString summary) {
userLogged = true;
qDebug() << summary;
loop.quit();
});
- api->loginUser("johndoe", "123456789");
+ api.loginUser("johndoe", "123456789");
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(userLogged, "didn't finish within timeout");
-
- delete api;
}
void UserApiTests::logoutUserTest(){
- auto api = getApi();
+ OAIUserApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool userLoggedOut = false;
- connect(api, &OAIUserApi::logoutUserSignal, [&](){
+ connect(&api, &OAIUserApi::logoutUserSignal, [&](){
userLoggedOut = true;
loop.quit();
});
- api->logoutUser();
+ api.logoutUser();
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(userLoggedOut, "didn't finish within timeout");
-
- delete api;
}
void UserApiTests::updateUserTest(){
- auto api = getApi();
+ OAIUserApi api;
+ api.setHost(PetStoreHost);
QEventLoop loop;
bool userUpdated = false;
- connect(api, &OAIUserApi::updateUserSignal, [&]() {
+ connect(&api, &OAIUserApi::updateUserSignal, [&]() {
userUpdated = true;
loop.quit();
});
auto johndoe = createRandomUser();
johndoe.setUsername("johndoe");
- api->updateUser("johndoe", johndoe);
+ api.updateUser("johndoe", johndoe);
QTimer::singleShot(14000, &loop, &QEventLoop::quit);
loop.exec();
QVERIFY2(userUpdated, "didn't finish within timeout");
-
- delete api;
}
diff --git a/samples/client/petstore/cpp-qt5/PetStore/UserApiTests.h b/samples/client/petstore/cpp-qt5/PetStore/UserApiTests.h
index a748b4df905..04dfcabd853 100644
--- a/samples/client/petstore/cpp-qt5/PetStore/UserApiTests.h
+++ b/samples/client/petstore/cpp-qt5/PetStore/UserApiTests.h
@@ -7,7 +7,6 @@ using namespace OpenAPI;
class UserApiTests: public QObject {
Q_OBJECT
- OAIUserApi* getApi();
OAIUser createRandomUser();
private slots:
@@ -19,4 +18,6 @@ private slots:
void loginUserTest();
void logoutUserTest();
void updateUserTest();
+private:
+ const QString PetStoreHost = QStringLiteral("http://petstore.swagger.io");
};
diff --git a/samples/client/petstore/cpp-qt5/build-and-test.bash b/samples/client/petstore/cpp-qt5/build-and-test.bash
index ea8cbeb1357..bcf96489533 100755
--- a/samples/client/petstore/cpp-qt5/build-and-test.bash
+++ b/samples/client/petstore/cpp-qt5/build-and-test.bash
@@ -1,42 +1,48 @@
#!/bin/bash
set -e
+# export RUN_VALGRIND_TESTS=TRUE
mkdir -p build
cd build
-qmake ../PetStore/PetStore.pro CONFIG+=debug
+cmake ..
make
-valgrind --leak-check=full ./PetStore |& tee result.log || exit 1
-
-echo "Make sure the tests are launched:"
-testCount=$(cat result.log | grep 'Finished testing of' | wc -l)
-if [ $testCount == 3 ]
-then
- echo "Ok"
+if [[ -z "${RUN_VALGRIND_TESTS}" ]]; then
+ echo "Running Qt5 Petstore Tests"
+ ./cpp-qt5-petstore
else
- echo "The tests were not run!!!"
- exit 1
+ echo "Running Qt5 Petstore Tests with Valgrind"
+ valgrind --leak-check=full ./cpp-qt5-petstore |& tee result.log || exit 1
+ testCount=$(cat result.log | grep 'Finished testing of' | wc -l)
+ if [ $testCount == 3 ]
+ then
+ echo "Ok"
+ else
+ echo "The tests were not run!!!"
+ exit 1
+ fi
+
+ echo "Make sure the tests passed:"
+ successCount=$(cat result.log | grep '0 failed' | wc -l)
+ if [ $successCount == 3 ]
+ then
+ echo "Ok"
+ else
+ echo "The tests failed!!!"
+ exit 1
+ fi
+
+ echo "Check if no memory leaks occured:"
+ leakCount=$(cat result.log | grep 'lost: 0 bytes in 0 blocks' | wc -l)
+ if [ $leakCount == 3 ]
+ then
+ echo "Ok"
+ else
+ echo "There was memory leaks!!!"
+ exit 1
+ fi
fi
-echo "Make sure the tests passed:"
-successCount=$(cat result.log | grep '0 failed' | wc -l)
-if [ $successCount == 3 ]
-then
- echo "Ok"
-else
- echo "The tests failed!!!"
- exit 1
-fi
-
-echo "Check if no memory leaks occured:"
-leakCount=$(cat result.log | grep 'lost: 0 bytes in 0 blocks' | wc -l)
-if [ $leakCount == 3 ]
-then
- echo "Ok"
-else
- echo "There was memory leaks!!!"
- exit 1
-fi