Process::Status.coredump? implementation w/ patch and ruby test script ----------------------------------------------------------------------
Key: JRUBY-5979 URL: https://jira.codehaus.org/browse/JRUBY-5979 Project: JRuby Issue Type: Improvement Components: Core Classes/Modules Affects Versions: JRuby-OSSL 0.7.2 Environment: Mac OSX Snow Leopard Reporter: Chris White Fix For: JRuby 1.7 Attachments: 0003-Add-a-temporary-implementation-for-Process-Status-co.patch, coredump_test.rb While attempting to run the CRuby bootstrap test suite using JRuby, I noticed exceptions were occurring because Process::Status.coredump? was marked as not implemented. The CRuby version of coredump? is as follows: ----- /* * call-seq: * stat.coredump? -> true or false * * Returns +true+ if _stat_ generated a coredump * when it terminated. Not available on all platforms. */ static VALUE pst_wcoredump(VALUE st) { #ifdef WCOREDUMP int status = PST2INT(st); if (WCOREDUMP(status)) return Qtrue; else return Qfalse; #else return Qfalse; #endif } ----- It uses a system library macro, WCOREDUMP to check the status of a process inspected using the wait() system call. If WCOREDUMP is not present in the system implementation, false is returned. This could be completely implemented using a C wrapper that the Java side could interface with, but it would require a lot more legwork. Instead this patch has it return false as per the "not available on all platforms" condition (which is somewhat true if you consider pure Java the platform). Attached is both the patch and a Ruby Test::Unit::TestCase. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email