xref: /illumos-gate/usr/src/test/i2c-tests/tests/libi2c/libi2c_test_util.c (revision 0cbe48189888d02563dba9c90132ac391ba233b6)
1*0cbe4818SRobert Mustacchi /*
2*0cbe4818SRobert Mustacchi  * This file and its contents are supplied under the terms of the
3*0cbe4818SRobert Mustacchi  * Common Development and Distribution License ("CDDL"), version 1.0.
4*0cbe4818SRobert Mustacchi  * You may only use this file in accordance with the terms of version
5*0cbe4818SRobert Mustacchi  * 1.0 of the CDDL.
6*0cbe4818SRobert Mustacchi  *
7*0cbe4818SRobert Mustacchi  * A full copy of the text of the CDDL should have accompanied this
8*0cbe4818SRobert Mustacchi  * source.  A copy of the CDDL is also available via the Internet at
9*0cbe4818SRobert Mustacchi  * http://www.illumos.org/license/CDDL.
10*0cbe4818SRobert Mustacchi  */
11*0cbe4818SRobert Mustacchi 
12*0cbe4818SRobert Mustacchi /*
13*0cbe4818SRobert Mustacchi  * Copyright 2025 Oxide Computer Company
14*0cbe4818SRobert Mustacchi  */
15*0cbe4818SRobert Mustacchi 
16*0cbe4818SRobert Mustacchi /*
17*0cbe4818SRobert Mustacchi  * Misc. test utilities.
18*0cbe4818SRobert Mustacchi  */
19*0cbe4818SRobert Mustacchi 
20*0cbe4818SRobert Mustacchi #include <stdarg.h>
21*0cbe4818SRobert Mustacchi 
22*0cbe4818SRobert Mustacchi #include "libi2c_test_util.h"
23*0cbe4818SRobert Mustacchi 
24*0cbe4818SRobert Mustacchi /*
25*0cbe4818SRobert Mustacchi  * For any test linked against libumem, ensure that umem debugging is enabled by
26*0cbe4818SRobert Mustacchi  * default. Many tests use umem_setmtbf() and we need to make sure there is no
27*0cbe4818SRobert Mustacchi  * per-thread cache.
28*0cbe4818SRobert Mustacchi  */
29*0cbe4818SRobert Mustacchi const char *
_umem_debug_init(void)30*0cbe4818SRobert Mustacchi _umem_debug_init(void)
31*0cbe4818SRobert Mustacchi {
32*0cbe4818SRobert Mustacchi 	return ("default,verbose");
33*0cbe4818SRobert Mustacchi }
34*0cbe4818SRobert Mustacchi 
35*0cbe4818SRobert Mustacchi const char *
_umem_logging_init(void)36*0cbe4818SRobert Mustacchi _umem_logging_init(void)
37*0cbe4818SRobert Mustacchi {
38*0cbe4818SRobert Mustacchi 	return ("fail,contents");
39*0cbe4818SRobert Mustacchi }
40*0cbe4818SRobert Mustacchi 
41*0cbe4818SRobert Mustacchi static void
libi2c_test_vwarn(i2c_hdl_t * hdl,const char * fmt,va_list ap)42*0cbe4818SRobert Mustacchi libi2c_test_vwarn(i2c_hdl_t *hdl, const char *fmt, va_list ap)
43*0cbe4818SRobert Mustacchi {
44*0cbe4818SRobert Mustacchi 	(void) fprintf(stderr, "TEST FAILED: ");
45*0cbe4818SRobert Mustacchi 	(void) vfprintf(stderr, fmt, ap);
46*0cbe4818SRobert Mustacchi 	(void) fprintf(stderr, ": %s: %s (libi2c: 0x%x, sys: %d)\n",
47*0cbe4818SRobert Mustacchi 	    i2c_errmsg(hdl), i2c_errtostr(hdl, i2c_err(hdl)),
48*0cbe4818SRobert Mustacchi 	    i2c_err(hdl), i2c_syserr(hdl));
49*0cbe4818SRobert Mustacchi }
50*0cbe4818SRobert Mustacchi 
51*0cbe4818SRobert Mustacchi void
libi2c_test_warn(i2c_hdl_t * hdl,const char * fmt,...)52*0cbe4818SRobert Mustacchi libi2c_test_warn(i2c_hdl_t *hdl, const char *fmt, ...)
53*0cbe4818SRobert Mustacchi {
54*0cbe4818SRobert Mustacchi 	va_list ap;
55*0cbe4818SRobert Mustacchi 
56*0cbe4818SRobert Mustacchi 	va_start(ap, fmt);
57*0cbe4818SRobert Mustacchi 	libi2c_test_vwarn(hdl, fmt, ap);
58*0cbe4818SRobert Mustacchi 	va_end(ap);
59*0cbe4818SRobert Mustacchi }
60*0cbe4818SRobert Mustacchi 
61*0cbe4818SRobert Mustacchi void
libi2c_test_fatal(i2c_hdl_t * hdl,const char * fmt,...)62*0cbe4818SRobert Mustacchi libi2c_test_fatal(i2c_hdl_t *hdl, const char *fmt, ...)
63*0cbe4818SRobert Mustacchi {
64*0cbe4818SRobert Mustacchi 	va_list ap;
65*0cbe4818SRobert Mustacchi 
66*0cbe4818SRobert Mustacchi 	va_start(ap, fmt);
67*0cbe4818SRobert Mustacchi 	libi2c_test_vwarn(hdl, fmt, ap);
68*0cbe4818SRobert Mustacchi 	va_end(ap);
69*0cbe4818SRobert Mustacchi 	exit(EXIT_FAILURE);
70*0cbe4818SRobert Mustacchi }
71