/* $Id: plrb_debug.h,v 1.3 2004/04/11 05:04:46 jigoro Exp $ */ #ifndef RUBY_PM_DEBUG_H #define RUBY_PM_DEBUG_H enum debug_flag { DB_INITFINAL = 0x0001, DB_INSTALL = 0x0002, DB_VALUE2SV = 0x0004, DB_SV2VALUE = 0x0008, DB_FUNCALL = 0x0010, DB_EVAL = 0x0020, DB_GVAR = 0x0040, DB_METHOD = 0x0080, DB_NODE = 0x0100, }; #ifdef RUBY_PM_DEBUG #define D(flag, list) do{dTHX;if(SvIV(get_sv("Ruby::DEBUG", FALSE)) & flag) warn list;}while(0) #define D_STMT(stmt) stmt #define PerlAssert(test) (test ? NOOP :\ croak("Assertion failed (%s) at %s line %d\n", #test, __FILE__, __LINE__)) #define PerlAssertIntEQ(l,r) (l == r ? NOOP :\ croak("Assertion failed (%s:%ld == %s) at %s line %d\n", #l, (long)l, #r, __FILE__, __LINE__)) #define PerlAssertIntNE(l,r) (l != r ? NOOP :\ croak("Assertion failed (%s:%ld != %s) at %s line %d\n", #l, (long)l, #r, __FILE__, __LINE__)) #define PerlAssertStrEQ(l,r) (strEQ(l,r) ? NOOP :\ croak("Assertion failed (%s:%s == %s) at %s line %d\n", #l, (char*)l, #r, __FILE__, __LINE__)) #define PerlAssertStrNE(l,r) (strNE(l,r) ? NOOP :\ croak("Assertion failed (%s:%s != %s) at %s line %d\n", #l, (char*)l, #r, __FILE__, __LINE__)) #define RubyAssert(test) (test ? NOOP : rb_raise(rb_eException, "Assertion failed (%s) at %s line %d\n", #test, __FILE__, __LINE__)) #define RubyAssertIntEQ(l,r) (l == r ? NOOP : rb_raise(rb_eException, "Assertion failed (%s:%ld == %s) at %s line %d\n", #l, (long)l, #r, __FILE__, __LINE__)) #define RubyAssertIntNE(l,r) (l != r ? NOOP : rb_raise(rb_eException, "Assertion failed (%s:%ld == %s) at %s line %d\n", #l, (long)l, #r, __FILE__, __LINE__)) #define RubyAssertStrEQ(l,r) (strEQ(l,r) ? NOOP : rb_raise(rb_eException, "Assertion failed (%s:%s == %s) at %s line %d\n", #l, (char*)l, #r, __FILE__, __LINE__)) #define RubyAssertStrNE(l,r) (strNE(l,r) ? NOOP : rb_raise(rb_eException, "Assertion failed (%s:%s == %s) at %s line %d\n", #l, (char*)l, #r, __FILE__, __LINE__)) #else #define D(flag, list) NOOP #define D_STMT(stmt) #define PerlAssert(test) NOOP #define PerlAssertIntEQ(l,r) NOOP #define PerlAssertIntNE(l,r) NOOP #define PerlAssertStrEQ(l,r) NOOP #define PerlAssertStrNE(l,r) NOOP #define RubyAssert(test) NOOP #define RubyAssertIntEQ(l,r) NOOP #define RubyAssertIntNE(l,r) NOOP #define RubyAssertStrEQ(l,r) NOOP #define RubyAssertStrNE(l,r) NOOP #endif #endif /* RUBY_PM_DEBUG_H */