On Sun, Nov 9, 2008 at 10:19 PM, Piotr Domagalski <piotr.domagalski@man.poznan.pl> wrote:
On Thu, Nov 6, 2008 at 9:09 AM, Peter Tröger <peter@troeger.eu> wrote:
I am not the C binding expert, even though I am maintaining the test suite. Most test cases were originally written for SGE, and therefore could be way too specific. We already relaxed a lot of tests, in order to fit better to the spec itself. This sounds like just another case. If you guys agree on 128, we can put that in.
I don't think this has much to do with C binding. I see it as implementability of specification requirements...
Therefore, in order to have more implementations pass the test suite, I would vote for limiting ST_EXIT_STATUS test to only codes <= 128. Then, it would be specific impl detail whether it supports obtaining 8 or 7 bit exit statuses. If DRMS uses shell to start the executable, it's not possible to have meaningful 8 bit exit code.
It could also be worth noting in the specification document.
Would you mind relaxing it even more? I.e. to test only codes from 0 to 125? Reading "man 1posix exit": RATIONALE As explained in other sections, certain exit status values have been reserved for special uses and should be used by applications only for those purposes: 126 A file to be executed was found, but it was not an executable utility. 127 A utility to be executed was not found. >128 A command was interrupted by a signal. This way, we could interpret, at DRMAA implementation level, 126 and 127 exit codes so that the job would get DRMAA_PS_FAILED and drmaa_wifaborted() = true because of wrong executable, instead of getting exit status of 126 or 127 and leaving the interpretation up to the user. -- Piotr Domagalski