catch2/include/internal/catch_list.h
Martin Hořeňovský d36c15c3ca
Store tags in one big pre-allocated string and only work with refs
This should decrease the number of allocations before main is entered
significantly, but complicates the code somewhat in return.

Assuming I used `massif` right, doing just `SelfTest --list-tests`
went from 929 allocations at "Remove gcc-4.9 from the travis builds"
(2 commits up), to 614 allocations with this commit.
2019-11-14 10:53:12 +01:00

40 lines
900 B
C++

/*
* Created by Phil on 5/11/2010.
* Copyright 2010 Two Blue Cubes Ltd. All rights reserved.
*
* Distributed under the Boost Software License, Version 1.0. (See accompanying
* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef TWOBLUECUBES_CATCH_LIST_H_INCLUDED
#define TWOBLUECUBES_CATCH_LIST_H_INCLUDED
#include "catch_config.hpp"
#include <set>
#include <string>
namespace Catch {
struct IStreamingReporter;
struct ReporterDescription {
std::string name, description;
};
struct TagInfo {
void add(StringRef spelling);
std::string all() const;
std::set<StringRef> spellings;
std::size_t count = 0;
};
struct testClassInfo {};
bool list( IStreamingReporter& reporter, std::shared_ptr<Config> const& config );
} // end namespace Catch
#endif // TWOBLUECUBES_CATCH_LIST_H_INCLUDED