tst.chasestrings.c revision 268578
1/* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12/* 13 * Copyright 2013 (c) Joyent, Inc. All rights reserved. 14 */ 15 16/* 17 * This test takes data from the current binary which is basically running in a 18 * loop between two functions and our goal is to have two unique types that they 19 * contain which we can print. 20 */ 21 22#include <unistd.h> 23 24typedef struct zelda_info { 25 char *zi_gamename; 26 int zi_ndungeons; 27 char *zi_villain; 28 int zi_haszelda; 29} zelda_info_t; 30 31static int 32has_princess(zelda_info_t *z) 33{ 34 return (z->zi_haszelda); 35} 36 37static int 38has_dungeons(zelda_info_t *z) 39{ 40 return (z->zi_ndungeons != 0); 41} 42 43static const char * 44has_villain(zelda_info_t *z) 45{ 46 return (z->zi_villain); 47} 48 49int 50main(void) 51{ 52 zelda_info_t oot; 53 zelda_info_t la; 54 zelda_info_t lttp; 55 56 oot.zi_gamename = "Ocarina of Time"; 57 oot.zi_ndungeons = 10; 58 oot.zi_villain = "Ganondorf"; 59 oot.zi_haszelda = 1; 60 61 la.zi_gamename = "Link's Awakening"; 62 la.zi_ndungeons = 9; 63 la.zi_villain = "Nightmare"; 64 la.zi_haszelda = 0; 65 66 lttp.zi_gamename = "A Link to the Past"; 67 lttp.zi_ndungeons = 12; 68 lttp.zi_villain = "Ganon"; 69 lttp.zi_haszelda = 1; 70 71 for (;;) { 72 (void) has_princess(&oot); 73 (void) has_dungeons(&la); 74 (void) has_villain(<tp); 75 sleep(1); 76 } 77 78 return (0); 79} 80