fail.h

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 54 行

H
54
字号
#ifndef _FAIL_H
#define _FAIL_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

extern unsigned errors;
extern unsigned main_terminated;

extern void fail( unsigned line );
#define _fail   (fail(__LINE__))

unsigned errors;
unsigned main_terminated;

void fail( unsigned line )
{
    ++errors;
    printf( "failure on line %u\n", line );
    if( main_terminated || errors > 5 ) {
        abort();
    }
}

#define _PASS \
    if( ! errors ) { \
        puts( "PASS " __FILE__ ); \
        fflush( stdout ); \
    } \
    main_terminated = 1; \
    return( errors != 0 );

#define _PASS_EXIT \
    if( ! errors ) { \
        puts( "PASS " __FILE__ ); \
        fflush( stdout ); \
    } \
    main_terminated = 1; \
    exit( errors != 0 );

#define ALWAYS_PASS     \
int main()              \
{                       \
    _PASS;              \
}

// macro __u will automatically generate a unique name
#define __up(a,b)       a##b
#define __ue(a,b)       __up(a,b)
#define __u             __ue(__u,__LINE__)

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?