100efb5e1SYuri Pankov /*
200efb5e1SYuri Pankov  * Copyright (c) 2017 Juniper Networks.  All rights reserved.
300efb5e1SYuri Pankov  *
400efb5e1SYuri Pankov  * Redistribution and use in source and binary forms, with or without
500efb5e1SYuri Pankov  * modification, are permitted provided that the following conditions
600efb5e1SYuri Pankov  * are met:
700efb5e1SYuri Pankov  * 1. Redistributions of source code must retain the above copyright
800efb5e1SYuri Pankov  *    notice, this list of conditions and the following disclaimer.
900efb5e1SYuri Pankov  * 2. Redistributions in binary form must reproduce the above copyright
1000efb5e1SYuri Pankov  *    notice, this list of conditions and the following disclaimer in the
1100efb5e1SYuri Pankov  *    documentation and/or other materials provided with the distribution.
1200efb5e1SYuri Pankov  *
1300efb5e1SYuri Pankov  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
1400efb5e1SYuri Pankov  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1500efb5e1SYuri Pankov  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1600efb5e1SYuri Pankov  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
1700efb5e1SYuri Pankov  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1800efb5e1SYuri Pankov  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1900efb5e1SYuri Pankov  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2000efb5e1SYuri Pankov  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2100efb5e1SYuri Pankov  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2200efb5e1SYuri Pankov  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2300efb5e1SYuri Pankov  * SUCH DAMAGE.
2400efb5e1SYuri Pankov  */
2500efb5e1SYuri Pankov 
2600efb5e1SYuri Pankov #include <assert.h>
2700efb5e1SYuri Pankov #include <stdlib.h>
2800efb5e1SYuri Pankov 
2900efb5e1SYuri Pankov int
main(void)3000efb5e1SYuri Pankov main(void)
3100efb5e1SYuri Pankov {
3200efb5e1SYuri Pankov 	/* null */
3300efb5e1SYuri Pankov 	assert(set_constraint_handler_s(abort_handler_s) == NULL);
3400efb5e1SYuri Pankov 
3500efb5e1SYuri Pankov 	/* abort handler */
36*b36afad7SRobert Mustacchi 	(void) set_constraint_handler_s(abort_handler_s);
3700efb5e1SYuri Pankov 	assert(set_constraint_handler_s(ignore_handler_s) == abort_handler_s);
3800efb5e1SYuri Pankov 
3900efb5e1SYuri Pankov 	/* ignore handler */
40*b36afad7SRobert Mustacchi 	(void) set_constraint_handler_s(ignore_handler_s);
4100efb5e1SYuri Pankov 	assert(set_constraint_handler_s(abort_handler_s) == ignore_handler_s);
4200efb5e1SYuri Pankov 
4300efb5e1SYuri Pankov 	return (0);
4400efb5e1SYuri Pankov }
45