The Poor Man's (or Woman's) Intrusion Detection System
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

testit.cpp 1.4 KiB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //////////////////////////////////////////////////////////////////////
  2. // Test Jig
  3. // Written by Jonathan A. Foster <ChipMaster@YeOlPiShack.net>
  4. // Started June 28th, 2021
  5. // Copyright 2021 JF Possibilities, Inc. All Rights Reserved
  6. //////////////////////////////////////////////////////////////////////
  7. #include <iostream>
  8. #include "testit.h"
  9. using namespace std;
  10. //////////////////////////////////////////////////////////////////////
  11. // TestIt
  12. //////////////////////////////////////////////////////////////////////
  13. const string bools[2] = {
  14. vt100::RED+"FAIL"+vt100::RST, vt100::GRN+"ok"+vt100::RST
  15. };
  16. void TestIt::module(const string &title) {
  17. cout << "\n"
  18. << vt100::CYN << title << ":\n"
  19. << string(title.size()+1, '=') << vt100::RST << endl;
  20. }
  21. bool TestIt::test(const string &title, int result, int match) {
  22. bool r = result==match;
  23. cout << vt100::YLW << title << '\t' << bools[r] << endl;
  24. count++;
  25. if(r) passes++;
  26. else fails.push_back(title);
  27. return r;
  28. }
  29. int TestIt::report() {
  30. int r = 0;
  31. if(fails.size()==count) r = 3; // Oh! That's miserable
  32. else if(fails.size()) r = 2; // something worked.
  33. cout << "\n"
  34. << vt100::CYN << "RESULTS: Tests " << (r ? vt100::YLW : vt100::GRN) << count
  35. << vt100::CYN << " Passes " << vt100::GRN << passes
  36. << vt100::CYN << " Fails " << (r ? vt100::RED : vt100::GRN) << fails.size()
  37. << vt100::RST << "\n";
  38. return r;
  39. }