diff options
Diffstat (limited to 'libqpdf/QTC.cc')
-rw-r--r-- | libqpdf/QTC.cc | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/libqpdf/QTC.cc b/libqpdf/QTC.cc new file mode 100644 index 0000000..d0f3e11 --- /dev/null +++ b/libqpdf/QTC.cc @@ -0,0 +1,45 @@ +#include <qpdf/QTC.hh> + +#include <set> +#include <stdio.h> +#include <qpdf/QUtil.hh> + +static bool tc_active(char const* const scope) +{ + std::string value; + return (QUtil::get_env("TC_SCOPE", &value) && (value == scope)); +} + +void QTC::TC(char const* const scope, char const* const ccase, int n) +{ + static std::set<std::pair<std::string, int> > cache; + + if (! tc_active(scope)) + { + return; + } + + std::string filename; +#ifdef _WIN32 +# define TC_ENV "TC_WIN_FILENAME" +#else +# define TC_ENV "TC_FILENAME" +#endif + if (! QUtil::get_env(TC_ENV, &filename)) + { + return; + } +#undef TC_ENV + + if (cache.count(std::make_pair(ccase, n))) + { + return; + } + cache.insert(std::make_pair(ccase, n)); + + FILE* tc = + QUtil::fopen_wrapper("open test coverage file (" + filename + ")", + fopen(filename.c_str(), "ab")); + fprintf(tc, "%s %d\n", ccase, n); + fclose(tc); +} |