blob: 806940e0d3083baac3c5387e848682f2c8d75caa [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (c) Linux Test Project, 2014
*/
#ifndef TST_RES_FLAGS_H
#define TST_RES_FLAGS_H
/**
* enum tst_res_flags - Test result reporting flags.
*
* @TPASS: Reports a single success.
* @TFAIL: Reports a single failure.
* @TBROK: Reports a single breakage.
* @TWARN: Reports a single warning. Warnings increment a warning counter and
* show up in test results.
*
* @TDEBUG: Prints additional debugging messages, it does not change the test result counters and
* the message is not displayed unless debugging is enabled with -D
* test command line parameter.
*
* @TINFO: Prints an additional information, it does not change the test result
* counters but unlike TDEBUG the message is always displayed.
*
* @TCONF: Reports unsupported configuration. When tests produce this result at
* least a subset of test was skipped, because it couldn't run. The
* usual reasons are, missing kernel modules or CONFIG options.
* Unsuitable CPU architecture, not enough memory, etc.
*
* @TERRNO: Combine bitwise with result flags to append errno to the output message.
*
* @TTERRNO: Combine bitwise with result flags to append error from TST_ERR to
* the message. The TST_TEST() macros store the errno into the
* TST_ERR global variable in order to make sure it's not change
* between the test is done and results are printed.
*
* @TRERRNO: Combine bitwise with result flags to errno from TST_RET variable
* to the message. The TST_TEST() macros store return value into the
* TST_RET global variable and quite a few, e.g. pthread functions,
* return the error value directly instead of storing it to the errno.
*
* A result flag with optional bitwise combination of errno flag are passed to
* the tst_res() and tst_brk() functions. Each message counts as a single test
* result and tests can produce arbitrary number of results, i.e. TPASS, TFAIL,
* TBROK, TWARN and TCONF messages. Each such message increases a result
* counter in a piece of shared memory, which means that reported results are
* accounted immediately even from child processes and there is no need for
* result propagation.
*/
enum tst_res_flags {
TPASS = 0,
TFAIL = 1,
TBROK = 2,
TWARN = 4,
TDEBUG = 8,
TINFO = 16,
TCONF = 32,
TERRNO = 0x100,
TTERRNO = 0x200,
TRERRNO = 0x400,
};
#define TTYPE_RESULT(ttype) ((ttype) & TTYPE_MASK)
#define TTYPE_MASK 0x3f
#endif /* TST_RES_FLAGS_H */