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