Results.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Copyright (c) 2020, Matthew Olsson <mattco@serenityos.org>
  3. * Copyright (c) 2020-2021, Linus Groh <linusg@serenityos.org>
  4. * Copyright (c) 2021, Brian Gianforcaro <bgianf@serenityos.org>
  5. *
  6. * SPDX-License-Identifier: BSD-2-Clause
  7. */
  8. #pragma once
  9. #include <AK/String.h>
  10. #include <AK/Vector.h>
  11. namespace Test {
  12. enum class Result {
  13. Pass,
  14. Fail,
  15. Skip,
  16. Crashed,
  17. };
  18. struct Case {
  19. String name;
  20. Result result;
  21. String details;
  22. };
  23. struct Suite {
  24. String name;
  25. // A failed test takes precedence over a skipped test, which both have
  26. // precedence over a passed test
  27. Result most_severe_test_result { Result::Pass };
  28. Vector<Case> tests {};
  29. };
  30. struct Counts {
  31. // Not all of these might be used by a certain test runner, e.g. some
  32. // do not have a concept of suites, or might not load tests from files.
  33. unsigned tests_failed { 0 };
  34. unsigned tests_passed { 0 };
  35. unsigned tests_skipped { 0 };
  36. unsigned suites_failed { 0 };
  37. unsigned suites_passed { 0 };
  38. unsigned files_total { 0 };
  39. };
  40. }