Home | History | Annotate | Download | only in tests
      1 /*
      2  * Author: Joshua Brindle <jbrindle (at) tresys.com>
      3  *
      4  * Copyright (C) 2006 Tresys Technology, LLC
      5  *
      6  *  This library is free software; you can redistribute it and/or
      7  *  modify it under the terms of the GNU Lesser General Public
      8  *  License as published by the Free Software Foundation; either
      9  *  version 2.1 of the License, or (at your option) any later version.
     10  *
     11  *  This library is distributed in the hope that it will be useful,
     12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     14  *  Lesser General Public License for more details.
     15  *
     16  *  You should have received a copy of the GNU Lesser General Public
     17  *  License along with this library; if not, write to the Free Software
     18  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     19  */
     20 
     21 /* This includes functions used to debug tests (display bitmaps, conditional expressions, etc */
     22 
     23 #include "debug.h"
     24 
     25 #include <stdlib.h>
     26 
     27 void print_ebitmap(ebitmap_t * bitmap, FILE * fp)
     28 {
     29 	uint32_t i;
     30 	for (i = 0; i < bitmap->highbit; i++) {
     31 		fprintf(fp, "%d", ebitmap_get_bit(bitmap, i));
     32 	}
     33 	fprintf(fp, "\n");
     34 }
     35 
     36 /* stolen from dispol.c */
     37 void display_expr(policydb_t * p, cond_expr_t * exp, FILE * fp)
     38 {
     39 
     40 	cond_expr_t *cur;
     41 	for (cur = exp; cur != NULL; cur = cur->next) {
     42 		switch (cur->expr_type) {
     43 		case COND_BOOL:
     44 			fprintf(fp, "%s ", p->p_bool_val_to_name[cur->bool - 1]);
     45 			break;
     46 		case COND_NOT:
     47 			fprintf(fp, "! ");
     48 			break;
     49 		case COND_OR:
     50 			fprintf(fp, "|| ");
     51 			break;
     52 		case COND_AND:
     53 			fprintf(fp, "&& ");
     54 			break;
     55 		case COND_XOR:
     56 			fprintf(fp, "^ ");
     57 			break;
     58 		case COND_EQ:
     59 			fprintf(fp, "== ");
     60 			break;
     61 		case COND_NEQ:
     62 			fprintf(fp, "!= ");
     63 			break;
     64 		default:
     65 			fprintf(fp, "error! (%d)", cur->expr_type);
     66 			break;
     67 		}
     68 	}
     69 }
     70