Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Class test_suite

boost::unit_test::test_suite — Class representing test suites.

Synopsis

// In header: <boost/test/tree/test_unit.hpp>


class test_suite : public boost::unit_test::test_unit {
public:
  // types
  typedef std::vector< test_unit_id >                                  id_list;       
  typedef std::vector< test_unit_fixture_ptr >                         fixture_list_t;
  typedef std::vector< decorator::base_ptr >                           decor_list_t;  
  typedef boost::function< test_tools::assertion_result(test_unit_id)> precondition_t;

  enum { type = TUT_SUITE };

  enum { type = TUT_ANY };

  enum run_status { RS_DISABLED, RS_ENABLED, RS_INHERIT, RS_INVALID };

  // public member functions
  explicit test_suite(const_string, const_string, std::size_t);
  void add(test_unit *, counter_t = 0, unsigned = 0);
  void add(test_unit_generator const &, unsigned = 0);
  void add(test_unit_generator const &, decorator::collector_t &);
  void add(boost::shared_ptr< test_unit_generator >, decorator::collector_t &);
  void remove(test_unit_id);
  void generate();
  void check_for_duplicate_test_cases();
  test_unit_id get(const_string) const;
  std::size_t size() const;
  typedef BOOST_READONLY_PROPERTY(test_unit_id, (framework::state));
  typedef BOOST_READONLY_PROPERTY(test_unit_id, (test_suite));
  typedef BOOST_READONLY_PROPERTY(id_list, (test_unit));
  typedef BOOST_READONLY_PROPERTY(std::vector< std::string >, (test_unit));
  typedef BOOST_READONLY_PROPERTY(std::vector< precondition_t >, (test_unit));
  void depends_on(test_unit *);
  void add_precondition(precondition_t const &);
  test_tools::assertion_result check_preconditions() const;
  void add_label(const_string);
  bool has_label(const_string) const;
  void increase_exp_fail(counter_t);
  bool is_enabled() const;
  std::string full_name() const;

  // protected member functions
  explicit test_suite(const_string);
  virtual ~test_suite();

  // public data members
  test_unit_type const p_type;  // type for this test unit 
  const_string const p_type_name;  // "case"/"suite"/"module" 
  const_string const p_file_name;
  std::size_t const p_line_num;
  id_t p_id;  // unique id for this test unit 
  parent_id_t p_parent_id;  // parent test suite id 
  label_list_t p_labels;  // list of labels associated with this test unit 
  id_list_t p_dependencies;  // list of test units this one depends on 
  precond_list_t p_preconditions;  // user supplied preconditions for this test unit; 
  readwrite_property< std::string > p_name;  // name for this test unit 
  readwrite_property< std::string > p_description;  // description for this test unit 
  readwrite_property< unsigned > p_timeout;  // timeout for the test unit execution in seconds 
  readwrite_property< counter_t > p_expected_failures;  // number of expected failures in this test unit 
  readwrite_property< run_status > p_default_status;  // run status obtained by this unit during setup phase 
  readwrite_property< run_status > p_run_status;  // run status assigned to this unit before execution phase after applying all filters 
  readwrite_property< counter_t > p_sibling_rank;  // rank of this test unit amoung siblings of the same parent 
  readwrite_property< decor_list_t > p_decorators;  // automatically assigned decorators; execution is delayed till framework::finalize_setup_phase function 
  readwrite_property< fixture_list_t > p_fixtures;  // fixtures associated with this test unit 
};

Description

test_suite public member functions

  1. explicit test_suite(const_string ts_name, const_string ts_file, 
                        std::size_t ts_line);
  2. void add(test_unit * tu, counter_t expected_failures = 0, 
             unsigned timeout = 0);
    Adds a test unit to a test suite.

    It is possible to specify the timeout and the expected failures.

  3. void add(test_unit_generator const & gen, unsigned timeout = 0);
    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
  4. void add(test_unit_generator const & gen, decorator::collector_t & decorators);
    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
  5. void add(boost::shared_ptr< test_unit_generator > gen_ptr, 
             decorator::collector_t & decorators);
    This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
  6. void remove(test_unit_id id);
    Removes a test from the test suite.
  7. void generate();
    Generates all the delayed test_units from the generators.
  8. void check_for_duplicate_test_cases();
    Check for duplicates name in test cases.

    Raises a setup_error if there are duplicates

  9. test_unit_id get(const_string tu_name) const;
  10. std::size_t size() const;
  11. typedef BOOST_READONLY_PROPERTY(test_unit_id, (framework::state));
  12. typedef BOOST_READONLY_PROPERTY(test_unit_id, (test_suite));
  13. typedef BOOST_READONLY_PROPERTY(id_list, (test_unit));
  14. typedef BOOST_READONLY_PROPERTY(std::vector< std::string >, (test_unit));
  15. typedef BOOST_READONLY_PROPERTY(std::vector< precondition_t >, (test_unit));
  16. void depends_on(test_unit * tu);
  17. void add_precondition(precondition_t const &);
  18. test_tools::assertion_result check_preconditions() const;
  19. void add_label(const_string l);
  20. bool has_label(const_string l) const;
  21. void increase_exp_fail(counter_t num);
  22. bool is_enabled() const;
  23. std::string full_name() const;

test_suite protected member functions

  1. explicit test_suite(const_string module_name);
  2. virtual ~test_suite();

PrevUpHomeNext