gen_t_subr_prf revision 272343
175578Skris#!/bin/sh 275578Skris 375578Skriscat << _EOF > $2 475578Skris#include <sys/types.h> 575578Skris#include <sys/time.h> 675578Skris#include <stdio.h> 775578Skris#include <stdarg.h> 875578Skris#include <stdint.h> 975578Skris#include <string.h> 1075578Skris#include <sha2.h> 1175578Skris 1275578Skris#include <atf-c.h> 1375578Skris 1475578Skris/* Avoid SSP re-definitions */ 1575578Skris#undef snprintf 1675578Skris#undef vsnprintf 1775578Skris#undef sprintf 1875578Skris#undef vsprintf 1975578Skris 2075578Skris#define KPRINTF_BUFSIZE 1024 2175578Skris#undef putchar 2275578Skris#define putchar xputchar 2375578Skris 2475578Skrisstatic int putchar(char c, int foo, void *b) 2575578Skris{ 2675578Skris return fputc(c, stderr); 2775578Skris} 2875578Skris 2975578Skris#define TOBUFONLY 1 3075578Skrisstatic const char HEXDIGITS[] = "0123456789ABCDEF"; 3175578Skrisstatic const char hexdigits[] = "0123456789abcdef"; 3275578Skris 3375578Skristypedef int device_t; 3475578Skris 3575578Skris#if 0 3690039Sobrienstatic SHA512_CTX kprnd_sha; 3775578Skris#endif 3890039Sobrien 3975578Skris#define timespec timeval 4075578Skris#define nanotime(ts) gettimeofday(ts, NULL) 4175578Skris 4275578Skris#define device_xname(a) "" 4375578Skrisint kprintf(const char *, int, void *, char *, va_list) __printflike(1, 0); 4498908Sdeischenvoid device_printf(device_t, const char *, ...) __printflike(2, 3); 4575578Skris 4675578Skrisstatic void 4775578Skrisempty(void) 4875578Skris{ 4975578Skris} 5075578Skris 5175578Skrisstatic void (*v_flush)(void) = empty; 5275578Skris 5375578SkrisATF_TC(snprintf_print); 5475578SkrisATF_TC_HEAD(snprintf_print, tc) 5575578Skris{ 5675578Skris atf_tc_set_md_var(tc, "descr", "checks snprintf print"); 5775578Skris} 5875578Skris 5975578SkrisATF_TC_BODY(snprintf_print, tc) 6075578Skris{ 6175578Skris char buf[10]; 6275578Skris int i; 6375578Skris 6475578Skris memset(buf, 'x', sizeof(buf)); 6575578Skris i = snprintf(buf, sizeof(buf), "number %d", 10); 6675578Skris ATF_CHECK_EQ(i, 9); 6775578Skris ATF_CHECK_STREQ(buf, "number 10"); 6875578Skris} 6975578Skris 7075578SkrisATF_TC(snprintf_print_overflow); 7175578SkrisATF_TC_HEAD(snprintf_print_overflow, tc) 7275578Skris{ 7375578Skris atf_tc_set_md_var(tc, "descr", "checks snprintf print with overflow"); 7475578Skris} 7575578Skris 7675578SkrisATF_TC_BODY(snprintf_print_overflow, tc) 7775578Skris{ 7875578Skris char buf[10]; 7975578Skris int i; 8075578Skris 8175578Skris memset(buf, 'x', sizeof(buf)); 8275578Skris i = snprintf(buf, sizeof(buf), "fjsdfsdjfsdf %d\n", 10); 8375578Skris ATF_CHECK_EQ(i, 16); 8475578Skris ATF_CHECK_STREQ(buf, "fjsdfsdjf"); 8575578Skris} 8675578Skris 8775578SkrisATF_TC(snprintf_count); 8875578SkrisATF_TC_HEAD(snprintf_count, tc) 8975578Skris{ 9075578Skris atf_tc_set_md_var(tc, "descr", "checks snprintf count"); 9175578Skris} 9275578Skris 9375578SkrisATF_TC_BODY(snprintf_count, tc) 9475578Skris{ 9575578Skris int i; 9675578Skris 9775578Skris i = snprintf(NULL, 20, "number %d", 10); 9875578Skris ATF_CHECK_EQ(i, 9); 9975578Skris} 10075578Skris 10175578SkrisATF_TC(snprintf_count_overflow); 10275578SkrisATF_TC_HEAD(snprintf_count_overflow, tc) 10375578Skris{ 10475578Skris atf_tc_set_md_var(tc, "descr", "checks snprintf count with overflow"); 10575578Skris} 10675578Skris 10775578SkrisATF_TC_BODY(snprintf_count_overflow, tc) 10875578Skris{ 10975578Skris int i; 11075578Skris 11175578Skris i = snprintf(NULL, 10, "fjsdfsdjfsdf %d\n", 10); 11275578Skris ATF_CHECK_EQ(i, 16); 11375578Skris} 11475578Skris 11575578SkrisATF_TP_ADD_TCS(tp) 11675578Skris{ 11775578Skris ATF_TP_ADD_TC(tp, snprintf_print); 11875578Skris ATF_TP_ADD_TC(tp, snprintf_print_overflow); 11975578Skris ATF_TP_ADD_TC(tp, snprintf_count); 12075578Skris ATF_TP_ADD_TC(tp, snprintf_count_overflow); 12175578Skris 12275578Skris return atf_no_error(); 12375578Skris} 12475578Skris_EOF 12575578Skris 12675578Skrisawk ' 12775578Skris/^snprintf\(/ { 12875578Skris print prevline 12975578Skris out = 1 13075578Skris} 13175578Skris{ 13275578Skris if (out) print 13375578Skris else prevline = $0 13475578Skris}' $1 >>$2 13575578Skris