Skip to content
Snippets Groups Projects

LoadTest

Tool zum Draufhauen auf unseren Monopedia Server

Make-File

make

Compiliert alle Dateien aus dem src-Verzeichnis und macht diese mit Hilfe der Main Methode aus der src/main.cpp zu dem ausführbaren Binary bin/loadtest.

make fast

Compiliert alle Dateien aus dem src-Verzeichnis mit FastFlags und macht diese mit Hilfe der Main Methode aus der src/main.cpp zu dem ausführbaren Binary bin/loadtest.

make test

Compiliert alle Dateien aus dem src-Verzeichnis bis auf die main.cpp und alle Testfälle aus dem test-Verzeichnis. Anschließend wird Google Test gestartet und alle Tests durchgeführt. Das Ergebnis wird auf der Kommandozeile ausgegeben.

make valgrind

Führt make test aus, startet die entstehende Testsuide allerdings mit valgrind

make format

Verwendet clang-format um den Code im src- und test-Verzeichnis nach dem Google Code Format einheitlich zu formatieren. Dies sollte vor jedem Commit durchgeführt werden. Achtung: Wenn andere Authoren ihren Code zuvor nicht damit formatiert haben, wird auch Code geändert, den du vielleicht gar nicht selbst geschrieben hast.

make doku

Startet Doxygen und erstellt eine Dokumentation aus dem Quelltext für alle dort dokumentieren Funktionen. Das Ergebnis landet als Webseite im Verzeichnis /doku

make lint

Wendet verschiedene Linting-Werkzeuge auf den Code an und gibt auf der Kommandozeile die Hinweise aus, die bei der Überprüfung gefunden wurden.

make modern

Verwendet clang-modernize um in Code Anweisungen zu ersetzen, die sich durch neue C++11 Konstrukte moderner schreiben lassen. Achtung: Der gesamte Codebasis kann und wird dabei verändert werden. Vor einen Commit sollten die Änderungen nochmal überprüft werden!

make coverage

Startet Testsuite und misst die durch ihre Tests erreichte Code-Coverage. Der Abschlussbericht landet im Verzeichnis /doku/coverage.

Dependencies

pqxx für die PostgreSQL Integration

  • Arch: extra/libpqxx
  • Debian: libpqxx-dev
  • Ubuntu: libpqxx-dev

libconfig für externe Konfiguration

  • Arch: extra/libconfig
  • Debian/Ubuntu: libconfig++-dev

libncurses5-dev für die Ausgabe

  • Arch: TODO
  • Debian/Ubuntu: libncurses5-dev; libncursesw5-dev

Optional Dependencies

GoogleTest als Testframework

  • Arch: community/gtest
  • Debian/Ubuntu: libgtest-dev
  • Alternative

valgrind für die dynamische Speicher-Analyse

  • Arch: extra/valgrind
  • Debian/Ubuntu: valgrind

Doxygen für das Erstellen der Dokumentation

  • Arch: extra/doxygen
  • Debian/Ubuntu: doxygen

lcov für das Messen der Code-Coverage der Testuite

  • Arch: aur/lcov
  • Debian/Ubuntu: lcov

clang-format für einheitliche Einrückungen im Code

  • Arch: extra/clang-tools-extra
  • Debian/Ubuntu: Neue Paketquellen eintragen, clang-format-3.7 installieren und verlinken (sudo ln -s /usr/bin/clang-format-3.7 /usr/local/bin/clang-format)

clang-tidy für Hinweise zu Programmierfehlern

  • Arch: extra/clang-tools-extra
  • Debian/Ubuntu: Neue Paketquellen eintragen, clang-tidy-3.7 installieren und verlinken (sudo ln -s /usr/bin/clang-tidy-3.7 /usr/local/bin/clang-tidy)

clang-modernize für Code-Konvertierungen zu C++11

  • Arch: extra/clang-tools-extra
  • Debian/Ubuntu: Neue Paketquellen eintragen, clang-modernize-3.7 installieren und verlinken (sudo ln -s /usr/bin/clang-modernize-3.7 /usr/local/bin/clang-modernize)

cpp-check für statische Code-Analyse

  • Arch: community/cppcheck
  • Debian/Ubuntu: cppcheck

cpp-lint für das Prüfen auf Abweichungen des Google C++ Styleguides

  • Arch: aur/cpplint
  • Debian/Ubuntu: python3-pip installieren, sudo pip3 install cpplint